P08-03: 配置の通常操作受入

This commit is contained in:
Agent Control Runner
2026-10-14 08:01:19 +09:00
parent 4f3b42dfec
commit 31aa7706d2
8 changed files with 6838 additions and 21 deletions
+3 -1
View File
@@ -9,7 +9,7 @@ var last_dispatch: Dictionary = {}
class InputObserver extends Node:
var events: Array = []
var endpoint: Node
var endpoint: RefCounted = null
func _input(event: InputEvent) -> void:
if event is InputEventMouseButton or event is InputEventKey:
var row := {"ticks_usec": Time.get_ticks_usec(), "text": event.as_text(), "pressed": event.is_pressed()}
@@ -53,6 +53,7 @@ func request(action: Dictionary) -> void:
if event.has("dispatch"):
last_dispatch = event["dispatch"]
json_file(stem + "/observed.json", {"pid": OS.get_process_id(), "sequence": serial,
"observer_endpoint": "null_modal_receipts_only" if input_observer.endpoint == null else "passive_read_only_dispatch",
"events": input_observer.events.slice(first_event), "status": main.build_status_label.text})
receipts.append("os-pair/" + stem + "/ack.json")
all_requests.append("os-pair/" + stem + "/ack.json")
@@ -132,6 +133,7 @@ func button(node: BaseButton) -> void:
var old_observer: Node = input_observer
if node.get_window() != main.get_window():
input_observer = InputObserver.new()
input_observer.endpoint = null # Modal receipts only; never dispatch world cells.
node.get_window().add_child(input_observer)
var action := point(node)
action.merge({"action": "button", "instructions": "Click the named button through CUA; capture before/after screenshots."})