diff --git a/catalog/packages/io.github.desolate-jix.gui-runtime/0.0.8.json b/catalog/packages/io.github.desolate-jix.gui-runtime/0.0.8.json new file mode 100644 index 0000000..17887da --- /dev/null +++ b/catalog/packages/io.github.desolate-jix.gui-runtime/0.0.8.json @@ -0,0 +1,24 @@ +{ + "publisher": { + "evidence": "https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.8", + "id": "Desolate-Jix", + "maintainers": [ + "Desolate-Jix" + ], + "package_ids": [ + "io.github.desolate-jix.gui-runtime" + ] + }, + "review": { + "date": "2026-11-05", + "evidence": "https://github.com/Code-Amadeus/Amadeus-Extensions/pull/11", + "policy": "curated-v1", + "reviewer": "Lucas1479", + "sha256": "2f532faf152faf2e1e3ab3140e1097487689be34d638e4ee86539e06886cbcaf" + }, + "wheel": { + "sha256": "2f532faf152faf2e1e3ab3140e1097487689be34d638e4ee86539e06886cbcaf", + "url": "https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.8/amadeus_agent_gui_runtime-0.0.8-py3-none-any.whl" + }, + "withdrawal": null +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/AUTHOR_VALIDATION.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/AUTHOR_VALIDATION.json new file mode 100644 index 0000000..b395f7b --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/AUTHOR_VALIDATION.json @@ -0,0 +1,199 @@ +{ + "schema": "amadeus.connector.author-validation.v1", + "connector_version": "0.0.5", + "status": "bounded_checks_passed_with_observation", + "review_status": "not_reviewed", + "independent_store_review": "pending", + "new_installed_pi_gui_acceptance": "not_run", + "packaging": { + "two_offline_builds_byte_identical": true, + "wheel_record_and_source_match": true, + "readme_embedded_in_metadata": true, + "source_zip_verified": true + }, + "host_contract": { + "fixed_host": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "current_host": "b6616a166925963ad6de4ab0a02f4eef2dccd657", + "python": "3.12.10", + "checks_per_host": 2, + "skipped": 0, + "cases": [ + "installed manifest/Skill validation", + "native HTTP projection and secret binding" + ] + }, + "preflight": { + "host_commit": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "environment": { + "platform": "win32", + "python": "3.12.10" + }, + "checks": { + "catalog_policy": "passed", + "human_and_runtime_review": "pending", + "package_format": "passed", + "target_host": "passed" + }, + "review_status": "not_reviewed" + }, + "source_http": { + "runtime_version": "0.1.8", + "runtime_source_base": "654fe148c0492feed2b01ec643597ea006b6a8c6", + "python": "3.12.10", + "recognition_source": "external_api", + "model_endpoint": "closed loopback fixture; no external model service", + "protocol_and_host_exit_checks_passed": true, + "initialize_version": "0.1.8", + "security_cases": [ + { + "case": "missing_token", + "status": 401, + "error_code": "authentication_required", + "rejected_before_owner_creation": true + }, + { + "case": "wrong_token", + "status": 401, + "error_code": "authentication_required", + "rejected_before_owner_creation": true + }, + { + "case": "untrusted_host", + "status": 421, + "error_code": "host_forbidden", + "rejected_before_owner_creation": true + }, + { + "case": "wrong_loopback_host_port", + "status": 421, + "error_code": "host_forbidden", + "rejected_before_owner_creation": true + }, + { + "case": "untrusted_origin", + "status": 403, + "error_code": "origin_forbidden", + "rejected_before_owner_creation": true + }, + { + "case": "loopback_browser_origin", + "status": 403, + "error_code": "origin_forbidden", + "rejected_before_owner_creation": true + }, + { + "case": "duplicate_authorization", + "status": 401, + "rejected_before_owner_creation": true + } + ], + "owner_isolation": [ + { + "case": "failed_initialize_releases_unowned_transport", + "passed": true + }, + { + "round": 1, + "competing_initialize_rejected": true, + "wrong_owner_rejected": true, + "missing_owner_rejected": true, + "unsupported_sessionless_protocol_rejected": true, + "live_host_delete_rejected_without_stop": true + }, + { + "round": 2, + "competing_initialize_rejected": true, + "wrong_owner_rejected": true, + "missing_owner_rejected": true, + "unsupported_sessionless_protocol_rejected": true, + "live_host_delete_rejected_without_stop": true + } + ], + "tools": { + "names": [ + "instant_image", + "instant_recover_session", + "instant_recovery_preview", + "instant_result", + "instant_run", + "instant_start", + "instant_status", + "instant_stop", + "instant_submit" + ], + "public_generic_contract_markers": { + "step_decision_check_before_action_documented": true, + "action_review_input_property": true, + "field_evidence_mode_input_property": true, + "visual_field_proof_documented": true, + "agent_command_continue_enum": true, + "bound_review_and_explicit_continue_documented": true + }, + "dedicated_packet_generation_exercised": false, + "note": "Schema/description discovery proves advertised generic review/continue and field-evidence surfaces; it does not prove dedicated packets were generated" + }, + "rounds": [ + { + "round": 1, + "ready": true, + "host_stopped": true, + "cleanup_verified": true, + "pending_count": 0, + "release_status": 200, + "tcp_reconnect_preserved_owner": true, + "old_owner_rejected": true + }, + { + "round": 2, + "ready": true, + "host_stopped": true, + "cleanup_verified": true, + "pending_count": 0, + "release_status": 200, + "tcp_reconnect_preserved_owner": true, + "old_owner_rejected": true + } + ], + "all_hosts_exited": true, + "listeners_closed": true, + "desktop_commands": 0, + "screenshots": 0, + "model_triggering_commands": 0, + "queue_command_kinds": [ + "close" + ], + "dedicated_review_packets_exercised": false, + "explicit_test_host_start_authorization": true + }, + "maintenance_registration_observation": { + "first_stopped_registration_immediately_retired": false, + "live_host_or_unsettled_input_retained": false, + "maintenance_admission_or_update_attempt_tested": false, + "blocked_update_reproduced": false, + "source_behavior": "Maintenance independently verifies original settlement evidence and may retire settled registrations.", + "final_test_cleanup": "Only exact test-owned sessions were verified and cleared using the production ledger API.", + "remaining_test_registrations": 0, + "limit": "Manual test cleanup is not proof of immediate automatic retirement; no complete lifecycle or maintenance qualification is claimed.", + "explanation": "Different Windows venv wrapper/runner identities are a source-based hypothesis, not a captured child-side error." + }, + "retained_nonpasses": [ + "First HTTP attempt stopped on a Windows closed-port ConnectTimeout not handled by the original probe; corrected probe rerun passed within the stated scope.", + "Initial host contract run used an API environment missing PyYAML; qualified minimal-checker reruns passed two checks per Host.", + "Initial build readback compared undecoded/CRLF METADATA to LF Unicode source; UTF-8/line-ending-aware readback and a fresh two-build run passed.", + "Immediate retirement of all stopped maintenance registrations was not observed; subsequent maintenance admission was not tested." + ], + "not_run": [ + "new Pi native 0.0.5/Runtime 0.1.8 GUI task", + "real model quality/cost/speed", + "dedicated pre-action/field-review packet generation in this HTTP-only run", + "new Host disable/uninstall integration", + "physical reboot/power loss", + "arbitrary third-party data migration", + "independent catalog review/publication" + ], + "historical_evidence": { + "combination": "installed Runtime 0.1.6 + connector 0.0.4", + "url": "https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md", + "reuse_limit": "Scoped assisted TEST double-refusal/Main continuation evidence; not new 0.0.5/0.1.8 acceptance." + } +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/README.md b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/README.md new file mode 100644 index 0000000..53d682c --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/README.md @@ -0,0 +1,88 @@ +# Author resubmission — Windows GUI Runtime Connector 0.0.5 + +Follow-up to [submission #7](https://github.com/Code-Amadeus/Amadeus-Extensions/pull/7) +and [author revision request #4](https://github.com/Desolate-Jix/agent-gui-runtime/issues/4). +The prior 0.0.4 candidate evidence is retained. This directory supplies author +materials, **not catalog approval or a live catalog entry**. Please make all +further revisions in the new submission PR. + +- **Versioned wheel and preflight:** [0.0.5 wheel](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/amadeus_agent_gui_runtime-0.0.5-py3-none-any.whl), + **24,635 bytes**, SHA-256 + `9727889c378354ee6b24648c94b2276b8ed30d986b49d1dd4b0f5c3c188774dd`. + The attached `preflight.json` is the actual fixed Windows/CPython 3.12.10/ + Host `1840c8e` report. Format, Host and curated policy passed; independent + human/runtime review remains pending and `review_status` is `not_reviewed`. +- **Source/build and usage:** [Exact source ZIP](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/extension-source-0.0.5.zip), + **48,737 bytes**, SHA-256 + `93e78d5a008df6d4c5fbb35a237fc9517269d5ebbc6c461beabdc667095cd53f`; + [English setup](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.md), + [中文指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.zh-CN.md), + [build verification](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/BUILD_VERIFICATION.json), + [author validation and limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md). + Two offline wheel builds were byte-identical. Inventory and the full + candidate-to-candidate 0.0.4 diff are attached; the older candidate was not an + approved catalog package. +- **Ownership and rights:** namespace `io.github.desolate-jix.gui-runtime`; + [source repository](https://github.com/Desolate-Jix/agent-gui-runtime), + [release history](https://github.com/Desolate-Jix/agent-gui-runtime/releases), + [connector ISC license](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/LICENSE). + These are independently verifiable control/rights references, not author-issued + approval. The wheel includes no Runtime executable, artwork, model weights, + provider credentials or user data; external component licenses remain separate. +- **Changes/migration:** 0.0.5 updates installation disclosures, manifest + homepage/repository, package metadata and synchronized README/Skill instructions. + Existing `runtime_url`, secret `connection_token`, permissions and native HTTP + connection semantics are unchanged; no 0.0.3/0.0.4 configuration migration. + Runtime code, thresholds and model defaults are unchanged. Old 0.0.4 bytes and + URLs are not replaced. + +## Installation commitment and compatibility + +This is a **connector**. Users separately install, configure, start, update and +stop Windows GUI Runtime. Recommend released **Runtime 0.1.8**; the minimum +HTTP/pre-action-review route was introduced in **0.1.6**, and the active service +must expose the required authentication, original-command and review/continue +capabilities. Version numbers and successful initialization alone do not certify +the entire integration. Runtime 0.1.5 has no HTTP entry point. Later versions need +manual capability qualification; no automatic version detector is claimed. + +Install the [Runtime separately](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.8), +then import this wheel into a compatible Amadeus with native HTTP MCP/Skill +support and Python 3.12. Configure a trusted loopback `runtime_url` and a +separately generated `connection_token`, bind both contributions to Pi, enable, +apply the Host restart and create a new Work. Provider API keys stay in Runtime; +they are different from the local connection token. External model calls may +incur charges. The API route requires no local GPU/model weights. Uninstalling +or disabling the connector does not stop/uninstall Runtime or delete its data. + +## Evidence boundaries and reviewer handoff + +Fixed and current Host `b6616a1` static manifest/Skill and secret-projection +checks passed two cases each. Source Runtime 0.1.8 HTTP checks passed version/tool +discovery, seven security negatives, ownership controls and two actual child-host +start/stop/release/reconnect rounds with no GUI/model commands. A stopped first +session's maintenance registration was not immediately retired; exact test-owned +cleanup proof was later accepted. Maintenance admission/update was not tested, +and an update blockage was not reproduced. The attached `AUTHOR_VALIDATION.json` +retains this observation and the narrower pass scope. + +The prior installed 0.0.4/0.1.6 controlled Pi/Main-review evidence remains +historical. The exact new Host/Pi/0.0.5/Runtime combination still needs independent +installation, the documented minimal navigation task, failure/credentials, +cancellation/disconnection, session release/reconnect, disable/uninstall review. +The supplied setup guides include concrete troubleshooting and no-replay recovery. +This is not a new accuracy, performance or token benchmark. + +The independent maintainer adds real `catalog/packages` ownership/review facts +after review in the submission PR, then prepares and verifies a separate +publication PR. This author submission does not edit `catalog/packages`, the +official index, security decisions, policy or workflows. Candidate-only CI may +report `publication: false`; that is not package approval. Please keep the +submission open until the exact version's review is complete. + +中文:按 #4 新投 0.0.5,补齐连接器安装承诺和包内说明,旧 #7 的 0.0.4 证据保留。 +用户需独立安装、配置和启动 Runtime;推荐 0.1.8,最低 HTTP/前置审核能力起于 0.1.6, +实际版本和必要能力须人工核对。本机连接 token 与模型 API Key 不同,模型调用可能收费。 +配置键/权限/执行逻辑不变,停用或卸载连接器不会停止、卸载 Runtime 或删除其数据。 +固定预检和有限作者联调不是独立批准;新组合 GUI、异常和生命周期验收由维护者完成。 +收录事实、非作者批准和另一次索引发布均待完成,不自填 reviewer 或正式索引。 diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/candidate-diff-from-0.0.4.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/candidate-diff-from-0.0.4.json new file mode 100644 index 0000000..f2ac98c --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/candidate-diff-from-0.0.4.json @@ -0,0 +1,1080 @@ +{ + "changes": [ + { + "after": "ef72cc23085e6fe0eee202f88ebc5c2464c76cb39bd97d4387b29d8ca5cb98ac", + "before": "1de728cbfe2171d28fee0ce64cb68393388d136491f5c5be1387ae9ac68e1dcc", + "diff_truncated": false, + "path": "amadeus_agent_gui/__init__.py", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,3 +1,3 @@", + " \"\"\"Amadeus resource extension: native HTTP MCP declaration and execution Skill.\"\"\"", + " ", + "-__version__ = \"0.0.4\"", + "+__version__ = \"0.0.5\"" + ] + }, + { + "after": "5d7b806a85279650e71bf6233fad883b2948b59ce0a02f761f308d87ed582eeb", + "before": "a0c4e77a5a08431ed93ebb9a2be07156bf7e7830f9bf642739d4bb6cbc869409", + "diff_truncated": false, + "path": "amadeus_agent_gui/amadeus-extension.json", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,15 +1,17 @@", + " {", + " \"schema\": \"amadeus.extension/v0\",", + " \"id\": \"io.github.desolate-jix.gui-runtime\",", + "- \"version\": \"0.0.4\",", + "+ \"version\": \"0.0.5\",", + " \"display_name\": {", + "- \"en\": \"Windows GUI Runtime\",", + "- \"zh-CN\": \"Windows GUI \u6267\u884c\u8fd0\u884c\u65f6\"", + "+ \"en\": \"Windows GUI Runtime Connector\",", + "+ \"zh-CN\": \"Windows GUI Runtime \u8fde\u63a5\u5668\"", + " },", + " \"description\": {", + "- \"en\": \"Connect Pi to an operator-started, authenticated local Runtime over native HTTP MCP; includes an execution lifecycle Skill.\",", + "- \"zh-CN\": \"\u901a\u8fc7\u539f\u751f HTTP MCP \u5c06 Pi \u8fde\u63a5\u5230\u64cd\u4f5c\u5458\u72ec\u7acb\u542f\u52a8\u3001\u5e26\u9274\u6743\u7684\u672c\u673a Runtime\uff0c\u5e76\u63d0\u4f9b\u6267\u884c\u6536\u5c3e Skill\u3002\"", + "+ \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.8; require 0.1.6+ authenticated HTTP MCP and review/continue tools, with actual capability checks. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "+ \"zh-CN\": \"\u8fde\u63a5\u5668\uff1a\u9700\u81ea\u884c\u5355\u72ec\u5b89\u88c5\u3001\u914d\u7f6e\u5e76\u542f\u52a8 Windows GUI Runtime\u3002\u5efa\u8bae\u4f7f\u7528 0.1.8\uff1b\u8981\u6c42\u5177\u5907 0.1.6 \u8d77\u63d0\u4f9b\u7684\u9274\u6743 HTTP MCP \u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u5de5\u5177\uff0c\u5e76\u6838\u5bf9\u5b9e\u9645\u80fd\u529b\u3002\u586b\u5199\u53ef\u4fe1\u672c\u673a runtime_url \u548c connection_token\uff0c\u5c06 MCP \u4e0e Skill \u7ed1\u5b9a Pi\u3002Runtime \u7531\u7528\u6237\u72ec\u7acb\u90e8\u7f72\u548c\u505c\u6b62\uff1b\u505c\u7528\uff0f\u5378\u8f7d\u672c\u8fde\u63a5\u5668\u4e0d\u4f1a\u505c\u6b62\u3001\u5378\u8f7d Runtime \u6216\u5220\u9664\u5176\u6570\u636e\u3002\u5916\u90e8\u6a21\u578b API \u53ef\u80fd\u6309\u7528\u91cf\u6536\u8d39\u3002\"", + " },", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + " \"author\": {", + " \"name\": \"Desolate-Jix\"", + " }," + ] + }, + { + "after": "6c32de6340236315516edc45147be041eeb67e97a3f205c7f0592be26bf693de", + "before": "721dbd8a8a87cf7fff453d7640b8653d93a0edde227ee97773e2b2946083e817", + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,14 +1,82 @@", + " ---", + " name: gui-execution", + "-description: Execute an explicitly authorized Windows GUI task through the connected AgentGUI Runtime MCP, preserve original request and evidence identities, handle review without replaying input, and close owned windows and the Runtime session.", + "+description: Execute an explicitly authorized Windows GUI task through the connected external-API Runtime route, preserve original request and evidence identities, handle review without replaying input, and verify owned-window and host cleanup.", + " ---", + " ", + "-Read `references/runtime.md` before using the connected Runtime. Discover its actual tools and current schemas; Pi tool names may be namespaced or hashed, so never invent a tool name. This Skill supplies no tools, authority, executor, learning mode or shell route.", + "+## English", + " ", + "-Keep one Runtime MCP connection throughout the complete authorized Work task. The operator starts the authenticated loopback HTTP MCP daemon independently; this extension never launches Python, chooses executable paths, supplies model API keys or changes profiles. Confirm the operator's task scope and Runtime local-input setting; one input owner at a time. Start the execution host once, wait for ready, launch/select the intended window, use current bound observations, submit the actual task, and settle original receipts. A successful launch or asynchronous acknowledgement is not task success.", + "+Read `references/runtime.md` before using the connected Runtime. Discover its", + "+actual tools and schemas; Pi names may be namespaced or hashed, so never invent", + "+a tool name. This Skill supplies no tools, authority, executor, learning mode or", + "+shell route. Connector 0.0.5 is author-published; independent store review and", + "+new installed GUI acceptance with Runtime 0.1.8 remain pending. Historical", + "+0.0.4/0.1.6 controlled Pi evidence is a separate result.", + " ", + "-For pending, unknown, timeout, interrupted input or unavailable images, keep the original request/run/command IDs and inspect their state. Never use a new ID to replay possibly executed input. Discover the running Runtime's actual tools and reported version; HTTP and pre-action Main review are not provided by the frozen 0.1.5 installer. At a real `pre_action_review_packet.v1` or `field_review_packet.v1`, request `agent_command_status` with `command_id=packet.execution_request_id` under a new outer request ID, then retrieve that status request's bound image with `instant_image`; the original execution is still pending. Use `view=before` for a pre-action candidate and `view=after` for a field result. Compare the original task target with the marked candidate/point for pre-action review; compare the already-entered text for field review. Inspect the exact bound evidence, copy `caller_controls.review.request` and add only the actual verdict/reason, then separately use the returned continue recipe. Review alone performs no input. Pre-action continuation keeps the original job/candidate and must pass fresh target-region and existing hard gates before one dispatch; field continuation does not retype and any submit suffix still uses normal gates and verification. If the service supplies no resumable ticket or the current candidate becomes stale, stop and report it. A handoff or version number is not a ticket. Do not manufacture hashes, wait IDs, success or a restart/replay.", + "+Use only the existing external API route. Recommend separately released", + "+Runtime 0.1.8; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + "+service must supply field review/continue. Runtime 0.1.5 has no HTTP entry point.", + "+Runtime 0.1.7 current-Agent mode is not qualified through Amadeus here. Manually", + "+check MCP initialization version, actual tools/schemas, authentication and", + "+review/cleanup capabilities; neither a version number nor a later release", + "+establishes compatibility. No automatic compatibility detector is provided.", + " ", + "-Close only windows launched by this task using the returned launch handle/process identity. Resolve owned save dialogs only when that specific choice is authorized. Verify `window_closed` before `instant_stop`, then poll `instant_status` until the host is down, pending IDs are empty and cleanup is verified. Only then release the native HTTP MCP session so a new Work can acquire ownership. A network disconnect does not cancel input or prove cleanup. Do not repeatedly reconnect, restart the daemon or steal an active owner to hide an uncertain result. Report task outcome separately from cleanup. Disabling the extension does not stop the independently started service.", + "+Keep one Runtime MCP connection and one input owner for the complete authorized", + "+Work. The operator independently installs and starts the authenticated loopback", + "+daemon. The connector never launches Python, chooses executable paths, supplies", + "+provider keys or changes profiles. The local connection token is not a model", + "+API key. Screenshots/task information can reach the configured model services,", + "+whose calls may cost money. Confirm task scope and Runtime input opt-in:", + "+`--allow-local-input` enables input and turns automatic risk interception off.", + "+Start the host once, wait for ready, launch/select the intended window, use", + "+current bound observations, submit the task and inspect original receipts. A", + "+launch or asynchronous acknowledgement is not task success. Prepare known", + "+independent fields together and read healthy pending batches promptly; do not", + "+insert unrelated searches or documentation between them.", + " ", + "-\u4e2d\u6587\u8981\u70b9\uff1a\u4ec5\u6267\u884c\u5f53\u524d\u660e\u786e\u6388\u6743\u7684\u4efb\u52a1\uff1b\u4fdd\u6301\u540c\u4e00\u8fde\u63a5\u548c\u539f\u59cb ID\uff1b\u672a\u77e5\u8f93\u5165\u7edd\u4e0d\u91cd\u653e\u3002\u524d\u7f6e\u5019\u9009\u5ba1\u6838\u770b before \u539f\u56fe\u4e0e\u539f\u5019\u9009\uff0c\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\u770b after \u539f\u56fe\uff1b\u5747\u4f7f\u7528\u771f\u5b9e review\u2192\u5355\u72ec continue\uff0c\u5ba1\u6838\u672c\u8eab\u4e0d\u8f93\u5165\u3002\u524d\u7f6e\u7ee7\u7eed\u4ecd\u987b\u65b0\u9c9c\u5ea6\u548c\u8f93\u5165\u95e8\u7981\u901a\u8fc7\uff0c\u4e0d\u80fd\u5f3a\u884c\u6cbf\u7528\u53d8\u5316\u7684\u76ee\u6807\uff1b\u65e0\u7968\u636e\u5c31\u505c\u62a5\u3002\u53ea\u5173\u95ed\u672c\u8f6e\u81ea\u6709\u7a97\u53e3\u5e76\u9a8c\u8bc1\uff0c\u518d\u505c\u6b62\u4e0e\u786e\u8ba4\u5bbf\u4e3b\u6e05\u7406\u3002\u4e0d\u8981\u4f7f\u7528\u5b66\u4e60\u3001shell \u7ed5\u884c\u6216\u5220\u9664\u6d4f\u89c8\u5668\u8d44\u6599\u3002", + "+For pending, unknown, timeout, interrupted input or unavailable images, retain", + "+original request/run/command IDs and inspect their state. Never replay possibly", + "+executed input under a new ID or resubmit to extend a wait. At a genuine", + "+`pre_action_review_packet.v1` or `field_review_packet.v1`, read", + "+`agent_command_status` with `command_id=packet.execution_request_id` under a new", + "+outer request ID and `images=none`. Retrieve that status request's bound image with", + "+`instant_image`: `view=before` for a candidate, `view=after` for entered text.", + "+Inspect the exact bound evidence against the task, copy", + "+`caller_controls.review.request` and add only the actual verdict/reason. Then", + "+separately use the returned continue recipe. Review alone performs no input.", + "+Pre-action continuation retains the original job/candidate and requires a fresh", + "+target-region check and existing hard gates before one dispatch. Field", + "+continuation does not retype; any submit suffix still needs normal gates and", + "+verification. With no genuine resumable ticket or a stale candidate, stop and", + "+report. Do not manufacture hashes, wait IDs, success or a restart/replay.", + "+", + "+Cancellation must settle to a real terminal state; a disconnect is not", + "+cancellation or cleanup. Close only task-launched windows using their returned", + "+handle/process identity, resolve save dialogs only for an authorized choice,", + "+and verify `window_closed`. Keep pre-existing/operator-prepared windows unless", + "+their closure is explicitly in scope. Call `instant_stop`, then poll until", + "+`host_alive=false`, `pending_ids=[]`, `cleanup_verified=true` and no unresolved", + "+cleanup error. Only then release the native HTTP owner. If an old owner is", + "+unresolved, inspect its original receipts and cleanup diagnostics. If the", + "+original connection is lost, retain evidence and stop for operator recovery;", + "+do not steal ownership, repeatedly reconnect/restart, or delete queues, locks", + "+or session records. Report task outcome separately from cleanup.", + "+", + "+Disabling/removing the connector releases the Host connection only; it does", + "+not stop/uninstall the independently running Runtime or delete its data. Finish", + "+cleanup before disabling/removing. Connector 0.0.5 changes documentation and", + "+metadata only; 0.0.3/0.0.4 connection settings need no migration and input gates", + "+and permissions do not change.", + "+", + "+## \u7b80\u4f53\u4e2d\u6587", + "+", + "+\u4f7f\u7528\u8fde\u63a5\u7684 Runtime \u524d\u5148\u8bfb `references/runtime.md`\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u4e0e schema\uff1bPi \u540d\u79f0\u53ef\u80fd\u5e26\u547d\u540d\u7a7a\u95f4\u6216\u54c8\u5e0c\uff0c\u4e0d\u80fd\u731c\u5de5\u5177\u540d\u3002\u672c Skill \u4e0d\u63d0\u4f9b\u5de5\u5177\u3001\u6388\u6743\u3001\u6267\u884c\u5668\u3001\u5b66\u4e60\u6a21\u5f0f\u6216 shell \u8def\u7ebf\u3002\u8fde\u63a5\u5668 0.0.5 \u4e3a\u4f5c\u8005\u53d1\u884c\uff1b\u72ec\u7acb\u5546\u5e97\u5ba1\u6838\u53ca\u4e0e Runtime 0.1.8 \u7684\u65b0\u5b89\u88c5\u6001 GUI \u9a8c\u6536\u4ecd\u5f85\u5b8c\u6210\u3002\u5386\u53f2 0.0.4\uff0f0.1.6 \u53d7\u63a7 Pi \u8bc1\u636e\u5355\u72ec\u8bb0\u5f55\u3002", + "+", + "+\u4ec5\u4f7f\u7528\u539f\u6709 external API \u8def\u7ebf\u3002\u63a8\u8350\u72ec\u7acb\u53d1\u5e03\u7684 Runtime 0.1.8\uff1b\u6700\u4f4e 0.1.6 \u63d0\u4f9b HTTP\uff0f\u8f93\u5165\u524d\u5ba1\u6838\u5408\u540c\uff0c\u6d3b\u52a8\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6ca1\u6709 HTTP \u5165\u53e3\u3002\u6b64\u5904\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u4eba\u5de5\u6838\u5bf9 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u5b9e\u9645\u5de5\u5177\uff0fschema\u3001\u9274\u6743\u53ca\u5ba1\u6838\uff0f\u6e05\u7406\u80fd\u529b\uff1b\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\u3002\u672c\u5305\u4e0d\u63d0\u4f9b\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+", + "+\u5b8c\u6574\u6388\u6743 Work \u4fdd\u6301\u4e00\u4e2a Runtime MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u64cd\u4f5c\u5458\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u5e26\u9274\u6743\u7684\u672c\u673a daemon\uff1b\u8fde\u63a5\u5668\u4e0d\u4f1a\u542f\u52a8 Python\u3001\u9009\u62e9\u53ef\u6267\u884c\u8def\u5f84\u3001\u63d0\u4f9b\u6a21\u578b\u5bc6\u94a5\u6216\u6539 profile\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0d\u662f\u6a21\u578b API Key\u3002\u622a\u56fe\uff0f\u4efb\u52a1\u4fe1\u606f\u53ef\u80fd\u53d1\u9001\u7ed9\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\uff0c\u670d\u52a1\u8c03\u7528\u53ef\u80fd\u6536\u8d39\u3002\u786e\u8ba4\u4efb\u52a1\u8303\u56f4\u53ca Runtime \u8f93\u5165\u6388\u6743\uff1a`--allow-local-input` \u542f\u7528\u8f93\u5165\uff0c\u540c\u65f6\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u5bbf\u4e3b\u53ea\u542f\u52a8\u4e00\u6b21\uff0c\u7b49\u5f85 ready\uff0c\u542f\u52a8\uff0f\u9009\u62e9\u76ee\u6807\u7a97\u53e3\uff0c\u4f7f\u7528\u5f53\u524d\u7ed1\u5b9a\u89c2\u5bdf\uff0c\u63d0\u4ea4\u4efb\u52a1\u5e76\u68c0\u67e5\u539f\u56de\u6267\u3002\u542f\u52a8\u6216\u5f02\u6b65\u786e\u8ba4\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u63d0\u524d\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u6279\u6b21\uff0c\u4e0d\u5728\u5176\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\u6216\u6587\u6863\u5de5\u4f5c\u3002", + "+", + "+\u5f85\u5b9a\u3001\u672a\u77e5\u3001\u8d85\u65f6\u3001\u4e2d\u65ad\u8f93\u5165\u6216\u56fe\u50cf\u4e0d\u53ef\u7528\u65f6\uff0c\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID \u5e76\u68c0\u67e5\u72b6\u6001\u3002\u53ef\u80fd\u6267\u884c\u8fc7\u7684\u8f93\u5165\u4e0d\u80fd\u6362 ID \u91cd\u653e\uff0c\u4e5f\u4e0d\u80fd\u4e3a\u5ef6\u957f\u7b49\u5f85\u800c\u91cd\u4ea4\u3002\u771f\u5b9e `pre_action_review_packet.v1` \u6216 `field_review_packet.v1` \u51fa\u73b0\u65f6\uff0c\u7528\u65b0\u5916\u5c42 request ID \u548c `images=none` \u8c03\u7528 `agent_command_status`\uff0c`command_id=packet.execution_request_id`\u3002\u968f\u540e\u7528 `instant_image` \u53d6\u8be5\u72b6\u6001\u8bf7\u6c42\u7ed1\u5b9a\u56fe\u50cf\uff1a\u5019\u9009\u770b `view=before`\uff0c\u5df2\u8f93\u5165\u6587\u5b57\u770b `view=after`\u3002\u5bf9\u7167\u4efb\u52a1\u68c0\u67e5\u786e\u5207\u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236 `caller_controls.review.request`\uff0c\u4ec5\u6dfb\u52a0\u5b9e\u9645 verdict\uff0freason\uff0c\u518d\u5355\u72ec\u4f7f\u7528\u8fd4\u56de\u7684 continue recipe\u3002\u5ba1\u6838\u672c\u8eab\u4e0d\u8f93\u5165\u3002\u524d\u7f6e\u7ee7\u7eed\u4fdd\u7559\u539f job\uff0f\u5019\u9009\uff0c\u6d3e\u53d1\u4e00\u6b21\u524d\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u786c\u95e8\u7981\uff1b\u6587\u5b57\u7ed3\u679c\u7ee7\u7eed\u4e0d\u91cd\u8f93\uff0c\u540e\u7eed submit \u4ecd\u987b\u666e\u901a\u95e8\u7981\u53ca\u6838\u9a8c\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u7968\u636e\u6216\u5019\u9009\u5df2\u8fc7\u671f\u5c31\u505c\u62a5\u3002\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u6210\u529f\u6216\u91cd\u542f\uff0f\u91cd\u653e\u3002", + "+", + "+\u53d6\u6d88\u987b\u7ed3\u7b97\u5230\u771f\u5b9e\u7ec8\u6001\uff1b\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u6216\u6e05\u7406\u3002\u4ec5\u6309\u8fd4\u56de handle\uff0fprocess \u8eab\u4efd\u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff0c\u4ec5\u5904\u7406\u5df2\u6388\u6743\u9009\u62e9\u7684\u4fdd\u5b58\u5bf9\u8bdd\u6846\uff0c\u5e76\u6838\u5bf9 `window_closed`\u3002\u4fdd\u7559\u539f\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\uff0c\u9664\u975e\u5176\u5173\u95ed\u5df2\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u3002\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2\u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\uff0c\u4e4b\u540e\u624d\u91ca\u653e\u539f\u751f HTTP \u6240\u6709\u8005\u3002\u65e7\u6240\u6709\u8005\u672a\u7ed3\u7b97\u65f6\u8bfb\u53d6\u539f\u56de\u6267\u548c\u6e05\u7406\u8bca\u65ad\uff1b\u539f\u8fde\u63a5\u4e22\u5931\u65f6\u4fdd\u7559\u8bc1\u636e\u5e76\u505c\u6b62\uff0c\u4ea4\u64cd\u4f5c\u5458\u6062\u590d\uff0c\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\u3001\u9501\u6216\u4f1a\u8bdd\u8bb0\u5f55\u3002\u4efb\u52a1\u7ed3\u679c\u4e0e\u6e05\u7406\u5206\u522b\u62a5\u544a\u3002", + "+", + "+\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u72ec\u7acb\u8fd0\u884c\u7684 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\u518d\u7981\u7528\uff0f\u79fb\u9664\u3002\u8fde\u63a5\u5668 0.0.5 \u53ea\u6539\u6587\u6863\u4e0e\u5143\u6570\u636e\uff0c0.0.3\uff0f0.0.4 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002" + ] + }, + { + "after": "0c9901d2e99e985a919c09a7c6ca1e7cfb199c0a31614b6c01798bedcda6b1d0", + "before": "7e063de466aa83f7028d3ce82ebe9d0555a2eb2078d66742e6a176ab087e001d", + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,107 +1,256 @@", + " # Runtime session and receipt contract / \u4f1a\u8bdd\u4e0e\u56de\u6267\u5408\u540c", + " ", + "-This resource extension connects to an operator-started, authenticated loopback HTTP MCP Runtime; it never launches external code. The connection token is distinct from provider API keys. Use the tools actually discovered on this connection. The logical tool names below are Runtime names, not predictions of Pi's namespaced model tool names. Use the active schema if the candidate reports a newer contract. Do not change profiles, thresholds or prompts to bypass a refusal.", + "+## Prerequisites / \u4f7f\u7528\u524d\u63d0", + "+", + "+This resource connector uses an independently installed, operator-started,", + "+authenticated Windows loopback HTTP MCP Runtime. It never launches external", + "+code. The local connection token is distinct from provider API keys. This", + "+Skill supports the existing external API route only; configured model services", + "+receive recognition/review screenshots and task information and may charge for", + "+calls. Input requires explicit task authorization and Runtime opt-in;", + "+`--allow-local-input` also turns automatic risk interception off. Do not change", + "+profiles, thresholds or prompts to bypass a refusal.", + "+", + "+\u672c\u8d44\u6e90\u8fde\u63a5\u5668\u4f7f\u7528\u7528\u6237\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u3001\u5e26\u9274\u6743\u7684 Windows \u672c\u673a HTTP MCP Runtime\uff0c\u4e0d\u4f1a\u542f\u52a8\u5916\u90e8\u4ee3\u7801\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0e\u6a21\u578b API Key \u4e0d\u540c\u3002\u672c Skill \u4ec5\u652f\u6301\u539f\u6709 external API \u8def\u7ebf\uff1b\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\u4f1a\u63a5\u6536\u8bc6\u522b\uff0f\u5ba1\u6838\u622a\u56fe\u53ca\u4efb\u52a1\u4fe1\u606f\uff0c\u53ef\u80fd\u6309\u8c03\u7528\u6536\u8d39\u3002\u8f93\u5165\u987b\u6709\u660e\u786e\u4efb\u52a1\u6388\u6743\u53ca Runtime opt-in\uff1b`--allow-local-input` \u4e5f\u4f1a\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u4e0d\u80fd\u6539 profile\u3001\u9608\u503c\u6216\u63d0\u793a\u8bcd\u6765\u7ed5\u8fc7\u62d2\u7edd\u3002", + "+", + "+Recommend released Runtime 0.1.8. The minimum HTTP/pre-action contract is 0.1.6;", + "+the service must also supply field-review/continue. Runtime 0.1.5 has field", + "+review but no HTTP entry point. This connector does not qualify Runtime 0.1.7", + "+current-Agent mode through Amadeus. Manually inspect the MCP initialization", + "+version, authentication, discovered tools and active schemas before input:", + "+`instant_start`, `instant_status`, `instant_run`, `instant_result`,", + "+`instant_image`, `instant_stop`, and task-plan/original-command status and", + "+review/continue support. Logical names below are Runtime names, not guesses", + "+about Pi's namespaced/hashed tool names. Neither a version marker nor a later", + "+release proves compatibility; no automatic compatibility detector is provided.", + "+", + "+\u63a8\u8350\u5df2\u53d1\u5e03 Runtime 0.1.8\u3002\u6700\u4f4e HTTP\uff0f\u524d\u7f6e\u5ba1\u6838\u5408\u540c\u4e3a 0.1.6\uff0c\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6709\u6587\u5b57\u5ba1\u6838\u4f46\u6ca1\u6709 HTTP \u5165\u53e3\u3002\u672c\u8fde\u63a5\u5668\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u8f93\u5165\u524d\u4eba\u5de5\u68c0\u67e5 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u9274\u6743\u3001\u5df2\u53d1\u73b0\u5de5\u5177\u53ca\u6d3b\u52a8 schema\uff1a`instant_start`\u3001`instant_status`\u3001`instant_run`\u3001`instant_result`\u3001`instant_image`\u3001`instant_stop`\uff0c\u4ee5\u53ca task-plan\uff0f\u539f\u547d\u4ee4\u72b6\u6001\u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u652f\u6301\u3002\u4e0b\u6587\u903b\u8f91\u540d\u79f0\u662f Runtime \u540d\u79f0\uff0c\u4e0d\u80fd\u636e\u6b64\u731c Pi \u5e26\u547d\u540d\u7a7a\u95f4\uff0f\u54c8\u5e0c\u7684\u5de5\u5177\u540d\u3002\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\uff0c\u672c\u5305\u6ca1\u6709\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + " ", + " ## Start and select / \u542f\u52a8\u4e0e\u9009\u62e9", + " ", + "-Call the discovered `instant_start` once, then `instant_status` until ready. Vision and Decision profiles are preconfigured; do not call `prepare_models` or any `learning_*` command. A selected target is session state.", + "-", + "-For an explicitly approved new application or shortcut, one `instant_run` argument example is:", + "+Keep one live MCP connection and one input owner for the entire Work. Call the", + "+discovered `instant_start` once, then `instant_status` until ready. Vision and", + "+Decision profiles are preconfigured; do not call `prepare_models` or", + "+`learning_*`. A selected target is session state. Prepare known independent", + "+fields together, read healthy pending results promptly, and do not insert", + "+unrelated searches/documentation between action batches.", + "+", + "+\u5b8c\u6574 Work \u4fdd\u6301\u4e00\u4e2a\u6d3b\u52a8 MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u540e\uff0c\u53ea\u8c03\u7528\u4e00\u6b21 `instant_start`\uff0c\u518d\u67e5\u8be2 `instant_status` \u81f3 ready\u3002\u89c6\u89c9\u4e0e Decision profile \u5df2\u4e8b\u5148\u914d\u7f6e\uff0c\u4e0d\u8c03\u7528 `prepare_models` \u6216 `learning_*`\u3002\u9009\u4e2d\u76ee\u6807\u5c5e\u4e8e\u4f1a\u8bdd\u72b6\u6001\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u7ed3\u679c\uff0c\u4e0d\u5728\u52a8\u4f5c\u6279\u6b21\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\uff0f\u6587\u6863\u5de5\u4f5c\u3002", + "+", + "+For a new application/shortcut explicitly in scope, use the actual approved", + "+path. Read its returned ownership and exact handle/process_id. Example:", + "+", + "+\u5bf9\u4e8e\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u7684\u65b0\u5e94\u7528\uff0f\u5feb\u6377\u65b9\u5f0f\uff0c\u4f7f\u7528\u5b9e\u9645\u5df2\u6388\u6743\u8def\u5f84\uff0c\u8bfb\u53d6\u8fd4\u56de\u7684\u5f52\u5c5e\u53ca\u786e\u5207 handle\uff0fprocess_id\u3002\u4f8b\u5982\uff1a", + " ", + " ```json", + " {\"request_id\":\"launch-001\",\"command\":{\"kind\":\"launch\",\"path\":\"C:\\\\approved-test\\\\application.lnk\",\"prefer_existing\":false},\"wait_ms\":10000,\"images\":\"none\"}", + " ```", + " ", + "-Read the actual returned launch/window ownership and exact handle/process_id. Never substitute a guessed handle. If selecting an already observed window, use the discovered identities in a command shaped `{\"kind\":\"select\",\"handle\":123,\"process_id\":456}`; a pre-existing user window does not become owned by this task.", + "-", + "-Capture the selected target with **only** `kind` in the command:", + "+For an observed existing window, select its real identities with the shape", + "+`{\"kind\":\"select\",\"handle\":123,\"process_id\":456}`. Example integers are", + "+placeholders, not targets. A pre-existing/operator-prepared window does not", + "+become task-owned. Capture the selected target with **only** `kind`:", + "+", + "+\u5bf9\u4e8e\u5df2\u89c2\u5bdf\u5230\u7684\u73b0\u6709\u7a97\u53e3\uff0c\u6309 `{\"kind\":\"select\",\"handle\":123,\"process_id\":456}` \u5f62\u72b6\u586b\u771f\u5b9e\u8eab\u4efd\u3002\u793a\u4f8b\u6574\u6570\u53ea\u662f\u5360\u4f4d\u7b26\uff0c\u4e0d\u662f\u76ee\u6807\u3002\u73b0\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\u4e0d\u4f1a\u53d8\u6210\u672c\u4efb\u52a1\u81ea\u6709\u7a97\u53e3\u3002\u6355\u83b7\u5df2\u9009\u76ee\u6807\u65f6\uff0ccommand **\u53ea\u653e** `kind`\uff1a", + " ", + " ```json", + " {\"request_id\":\"capture-001\",\"command\":{\"kind\":\"capture\"},\"wait_ms\":10000,\"images\":\"after\"}", + " ```", + " ", + "-Do not put handle/process_id inside `capture`. Use the original images returned by `instant_run`/`instant_result`; the discovered `instant_image` can retrieve an available image by the original request_id. A new capture is a new observation, not replacement evidence for an older action. Never mix coordinates from old images with current window geometry.", + "+Do not put handle/process_id in `capture`. Use the original images bound to", + "+`instant_run`/`instant_result`; `instant_image` retrieves available images by", + "+the original request ID. A new capture is a new observation, not replacement", + "+evidence for an older action. Never mix old coordinates with current geometry.", + "+Pi may natively resize a complete bound frame for its model; do not claim that", + "+this is byte-identical original PNG delivery.", + "+", + "+`capture` \u4e0d\u653e handle\uff0fprocess_id\u3002\u4f7f\u7528 `instant_run`\uff0f`instant_result` \u7ed1\u5b9a\u7684\u539f\u56fe\uff0c`instant_image` \u6309\u539f request ID \u53d6\u53ef\u7528\u56fe\u50cf\u3002\u65b0 capture \u662f\u65b0\u89c2\u5bdf\uff0c\u4e0d\u80fd\u66ff\u6362\u65e7\u52a8\u4f5c\u8bc1\u636e\u3002\u4e0d\u628a\u65e7\u5750\u6807\u4e0e\u5f53\u524d\u51e0\u4f55\u6df7\u7528\u3002Pi \u53ef\u80fd\u539f\u751f\u7f29\u653e\u5b8c\u6574\u7ed1\u5b9a\u5e27\u518d\u4ea4\u7ed9\u6a21\u578b\uff0c\u4e0d\u80fd\u58f0\u79f0\u8fd9\u7b49\u4e8e\u539f PNG \u5b57\u8282\u76f8\u540c\u4ea4\u4ed8\u3002", + " ", + " ## Submit, wait and inspect / \u63d0\u4ea4\u3001\u7b49\u5f85\u4e0e\u6838\u5bf9", + " ", + "-Prefer the provided complete `task_plan` when the task calls for one; do not manually split it to evade checks. Use its actual active schema, explicit actions/verification and original run identity. There is no adapter step cap; Runtime budgets, evidence binding and admission still apply. `instant_run` accepts `request_id`, `command`, `wait_ms`, `detail` and `images`; choose a wait below the MCP client timeout. `instant_submit` is also asynchronous. A start receipt with status running is not plan completion.", + "-", + "-When pending, follow the returned `next` and call the discovered `instant_result` with the **same** outer request_id:", + "+Use a complete `task_plan` when the task calls for one; do not split it to evade", + "+checks. Follow the actual schema, explicit actions/verification and original", + "+run identity. There is no connector step cap; Runtime budgets, evidence binding", + "+and admission apply. `instant_run` accepts `request_id`, `command`, `wait_ms`,", + "+`detail` and `images`; keep receipt waits below the MCP client timeout. A", + "+running start receipt or asynchronous `instant_submit` acknowledgement is not", + "+completion. When pending, follow returned `next` and read `instant_result`", + "+with the **same** outer request ID:", + "+", + "+\u4efb\u52a1\u9700\u8981\u5b8c\u6574 `task_plan` \u65f6\u6309\u5b9e\u9645 schema \u4f7f\u7528\uff0c\u4e0d\u62c6\u5206\u6765\u89c4\u907f\u68c0\u67e5\u3002\u4fdd\u7559\u660e\u786e\u52a8\u4f5c\uff0f\u6838\u9a8c\u53ca\u539f run \u8eab\u4efd\u3002\u8fde\u63a5\u5668\u6ca1\u6709\u6b65\u6570\u4e0a\u9650\uff0cRuntime \u9884\u7b97\u3001\u8bc1\u636e\u7ed1\u5b9a\u4e0e\u51c6\u5165\u4ecd\u9002\u7528\u3002`instant_run` \u63a5\u6536 `request_id`\u3001`command`\u3001`wait_ms`\u3001`detail`\u3001`images`\uff0c\u56de\u6267\u7b49\u5f85\u987b\u4f4e\u4e8e MCP \u5ba2\u6237\u7aef\u8d85\u65f6\u3002running \u542f\u52a8\u56de\u6267\u6216\u5f02\u6b65 `instant_submit` \u786e\u8ba4\u4e0d\u662f\u5b8c\u6210\u3002\u5f85\u5b9a\u65f6\u6309\u8fd4\u56de `next`\uff0c\u7528**\u76f8\u540c**\u5916\u5c42 request ID \u8bfb\u53d6 `instant_result`\uff1a", + " ", + " ```json", + " {\"request_id\":\"launch-001\",\"detail\":\"full\",\"images\":\"both\"}", + " ```", + " ", + "-For an asynchronous `agent_command.v1`, preserve its command_id. Query it with a new outer request ID (a read-only status command, not a replay):", + "-", + "-```json", + "-{\"request_id\":\"status-001\",\"command\":{\"kind\":\"agent_command_status\",\"request\":{\"command_id\":\"original-command-id\"}},\"wait_ms\":10000,\"images\":\"after\"}", + "-```", + "-", + "-For task plans, inspect `instant_status.task_plan_run` and the original start/result receipts until a terminal outcome or explicit wait. Report actual completed steps, pending/review/failure and evidence, not merely whether a tool call returned. `result_unknown`, timeout, `action_executed=true`, interrupted typing, or missing after images never prove input did not happen. Do not resubmit with a new ID, start a competing plan, or use another input route to hide uncertainty.", + "-", + "-## Review / \u539f Agent \u5ba1\u6838", + "-", + "-Use the packet actually returned by the active service. A pre-action candidate", + "-and an already-entered field value are different review scopes. Neither a tool", + "-handoff nor a version marker authorizes guessing a ticket or bypassing a check.", + "-", + "-### Candidate before input / \u8f93\u5165\u524d\u7684\u5019\u9009", + "-", + "-When the Runtime returns a real `pre_action_review_packet.v1`, its original job", + "-is parked after authenticated Decision and ordinary-model nonpasses, with no", + "-native input claimed. Read `packet.execution_request_id` through", + "-`agent_command_status` using a new outer request ID and `images=none`, as in the", + "-status example below. Retrieve that status request's bound original **before**", + "-PNG with the discovered `instant_image`, for example:", + "-", + "-```json", + "-{\"request_id\":\"candidate-status-001\",\"view\":\"before\"}", + "-```", + "-", + "-`candidate-status-001` must be the actual successful status request ID, not the", + "-unfinished execution ID. Inspect the original task target, candidate point/box", + "-and bound original image. Do not replace it with a new capture or assume the", + "-locator's description proves the target correct. Only if the candidate satisfies", + "-the actual task, copy the returned `caller_controls.review.request` and add the", + "-actual `verdict=success` and a specific visual reason. Otherwise record failure", + "-with the genuine reason or cancel; do not repeatedly ask models to obtain a pass.", + "-", + "-Submit review through `task_plan`; it records Main's judgment and performs no", + "-click. Then submit the **separately returned**", + "-`caller_controls.continue.request`, retaining the original run/wait. This resumes", + "-the original job/candidate with a fresh target-region check and all ordinary", + "-input/identity/geometry/visibility/cancellation gates. A changed or expired", + "-candidate stops; do not restart, replan or synthesize a new approval to repeat", + "-it. The two original model refusals remain refusals, separate from Main's", + "-one-use approval. No new threshold or model prompt is selected by this Skill.", + "+For `agent_command.v1`, retain command_id. Read its state under a new outer", + "+request ID; this read-only status request is not a replay. For a review packet,", + "+its `execution_request_id` is the command_id to query. The example value must", + "+be replaced by the real original identity:", + "+", + "+\u5bf9\u4e8e `agent_command.v1`\uff0c\u4fdd\u7559 command_id\uff1b\u7528\u65b0\u5916\u5c42 request ID \u8bfb\u72b6\u6001\uff0c\u8fd9\u662f\u53ea\u8bfb\u72b6\u6001\u8bf7\u6c42\uff0c\u4e0d\u662f\u91cd\u653e\u3002\u5ba1\u6838 packet \u7684 `execution_request_id` \u5c31\u662f\u8981\u67e5\u8be2\u7684 command_id\uff1b\u793a\u4f8b\u503c\u987b\u66ff\u6362\u4e3a\u771f\u5b9e\u539f\u8eab\u4efd\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"command\":{\"kind\":\"agent_command_status\",\"request\":{\"command_id\":\"original-execution-request-id\"}},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+Inspect `instant_status.task_plan_run` and original start/result receipts until", + "+a terminal outcome or explicit wait. Report completed steps, pending/review/", + "+failure and bound evidence, not merely tool success. `result_unknown`, timeout,", + "+`action_executed=true`, interrupted typing or a missing after image never prove", + "+input did not happen. Preserve original request/run/command IDs; do not resend", + "+input to extend a wait, start a competing plan or use another input route to", + "+hide uncertainty. Cancellation must reach its real terminal state.", + "+", + "+\u68c0\u67e5 `instant_status.task_plan_run` \u53ca\u539f\u542f\u52a8\uff0f\u7ed3\u679c\u56de\u6267\uff0c\u76f4\u5230\u7ec8\u6001\u6216\u660e\u786e\u7b49\u5f85\u3002\u62a5\u544a\u5b8c\u6210\u6b65\u9aa4\u3001\u5f85\u5b9a\uff0f\u5ba1\u6838\uff0f\u5931\u8d25\u4e0e\u7ed1\u5b9a\u8bc1\u636e\uff0c\u4e0d\u80fd\u53ea\u62a5\u5de5\u5177\u6210\u529f\u3002`result_unknown`\u3001\u8d85\u65f6\u3001`action_executed=true`\u3001\u8f93\u5165\u4e2d\u65ad\u6216\u7f3a\u5c11\u540e\u56fe\u4e0d\u80fd\u8bc1\u660e\u672a\u8f93\u5165\u3002\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID\uff0c\u4e0d\u91cd\u4ea4\u8f93\u5165\u5ef6\u957f\u7b49\u5f85\u3001\u4e0d\u53e6\u8d77\u7ade\u4e89\u8ba1\u5212\u3001\u4e0d\u7528\u5176\u4ed6\u8f93\u5165\u8def\u7ebf\u63a9\u76d6\u672a\u77e5\u3002\u53d6\u6d88\u987b\u5230\u771f\u5b9e\u7ec8\u6001\u3002", + "+", + "+## Main review / \u539f Agent \u5ba1\u6838", + "+", + "+Use the actual packet returned by the active service. A candidate before input", + "+and an already-entered field are different scopes. A handoff/version marker is", + "+not a ticket; do not fabricate hashes, wait IDs, verdicts or recipes.", + "+", + "+\u53ea\u4f7f\u7528\u6d3b\u52a8\u670d\u52a1\u5b9e\u9645\u8fd4\u56de\u7684 packet\u3002\u8f93\u5165\u524d\u5019\u9009\u4e0e\u5df2\u8f93\u5165\u5b57\u6bb5\u5c5e\u4e8e\u4e0d\u540c\u4f5c\u7528\u57df\uff0c\u4ea4\u63a5\uff0f\u7248\u672c\u6807\u8bb0\u4e0d\u662f\u7968\u636e\uff1b\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u7ed3\u8bba\u6216 recipe\u3002", + "+", + "+### Candidate before input / \u8f93\u5165\u524d\u5019\u9009", + "+", + "+A genuine `pre_action_review_packet.v1` parks the original job after", + "+authenticated Decision and ordinary-model nonpasses, without claiming native", + "+input. Read `packet.execution_request_id` through `agent_command_status` as", + "+above and wait for that status receipt. Retrieve that successful status", + "+request's bound original **before** image, using its actual request ID:", + "+", + "+\u771f\u5b9e `pre_action_review_packet.v1` \u5728\u5df2\u8ba4\u8bc1 Decision \u548c\u666e\u901a\u6a21\u578b\u5747\u672a\u901a\u8fc7\u540e\u6682\u505c\u539f job\uff0c\u4e0d\u58f0\u79f0\u5df2\u6d3e\u53d1\u539f\u751f\u8f93\u5165\u3002\u6309\u4e0a\u4f8b\u901a\u8fc7 `agent_command_status` \u8bfb\u53d6 `packet.execution_request_id` \u5e76\u7b49\u5230\u72b6\u6001\u56de\u6267\uff0c\u518d\u4ee5\u8be5\u6210\u529f\u72b6\u6001\u8bf7\u6c42\u7684\u5b9e\u9645 request ID \u53d6\u7ed1\u5b9a\u539f **before** \u56fe\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"before\"}", + "+```", + "+", + "+Inspect the original task target, candidate point/box and exact bound image.", + "+Do not replace it with a new capture or treat the locator description as proof.", + "+Copy `caller_controls.review.request` and add only the actual verdict/reason:", + "+success requires a specific visual reason that the candidate satisfies the", + "+task; otherwise record the genuine failure or cancel. Do not ask models again", + "+and again to obtain a pass.", + "+", + "+\u68c0\u67e5\u539f\u4efb\u52a1\u76ee\u6807\u3001\u5019\u9009\u70b9\uff0f\u6846\u4e0e\u786e\u5207\u7ed1\u5b9a\u56fe\u50cf\uff0c\u4e0d\u80fd\u6539\u7528\u65b0 capture\uff0c\u4e5f\u4e0d\u80fd\u628a\u5b9a\u4f4d\u63cf\u8ff0\u5f53\u8bc1\u660e\u3002\u590d\u5236 `caller_controls.review.request`\uff0c\u53ea\u6dfb\u52a0\u771f\u5b9e verdict\uff0freason\uff1asuccess \u5fc5\u987b\u6709\u5019\u9009\u6ee1\u8db3\u4efb\u52a1\u7684\u5177\u4f53\u53ef\u89c1\u4f9d\u636e\uff0c\u5426\u5219\u8bb0\u5f55\u771f\u5b9e\u5931\u8d25\u6216\u53d6\u6d88\u3002\u4e0d\u53cd\u590d\u95ee\u6a21\u578b\u6765\u51d1\u901a\u8fc7\u3002", + "+", + "+Submit review through the actual `task_plan` recipe. Review records Main's", + "+judgment and performs no click. Then use the **separately returned**", + "+`caller_controls.continue.request`, retaining the original run/wait. It resumes", + "+the original job/candidate after a fresh target-region check and existing", + "+input, identity, geometry, visibility and cancellation gates. A changed/expired", + "+candidate stops. Do not restart, replan or synthesize approval to repeat it.", + "+Original model nonpasses remain separate from Main's one-use approval.", + "+", + "+\u6309\u771f\u5b9e `task_plan` recipe \u63d0\u4ea4\u5ba1\u6838\uff0c\u5ba1\u6838\u4ec5\u8bb0\u5f55 Main \u5224\u65ad\uff0c\u4e0d\u70b9\u51fb\u3002\u4e4b\u540e\u4f7f\u7528**\u5355\u72ec\u8fd4\u56de**\u7684 `caller_controls.continue.request`\uff0c\u4fdd\u7559\u539f run\uff0fwait\u3002\u539f job\uff0f\u5019\u9009\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u8f93\u5165\u3001\u8eab\u4efd\u3001\u51e0\u4f55\u3001\u53ef\u89c1\u6027\u3001\u53d6\u6d88\u95e8\u7981\u540e\u624d\u7ee7\u7eed\u3002\u5019\u9009\u53d8\u5316\uff0f\u8fc7\u671f\u5c31\u505c\u6b62\uff0c\u4e0d\u91cd\u542f\u3001\u91cd\u89c4\u5212\u6216\u5408\u6210\u6279\u51c6\u6765\u91cd\u505a\uff1b\u539f\u6a21\u578b\u672a\u901a\u8fc7\u7ed3\u679c\u4e0e Main \u4e00\u6b21\u6027\u6279\u51c6\u5206\u522b\u4fdd\u7559\u3002", + " ", + " ### Entered field value / \u5df2\u8f93\u5165\u6587\u5b57", + " ", + "-The Runtime's Main review contract can park the original live input thread at `field_review_packet.v1` after an authenticated dual-model rejection. This contract shipped in Runtime 0.1.5; the HTTP entry point is a separate new capability. Use the running service's actual returned recipe and existing public MCP actions. At this wait, the original execution is not terminal: read `packet.execution_request_id`, issue `agent_command_status` with that command_id using a new outer request ID, and wait for that read-only status receipt:", + "-", + "-```json", + "-{\"request_id\":\"field-status-001\",\"command\":{\"kind\":\"agent_command_status\",\"request\":{\"command_id\":\"original-execution-request-id\"}},\"wait_ms\":10000,\"images\":\"none\"}", + "-```", + "-", + "-Then call the discovered `instant_image` with `{\"request_id\":\"field-status-001\",\"view\":\"after\"}`. Use the actual returned status request ID. Do not request image directly on the unfinished original execution, replace the bound after image with a new capture, or replay the input. The example command_id is a placeholder for the real packet identity.", + "-", + "-Inspect the exact original evidence bound to `caller_controls.review.request`. Copy that returned request and add only the actual `verdict` and `reason`; do not invent a review packet/hash or add wait_id to review. Submit through the existing task_plan command. A successful review only records the original Agent's judgment. Use the separately returned `caller_controls.continue.request` for explicit continue on the **original** run/wait; only then can that live thread resume without retyping. These projections are parameter recipes, not action authorization.", + "-", + "-This review only confirms already-entered text. If the original request has a submit suffix, its fresh target/candidate, input gates and result verification still apply; the review does not prove submit/search success or bypass a final-submit restriction. Released 0.1.4 is a separate baseline: some `field_review` failures have no resumable ticket. If the active host supplies no actual review/continue recipe, keep the first failure and stop/report; do not fabricate a ticket, restart/replay, relabel success or construct a successor to repeat input. The version marker alone does not prove the new capability. This package does not implement the Runtime repair or claim its real installed acceptance.", + "-", + "-\u4e2d\u6587\uff1a\u6587\u5b57\u7ed3\u679c Main \u5ba1\u6838\u5df2\u5728 0.1.5 \u53d1\u5e03\uff1bHTTP \u548c\u524d\u7f6e\u5019\u9009\u5ba1\u6838\u662f\u53e6\u5916\u7684\u80fd\u529b\u3002\u5148\u901a\u8fc7\u65b0\u5916\u5c42 agent_command_status \u67e5 packet.execution_request_id\uff0c\u518d\u5bf9\u8be5 status request \u53d6\u7ed1\u5b9a\u539f\u56fe\uff1a\u524d\u7f6e\u5019\u9009\u770b before\uff0c\u5df2\u8f93\u5165\u6587\u5b57\u770b after\u3002\u53ea\u6309\u5b9e\u9645 caller_controls.review\u2192\u5355\u72ec continue \u7eed\u539f run\uff1b\u524d\u7f6e\u5ba1\u6838\u4e0d\u8df3\u8fc7\u65b0\u9c9c\u5ea6\u53ca\u8f93\u5165\u95e8\u7981\uff0c\u6587\u5b57\u5ba1\u6838\u4e0d\u91cd\u8f93\uff0c\u4e5f\u4e0d\u4ee3\u8868 submit \u6210\u529f\u3002\u65e0\u771f\u5b9e\u7968\u636e\u3001\u5019\u9009\u53d8\u5316\u6216\u8fc7\u671f\u5c31\u505c\u62a5\uff0c\u4e0d\u4f2a\u9020 Main \u901a\u8fc7\u3002", + "+A genuine `field_review_packet.v1` reviews text already entered after an", + "+authenticated dual-model rejection; the original execution is still pending.", + "+Read `packet.execution_request_id` through a new `agent_command_status` as", + "+above. After that status receipt, use its real request ID with", + "+`instant_image(view=\"after\")`:", + "+", + "+\u771f\u5b9e `field_review_packet.v1` \u5728\u5df2\u8ba4\u8bc1\u53cc\u6a21\u578b\u62d2\u7edd\u540e\u5ba1\u6838\u5df2\u7ecf\u8f93\u5165\u7684\u6587\u5b57\uff0c\u539f\u6267\u884c\u4ecd\u5f85\u5b9a\u3002\u6309\u4e0a\u4f8b\u7528\u65b0 `agent_command_status` \u8bfb\u53d6 `packet.execution_request_id`\uff0c\u72b6\u6001\u56de\u6267\u5b8c\u6210\u540e\uff0c\u7528\u5176\u771f\u5b9e request ID \u8c03\u7528 `instant_image(view=\"after\")`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"after\"}", + "+```", + "+", + "+Do not request an image directly on the unfinished execution, replace the bound", + "+after image with a new capture or replay text. Inspect the evidence bound to", + "+`caller_controls.review.request`, copy it and add only actual verdict/reason;", + "+do not add wait_id to review. Review only records Main's judgment. Separately", + "+submit the returned continue recipe for the original run/wait; the live thread", + "+resumes without retyping. Parameter recipes are not action authorization.", + "+", + "+\u4e0d\u80fd\u76f4\u63a5\u5411\u672a\u5b8c\u6210\u6267\u884c\u53d6\u56fe\u3001\u7528\u65b0 capture \u66ff\u6362\u7ed1\u5b9a\u540e\u56fe\u6216\u91cd\u8f93\u6587\u5b57\u3002\u68c0\u67e5 `caller_controls.review.request` \u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236\u5e76\u4ec5\u6dfb\u52a0\u771f\u5b9e verdict\uff0freason\uff0c\u4e0d\u5728 review \u6dfb\u52a0 wait_id\u3002\u5ba1\u6838\u53ea\u8bb0\u5f55 Main \u5224\u65ad\uff1b\u518d\u5355\u72ec\u63d0\u4ea4\u8fd4\u56de\u7684 continue recipe \u7eed\u539f run\uff0fwait\uff0c\u6d3b\u52a8\u7ebf\u7a0b\u4e0d\u91cd\u8f93\u3002\u53c2\u6570 recipe \u4e0d\u662f\u52a8\u4f5c\u6388\u6743\u3002", + "+", + "+Field review only confirms entered text. A submit suffix still needs its fresh", + "+target/candidate, normal input gates and result verification; field review does", + "+not prove search/submission success or bypass final-submit restrictions. If", + "+there is no genuine resumable review/continue recipe, retain the original", + "+failure and stop/report. Do not invent a ticket, restart/replay, relabel success", + "+or create a successor to repeat input. This package does not repair Runtime or", + "+claim new installed acceptance of its review behavior.", + "+", + "+\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\u53ea\u786e\u8ba4\u5df2\u8f93\u5165\u5185\u5bb9\u3002submit \u540e\u7f00\u4ecd\u987b\u65b0\u76ee\u6807\uff0f\u5019\u9009\u3001\u666e\u901a\u8f93\u5165\u95e8\u7981\u53ca\u7ed3\u679c\u6838\u9a8c\uff1b\u6587\u5b57\u5ba1\u6838\u4e0d\u8bc1\u660e\u641c\u7d22\uff0f\u63d0\u4ea4\u6210\u529f\uff0c\u4e5f\u4e0d\u7ed5\u8fc7\u6700\u7ec8\u63d0\u4ea4\u9650\u5236\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u5ba1\u6838\uff0f\u7ee7\u7eed recipe \u65f6\u4fdd\u7559\u539f\u5931\u8d25\u5e76\u505c\u62a5\uff0c\u4e0d\u4f2a\u9020\u7968\u636e\u3001\u91cd\u542f\uff0f\u91cd\u653e\u3001\u6539\u6807\u6210\u529f\u6216\u53e6\u9020\u540e\u7ee7\u6765\u91cd\u8f93\u3002\u672c\u5305\u4e0d\u4fee\u590d Runtime\uff0c\u4e5f\u4e0d\u58f0\u79f0\u65b0\u5b89\u88c5\u6001\u5ba1\u6838\u884c\u4e3a\u9a8c\u6536\u3002", + "+", + "+## Recovery / \u6062\u590d", + "+", + "+If HTTP is unreachable, check the independently started service console,", + "+loopback port and `/mcp` path. For 401, compare the private local tokens; do not", + "+substitute a provider key or expose secrets in logs. Host/Origin rejection", + "+requires a direct native MCP connection to `127.0.0.1`, not a proxy/browser.", + "+Missing tools/contracts require manual version/schema review before new input,", + "+not an invented fallback. Do not change running configuration until original", + "+input and cleanup have settled.", + "+", + "+HTTP \u4e0d\u53ef\u8fbe\u65f6\u6838\u5bf9\u72ec\u7acb\u670d\u52a1\u63a7\u5236\u53f0\u3001\u672c\u673a\u7aef\u53e3\u53ca `/mcp` \u8def\u5f84\u3002401 \u65f6\u6838\u5bf9\u79c1\u4e0b\u4fdd\u5b58\u7684\u672c\u673a\u5bc6\u94a5\uff0c\u4e0d\u7528\u6a21\u578b\u5bc6\u94a5\u66ff\u4ee3\uff0c\u4e5f\u4e0d\u5728\u65e5\u5fd7\u66b4\u9732\u5bc6\u94a5\u3002Host\uff0fOrigin \u62d2\u7edd\u65f6\u987b\u539f\u751f MCP \u76f4\u8fde `127.0.0.1`\uff0c\u4e0d\u7528\u4ee3\u7406\uff0f\u6d4f\u89c8\u5668\u3002\u5de5\u5177\uff0f\u5408\u540c\u7f3a\u5931\u65f6\u5148\u4eba\u5de5\u6838\u5bf9\u7248\u672c\uff0fschema\uff0c\u518d\u8003\u8651\u65b0\u8f93\u5165\uff0c\u4e0d\u80fd\u865a\u6784\u540e\u5907\u8def\u7ebf\u3002\u539f\u8f93\u5165\u4e0e\u6e05\u7406\u672a\u7ed3\u7b97\u524d\uff0c\u4e0d\u66f4\u6539\u8fd0\u884c\u914d\u7f6e\u3002", + "+", + "+A timeout/disconnect is not cancellation. If the original connection is still", + "+usable, inspect original receipts and use its actual cancel/status recipe,", + "+then wait for terminal settlement. An owner conflict or cleanup gate must be", + "+resolved through the original live Work. Inspect `cleanup_pending` diagnostics,", + "+resolve its specific blocker, then retry `instant_stop` for cleanup only and", + "+poll. If the original connection is unavailable, retain evidence and stop for", + "+operator/maintainer recovery; a new Work is not the old owner. Never steal", + "+ownership, repeatedly reconnect/restart, delete queues/locks/session records or", + "+replay unknown input to bypass a gate.", + "+", + "+\u8d85\u65f6\uff0f\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u3002\u539f\u8fde\u63a5\u4ecd\u53ef\u7528\u65f6\uff0c\u68c0\u67e5\u539f\u56de\u6267\uff0c\u4f7f\u7528\u5176\u771f\u5b9e cancel\uff0fstatus recipe \u5e76\u7b49\u5230\u7ec8\u6001\u3002owner \u51b2\u7a81\u6216\u6e05\u7406\u95e8\u7981\u987b\u7ecf\u539f\u6d3b\u52a8 Work \u5904\u7406\u3002\u8bfb\u53d6 `cleanup_pending` \u8bca\u65ad\uff0c\u89e3\u9664\u5177\u4f53\u963b\u585e\u540e\u8c03\u7528 `instant_stop` \u53ea\u91cd\u8bd5\u6e05\u7406\uff0c\u518d\u67e5\u8be2\u72b6\u6001\u3002\u539f\u8fde\u63a5\u4e0d\u53ef\u7528\u65f6\u4fdd\u7559\u8bc1\u636e\uff0c\u505c\u6b62\u5e76\u4ea4\u64cd\u4f5c\u5458\uff0f\u7ef4\u62a4\u8005\u6062\u590d\uff1b\u65b0 Work \u4e0d\u662f\u65e7 owner\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\uff0f\u9501\uff0f\u4f1a\u8bdd\u8bb0\u5f55\u3001\u4e0d\u91cd\u653e\u672a\u77e5\u8f93\u5165\u6765\u7ed5\u8fc7\u95e8\u7981\u3002", + " ", + " ## Owned-window and host cleanup / \u81ea\u6709\u7a97\u53e3\u4e0e\u5bbf\u4e3b\u6536\u5c3e", + " ", + "-Once input has settled, close only a task-launched window. Substitute the exact handle/process_id read from its launch receipt into this shape:", + "+After input settles, close only a task-launched window using the exact", + "+handle/process_id from its launch receipt. Example numbers are placeholders:", + "+", + "+\u8f93\u5165\u7ed3\u7b97\u540e\uff0c\u4ec5\u6309\u542f\u52a8\u56de\u6267\u7684\u786e\u5207 handle\uff0fprocess_id \u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff1b\u793a\u4f8b\u6570\u5b57\u53ea\u662f\u5360\u4f4d\u7b26\uff1a", + " ", + " ```json", + " {\"request_id\":\"close-001\",\"command\":{\"kind\":\"close_launched_window\",\"handle\":123,\"process_id\":456},\"wait_ms\":10000,\"images\":\"after\"}", + " ```", + " ", + "-No `request.ownership` field is required. Keep and check the original launch identity; example integers are placeholders, not real targets. If `window_close_pending` exposes an owned modal, inspect the returned current dialog using select/capture. A close receipt does not authorize Save/Discard/Confirm; act only if the exact choice is separately in scope. Missing after evidence can mean the window has closed: inspect the original action receipt and verify disappearance instead of repeating the click. Confirm `window_closed` for each owned window.", + "-", + "-Then call `instant_stop`, poll `instant_status`, and require `host_alive=false`, `pending_ids=[]`, `cleanup_verified=true` and no unresolved cleanup error before disconnecting. Stop acknowledgement/cleanup_pending is not terminal cleanup. Host cleanup does not substitute for checking application-window closure. Do not close unrelated windows, uninstall the external Runtime, delete the extension's retained data, or reset/delete browser profiles, cookies, history or sessions.", + "-", + "-Report task success/failure/unknown, original request/run IDs and bound evidence, any assistance/recovery, owned-window closure, and host cleanup separately. HTTP disconnection is a transport boundary; it is not evidence of a successful task, cancellation or a fully settled Runtime. Release the HTTP MCP owner only after the explicit cleanup conditions above; a new Work can then initialize its own connection. Keep this lifecycle within one Work run. Reopening a Pi conversation is not resuming a live MCP connection. The independently started daemon has a separate lifetime and data directory; extension removal does not stop it or delete its data.", + "+No `request.ownership` field is required. Preserve the original launch identity.", + "+If `window_close_pending` exposes an owned modal, inspect the current dialog", + "+through select/capture; closing does not authorize Save/Discard/Confirm. Act", + "+only on a choice explicitly in scope. Missing after evidence can mean the", + "+window closed: inspect the original receipt and verify disappearance rather", + "+than repeating a click. Verify `window_closed` for each owned window. Do not", + "+close unrelated/operator-prepared windows unless explicitly authorized.", + "+", + "+\u4e0d\u9700\u8981 `request.ownership` \u5b57\u6bb5\uff0c\u4fdd\u7559\u539f\u542f\u52a8\u8eab\u4efd\u3002`window_close_pending` \u663e\u793a\u81ea\u6709\u6a21\u6001\u6846\u65f6\uff0c\u901a\u8fc7 select\uff0fcapture \u67e5\u770b\u5f53\u524d\u5bf9\u8bdd\u6846\uff1b\u5173\u95ed\u8bf7\u6c42\u4e0d\u6388\u6743\u4fdd\u5b58\uff0f\u4e22\u5f03\uff0f\u786e\u8ba4\uff0c\u53ea\u6267\u884c\u660e\u786e\u5728\u8303\u56f4\u5185\u7684\u9009\u62e9\u3002\u7f3a\u540e\u56fe\u53ef\u80fd\u56e0\u4e3a\u7a97\u53e3\u5df2\u5173\uff0c\u5e94\u8bfb\u539f\u56de\u6267\u5e76\u6838\u5bf9\u6d88\u5931\uff0c\u4e0d\u80fd\u91cd\u590d\u70b9\u51fb\u3002\u9010\u4e00\u6838\u5b9e\u81ea\u6709\u7a97\u53e3 `window_closed`\uff1b\u6ca1\u6709\u660e\u786e\u6388\u6743\u5c31\u4e0d\u5173\u95ed\u65e0\u5173\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\u3002", + "+", + "+Call `instant_stop`, then poll `instant_status` until `host_alive=false`,", + "+`pending_ids=[]`, `cleanup_verified=true` and no unresolved cleanup error.", + "+`cleanup_pending`/stop acknowledgement is not terminal cleanup. Host cleanup", + "+does not prove application closure. Only after these conditions release the", + "+native HTTP owner so another Work can initialize. A transport disconnect is", + "+not task success, cancellation or cleanup; reopening a Pi conversation does", + "+not resume the old live MCP connection.", + "+", + "+\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2 `instant_status` \u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\u3002`cleanup_pending`\uff0fstop \u786e\u8ba4\u4e0d\u662f\u6e05\u7406\u7ec8\u6001\uff0c\u5bbf\u4e3b\u6e05\u7406\u4e0d\u8bc1\u660e\u5e94\u7528\u5df2\u5173\u3002\u6ee1\u8db3\u8fd9\u4e9b\u6761\u4ef6\u540e\u624d\u91ca\u653e\u539f\u751f HTTP owner\uff0c\u4f7f\u5176\u4ed6 Work \u521d\u59cb\u5316\u3002\u4f20\u8f93\u65ad\u7ebf\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3001\u53d6\u6d88\u6216\u6e05\u7406\uff1b\u91cd\u5f00 Pi \u5bf9\u8bdd\u4e0d\u4f1a\u6062\u590d\u65e7\u6d3b\u52a8 MCP \u8fde\u63a5\u3002", + "+", + "+Report task success/failure/unknown, original IDs and evidence, assistance or", + "+recovery, owned-window closure and host cleanup separately. Disabling/removing", + "+the connector releases the Host connection only; it does not shut down or", + "+uninstall the external Runtime or delete its data. Finish cleanup first; stop", + "+the independent daemon deliberately afterward if desired. Do not delete", + "+browser profiles, cookies, history, sessions or retained extension data.", + "+", + "+\u5206\u522b\u62a5\u544a\u4efb\u52a1\u6210\u529f\uff0f\u5931\u8d25\uff0f\u672a\u77e5\u3001\u539f ID \u4e0e\u8bc1\u636e\u3001\u534f\u52a9\uff0f\u6062\u590d\u3001\u81ea\u6709\u7a97\u53e3\u5173\u95ed\u53ca\u5bbf\u4e3b\u6e05\u7406\u3002\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u5916\u90e8 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\uff0c\u5982\u9700\u505c\u7528\u72ec\u7acb daemon \u518d\u660e\u786e\u5173\u95ed\u3002\u4e0d\u8981\u5220\u9664\u6d4f\u89c8\u5668 profile\u3001cookie\u3001\u5386\u53f2\u3001\u4f1a\u8bdd\u6216\u4fdd\u7559\u7684\u6269\u5c55\u6570\u636e\u3002", + "+", + "+## Evidence boundary / \u8bc1\u636e\u8fb9\u754c", + "+", + "+Connector 0.0.5 changes documentation/disclosure and metadata only; existing", + "+0.0.3/0.0.4 connection settings need no migration, and permissions/input gates", + "+do not change. It is author-published and pending independent store review.", + "+[Controlled installed Pi evidence](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+belongs to connector 0.0.4/Runtime 0.1.6; new 0.0.5/0.1.8 installed GUI acceptance", + "+remains pending. Read the separate [0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+for the exact scope of packaging/protocol checks. These layers do not establish", + "+independent approval, unattended accuracy or performance.", + "+", + "+\u8fde\u63a5\u5668 0.0.5 \u53ea\u6539\u6587\u6863\uff0f\u62ab\u9732\u4e0e\u5143\u6570\u636e\uff1b\u65e2\u6709 0.0.3\uff0f0.0.4 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u6743\u9650\uff0f\u8f93\u5165\u95e8\u7981\u4e0d\u53d8\u3002\u672c\u7248\u4e3a\u4f5c\u8005\u53d1\u884c\uff0c\u72ec\u7acb\u5546\u5e97\u5ba1\u6838\u5f85\u5b8c\u6210\u3002[\u53d7\u63a7\u5b89\u88c5\u6001 Pi \u8bc1\u636e](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)\u5c5e\u4e8e\u8fde\u63a5\u5668 0.0.4\uff0fRuntime 0.1.6\uff1b\u65b0 0.0.5\uff0f0.1.8 \u5b89\u88c5\u6001 GUI \u9a8c\u6536\u4ecd\u5f85\u5b8c\u6210\u3002\u6253\u5305\uff0f\u534f\u8bae\u68c0\u67e5\u7684\u786e\u5207\u8303\u56f4\u89c1\u5355\u72ec\u7684 [0.0.5 \u4f5c\u8005\u9a8c\u8bc1\u8bb0\u5f55](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)\uff0c\u8fd9\u4e9b\u5c42\u4e0d\u8bc1\u660e\u72ec\u7acb\u6279\u51c6\u3001\u65e0\u4eba\u51c6\u786e\u7387\u6216\u6027\u80fd\u3002" + ] + }, + { + "after": null, + "before": "a7b328e973314256f26e53889e6cfd5bf95968859439cdc195424c0a3c778526", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.4.dist-info/METADATA", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,132 +0,0 @@", + "-Metadata-Version: 2.4", + "-Name: amadeus-agent-gui-runtime", + "-Version: 0.0.4", + "-Summary: Declarative HTTP MCP connection and Skill for an authenticated local Windows GUI Runtime", + "-License-Expression: ISC", + "-Requires-Python: <3.13,>=3.12", + "-Description-Content-Type: text/markdown", + "-License-File: LICENSE", + "-Dynamic: license-file", + "-", + "-# Amadeus Windows GUI Runtime extension 0.0.4 \u2014 HTTP candidate", + "-", + "-[\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md)", + "-", + "-Connect Pi to an operator-started Windows GUI Runtime using **native Streamable", + "-HTTP MCP** and a packaged execution Skill. This is a preparation candidate for", + "-the curated plugin store, not an approved catalog entry or a published release.", + "-The previously published 0.0.2 wheel remains a separate stdio-launcher release.", + "-", + "-## What runs where", + "-", + "-| Component | Responsibility |", + "-| --- | --- |", + "-| Amadeus / Pi | Plans work, owns its approval UI, and uses the native HTTP MCP client. |", + "-| Extension 0.0.4 | Resource-only HTTP connection declaration and Skill; no launcher, executable selector, model weights or dependencies. |", + "-| Local Runtime | Owns the authenticated loopback MCP service, vision/Decision configuration, input authorization, receipts and cleanup. |", + "-", + "-The Host uses Python 3.12. The candidate API Runtime supports a separate Python", + "-3.12 environment while retaining Python 3.11; optional local-model setup remains", + "-on its existing Python 3.11 contract. A shared Python minor version does **not**", + "-mean sharing a virtual environment. Each component retains its locked dependencies.", + "-The frozen 0.1.5 installer has no HTTP MCP entry point: use a build containing the", + "-new maintained entry point and record its version/source identity.", + "-", + "-## Start the local Runtime", + "-", + "-Prepare the API environment from that Runtime build's documented setup. New API", + "-environments default to Python 3.12; existing supported 3.11 environments can be", + "-retained. Configure vision, Decision and ordinary review in the Runtime profiles.", + "-Set their key environment variables in the Runtime process environment.", + "-", + "-Create a strong random **local connection token** of at least 32 characters and", + "-store it privately. This is distinct from every model-provider API key. Prompt", + "-for it without echoing it, then start the service in a dedicated console:", + "-", + "-```powershell", + "-$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "-$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "-$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "-$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "-$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "-Set-Location -LiteralPath $RuntimeRoot", + "-& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "-& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "- --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "- --api-profile $VisionProfile --decision-profile $DecisionProfile", + "-```", + "-", + "-Run setup once; it may download the locked dependencies. Its generated standalone", + "-stdio MCP configuration is not needed for this extension. Omit `-PythonVersion`", + "-to retain an existing supported API environment; an explicit different minor", + "-version requires a separate environment rather than an in-place replacement.", + "-", + "-Input is disabled by default. Add the existing `--allow-local-input` option only", + "-for an explicitly authorized desktop task; its existing meaning includes turning", + "-automatic risk interception off. A token authenticates the connection; it does", + "-not authorize arbitrary clicks, submissions, payments or unrelated file changes.", + "-The service binds only `127.0.0.1` and checks Host/Origin before MCP processing.", + "-Do not expose it through a public bind, tunnel or reverse proxy.", + "-", + "-## Install and connect", + "-", + "-1. Use a qualified Amadeus build with native HTTP MCP and Skill contributions.", + "- Current development checks target upstream `9547f39` / `0.17.1-alpha.1`.", + "-2. Install the **actual candidate wheel** in Settings \u2192 Extensions. Inspect the", + "- package identity and disclosure; installation starts disabled.", + "-3. Set `runtime_url` to `http://127.0.0.1:17665/mcp` (or the port you selected).", + "- Use only the trusted local Runtime endpoint. Set secret `connection_token` to", + "- the token supplied to the Runtime console.", + "-4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "- and open a new Work session. Saved configuration is not proof it is loaded.", + "-5. Discover tools and inspect `instant_status` before requesting input. Check the", + "- reported Runtime version and original receipts; do not assume a service has", + "- loaded the source you most recently edited.", + "-", + "-The extension cannot start, install or upgrade the external Runtime. It does not", + "-receive provider API keys. The `network: [\"*\"]` declaration discloses configurable", + "-HTTP access; it is not an OS sandbox or permission to operate the desktop.", + "-", + "-## Task and connection lifecycle", + "-", + "-Use the packaged [Skill](src/amadeus_agent_gui/skills/gui-execution/SKILL.md) and", + "-[reference](src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "-Keep one MCP connection and one input owner throughout a task. Pending/unknown", + "-input retains its original request/run IDs; never replay it under a new ID.", + "-", + "-The 0.0.4 Skill describes both field-result review and the new pre-action Main", + "-review contract. At a genuine `pre_action_review_packet.v1`, read the original", + "-job under a new status request, view its bound **before** image, then use the", + "-returned review and separate continue recipes. Review alone does not click.", + "-Continuation retains the original job and candidate, with a fresh target-region", + "-and input-gate check before one native dispatch. The older", + "-`field_review_packet.v1` reviews already-entered text using its **after** image.", + "-These are different scopes; never substitute a field ticket for a candidate.", + "-The new pre-action implementation and installed acceptance are in progress; a", + "-version number alone does not establish the active service's capability.", + "-", + "-Close only task-owned windows, then call `instant_stop` and poll until", + "-`host_alive=false`, `pending_ids=[]`, and `cleanup_verified=true`. A transport", + "-disconnect is not cancellation or cleanup. A new Work may connect only after", + "-the previous owner has completed the service's explicit release conditions.", + "-Disabling/removing the extension does not shut down the independently started", + "-Runtime daemon or delete its data; stop the service deliberately after cleanup.", + "-", + "-## Migration and store review", + "-", + "-0.0.3 changes configuration: `runtime_root`, `runtime_python`, profiles,", + "-`api_key`, and `allow_local_input` no longer belong to the extension. Configure", + "-these at the Runtime service; enter the two new connection settings explicitly.", + "-Do not reinterpret an old provider API key as a connection token. Historical", + "-0.0.2 bytes and acceptance evidence are not replaced by this candidate.", + "-", + "-Curated admission excludes configuration selecting executables/modules. HTTP", + "-uses the existing native contract rather than bypassing review through another", + "-launcher. Candidate wheel checks, pinned author preflight, native protocol calls,", + "-desktop execution and independent catalog review are separate results. Check", + "-the preparation report for what actually ran; unrun layers remain unqualified.", + "-No author-written approval or fictional reviewer is included.", + "-", + "-The package code is ISC. Runtime licensing and third-party components remain", + "-separate. No user data, real profiles, tokens, model weights or Runtime payload", + "-are embedded in this wheel." + ] + }, + { + "after": null, + "before": "6df5052defa280b94264bd2d69909309f56edfb33f80edbb6d77fcc5f1083ec6", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.4.dist-info/RECORD", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,10 +0,0 @@", + "-amadeus_agent_gui/__init__.py,sha256=Hecoy_4hcdKP7gzmTLaDkziNE2SR9cW-E4eumsaOHcw,106", + "-amadeus_agent_gui/amadeus-extension.json,sha256=oMTneloIQx7ZPruaK-BxVr9-eDD5v2QnOdS7bLyGlAk,1733", + "-amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=ch29ioqHz3__RT12QLhlPZOg7d4iful3c-KylGCD6Bc,3817", + "-amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=fgY95Gaqg_cCjTzoLr6dBVWi6yB41mdC5qF2qwh-AB0,10371", + "-amadeus_agent_gui_runtime-0.0.4.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "-amadeus_agent_gui_runtime-0.0.4.dist-info/METADATA,sha256=p7Mo6XMxQlbyblOInmz9W_lZaIWUOc3BlUJMCjx3hSY,7631", + "-amadeus_agent_gui_runtime-0.0.4.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "-amadeus_agent_gui_runtime-0.0.4.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "-amadeus_agent_gui_runtime-0.0.4.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "-amadeus_agent_gui_runtime-0.0.4.dist-info/RECORD,," + ] + }, + { + "after": null, + "before": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.4.dist-info/WHEEL", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,5 +0,0 @@", + "-Wheel-Version: 1.0", + "-Generator: setuptools (83.0.0)", + "-Root-Is-Purelib: true", + "-Tag: py3-none-any", + "-" + ] + }, + { + "after": null, + "before": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.4.dist-info/entry_points.txt", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,2 +0,0 @@", + "-[amadeus.extensions]", + "-io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": null, + "before": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.4.dist-info/licenses/LICENSE", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,15 +0,0 @@", + "-ISC License", + "-", + "-Copyright (c) 2026 Desolate-Jix", + "-", + "-Permission to use, copy, modify, and/or distribute this software for any", + "-purpose with or without fee is hereby granted, provided that the above", + "-copyright notice and this permission notice appear in all copies.", + "-", + "-THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": null, + "before": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.4.dist-info/top_level.txt", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1 +0,0 @@", + "-amadeus_agent_gui" + ] + }, + { + "after": "4c1ac5cefd1183cdfb06a1e7db0c3f9414e2f03b91218560b64faa2435f61145", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/METADATA", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,240 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.5", + "+Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.md", + "+Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "+Requires-Python: <3.13,>=3.12", + "+Description-Content-Type: text/markdown", + "+License-File: LICENSE", + "+Dynamic: license-file", + "+", + "+# Amadeus Windows GUI Runtime Connector 0.0.5", + "+", + "+[\u7b80\u4f53\u4e2d\u6587](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "+", + "+This author-published connector connects Pi to a **separately installed and", + "+operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "+contains a connection declaration and execution Skill, not the Runtime.", + "+**Independent store review is pending; publication is not store approval.**", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.5 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.5)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.5-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/amadeus_agent_gui_runtime-0.0.5-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.5.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/extension-source-0.0.5.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/preflight.json)", + "+- [Recommended Runtime 0.1.8 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.8/AgentGUIRuntimeExecution-Setup.exe)", + "+ and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.8)", + "+", + "+Install the Runtime yourself on the Windows computer running Amadeus, then", + "+import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.8/README.md#quick-start).", + "+The connector and Runtime have independent version numbers and release tags;", + "+connector 0.0.5 does not update Runtime 0.1.8.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.8 + connector 0.0.5 | Recommended released Runtime and this connector. New installed GUI acceptance of this exact combination and independent store review remain pending. |", + "+| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It is not a new 0.0.5/0.1.8 test. |", + "+| Minimum Runtime contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply the field-review/continue contract. |", + "+| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "+| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "+| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "+", + "+The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "+Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+are separate from the [0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+and independent store review. Do not treat a release number or preflight success", + "+as proof of desktop execution.", + "+", + "+## What runs where", + "+", + "+| Component | Responsibility |", + "+| --- | --- |", + "+| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "+| Connector 0.0.5 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "+| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "+", + "+The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "+Python 3.12, retains supported Python 3.11 environments and requires **no local", + "+GPU or model-weight download**. Optional local-model setup has its separate", + "+Python 3.11 contract and is outside this connector's supported route. A shared", + "+Python minor version does not mean sharing a virtual environment; each", + "+component keeps its locked dependencies.", + "+", + "+## Start the local Runtime", + "+", + "+Install the Runtime first. Install `uv` if setup requests it. Copy", + "+`configs/vision-api-openai-luna.example.json` and", + "+`configs/decision-profile.visual-execution.example.json` to private profile", + "+files, then configure endpoints, models and task conditions according to the", + "+Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "+Screenshots and task information used for recognition/review are sent to the", + "+selected model services. Those services may charge for calls; this wheel", + "+includes no model service or API credit. Set each profile's `api_key_env` only", + "+in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "+put a provider key in connector settings.", + "+", + "+Generate and privately store a strong random URL-safe **local connection", + "+token** of 32\u2013256 characters (for example, using `secrets.token_urlsafe(32)` in", + "+your trusted Python environment). It is distinct from every model-provider API", + "+key. Prompt for secrets without echoing them, then start the service in a", + "+dedicated console:", + "+", + "+```powershell", + "+$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "+$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "+$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "+$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "+$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "+$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "+Set-Location -LiteralPath $RuntimeRoot", + "+& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "+& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "+ --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "+ --api-profile $VisionProfile --decision-profile $DecisionProfile", + "+```", + "+", + "+Run setup once; it may download locked dependencies. Its generated standalone", + "+stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "+to retain an existing supported API environment. An explicit different minor", + "+version requires a separate environment rather than an in-place replacement.", + "+Keep this console open while Amadeus uses the service.", + "+", + "+Input is disabled by default. For an explicitly authorized desktop task, append", + "+the existing `--allow-local-input` option to the final startup command. **This", + "+option also turns automatic risk interception off.** A token authenticates the", + "+connection; it does not authorize arbitrary clicks, submissions, payments or", + "+unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "+rejects browser Origin headers before MCP processing. Do not expose it through", + "+a public bind, tunnel or reverse proxy.", + "+", + "+## Install and connect", + "+", + "+1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "+ check its actual installed version against the recorded baseline above.", + "+2. Download and install the **0.0.5 wheel** in Settings \u2192 Extensions. Inspect its", + "+ identity and disclosure; installation starts disabled.", + "+3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "+ Use only your trusted local Runtime. Set secret `connection_token` to the", + "+ same local token supplied to the Runtime console, not a model API key.", + "+4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "+ and open a new Work session. Saved configuration does not prove it is loaded.", + "+5. Inspect the MCP initialization version and discovered tools, then read", + "+ `instant_status` before requesting input. Required tools are `instant_start`,", + "+ `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "+ `instant_stop`; their schemas must support the task-plan, original-command", + "+ status and review/continue operations described in the packaged Skill.", + "+ Check actual returned review recipes when that state occurs. This is a", + "+ manual check, not automatic compatibility certification.", + "+", + "+The connector cannot start, install, upgrade or reconfigure the external", + "+Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "+configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "+", + "+## A small reproducible task", + "+", + "+Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "+yourself. Before connecting Pi, manually prepare two empty folders in a new", + "+temporary root, for example:", + "+", + "+```powershell", + "+$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "+New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "+$FixtureRoot", + "+```", + "+", + "+Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "+actual path, and tell Pi to select that observed window. The prepared window is", + "+operator-owned; selecting it does not make it task-owned. Authorize only this", + "+task, with local input explicitly enabled:", + "+", + "+> In the prepared 7-Zip window at ``, use folder navigation", + "+> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "+> displayed path is `\\Documents\\Receipts`. Do not create,", + "+> rename, delete, edit, compress or extract anything, enter credentials, open", + "+> another location or close the operator-prepared window. Stop and report any", + "+> uncertain input or review without a valid ticket. After the task, settle the", + "+> original receipts and verify Runtime host cleanup.", + "+", + "+Acceptance requires four successful original navigation steps, bound image", + "+evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "+Report any Main review or assistance. Do not count launch acknowledgements,", + "+pending receipts or an uninspected screenshot as success. No external data write", + "+is authorized; the fixture is created manually beforehand. It is a", + "+navigation example, not compression/extraction or a performance benchmark.", + "+", + "+## Task, review and cleanup", + "+", + "+Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "+and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "+Keep one MCP connection and one input owner for the whole Work. Pending,", + "+unknown or interrupted input keeps its original request/run/command IDs; never", + "+replay it with a new ID to extend a wait.", + "+", + "+At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "+status request, inspect that status request's bound **before** image, then copy", + "+the returned review recipe and use its separately returned continue recipe.", + "+Review itself does not click. Continuation retains the original job/candidate", + "+and must pass a fresh target-region check and existing input gates before one", + "+dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "+already-entered text; continuation does not retype. A field review does not", + "+approve a candidate or prove a later submission succeeded. Without a genuine", + "+resumable ticket, or with stale evidence, stop and report the original state.", + "+", + "+Historical Pi evidence used a natively resized complete bound frame, not", + "+byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "+tests establish their stated recovery scope, not unattended accuracy, speed or", + "+new-combination acceptance.", + "+", + "+Close only task-launched windows using their returned identities, and verify", + "+`window_closed`; retain an operator-prepared window as in the example above.", + "+Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "+`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "+can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "+the connector changes its Host-side connection configuration; backend changes", + "+follow the Host's restart requirements. It does not stop or uninstall the external", + "+Runtime or delete its data. Finish cleanup before disabling/removing;", + "+stop the independent service deliberately afterward if desired.", + "+", + "+## Troubleshooting and recovery", + "+", + "+| Symptom | What to check and do |", + "+| --- | --- |", + "+| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "+| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "+| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "+| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "+| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "+| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "+| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "+", + "+The author-side source 0.1.8 check observed that a stopped session's maintenance", + "+registration was not immediately retired after two start/stop/release cycles in", + "+one HTTP service, although both hosts exited. The updater separately validates", + "+original settlement evidence and can retire settled registrations; this check", + "+did not reproduce a blocked update. Host cleanup and maintenance readiness are", + "+separate results. Retain original session evidence and request Runtime support", + "+if maintenance is refused; do not delete locks or registrations. See the", + "+[validation scope](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md).", + "+", + "+## Version changes and store status", + "+", + "+0.0.5 changes documentation/disclosure and package metadata. It does not change", + "+connection configuration, permissions, input execution or Runtime code. Existing", + "+0.0.3/0.0.4 `runtime_url` and `connection_token` settings need no migration.", + "+The historical 0.0.2 stdio launcher and immutable 0.0.4 artifacts remain intact.", + "+When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "+local-input settings at the independent service; explicitly fill the two", + "+connector settings. Never reinterpret an old provider key as a connection token.", + "+", + "+Author publication, wheel/preflight checks, protocol checks, installed GUI", + "+execution and independent catalog approval are separate results. This", + "+author-published 0.0.5 distribution is **pending independent store review**;", + "+it contains no author-written approval or fictional reviewer. Read the exact", + "+scope of each linked result; unrun layers remain pending.", + "+", + "+The connector code is ISC. Runtime and third-party licensing remain separate.", + "+The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "+payload." + ] + }, + { + "after": "d40a2c095b0382d5ee2a598594494d690c7f034aacd60b0c8ef81f698ebc54e3", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/RECORD", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=73LMIwheb-Du4gL4jrxcJGTHbLOb2X1Dh7KdjKXLmKw,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=XXuAaoUnllDnG_YjP62IOylItZzgoC92HzCNh-1YLus,2597", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=bDLeY0AjYxVRbtxFFHvgQe62fpej8gXH8Fkr4mv2k94,8101", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=DJkB0umemFqRnAmnxsoefPsZnAoxYUtsAXmL7c2msdA,20667", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/METADATA,sha256=TBrFzv0Rg837BqHn2ww_lBTi8DuRIYVgtk-qJDX2EUU,18045", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/RECORD,," + ] + }, + { + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/WHEEL", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,5 @@", + "+Wheel-Version: 1.0", + "+Generator: setuptools (83.0.0)", + "+Root-Is-Purelib: true", + "+Tag: py3-none-any", + "+" + ] + }, + { + "after": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/entry_points.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,2 @@", + "+[amadeus.extensions]", + "+io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/licenses/LICENSE", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,15 @@", + "+ISC License", + "+", + "+Copyright (c) 2026 Desolate-Jix", + "+", + "+Permission to use, copy, modify, and/or distribute this software for any", + "+purpose with or without fee is hereby granted, provided that the above", + "+copyright notice and this permission notice appear in all copies.", + "+", + "+THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/top_level.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1 @@", + "+amadeus_agent_gui" + ] + } + ], + "note": "Diff is evidence only; every version needs independent full review.", + "ok": true, + "review_status": "not_reviewed" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/preflight.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/preflight.json new file mode 100644 index 0000000..d64873a --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/preflight.json @@ -0,0 +1,841 @@ +{ + "checked": [ + "manifest", + "package_resources", + "skill_metadata", + "wheel_metadata" + ], + "checks": { + "catalog_policy": "passed", + "human_and_runtime_review": "pending", + "package_format": "passed", + "target_host": "passed" + }, + "environment": { + "platform": "win32", + "python": "3.12.10" + }, + "host_commit": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "identity": { + "id": "io.github.desolate-jix.gui-runtime", + "sha256": "9727889c378354ee6b24648c94b2276b8ed30d986b49d1dd4b0f5c3c188774dd", + "version": "0.0.5" + }, + "inventory": [ + { + "after": "ef72cc23085e6fe0eee202f88ebc5c2464c76cb39bd97d4387b29d8ca5cb98ac", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/__init__.py", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,3 @@", + "+\"\"\"Amadeus resource extension: native HTTP MCP declaration and execution Skill.\"\"\"", + "+", + "+__version__ = \"0.0.5\"" + ] + }, + { + "after": "5d7b806a85279650e71bf6233fad883b2948b59ce0a02f761f308d87ed582eeb", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/amadeus-extension.json", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,72 @@", + "+{", + "+ \"schema\": \"amadeus.extension/v0\",", + "+ \"id\": \"io.github.desolate-jix.gui-runtime\",", + "+ \"version\": \"0.0.5\",", + "+ \"display_name\": {", + "+ \"en\": \"Windows GUI Runtime Connector\",", + "+ \"zh-CN\": \"Windows GUI Runtime \u8fde\u63a5\u5668\"", + "+ },", + "+ \"description\": {", + "+ \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.8; require 0.1.6+ authenticated HTTP MCP and review/continue tools, with actual capability checks. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "+ \"zh-CN\": \"\u8fde\u63a5\u5668\uff1a\u9700\u81ea\u884c\u5355\u72ec\u5b89\u88c5\u3001\u914d\u7f6e\u5e76\u542f\u52a8 Windows GUI Runtime\u3002\u5efa\u8bae\u4f7f\u7528 0.1.8\uff1b\u8981\u6c42\u5177\u5907 0.1.6 \u8d77\u63d0\u4f9b\u7684\u9274\u6743 HTTP MCP \u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u5de5\u5177\uff0c\u5e76\u6838\u5bf9\u5b9e\u9645\u80fd\u529b\u3002\u586b\u5199\u53ef\u4fe1\u672c\u673a runtime_url \u548c connection_token\uff0c\u5c06 MCP \u4e0e Skill \u7ed1\u5b9a Pi\u3002Runtime \u7531\u7528\u6237\u72ec\u7acb\u90e8\u7f72\u548c\u505c\u6b62\uff1b\u505c\u7528\uff0f\u5378\u8f7d\u672c\u8fde\u63a5\u5668\u4e0d\u4f1a\u505c\u6b62\u3001\u5378\u8f7d Runtime \u6216\u5220\u9664\u5176\u6570\u636e\u3002\u5916\u90e8\u6a21\u578b API \u53ef\u80fd\u6309\u7528\u91cf\u6536\u8d39\u3002\"", + "+ },", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + "+ \"author\": {", + "+ \"name\": \"Desolate-Jix\"", + "+ },", + "+ \"license\": \"ISC\",", + "+ \"engines\": {", + "+ \"amadeus_host_api\": \">=0.1,<0.2\",", + "+ \"platforms\": [", + "+ \"win32\"", + "+ ]", + "+ },", + "+ \"runtime\": {", + "+ \"kind\": \"none\"", + "+ },", + "+ \"config\": {", + "+ \"runtime_url\": {", + "+ \"type\": \"string\",", + "+ \"title\": \"Trusted loopback MCP URL / \u53ef\u4fe1\u672c\u673a MCP \u5730\u5740\",", + "+ \"required\": true,", + "+ \"default\": \"http://127.0.0.1:17665/mcp\"", + "+ },", + "+ \"connection_token\": {", + "+ \"type\": \"string\",", + "+ \"title\": \"Local MCP connection token (not a model API key) / \u672c\u673a\u8fde\u63a5\u5bc6\u94a5\uff08\u4e0d\u662f\u6a21\u578b API key\uff09\",", + "+ \"required\": true,", + "+ \"secret\": true", + "+ }", + "+ },", + "+ \"contributes\": {", + "+ \"mcp_server\": [", + "+ {", + "+ \"id\": \"execution\",", + "+ \"contract\": \"amadeus.mcp-server/v0\",", + "+ \"transport\": \"http\",", + "+ \"url\": \"${config.runtime_url}\",", + "+ \"bearer_token\": \"${config.connection_token}\"", + "+ }", + "+ ],", + "+ \"skill\": [", + "+ {", + "+ \"id\": \"gui-execution\",", + "+ \"contract\": \"amadeus.skill/v0\",", + "+ \"path\": \"skills/gui-execution\",", + "+ \"title\": {", + "+ \"en\": \"GUI execution\",", + "+ \"zh-CN\": \"GUI \u6267\u884c\"", + "+ }", + "+ }", + "+ ]", + "+ },", + "+ \"permissions\": {", + "+ \"host\": [],", + "+ \"os\": {", + "+ \"network\": [", + "+ \"*\"", + "+ ]", + "+ }", + "+ }", + "+}" + ] + }, + { + "after": "6c32de6340236315516edc45147be041eeb67e97a3f205c7f0592be26bf693de", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,82 @@", + "+---", + "+name: gui-execution", + "+description: Execute an explicitly authorized Windows GUI task through the connected external-API Runtime route, preserve original request and evidence identities, handle review without replaying input, and verify owned-window and host cleanup.", + "+---", + "+", + "+## English", + "+", + "+Read `references/runtime.md` before using the connected Runtime. Discover its", + "+actual tools and schemas; Pi names may be namespaced or hashed, so never invent", + "+a tool name. This Skill supplies no tools, authority, executor, learning mode or", + "+shell route. Connector 0.0.5 is author-published; independent store review and", + "+new installed GUI acceptance with Runtime 0.1.8 remain pending. Historical", + "+0.0.4/0.1.6 controlled Pi evidence is a separate result.", + "+", + "+Use only the existing external API route. Recommend separately released", + "+Runtime 0.1.8; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + "+service must supply field review/continue. Runtime 0.1.5 has no HTTP entry point.", + "+Runtime 0.1.7 current-Agent mode is not qualified through Amadeus here. Manually", + "+check MCP initialization version, actual tools/schemas, authentication and", + "+review/cleanup capabilities; neither a version number nor a later release", + "+establishes compatibility. No automatic compatibility detector is provided.", + "+", + "+Keep one Runtime MCP connection and one input owner for the complete authorized", + "+Work. The operator independently installs and starts the authenticated loopback", + "+daemon. The connector never launches Python, chooses executable paths, supplies", + "+provider keys or changes profiles. The local connection token is not a model", + "+API key. Screenshots/task information can reach the configured model services,", + "+whose calls may cost money. Confirm task scope and Runtime input opt-in:", + "+`--allow-local-input` enables input and turns automatic risk interception off.", + "+Start the host once, wait for ready, launch/select the intended window, use", + "+current bound observations, submit the task and inspect original receipts. A", + "+launch or asynchronous acknowledgement is not task success. Prepare known", + "+independent fields together and read healthy pending batches promptly; do not", + "+insert unrelated searches or documentation between them.", + "+", + "+For pending, unknown, timeout, interrupted input or unavailable images, retain", + "+original request/run/command IDs and inspect their state. Never replay possibly", + "+executed input under a new ID or resubmit to extend a wait. At a genuine", + "+`pre_action_review_packet.v1` or `field_review_packet.v1`, read", + "+`agent_command_status` with `command_id=packet.execution_request_id` under a new", + "+outer request ID and `images=none`. Retrieve that status request's bound image with", + "+`instant_image`: `view=before` for a candidate, `view=after` for entered text.", + "+Inspect the exact bound evidence against the task, copy", + "+`caller_controls.review.request` and add only the actual verdict/reason. Then", + "+separately use the returned continue recipe. Review alone performs no input.", + "+Pre-action continuation retains the original job/candidate and requires a fresh", + "+target-region check and existing hard gates before one dispatch. Field", + "+continuation does not retype; any submit suffix still needs normal gates and", + "+verification. With no genuine resumable ticket or a stale candidate, stop and", + "+report. Do not manufacture hashes, wait IDs, success or a restart/replay.", + "+", + "+Cancellation must settle to a real terminal state; a disconnect is not", + "+cancellation or cleanup. Close only task-launched windows using their returned", + "+handle/process identity, resolve save dialogs only for an authorized choice,", + "+and verify `window_closed`. Keep pre-existing/operator-prepared windows unless", + "+their closure is explicitly in scope. Call `instant_stop`, then poll until", + "+`host_alive=false`, `pending_ids=[]`, `cleanup_verified=true` and no unresolved", + "+cleanup error. Only then release the native HTTP owner. If an old owner is", + "+unresolved, inspect its original receipts and cleanup diagnostics. If the", + "+original connection is lost, retain evidence and stop for operator recovery;", + "+do not steal ownership, repeatedly reconnect/restart, or delete queues, locks", + "+or session records. Report task outcome separately from cleanup.", + "+", + "+Disabling/removing the connector releases the Host connection only; it does", + "+not stop/uninstall the independently running Runtime or delete its data. Finish", + "+cleanup before disabling/removing. Connector 0.0.5 changes documentation and", + "+metadata only; 0.0.3/0.0.4 connection settings need no migration and input gates", + "+and permissions do not change.", + "+", + "+## \u7b80\u4f53\u4e2d\u6587", + "+", + "+\u4f7f\u7528\u8fde\u63a5\u7684 Runtime \u524d\u5148\u8bfb `references/runtime.md`\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u4e0e schema\uff1bPi \u540d\u79f0\u53ef\u80fd\u5e26\u547d\u540d\u7a7a\u95f4\u6216\u54c8\u5e0c\uff0c\u4e0d\u80fd\u731c\u5de5\u5177\u540d\u3002\u672c Skill \u4e0d\u63d0\u4f9b\u5de5\u5177\u3001\u6388\u6743\u3001\u6267\u884c\u5668\u3001\u5b66\u4e60\u6a21\u5f0f\u6216 shell \u8def\u7ebf\u3002\u8fde\u63a5\u5668 0.0.5 \u4e3a\u4f5c\u8005\u53d1\u884c\uff1b\u72ec\u7acb\u5546\u5e97\u5ba1\u6838\u53ca\u4e0e Runtime 0.1.8 \u7684\u65b0\u5b89\u88c5\u6001 GUI \u9a8c\u6536\u4ecd\u5f85\u5b8c\u6210\u3002\u5386\u53f2 0.0.4\uff0f0.1.6 \u53d7\u63a7 Pi \u8bc1\u636e\u5355\u72ec\u8bb0\u5f55\u3002", + "+", + "+\u4ec5\u4f7f\u7528\u539f\u6709 external API \u8def\u7ebf\u3002\u63a8\u8350\u72ec\u7acb\u53d1\u5e03\u7684 Runtime 0.1.8\uff1b\u6700\u4f4e 0.1.6 \u63d0\u4f9b HTTP\uff0f\u8f93\u5165\u524d\u5ba1\u6838\u5408\u540c\uff0c\u6d3b\u52a8\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6ca1\u6709 HTTP \u5165\u53e3\u3002\u6b64\u5904\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u4eba\u5de5\u6838\u5bf9 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u5b9e\u9645\u5de5\u5177\uff0fschema\u3001\u9274\u6743\u53ca\u5ba1\u6838\uff0f\u6e05\u7406\u80fd\u529b\uff1b\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\u3002\u672c\u5305\u4e0d\u63d0\u4f9b\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+", + "+\u5b8c\u6574\u6388\u6743 Work \u4fdd\u6301\u4e00\u4e2a Runtime MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u64cd\u4f5c\u5458\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u5e26\u9274\u6743\u7684\u672c\u673a daemon\uff1b\u8fde\u63a5\u5668\u4e0d\u4f1a\u542f\u52a8 Python\u3001\u9009\u62e9\u53ef\u6267\u884c\u8def\u5f84\u3001\u63d0\u4f9b\u6a21\u578b\u5bc6\u94a5\u6216\u6539 profile\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0d\u662f\u6a21\u578b API Key\u3002\u622a\u56fe\uff0f\u4efb\u52a1\u4fe1\u606f\u53ef\u80fd\u53d1\u9001\u7ed9\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\uff0c\u670d\u52a1\u8c03\u7528\u53ef\u80fd\u6536\u8d39\u3002\u786e\u8ba4\u4efb\u52a1\u8303\u56f4\u53ca Runtime \u8f93\u5165\u6388\u6743\uff1a`--allow-local-input` \u542f\u7528\u8f93\u5165\uff0c\u540c\u65f6\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u5bbf\u4e3b\u53ea\u542f\u52a8\u4e00\u6b21\uff0c\u7b49\u5f85 ready\uff0c\u542f\u52a8\uff0f\u9009\u62e9\u76ee\u6807\u7a97\u53e3\uff0c\u4f7f\u7528\u5f53\u524d\u7ed1\u5b9a\u89c2\u5bdf\uff0c\u63d0\u4ea4\u4efb\u52a1\u5e76\u68c0\u67e5\u539f\u56de\u6267\u3002\u542f\u52a8\u6216\u5f02\u6b65\u786e\u8ba4\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u63d0\u524d\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u6279\u6b21\uff0c\u4e0d\u5728\u5176\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\u6216\u6587\u6863\u5de5\u4f5c\u3002", + "+", + "+\u5f85\u5b9a\u3001\u672a\u77e5\u3001\u8d85\u65f6\u3001\u4e2d\u65ad\u8f93\u5165\u6216\u56fe\u50cf\u4e0d\u53ef\u7528\u65f6\uff0c\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID \u5e76\u68c0\u67e5\u72b6\u6001\u3002\u53ef\u80fd\u6267\u884c\u8fc7\u7684\u8f93\u5165\u4e0d\u80fd\u6362 ID \u91cd\u653e\uff0c\u4e5f\u4e0d\u80fd\u4e3a\u5ef6\u957f\u7b49\u5f85\u800c\u91cd\u4ea4\u3002\u771f\u5b9e `pre_action_review_packet.v1` \u6216 `field_review_packet.v1` \u51fa\u73b0\u65f6\uff0c\u7528\u65b0\u5916\u5c42 request ID \u548c `images=none` \u8c03\u7528 `agent_command_status`\uff0c`command_id=packet.execution_request_id`\u3002\u968f\u540e\u7528 `instant_image` \u53d6\u8be5\u72b6\u6001\u8bf7\u6c42\u7ed1\u5b9a\u56fe\u50cf\uff1a\u5019\u9009\u770b `view=before`\uff0c\u5df2\u8f93\u5165\u6587\u5b57\u770b `view=after`\u3002\u5bf9\u7167\u4efb\u52a1\u68c0\u67e5\u786e\u5207\u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236 `caller_controls.review.request`\uff0c\u4ec5\u6dfb\u52a0\u5b9e\u9645 verdict\uff0freason\uff0c\u518d\u5355\u72ec\u4f7f\u7528\u8fd4\u56de\u7684 continue recipe\u3002\u5ba1\u6838\u672c\u8eab\u4e0d\u8f93\u5165\u3002\u524d\u7f6e\u7ee7\u7eed\u4fdd\u7559\u539f job\uff0f\u5019\u9009\uff0c\u6d3e\u53d1\u4e00\u6b21\u524d\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u786c\u95e8\u7981\uff1b\u6587\u5b57\u7ed3\u679c\u7ee7\u7eed\u4e0d\u91cd\u8f93\uff0c\u540e\u7eed submit \u4ecd\u987b\u666e\u901a\u95e8\u7981\u53ca\u6838\u9a8c\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u7968\u636e\u6216\u5019\u9009\u5df2\u8fc7\u671f\u5c31\u505c\u62a5\u3002\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u6210\u529f\u6216\u91cd\u542f\uff0f\u91cd\u653e\u3002", + "+", + "+\u53d6\u6d88\u987b\u7ed3\u7b97\u5230\u771f\u5b9e\u7ec8\u6001\uff1b\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u6216\u6e05\u7406\u3002\u4ec5\u6309\u8fd4\u56de handle\uff0fprocess \u8eab\u4efd\u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff0c\u4ec5\u5904\u7406\u5df2\u6388\u6743\u9009\u62e9\u7684\u4fdd\u5b58\u5bf9\u8bdd\u6846\uff0c\u5e76\u6838\u5bf9 `window_closed`\u3002\u4fdd\u7559\u539f\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\uff0c\u9664\u975e\u5176\u5173\u95ed\u5df2\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u3002\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2\u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\uff0c\u4e4b\u540e\u624d\u91ca\u653e\u539f\u751f HTTP \u6240\u6709\u8005\u3002\u65e7\u6240\u6709\u8005\u672a\u7ed3\u7b97\u65f6\u8bfb\u53d6\u539f\u56de\u6267\u548c\u6e05\u7406\u8bca\u65ad\uff1b\u539f\u8fde\u63a5\u4e22\u5931\u65f6\u4fdd\u7559\u8bc1\u636e\u5e76\u505c\u6b62\uff0c\u4ea4\u64cd\u4f5c\u5458\u6062\u590d\uff0c\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\u3001\u9501\u6216\u4f1a\u8bdd\u8bb0\u5f55\u3002\u4efb\u52a1\u7ed3\u679c\u4e0e\u6e05\u7406\u5206\u522b\u62a5\u544a\u3002", + "+", + "+\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u72ec\u7acb\u8fd0\u884c\u7684 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\u518d\u7981\u7528\uff0f\u79fb\u9664\u3002\u8fde\u63a5\u5668 0.0.5 \u53ea\u6539\u6587\u6863\u4e0e\u5143\u6570\u636e\uff0c0.0.3\uff0f0.0.4 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002" + ] + }, + { + "after": "0c9901d2e99e985a919c09a7c6ca1e7cfb199c0a31614b6c01798bedcda6b1d0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,256 @@", + "+# Runtime session and receipt contract / \u4f1a\u8bdd\u4e0e\u56de\u6267\u5408\u540c", + "+", + "+## Prerequisites / \u4f7f\u7528\u524d\u63d0", + "+", + "+This resource connector uses an independently installed, operator-started,", + "+authenticated Windows loopback HTTP MCP Runtime. It never launches external", + "+code. The local connection token is distinct from provider API keys. This", + "+Skill supports the existing external API route only; configured model services", + "+receive recognition/review screenshots and task information and may charge for", + "+calls. Input requires explicit task authorization and Runtime opt-in;", + "+`--allow-local-input` also turns automatic risk interception off. Do not change", + "+profiles, thresholds or prompts to bypass a refusal.", + "+", + "+\u672c\u8d44\u6e90\u8fde\u63a5\u5668\u4f7f\u7528\u7528\u6237\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u3001\u5e26\u9274\u6743\u7684 Windows \u672c\u673a HTTP MCP Runtime\uff0c\u4e0d\u4f1a\u542f\u52a8\u5916\u90e8\u4ee3\u7801\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0e\u6a21\u578b API Key \u4e0d\u540c\u3002\u672c Skill \u4ec5\u652f\u6301\u539f\u6709 external API \u8def\u7ebf\uff1b\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\u4f1a\u63a5\u6536\u8bc6\u522b\uff0f\u5ba1\u6838\u622a\u56fe\u53ca\u4efb\u52a1\u4fe1\u606f\uff0c\u53ef\u80fd\u6309\u8c03\u7528\u6536\u8d39\u3002\u8f93\u5165\u987b\u6709\u660e\u786e\u4efb\u52a1\u6388\u6743\u53ca Runtime opt-in\uff1b`--allow-local-input` \u4e5f\u4f1a\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u4e0d\u80fd\u6539 profile\u3001\u9608\u503c\u6216\u63d0\u793a\u8bcd\u6765\u7ed5\u8fc7\u62d2\u7edd\u3002", + "+", + "+Recommend released Runtime 0.1.8. The minimum HTTP/pre-action contract is 0.1.6;", + "+the service must also supply field-review/continue. Runtime 0.1.5 has field", + "+review but no HTTP entry point. This connector does not qualify Runtime 0.1.7", + "+current-Agent mode through Amadeus. Manually inspect the MCP initialization", + "+version, authentication, discovered tools and active schemas before input:", + "+`instant_start`, `instant_status`, `instant_run`, `instant_result`,", + "+`instant_image`, `instant_stop`, and task-plan/original-command status and", + "+review/continue support. Logical names below are Runtime names, not guesses", + "+about Pi's namespaced/hashed tool names. Neither a version marker nor a later", + "+release proves compatibility; no automatic compatibility detector is provided.", + "+", + "+\u63a8\u8350\u5df2\u53d1\u5e03 Runtime 0.1.8\u3002\u6700\u4f4e HTTP\uff0f\u524d\u7f6e\u5ba1\u6838\u5408\u540c\u4e3a 0.1.6\uff0c\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6709\u6587\u5b57\u5ba1\u6838\u4f46\u6ca1\u6709 HTTP \u5165\u53e3\u3002\u672c\u8fde\u63a5\u5668\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u8f93\u5165\u524d\u4eba\u5de5\u68c0\u67e5 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u9274\u6743\u3001\u5df2\u53d1\u73b0\u5de5\u5177\u53ca\u6d3b\u52a8 schema\uff1a`instant_start`\u3001`instant_status`\u3001`instant_run`\u3001`instant_result`\u3001`instant_image`\u3001`instant_stop`\uff0c\u4ee5\u53ca task-plan\uff0f\u539f\u547d\u4ee4\u72b6\u6001\u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u652f\u6301\u3002\u4e0b\u6587\u903b\u8f91\u540d\u79f0\u662f Runtime \u540d\u79f0\uff0c\u4e0d\u80fd\u636e\u6b64\u731c Pi \u5e26\u547d\u540d\u7a7a\u95f4\uff0f\u54c8\u5e0c\u7684\u5de5\u5177\u540d\u3002\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\uff0c\u672c\u5305\u6ca1\u6709\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+", + "+## Start and select / \u542f\u52a8\u4e0e\u9009\u62e9", + "+", + "+Keep one live MCP connection and one input owner for the entire Work. Call the", + "+discovered `instant_start` once, then `instant_status` until ready. Vision and", + "+Decision profiles are preconfigured; do not call `prepare_models` or", + "+`learning_*`. A selected target is session state. Prepare known independent", + "+fields together, read healthy pending results promptly, and do not insert", + "+unrelated searches/documentation between action batches.", + "+", + "+\u5b8c\u6574 Work \u4fdd\u6301\u4e00\u4e2a\u6d3b\u52a8 MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u540e\uff0c\u53ea\u8c03\u7528\u4e00\u6b21 `instant_start`\uff0c\u518d\u67e5\u8be2 `instant_status` \u81f3 ready\u3002\u89c6\u89c9\u4e0e Decision profile \u5df2\u4e8b\u5148\u914d\u7f6e\uff0c\u4e0d\u8c03\u7528 `prepare_models` \u6216 `learning_*`\u3002\u9009\u4e2d\u76ee\u6807\u5c5e\u4e8e\u4f1a\u8bdd\u72b6\u6001\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u7ed3\u679c\uff0c\u4e0d\u5728\u52a8\u4f5c\u6279\u6b21\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\uff0f\u6587\u6863\u5de5\u4f5c\u3002", + "+", + "+For a new application/shortcut explicitly in scope, use the actual approved", + "+path. Read its returned ownership and exact handle/process_id. Example:", + "+", + "+\u5bf9\u4e8e\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u7684\u65b0\u5e94\u7528\uff0f\u5feb\u6377\u65b9\u5f0f\uff0c\u4f7f\u7528\u5b9e\u9645\u5df2\u6388\u6743\u8def\u5f84\uff0c\u8bfb\u53d6\u8fd4\u56de\u7684\u5f52\u5c5e\u53ca\u786e\u5207 handle\uff0fprocess_id\u3002\u4f8b\u5982\uff1a", + "+", + "+```json", + "+{\"request_id\":\"launch-001\",\"command\":{\"kind\":\"launch\",\"path\":\"C:\\\\approved-test\\\\application.lnk\",\"prefer_existing\":false},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+For an observed existing window, select its real identities with the shape", + "+`{\"kind\":\"select\",\"handle\":123,\"process_id\":456}`. Example integers are", + "+placeholders, not targets. A pre-existing/operator-prepared window does not", + "+become task-owned. Capture the selected target with **only** `kind`:", + "+", + "+\u5bf9\u4e8e\u5df2\u89c2\u5bdf\u5230\u7684\u73b0\u6709\u7a97\u53e3\uff0c\u6309 `{\"kind\":\"select\",\"handle\":123,\"process_id\":456}` \u5f62\u72b6\u586b\u771f\u5b9e\u8eab\u4efd\u3002\u793a\u4f8b\u6574\u6570\u53ea\u662f\u5360\u4f4d\u7b26\uff0c\u4e0d\u662f\u76ee\u6807\u3002\u73b0\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\u4e0d\u4f1a\u53d8\u6210\u672c\u4efb\u52a1\u81ea\u6709\u7a97\u53e3\u3002\u6355\u83b7\u5df2\u9009\u76ee\u6807\u65f6\uff0ccommand **\u53ea\u653e** `kind`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"capture-001\",\"command\":{\"kind\":\"capture\"},\"wait_ms\":10000,\"images\":\"after\"}", + "+```", + "+", + "+Do not put handle/process_id in `capture`. Use the original images bound to", + "+`instant_run`/`instant_result`; `instant_image` retrieves available images by", + "+the original request ID. A new capture is a new observation, not replacement", + "+evidence for an older action. Never mix old coordinates with current geometry.", + "+Pi may natively resize a complete bound frame for its model; do not claim that", + "+this is byte-identical original PNG delivery.", + "+", + "+`capture` \u4e0d\u653e handle\uff0fprocess_id\u3002\u4f7f\u7528 `instant_run`\uff0f`instant_result` \u7ed1\u5b9a\u7684\u539f\u56fe\uff0c`instant_image` \u6309\u539f request ID \u53d6\u53ef\u7528\u56fe\u50cf\u3002\u65b0 capture \u662f\u65b0\u89c2\u5bdf\uff0c\u4e0d\u80fd\u66ff\u6362\u65e7\u52a8\u4f5c\u8bc1\u636e\u3002\u4e0d\u628a\u65e7\u5750\u6807\u4e0e\u5f53\u524d\u51e0\u4f55\u6df7\u7528\u3002Pi \u53ef\u80fd\u539f\u751f\u7f29\u653e\u5b8c\u6574\u7ed1\u5b9a\u5e27\u518d\u4ea4\u7ed9\u6a21\u578b\uff0c\u4e0d\u80fd\u58f0\u79f0\u8fd9\u7b49\u4e8e\u539f PNG \u5b57\u8282\u76f8\u540c\u4ea4\u4ed8\u3002", + "+", + "+## Submit, wait and inspect / \u63d0\u4ea4\u3001\u7b49\u5f85\u4e0e\u6838\u5bf9", + "+", + "+Use a complete `task_plan` when the task calls for one; do not split it to evade", + "+checks. Follow the actual schema, explicit actions/verification and original", + "+run identity. There is no connector step cap; Runtime budgets, evidence binding", + "+and admission apply. `instant_run` accepts `request_id`, `command`, `wait_ms`,", + "+`detail` and `images`; keep receipt waits below the MCP client timeout. A", + "+running start receipt or asynchronous `instant_submit` acknowledgement is not", + "+completion. When pending, follow returned `next` and read `instant_result`", + "+with the **same** outer request ID:", + "+", + "+\u4efb\u52a1\u9700\u8981\u5b8c\u6574 `task_plan` \u65f6\u6309\u5b9e\u9645 schema \u4f7f\u7528\uff0c\u4e0d\u62c6\u5206\u6765\u89c4\u907f\u68c0\u67e5\u3002\u4fdd\u7559\u660e\u786e\u52a8\u4f5c\uff0f\u6838\u9a8c\u53ca\u539f run \u8eab\u4efd\u3002\u8fde\u63a5\u5668\u6ca1\u6709\u6b65\u6570\u4e0a\u9650\uff0cRuntime \u9884\u7b97\u3001\u8bc1\u636e\u7ed1\u5b9a\u4e0e\u51c6\u5165\u4ecd\u9002\u7528\u3002`instant_run` \u63a5\u6536 `request_id`\u3001`command`\u3001`wait_ms`\u3001`detail`\u3001`images`\uff0c\u56de\u6267\u7b49\u5f85\u987b\u4f4e\u4e8e MCP \u5ba2\u6237\u7aef\u8d85\u65f6\u3002running \u542f\u52a8\u56de\u6267\u6216\u5f02\u6b65 `instant_submit` \u786e\u8ba4\u4e0d\u662f\u5b8c\u6210\u3002\u5f85\u5b9a\u65f6\u6309\u8fd4\u56de `next`\uff0c\u7528**\u76f8\u540c**\u5916\u5c42 request ID \u8bfb\u53d6 `instant_result`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"launch-001\",\"detail\":\"full\",\"images\":\"both\"}", + "+```", + "+", + "+For `agent_command.v1`, retain command_id. Read its state under a new outer", + "+request ID; this read-only status request is not a replay. For a review packet,", + "+its `execution_request_id` is the command_id to query. The example value must", + "+be replaced by the real original identity:", + "+", + "+\u5bf9\u4e8e `agent_command.v1`\uff0c\u4fdd\u7559 command_id\uff1b\u7528\u65b0\u5916\u5c42 request ID \u8bfb\u72b6\u6001\uff0c\u8fd9\u662f\u53ea\u8bfb\u72b6\u6001\u8bf7\u6c42\uff0c\u4e0d\u662f\u91cd\u653e\u3002\u5ba1\u6838 packet \u7684 `execution_request_id` \u5c31\u662f\u8981\u67e5\u8be2\u7684 command_id\uff1b\u793a\u4f8b\u503c\u987b\u66ff\u6362\u4e3a\u771f\u5b9e\u539f\u8eab\u4efd\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"command\":{\"kind\":\"agent_command_status\",\"request\":{\"command_id\":\"original-execution-request-id\"}},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+Inspect `instant_status.task_plan_run` and original start/result receipts until", + "+a terminal outcome or explicit wait. Report completed steps, pending/review/", + "+failure and bound evidence, not merely tool success. `result_unknown`, timeout,", + "+`action_executed=true`, interrupted typing or a missing after image never prove", + "+input did not happen. Preserve original request/run/command IDs; do not resend", + "+input to extend a wait, start a competing plan or use another input route to", + "+hide uncertainty. Cancellation must reach its real terminal state.", + "+", + "+\u68c0\u67e5 `instant_status.task_plan_run` \u53ca\u539f\u542f\u52a8\uff0f\u7ed3\u679c\u56de\u6267\uff0c\u76f4\u5230\u7ec8\u6001\u6216\u660e\u786e\u7b49\u5f85\u3002\u62a5\u544a\u5b8c\u6210\u6b65\u9aa4\u3001\u5f85\u5b9a\uff0f\u5ba1\u6838\uff0f\u5931\u8d25\u4e0e\u7ed1\u5b9a\u8bc1\u636e\uff0c\u4e0d\u80fd\u53ea\u62a5\u5de5\u5177\u6210\u529f\u3002`result_unknown`\u3001\u8d85\u65f6\u3001`action_executed=true`\u3001\u8f93\u5165\u4e2d\u65ad\u6216\u7f3a\u5c11\u540e\u56fe\u4e0d\u80fd\u8bc1\u660e\u672a\u8f93\u5165\u3002\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID\uff0c\u4e0d\u91cd\u4ea4\u8f93\u5165\u5ef6\u957f\u7b49\u5f85\u3001\u4e0d\u53e6\u8d77\u7ade\u4e89\u8ba1\u5212\u3001\u4e0d\u7528\u5176\u4ed6\u8f93\u5165\u8def\u7ebf\u63a9\u76d6\u672a\u77e5\u3002\u53d6\u6d88\u987b\u5230\u771f\u5b9e\u7ec8\u6001\u3002", + "+", + "+## Main review / \u539f Agent \u5ba1\u6838", + "+", + "+Use the actual packet returned by the active service. A candidate before input", + "+and an already-entered field are different scopes. A handoff/version marker is", + "+not a ticket; do not fabricate hashes, wait IDs, verdicts or recipes.", + "+", + "+\u53ea\u4f7f\u7528\u6d3b\u52a8\u670d\u52a1\u5b9e\u9645\u8fd4\u56de\u7684 packet\u3002\u8f93\u5165\u524d\u5019\u9009\u4e0e\u5df2\u8f93\u5165\u5b57\u6bb5\u5c5e\u4e8e\u4e0d\u540c\u4f5c\u7528\u57df\uff0c\u4ea4\u63a5\uff0f\u7248\u672c\u6807\u8bb0\u4e0d\u662f\u7968\u636e\uff1b\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u7ed3\u8bba\u6216 recipe\u3002", + "+", + "+### Candidate before input / \u8f93\u5165\u524d\u5019\u9009", + "+", + "+A genuine `pre_action_review_packet.v1` parks the original job after", + "+authenticated Decision and ordinary-model nonpasses, without claiming native", + "+input. Read `packet.execution_request_id` through `agent_command_status` as", + "+above and wait for that status receipt. Retrieve that successful status", + "+request's bound original **before** image, using its actual request ID:", + "+", + "+\u771f\u5b9e `pre_action_review_packet.v1` \u5728\u5df2\u8ba4\u8bc1 Decision \u548c\u666e\u901a\u6a21\u578b\u5747\u672a\u901a\u8fc7\u540e\u6682\u505c\u539f job\uff0c\u4e0d\u58f0\u79f0\u5df2\u6d3e\u53d1\u539f\u751f\u8f93\u5165\u3002\u6309\u4e0a\u4f8b\u901a\u8fc7 `agent_command_status` \u8bfb\u53d6 `packet.execution_request_id` \u5e76\u7b49\u5230\u72b6\u6001\u56de\u6267\uff0c\u518d\u4ee5\u8be5\u6210\u529f\u72b6\u6001\u8bf7\u6c42\u7684\u5b9e\u9645 request ID \u53d6\u7ed1\u5b9a\u539f **before** \u56fe\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"before\"}", + "+```", + "+", + "+Inspect the original task target, candidate point/box and exact bound image.", + "+Do not replace it with a new capture or treat the locator description as proof.", + "+Copy `caller_controls.review.request` and add only the actual verdict/reason:", + "+success requires a specific visual reason that the candidate satisfies the", + "+task; otherwise record the genuine failure or cancel. Do not ask models again", + "+and again to obtain a pass.", + "+", + "+\u68c0\u67e5\u539f\u4efb\u52a1\u76ee\u6807\u3001\u5019\u9009\u70b9\uff0f\u6846\u4e0e\u786e\u5207\u7ed1\u5b9a\u56fe\u50cf\uff0c\u4e0d\u80fd\u6539\u7528\u65b0 capture\uff0c\u4e5f\u4e0d\u80fd\u628a\u5b9a\u4f4d\u63cf\u8ff0\u5f53\u8bc1\u660e\u3002\u590d\u5236 `caller_controls.review.request`\uff0c\u53ea\u6dfb\u52a0\u771f\u5b9e verdict\uff0freason\uff1asuccess \u5fc5\u987b\u6709\u5019\u9009\u6ee1\u8db3\u4efb\u52a1\u7684\u5177\u4f53\u53ef\u89c1\u4f9d\u636e\uff0c\u5426\u5219\u8bb0\u5f55\u771f\u5b9e\u5931\u8d25\u6216\u53d6\u6d88\u3002\u4e0d\u53cd\u590d\u95ee\u6a21\u578b\u6765\u51d1\u901a\u8fc7\u3002", + "+", + "+Submit review through the actual `task_plan` recipe. Review records Main's", + "+judgment and performs no click. Then use the **separately returned**", + "+`caller_controls.continue.request`, retaining the original run/wait. It resumes", + "+the original job/candidate after a fresh target-region check and existing", + "+input, identity, geometry, visibility and cancellation gates. A changed/expired", + "+candidate stops. Do not restart, replan or synthesize approval to repeat it.", + "+Original model nonpasses remain separate from Main's one-use approval.", + "+", + "+\u6309\u771f\u5b9e `task_plan` recipe \u63d0\u4ea4\u5ba1\u6838\uff0c\u5ba1\u6838\u4ec5\u8bb0\u5f55 Main \u5224\u65ad\uff0c\u4e0d\u70b9\u51fb\u3002\u4e4b\u540e\u4f7f\u7528**\u5355\u72ec\u8fd4\u56de**\u7684 `caller_controls.continue.request`\uff0c\u4fdd\u7559\u539f run\uff0fwait\u3002\u539f job\uff0f\u5019\u9009\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u8f93\u5165\u3001\u8eab\u4efd\u3001\u51e0\u4f55\u3001\u53ef\u89c1\u6027\u3001\u53d6\u6d88\u95e8\u7981\u540e\u624d\u7ee7\u7eed\u3002\u5019\u9009\u53d8\u5316\uff0f\u8fc7\u671f\u5c31\u505c\u6b62\uff0c\u4e0d\u91cd\u542f\u3001\u91cd\u89c4\u5212\u6216\u5408\u6210\u6279\u51c6\u6765\u91cd\u505a\uff1b\u539f\u6a21\u578b\u672a\u901a\u8fc7\u7ed3\u679c\u4e0e Main \u4e00\u6b21\u6027\u6279\u51c6\u5206\u522b\u4fdd\u7559\u3002", + "+", + "+### Entered field value / \u5df2\u8f93\u5165\u6587\u5b57", + "+", + "+A genuine `field_review_packet.v1` reviews text already entered after an", + "+authenticated dual-model rejection; the original execution is still pending.", + "+Read `packet.execution_request_id` through a new `agent_command_status` as", + "+above. After that status receipt, use its real request ID with", + "+`instant_image(view=\"after\")`:", + "+", + "+\u771f\u5b9e `field_review_packet.v1` \u5728\u5df2\u8ba4\u8bc1\u53cc\u6a21\u578b\u62d2\u7edd\u540e\u5ba1\u6838\u5df2\u7ecf\u8f93\u5165\u7684\u6587\u5b57\uff0c\u539f\u6267\u884c\u4ecd\u5f85\u5b9a\u3002\u6309\u4e0a\u4f8b\u7528\u65b0 `agent_command_status` \u8bfb\u53d6 `packet.execution_request_id`\uff0c\u72b6\u6001\u56de\u6267\u5b8c\u6210\u540e\uff0c\u7528\u5176\u771f\u5b9e request ID \u8c03\u7528 `instant_image(view=\"after\")`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"after\"}", + "+```", + "+", + "+Do not request an image directly on the unfinished execution, replace the bound", + "+after image with a new capture or replay text. Inspect the evidence bound to", + "+`caller_controls.review.request`, copy it and add only actual verdict/reason;", + "+do not add wait_id to review. Review only records Main's judgment. Separately", + "+submit the returned continue recipe for the original run/wait; the live thread", + "+resumes without retyping. Parameter recipes are not action authorization.", + "+", + "+\u4e0d\u80fd\u76f4\u63a5\u5411\u672a\u5b8c\u6210\u6267\u884c\u53d6\u56fe\u3001\u7528\u65b0 capture \u66ff\u6362\u7ed1\u5b9a\u540e\u56fe\u6216\u91cd\u8f93\u6587\u5b57\u3002\u68c0\u67e5 `caller_controls.review.request` \u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236\u5e76\u4ec5\u6dfb\u52a0\u771f\u5b9e verdict\uff0freason\uff0c\u4e0d\u5728 review \u6dfb\u52a0 wait_id\u3002\u5ba1\u6838\u53ea\u8bb0\u5f55 Main \u5224\u65ad\uff1b\u518d\u5355\u72ec\u63d0\u4ea4\u8fd4\u56de\u7684 continue recipe \u7eed\u539f run\uff0fwait\uff0c\u6d3b\u52a8\u7ebf\u7a0b\u4e0d\u91cd\u8f93\u3002\u53c2\u6570 recipe \u4e0d\u662f\u52a8\u4f5c\u6388\u6743\u3002", + "+", + "+Field review only confirms entered text. A submit suffix still needs its fresh", + "+target/candidate, normal input gates and result verification; field review does", + "+not prove search/submission success or bypass final-submit restrictions. If", + "+there is no genuine resumable review/continue recipe, retain the original", + "+failure and stop/report. Do not invent a ticket, restart/replay, relabel success", + "+or create a successor to repeat input. This package does not repair Runtime or", + "+claim new installed acceptance of its review behavior.", + "+", + "+\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\u53ea\u786e\u8ba4\u5df2\u8f93\u5165\u5185\u5bb9\u3002submit \u540e\u7f00\u4ecd\u987b\u65b0\u76ee\u6807\uff0f\u5019\u9009\u3001\u666e\u901a\u8f93\u5165\u95e8\u7981\u53ca\u7ed3\u679c\u6838\u9a8c\uff1b\u6587\u5b57\u5ba1\u6838\u4e0d\u8bc1\u660e\u641c\u7d22\uff0f\u63d0\u4ea4\u6210\u529f\uff0c\u4e5f\u4e0d\u7ed5\u8fc7\u6700\u7ec8\u63d0\u4ea4\u9650\u5236\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u5ba1\u6838\uff0f\u7ee7\u7eed recipe \u65f6\u4fdd\u7559\u539f\u5931\u8d25\u5e76\u505c\u62a5\uff0c\u4e0d\u4f2a\u9020\u7968\u636e\u3001\u91cd\u542f\uff0f\u91cd\u653e\u3001\u6539\u6807\u6210\u529f\u6216\u53e6\u9020\u540e\u7ee7\u6765\u91cd\u8f93\u3002\u672c\u5305\u4e0d\u4fee\u590d Runtime\uff0c\u4e5f\u4e0d\u58f0\u79f0\u65b0\u5b89\u88c5\u6001\u5ba1\u6838\u884c\u4e3a\u9a8c\u6536\u3002", + "+", + "+## Recovery / \u6062\u590d", + "+", + "+If HTTP is unreachable, check the independently started service console,", + "+loopback port and `/mcp` path. For 401, compare the private local tokens; do not", + "+substitute a provider key or expose secrets in logs. Host/Origin rejection", + "+requires a direct native MCP connection to `127.0.0.1`, not a proxy/browser.", + "+Missing tools/contracts require manual version/schema review before new input,", + "+not an invented fallback. Do not change running configuration until original", + "+input and cleanup have settled.", + "+", + "+HTTP \u4e0d\u53ef\u8fbe\u65f6\u6838\u5bf9\u72ec\u7acb\u670d\u52a1\u63a7\u5236\u53f0\u3001\u672c\u673a\u7aef\u53e3\u53ca `/mcp` \u8def\u5f84\u3002401 \u65f6\u6838\u5bf9\u79c1\u4e0b\u4fdd\u5b58\u7684\u672c\u673a\u5bc6\u94a5\uff0c\u4e0d\u7528\u6a21\u578b\u5bc6\u94a5\u66ff\u4ee3\uff0c\u4e5f\u4e0d\u5728\u65e5\u5fd7\u66b4\u9732\u5bc6\u94a5\u3002Host\uff0fOrigin \u62d2\u7edd\u65f6\u987b\u539f\u751f MCP \u76f4\u8fde `127.0.0.1`\uff0c\u4e0d\u7528\u4ee3\u7406\uff0f\u6d4f\u89c8\u5668\u3002\u5de5\u5177\uff0f\u5408\u540c\u7f3a\u5931\u65f6\u5148\u4eba\u5de5\u6838\u5bf9\u7248\u672c\uff0fschema\uff0c\u518d\u8003\u8651\u65b0\u8f93\u5165\uff0c\u4e0d\u80fd\u865a\u6784\u540e\u5907\u8def\u7ebf\u3002\u539f\u8f93\u5165\u4e0e\u6e05\u7406\u672a\u7ed3\u7b97\u524d\uff0c\u4e0d\u66f4\u6539\u8fd0\u884c\u914d\u7f6e\u3002", + "+", + "+A timeout/disconnect is not cancellation. If the original connection is still", + "+usable, inspect original receipts and use its actual cancel/status recipe,", + "+then wait for terminal settlement. An owner conflict or cleanup gate must be", + "+resolved through the original live Work. Inspect `cleanup_pending` diagnostics,", + "+resolve its specific blocker, then retry `instant_stop` for cleanup only and", + "+poll. If the original connection is unavailable, retain evidence and stop for", + "+operator/maintainer recovery; a new Work is not the old owner. Never steal", + "+ownership, repeatedly reconnect/restart, delete queues/locks/session records or", + "+replay unknown input to bypass a gate.", + "+", + "+\u8d85\u65f6\uff0f\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u3002\u539f\u8fde\u63a5\u4ecd\u53ef\u7528\u65f6\uff0c\u68c0\u67e5\u539f\u56de\u6267\uff0c\u4f7f\u7528\u5176\u771f\u5b9e cancel\uff0fstatus recipe \u5e76\u7b49\u5230\u7ec8\u6001\u3002owner \u51b2\u7a81\u6216\u6e05\u7406\u95e8\u7981\u987b\u7ecf\u539f\u6d3b\u52a8 Work \u5904\u7406\u3002\u8bfb\u53d6 `cleanup_pending` \u8bca\u65ad\uff0c\u89e3\u9664\u5177\u4f53\u963b\u585e\u540e\u8c03\u7528 `instant_stop` \u53ea\u91cd\u8bd5\u6e05\u7406\uff0c\u518d\u67e5\u8be2\u72b6\u6001\u3002\u539f\u8fde\u63a5\u4e0d\u53ef\u7528\u65f6\u4fdd\u7559\u8bc1\u636e\uff0c\u505c\u6b62\u5e76\u4ea4\u64cd\u4f5c\u5458\uff0f\u7ef4\u62a4\u8005\u6062\u590d\uff1b\u65b0 Work \u4e0d\u662f\u65e7 owner\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\uff0f\u9501\uff0f\u4f1a\u8bdd\u8bb0\u5f55\u3001\u4e0d\u91cd\u653e\u672a\u77e5\u8f93\u5165\u6765\u7ed5\u8fc7\u95e8\u7981\u3002", + "+", + "+## Owned-window and host cleanup / \u81ea\u6709\u7a97\u53e3\u4e0e\u5bbf\u4e3b\u6536\u5c3e", + "+", + "+After input settles, close only a task-launched window using the exact", + "+handle/process_id from its launch receipt. Example numbers are placeholders:", + "+", + "+\u8f93\u5165\u7ed3\u7b97\u540e\uff0c\u4ec5\u6309\u542f\u52a8\u56de\u6267\u7684\u786e\u5207 handle\uff0fprocess_id \u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff1b\u793a\u4f8b\u6570\u5b57\u53ea\u662f\u5360\u4f4d\u7b26\uff1a", + "+", + "+```json", + "+{\"request_id\":\"close-001\",\"command\":{\"kind\":\"close_launched_window\",\"handle\":123,\"process_id\":456},\"wait_ms\":10000,\"images\":\"after\"}", + "+```", + "+", + "+No `request.ownership` field is required. Preserve the original launch identity.", + "+If `window_close_pending` exposes an owned modal, inspect the current dialog", + "+through select/capture; closing does not authorize Save/Discard/Confirm. Act", + "+only on a choice explicitly in scope. Missing after evidence can mean the", + "+window closed: inspect the original receipt and verify disappearance rather", + "+than repeating a click. Verify `window_closed` for each owned window. Do not", + "+close unrelated/operator-prepared windows unless explicitly authorized.", + "+", + "+\u4e0d\u9700\u8981 `request.ownership` \u5b57\u6bb5\uff0c\u4fdd\u7559\u539f\u542f\u52a8\u8eab\u4efd\u3002`window_close_pending` \u663e\u793a\u81ea\u6709\u6a21\u6001\u6846\u65f6\uff0c\u901a\u8fc7 select\uff0fcapture \u67e5\u770b\u5f53\u524d\u5bf9\u8bdd\u6846\uff1b\u5173\u95ed\u8bf7\u6c42\u4e0d\u6388\u6743\u4fdd\u5b58\uff0f\u4e22\u5f03\uff0f\u786e\u8ba4\uff0c\u53ea\u6267\u884c\u660e\u786e\u5728\u8303\u56f4\u5185\u7684\u9009\u62e9\u3002\u7f3a\u540e\u56fe\u53ef\u80fd\u56e0\u4e3a\u7a97\u53e3\u5df2\u5173\uff0c\u5e94\u8bfb\u539f\u56de\u6267\u5e76\u6838\u5bf9\u6d88\u5931\uff0c\u4e0d\u80fd\u91cd\u590d\u70b9\u51fb\u3002\u9010\u4e00\u6838\u5b9e\u81ea\u6709\u7a97\u53e3 `window_closed`\uff1b\u6ca1\u6709\u660e\u786e\u6388\u6743\u5c31\u4e0d\u5173\u95ed\u65e0\u5173\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\u3002", + "+", + "+Call `instant_stop`, then poll `instant_status` until `host_alive=false`,", + "+`pending_ids=[]`, `cleanup_verified=true` and no unresolved cleanup error.", + "+`cleanup_pending`/stop acknowledgement is not terminal cleanup. Host cleanup", + "+does not prove application closure. Only after these conditions release the", + "+native HTTP owner so another Work can initialize. A transport disconnect is", + "+not task success, cancellation or cleanup; reopening a Pi conversation does", + "+not resume the old live MCP connection.", + "+", + "+\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2 `instant_status` \u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\u3002`cleanup_pending`\uff0fstop \u786e\u8ba4\u4e0d\u662f\u6e05\u7406\u7ec8\u6001\uff0c\u5bbf\u4e3b\u6e05\u7406\u4e0d\u8bc1\u660e\u5e94\u7528\u5df2\u5173\u3002\u6ee1\u8db3\u8fd9\u4e9b\u6761\u4ef6\u540e\u624d\u91ca\u653e\u539f\u751f HTTP owner\uff0c\u4f7f\u5176\u4ed6 Work \u521d\u59cb\u5316\u3002\u4f20\u8f93\u65ad\u7ebf\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3001\u53d6\u6d88\u6216\u6e05\u7406\uff1b\u91cd\u5f00 Pi \u5bf9\u8bdd\u4e0d\u4f1a\u6062\u590d\u65e7\u6d3b\u52a8 MCP \u8fde\u63a5\u3002", + "+", + "+Report task success/failure/unknown, original IDs and evidence, assistance or", + "+recovery, owned-window closure and host cleanup separately. Disabling/removing", + "+the connector releases the Host connection only; it does not shut down or", + "+uninstall the external Runtime or delete its data. Finish cleanup first; stop", + "+the independent daemon deliberately afterward if desired. Do not delete", + "+browser profiles, cookies, history, sessions or retained extension data.", + "+", + "+\u5206\u522b\u62a5\u544a\u4efb\u52a1\u6210\u529f\uff0f\u5931\u8d25\uff0f\u672a\u77e5\u3001\u539f ID \u4e0e\u8bc1\u636e\u3001\u534f\u52a9\uff0f\u6062\u590d\u3001\u81ea\u6709\u7a97\u53e3\u5173\u95ed\u53ca\u5bbf\u4e3b\u6e05\u7406\u3002\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u5916\u90e8 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\uff0c\u5982\u9700\u505c\u7528\u72ec\u7acb daemon \u518d\u660e\u786e\u5173\u95ed\u3002\u4e0d\u8981\u5220\u9664\u6d4f\u89c8\u5668 profile\u3001cookie\u3001\u5386\u53f2\u3001\u4f1a\u8bdd\u6216\u4fdd\u7559\u7684\u6269\u5c55\u6570\u636e\u3002", + "+", + "+## Evidence boundary / \u8bc1\u636e\u8fb9\u754c", + "+", + "+Connector 0.0.5 changes documentation/disclosure and metadata only; existing", + "+0.0.3/0.0.4 connection settings need no migration, and permissions/input gates", + "+do not change. It is author-published and pending independent store review.", + "+[Controlled installed Pi evidence](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+belongs to connector 0.0.4/Runtime 0.1.6; new 0.0.5/0.1.8 installed GUI acceptance", + "+remains pending. Read the separate [0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+for the exact scope of packaging/protocol checks. These layers do not establish", + "+independent approval, unattended accuracy or performance.", + "+", + "+\u8fde\u63a5\u5668 0.0.5 \u53ea\u6539\u6587\u6863\uff0f\u62ab\u9732\u4e0e\u5143\u6570\u636e\uff1b\u65e2\u6709 0.0.3\uff0f0.0.4 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u6743\u9650\uff0f\u8f93\u5165\u95e8\u7981\u4e0d\u53d8\u3002\u672c\u7248\u4e3a\u4f5c\u8005\u53d1\u884c\uff0c\u72ec\u7acb\u5546\u5e97\u5ba1\u6838\u5f85\u5b8c\u6210\u3002[\u53d7\u63a7\u5b89\u88c5\u6001 Pi \u8bc1\u636e](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)\u5c5e\u4e8e\u8fde\u63a5\u5668 0.0.4\uff0fRuntime 0.1.6\uff1b\u65b0 0.0.5\uff0f0.1.8 \u5b89\u88c5\u6001 GUI \u9a8c\u6536\u4ecd\u5f85\u5b8c\u6210\u3002\u6253\u5305\uff0f\u534f\u8bae\u68c0\u67e5\u7684\u786e\u5207\u8303\u56f4\u89c1\u5355\u72ec\u7684 [0.0.5 \u4f5c\u8005\u9a8c\u8bc1\u8bb0\u5f55](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)\uff0c\u8fd9\u4e9b\u5c42\u4e0d\u8bc1\u660e\u72ec\u7acb\u6279\u51c6\u3001\u65e0\u4eba\u51c6\u786e\u7387\u6216\u6027\u80fd\u3002" + ] + }, + { + "after": "4c1ac5cefd1183cdfb06a1e7db0c3f9414e2f03b91218560b64faa2435f61145", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/METADATA", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,240 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.5", + "+Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.md", + "+Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "+Requires-Python: <3.13,>=3.12", + "+Description-Content-Type: text/markdown", + "+License-File: LICENSE", + "+Dynamic: license-file", + "+", + "+# Amadeus Windows GUI Runtime Connector 0.0.5", + "+", + "+[\u7b80\u4f53\u4e2d\u6587](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "+", + "+This author-published connector connects Pi to a **separately installed and", + "+operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "+contains a connection declaration and execution Skill, not the Runtime.", + "+**Independent store review is pending; publication is not store approval.**", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.5 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.5)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.5-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/amadeus_agent_gui_runtime-0.0.5-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.5.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/extension-source-0.0.5.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/preflight.json)", + "+- [Recommended Runtime 0.1.8 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.8/AgentGUIRuntimeExecution-Setup.exe)", + "+ and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.8)", + "+", + "+Install the Runtime yourself on the Windows computer running Amadeus, then", + "+import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.8/README.md#quick-start).", + "+The connector and Runtime have independent version numbers and release tags;", + "+connector 0.0.5 does not update Runtime 0.1.8.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.8 + connector 0.0.5 | Recommended released Runtime and this connector. New installed GUI acceptance of this exact combination and independent store review remain pending. |", + "+| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It is not a new 0.0.5/0.1.8 test. |", + "+| Minimum Runtime contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply the field-review/continue contract. |", + "+| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "+| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "+| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "+", + "+The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "+Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+are separate from the [0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+and independent store review. Do not treat a release number or preflight success", + "+as proof of desktop execution.", + "+", + "+## What runs where", + "+", + "+| Component | Responsibility |", + "+| --- | --- |", + "+| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "+| Connector 0.0.5 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "+| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "+", + "+The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "+Python 3.12, retains supported Python 3.11 environments and requires **no local", + "+GPU or model-weight download**. Optional local-model setup has its separate", + "+Python 3.11 contract and is outside this connector's supported route. A shared", + "+Python minor version does not mean sharing a virtual environment; each", + "+component keeps its locked dependencies.", + "+", + "+## Start the local Runtime", + "+", + "+Install the Runtime first. Install `uv` if setup requests it. Copy", + "+`configs/vision-api-openai-luna.example.json` and", + "+`configs/decision-profile.visual-execution.example.json` to private profile", + "+files, then configure endpoints, models and task conditions according to the", + "+Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "+Screenshots and task information used for recognition/review are sent to the", + "+selected model services. Those services may charge for calls; this wheel", + "+includes no model service or API credit. Set each profile's `api_key_env` only", + "+in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "+put a provider key in connector settings.", + "+", + "+Generate and privately store a strong random URL-safe **local connection", + "+token** of 32\u2013256 characters (for example, using `secrets.token_urlsafe(32)` in", + "+your trusted Python environment). It is distinct from every model-provider API", + "+key. Prompt for secrets without echoing them, then start the service in a", + "+dedicated console:", + "+", + "+```powershell", + "+$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "+$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "+$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "+$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "+$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "+$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "+Set-Location -LiteralPath $RuntimeRoot", + "+& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "+& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "+ --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "+ --api-profile $VisionProfile --decision-profile $DecisionProfile", + "+```", + "+", + "+Run setup once; it may download locked dependencies. Its generated standalone", + "+stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "+to retain an existing supported API environment. An explicit different minor", + "+version requires a separate environment rather than an in-place replacement.", + "+Keep this console open while Amadeus uses the service.", + "+", + "+Input is disabled by default. For an explicitly authorized desktop task, append", + "+the existing `--allow-local-input` option to the final startup command. **This", + "+option also turns automatic risk interception off.** A token authenticates the", + "+connection; it does not authorize arbitrary clicks, submissions, payments or", + "+unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "+rejects browser Origin headers before MCP processing. Do not expose it through", + "+a public bind, tunnel or reverse proxy.", + "+", + "+## Install and connect", + "+", + "+1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "+ check its actual installed version against the recorded baseline above.", + "+2. Download and install the **0.0.5 wheel** in Settings \u2192 Extensions. Inspect its", + "+ identity and disclosure; installation starts disabled.", + "+3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "+ Use only your trusted local Runtime. Set secret `connection_token` to the", + "+ same local token supplied to the Runtime console, not a model API key.", + "+4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "+ and open a new Work session. Saved configuration does not prove it is loaded.", + "+5. Inspect the MCP initialization version and discovered tools, then read", + "+ `instant_status` before requesting input. Required tools are `instant_start`,", + "+ `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "+ `instant_stop`; their schemas must support the task-plan, original-command", + "+ status and review/continue operations described in the packaged Skill.", + "+ Check actual returned review recipes when that state occurs. This is a", + "+ manual check, not automatic compatibility certification.", + "+", + "+The connector cannot start, install, upgrade or reconfigure the external", + "+Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "+configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "+", + "+## A small reproducible task", + "+", + "+Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "+yourself. Before connecting Pi, manually prepare two empty folders in a new", + "+temporary root, for example:", + "+", + "+```powershell", + "+$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "+New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "+$FixtureRoot", + "+```", + "+", + "+Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "+actual path, and tell Pi to select that observed window. The prepared window is", + "+operator-owned; selecting it does not make it task-owned. Authorize only this", + "+task, with local input explicitly enabled:", + "+", + "+> In the prepared 7-Zip window at ``, use folder navigation", + "+> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "+> displayed path is `\\Documents\\Receipts`. Do not create,", + "+> rename, delete, edit, compress or extract anything, enter credentials, open", + "+> another location or close the operator-prepared window. Stop and report any", + "+> uncertain input or review without a valid ticket. After the task, settle the", + "+> original receipts and verify Runtime host cleanup.", + "+", + "+Acceptance requires four successful original navigation steps, bound image", + "+evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "+Report any Main review or assistance. Do not count launch acknowledgements,", + "+pending receipts or an uninspected screenshot as success. No external data write", + "+is authorized; the fixture is created manually beforehand. It is a", + "+navigation example, not compression/extraction or a performance benchmark.", + "+", + "+## Task, review and cleanup", + "+", + "+Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "+and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "+Keep one MCP connection and one input owner for the whole Work. Pending,", + "+unknown or interrupted input keeps its original request/run/command IDs; never", + "+replay it with a new ID to extend a wait.", + "+", + "+At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "+status request, inspect that status request's bound **before** image, then copy", + "+the returned review recipe and use its separately returned continue recipe.", + "+Review itself does not click. Continuation retains the original job/candidate", + "+and must pass a fresh target-region check and existing input gates before one", + "+dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "+already-entered text; continuation does not retype. A field review does not", + "+approve a candidate or prove a later submission succeeded. Without a genuine", + "+resumable ticket, or with stale evidence, stop and report the original state.", + "+", + "+Historical Pi evidence used a natively resized complete bound frame, not", + "+byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "+tests establish their stated recovery scope, not unattended accuracy, speed or", + "+new-combination acceptance.", + "+", + "+Close only task-launched windows using their returned identities, and verify", + "+`window_closed`; retain an operator-prepared window as in the example above.", + "+Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "+`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "+can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "+the connector changes its Host-side connection configuration; backend changes", + "+follow the Host's restart requirements. It does not stop or uninstall the external", + "+Runtime or delete its data. Finish cleanup before disabling/removing;", + "+stop the independent service deliberately afterward if desired.", + "+", + "+## Troubleshooting and recovery", + "+", + "+| Symptom | What to check and do |", + "+| --- | --- |", + "+| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "+| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "+| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "+| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "+| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "+| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "+| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "+", + "+The author-side source 0.1.8 check observed that a stopped session's maintenance", + "+registration was not immediately retired after two start/stop/release cycles in", + "+one HTTP service, although both hosts exited. The updater separately validates", + "+original settlement evidence and can retire settled registrations; this check", + "+did not reproduce a blocked update. Host cleanup and maintenance readiness are", + "+separate results. Retain original session evidence and request Runtime support", + "+if maintenance is refused; do not delete locks or registrations. See the", + "+[validation scope](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md).", + "+", + "+## Version changes and store status", + "+", + "+0.0.5 changes documentation/disclosure and package metadata. It does not change", + "+connection configuration, permissions, input execution or Runtime code. Existing", + "+0.0.3/0.0.4 `runtime_url` and `connection_token` settings need no migration.", + "+The historical 0.0.2 stdio launcher and immutable 0.0.4 artifacts remain intact.", + "+When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "+local-input settings at the independent service; explicitly fill the two", + "+connector settings. Never reinterpret an old provider key as a connection token.", + "+", + "+Author publication, wheel/preflight checks, protocol checks, installed GUI", + "+execution and independent catalog approval are separate results. This", + "+author-published 0.0.5 distribution is **pending independent store review**;", + "+it contains no author-written approval or fictional reviewer. Read the exact", + "+scope of each linked result; unrun layers remain pending.", + "+", + "+The connector code is ISC. Runtime and third-party licensing remain separate.", + "+The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "+payload." + ] + }, + { + "after": "d40a2c095b0382d5ee2a598594494d690c7f034aacd60b0c8ef81f698ebc54e3", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/RECORD", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=73LMIwheb-Du4gL4jrxcJGTHbLOb2X1Dh7KdjKXLmKw,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=XXuAaoUnllDnG_YjP62IOylItZzgoC92HzCNh-1YLus,2597", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=bDLeY0AjYxVRbtxFFHvgQe62fpej8gXH8Fkr4mv2k94,8101", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=DJkB0umemFqRnAmnxsoefPsZnAoxYUtsAXmL7c2msdA,20667", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/METADATA,sha256=TBrFzv0Rg837BqHn2ww_lBTi8DuRIYVgtk-qJDX2EUU,18045", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.5.dist-info/RECORD,," + ] + }, + { + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/WHEEL", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,5 @@", + "+Wheel-Version: 1.0", + "+Generator: setuptools (83.0.0)", + "+Root-Is-Purelib: true", + "+Tag: py3-none-any", + "+" + ] + }, + { + "after": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/entry_points.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,2 @@", + "+[amadeus.extensions]", + "+io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/licenses/LICENSE", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,15 @@", + "+ISC License", + "+", + "+Copyright (c) 2026 Desolate-Jix", + "+", + "+Permission to use, copy, modify, and/or distribute this software for any", + "+purpose with or without fee is hereby granted, provided that the above", + "+copyright notice and this permission notice appear in all copies.", + "+", + "+THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/top_level.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1 @@", + "+amadeus_agent_gui" + ] + } + ], + "next_step": "Attach this report to the submission PR; ownership, rights, runtime and independent review remain required.", + "not_checked": [ + "runtime", + "native_theme", + "remote_services", + "catalog_review" + ], + "ok": true, + "review_status": "not_reviewed" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/wheel-inventory.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/wheel-inventory.json new file mode 100644 index 0000000..ad3bb95 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.5/wheel-inventory.json @@ -0,0 +1,52 @@ +[ + { + "path": "amadeus_agent_gui/__init__.py", + "bytes": 106, + "sha256": "ef72cc23085e6fe0eee202f88ebc5c2464c76cb39bd97d4387b29d8ca5cb98ac" + }, + { + "path": "amadeus_agent_gui/amadeus-extension.json", + "bytes": 2597, + "sha256": "5d7b806a85279650e71bf6233fad883b2948b59ce0a02f761f308d87ed582eeb" + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "bytes": 8101, + "sha256": "6c32de6340236315516edc45147be041eeb67e97a3f205c7f0592be26bf693de" + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "bytes": 20667, + "sha256": "0c9901d2e99e985a919c09a7c6ca1e7cfb199c0a31614b6c01798bedcda6b1d0" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/licenses/LICENSE", + "bytes": 743, + "sha256": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/METADATA", + "bytes": 18045, + "sha256": "4c1ac5cefd1183cdfb06a1e7db0c3f9414e2f03b91218560b64faa2435f61145" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/WHEEL", + "bytes": 91, + "sha256": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/entry_points.txt", + "bytes": 76, + "sha256": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/top_level.txt", + "bytes": 18, + "sha256": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/RECORD", + "bytes": 1002, + "sha256": "d40a2c095b0382d5ee2a598594494d690c7f034aacd60b0c8ef81f698ebc54e3" + } +] diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/AUTHOR_VALIDATION.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/AUTHOR_VALIDATION.json new file mode 100644 index 0000000..4b7e55f --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/AUTHOR_VALIDATION.json @@ -0,0 +1,303 @@ +{ + "schema": "runtime_task_plan_settlement_acceptance.v1", + "document_state": "author_checks_completed_independent_catalog_review_pending", + "passed": true, + "published": false, + "versions": { + "runtime": "0.1.9", + "connector": "0.0.6", + "baseline_runtime": "0.1.8" + }, + "source_commit": "b0ddd8096bacd0d8710cc60736bce5b861032156", + "scope": { + "settlement_controls_covered": [ + "start", + "review", + "continue", + "cancel", + "status" + ], + "conservatively_unqualified_controls": { + "recover": "control_unsupported", + "observe": "control_unsupported", + "resume_pre_dispatch": "control_unsupported" + }, + "all_task_plans_qualified": false, + "claims": "Retained terminal input proof for the stated controls and reviewed evidence shapes; no new execution authority or replay permission." + }, + "runtime_artifacts": { + "update_target_digest": "6163b60b33eecbc4067a1951c0ae2f690385719e13d85c255159c11bbc161d8a", + "payload_files": 700, + "python_modules": 589, + "source_resource_inputs_verified": 698, + "source_component_sha256": { + "input_terminal_verifier": "0095abb39d504f4eedb4f5afb23823f9c69897f1b55ed9aa798fb9c57c8edbd5", + "task_plan_terminal_verifier": "cc72b7ff9fbb39fdb5232c34cc25dc008d3c44170dc2200281c32be041149d15" + }, + "assets": { + "AgentGUIRuntimeExecution-Setup.exe": { + "bytes": 4609536, + "sha256": "bde46f7a8c47b42388c8ac39916c5152cb0931528d171170c0d9b91e2bf5e972" + }, + "AgentGUIRuntimeExecution-update.zip": { + "bytes": 4452343, + "sha256": "0e54ee8037bc2104d5a1b0729ca3f4f14add54f53c7d5a0c0e186b60f67d52ff" + }, + "runtime-update.json": { + "bytes": 124114, + "sha256": "1b3e23c9da0921ccb44e7c77dc15585f798a5d702e4961ad622c4c18b6c9c123" + }, + "AgentGUIRuntimeExecution-Source-0.1.9.zip": { + "bytes": 4452343, + "sha256": "0e54ee8037bc2104d5a1b0729ca3f4f14add54f53c7d5a0c0e186b60f67d52ff" + }, + "execution-payload-manifest.json": { + "bytes": 96345, + "sha256": "8978f79b4788c3405a86b8f9d5f824a7be68e6c89a16c25b67ef8e1310fb7f93" + }, + "SOURCE_PYTHON_MANIFEST.json": { + "bytes": 103244, + "sha256": "0a41c39c1b12feb61936fb83287a2eeb56da14bb7dca5bb7537e0139dcbfd199" + }, + "LICENSE.txt": { + "bytes": 776, + "sha256": "5a4dc3799f96814e9f8b9bba5060bfc59327d90e480c093e5f18a53b8224116a" + } + }, + "package_verification_report_sha256": "fe720cb4c75151bf24dc7f1fa4262d7287f52b822451c2a7848507b5f43fd207", + "payload_installer_embedded_manifest_and_update_target_bound": true, + "all_payload_hashes_verified": true, + "native_check_install_uninstall_passed": true, + "isolated_source_and_installed_entrypoints_passed": true, + "source_inputs_unchanged_during_build_and_acceptance": true, + "signed": false + }, + "test_runs": { + "aggregation": "Runs are separate and may overlap; counts must not be added into a claimed distinct total.", + "affected_worker_final": { + "tests": 187, + "failures": 0, + "errors": 0, + "skipped": 0, + "passed": 187, + "seconds": 21.596, + "evidence_sha256": "2160b12c504ba8648ae6f9e7b075cb42b2a8851d79d690772847d43aeaa9ba44" + }, + "root_preflight_initial": { + "tests": 51, + "failures": 1, + "errors": 0, + "skipped": 0, + "passed": 50, + "seconds": 91.135, + "evidence_sha256": "c98d64f0890e0564095a2771b27998475dcb8be25fbf8836b183d751418d88d7" + }, + "root_preflight_targeted_repair": { + "tests": 1, + "failures": 0, + "errors": 0, + "skipped": 0, + "passed": 1, + "seconds": 16.626, + "evidence_sha256": "aa60dcbcd98244c4c1bd6e8301741baf4ac6fdff34f9bf3af355a780e16857a0" + }, + "update_and_installer_regression": { + "tests": 94, + "failures": 0, + "errors": 0, + "skipped": 0, + "passed": 94, + "seconds": 121.186, + "evidence_sha256": "9884e36a3980cdc8db44ab6031ff8c739d3ea50f2115f8fbd9b8756165a14ab1" + }, + "published_018_to_frozen_019_migration": { + "tests": 5, + "failures": 0, + "errors": 0, + "skipped": 0, + "passed": 5, + "seconds": 61.785, + "evidence_sha256": "a52129e79441526477a59be844c5d99113cbe7649b6a008ba829342658867838" + } + }, + "preserved_failures_and_repairs": [ + { + "case": "historical_task_plan_settlement", + "baseline_error": "session_input_kind_unknown", + "original_failures_preserved": true, + "intermediate_error": "session_input_orphan_grounding_execution", + "repair": "Bind retained task-plan state, controls, original dispatches and grounding evidence rather than treating process exit as input settlement." + }, + { + "case": "epoch_fixture_setup", + "initial": { + "tests": 4, + "failures": 0, + "errors": 4, + "skipped": 0, + "passed": 0, + "seconds": 1.894, + "evidence_sha256": "bace5006f9d20d3eee0945f8f1834cdf32979136bc721cee65f9dc00ac8edb1d" + }, + "classification": "test fixture setup failure", + "repair": "Keep synthetic fixture process identities isolated and use real current-process identity for installation ledger registration.", + "final_coverage": "Included in the affected worker final run." + }, + { + "case": "completed_batch_prior_focus_counterexample", + "initial": { + "tests": 1, + "failures": 1, + "errors": 0, + "skipped": 0, + "passed": 0, + "seconds": 0.257, + "evidence_sha256": "61c51377045e146998f0e796d0d6c8ae2e1b288f6d87efc2cc69464f2dded763" + }, + "initial_error": "session_input_task_plan_api_grounding_receipt_unproven", + "repair": "Bind the earlier authenticated focus dispatch within the completed batch, preserving its exact attempt index and receipt.", + "final_coverage": "The original counterexample and the terminal-plan cancel-no-op review case pass inside the affected worker final run." + }, + { + "case": "bundled_documentation_link", + "initial_passed": 50, + "initial_failed": 1, + "repair": "Include the linked maintained verification document in the execution payload.", + "targeted_retest_passed": 1, + "initial_output_preserved": true + } + ], + "retained_historical_sessions": [ + { + "case": "normal", + "baseline_error": "session_input_kind_unknown", + "input_terminal_settlement_verified": true, + "worker_catalog_file_count": 77, + "worker_catalog_sha256": "9bc6701829cb08581d32533bd3dbf7223840b0e6133ea5ac84abed5e5e9b39c7", + "catalog_file_map_before_sha256": "9bc6701829cb08581d32533bd3dbf7223840b0e6133ea5ac84abed5e5e9b39c7", + "catalog_file_map_after_sha256": "9bc6701829cb08581d32533bd3dbf7223840b0e6133ea5ac84abed5e5e9b39c7", + "migration_full_tree_file_count": 101, + "migration_full_tree_before_sha256": "4d0c4502654ec5d0117553d154b9202bd9594a9f0704082d2587ddcc0eba8de6", + "migration_full_tree_after_sha256": "4d0c4502654ec5d0117553d154b9202bd9594a9f0704082d2587ddcc0eba8de6", + "original_evidence_unchanged": true, + "read_only_worker_report_sha256": "ca673ddae5b2f8ab494b020fad0eed2cf09199043bc069feb40adc721f6848ae" + }, + { + "case": "cancel", + "baseline_error": "session_input_kind_unknown", + "input_terminal_settlement_verified": true, + "worker_catalog_file_count": 32, + "worker_catalog_sha256": "0457d051f3341aea9cebc68ae39c6e5b903de35b6ac5a80a8bd92bb0306cb28f", + "catalog_file_map_before_sha256": "0457d051f3341aea9cebc68ae39c6e5b903de35b6ac5a80a8bd92bb0306cb28f", + "catalog_file_map_after_sha256": "0457d051f3341aea9cebc68ae39c6e5b903de35b6ac5a80a8bd92bb0306cb28f", + "migration_full_tree_file_count": 40, + "migration_full_tree_before_sha256": "e468c3254370a099a0e7f31ce19305f271c5a03d3502c9ee75db4c0e48ba06a6", + "migration_full_tree_after_sha256": "e468c3254370a099a0e7f31ce19305f271c5a03d3502c9ee75db4c0e48ba06a6", + "original_evidence_unchanged": true, + "read_only_worker_report_sha256": "0717c372de021fe3b570199627a5a970231e1833201e3643ddad7967452c3318" + } + ], + "migration_acceptance": { + "passed": true, + "tests": 5, + "old_published_018_assets_pinned_by_sha256": true, + "old_018_settle_and_apply_refused_before_repair": true, + "manual_019_installer_refused_unresolved_ledger": true, + "new_verified_payload_cli_uses_old_installation_exclusive_lock": true, + "external_settle_registered_sessions": 2, + "external_settle_cleared_sessions": 2, + "coverage": "registered_sessions_only", + "legacy_sessions_proven": false, + "original_018_updater_applied_exact_019_target": true, + "fixed_installation_health_check_passed": true, + "negative_controls_refused": [ + "active_installation_lease", + "unknown_original_input", + "changed_original_receipt_binding", + "active_original_process" + ], + "registration_preserved_on_refusals": true, + "original_evidence_unchanged": true, + "user_data_and_environment_sentinels_unchanged": true, + "daily_installation_changed": false, + "desktop_used": false, + "model_used": false, + "network_used": false, + "acceptance_report_sha256": "cc84058ba3ed17c5a96beca541ee1ec824bca9c887911fc59aa6116301a40b9a" + }, + "connector_static_preflight": { + "version": "0.0.6", + "wheel_sha256": "e55b88de422d2a8bfcb0edd39331a4980d5753c25a2ec084b7b2abac2ee8c586", + "wheel_bytes": 25761, + "catalog_commit": "3c739e1a5c177d585db3ed63868725dae5cadc32", + "host_commit": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "requirements_sha256": "eca122787362dc7d39b309b931c5e17ce7fb0507f79524589f2978bb018c17e7", + "checks": { + "catalog_policy": "passed", + "human_and_runtime_review": "pending", + "package_format": "passed", + "target_host": "passed" + }, + "review_status": "not_reviewed", + "runtime_tests_run_by_static_checker": false, + "preflight_report_sha256": "c0dfbeacb3ab2ec67e653c4c226fa676fd503b6bb61cd1e0f9a07bf01c72814e", + "independent_catalog_approval": "pending" + }, + "new_pi_live_acceptance": { + "status": "passed_scoped_author_acceptance", + "passed": true, + "date": "2026-10-27 Pacific/Auckland", + "host_commit": "b6616a166925963ad6de4ab0a02f4eef2dccd657", + "pi_version": "1.2.0", + "connector_version": "0.0.6", + "runtime_version": "0.1.9", + "host_python": "3.12.14", + "runtime_python": "3.12.10", + "route": "native ExtensionInstaller -> shipping Electron/Pi Work -> authenticated HTTP MCP -> installed Runtime", + "task": "Documents -> Reports -> Up -> Receipts in a task-owned 7-Zip window", + "original_plan_starts": 1, + "logical_steps_completed": 4, + "final_original_receipts_verified": true, + "final_bound_image_read_by_original_pi": true, + "final_bound_image_independently_inspected_by_author": true, + "natural_double_rejection_main_review_triggered": false, + "test_refusal_proxy_used": false, + "owned_window_and_host_cleanup_verified": true, + "fresh_authenticated_initialize_status_delete_passed": true, + "fresh_client_delete_status": 200, + "original_pi_delete_status_captured": false, + "new_session_maintenance_settlement_verified": true, + "official_settlement": { + "settled": true, + "registered_sessions": 1, + "cleared_sessions": 1, + "coverage": "registered_sessions_only", + "legacy_sessions_proven": false + }, + "owned_payload_hashes_unchanged": 700, + "test_marker_hashes_unchanged": 2, + "provider_recovery_tools_invoked": false, + "daily_installation_or_host_settings_changed": false, + "http_parent_and_electron_final_exit_codes": { + "http_parent": 1, + "electron_parent": 1 + }, + "parent_shutdown_note": "Test controller termination returned Windows exit 1 after verified Runtime host/window cleanup and HTTP release; not called graceful daemon exit.", + "independent_maintainer_acceptance": "pending", + "performance_benchmark": false + }, + "publication_checks": { + "official_anonymous_download_verification": "not_yet_published_at_artifact_freeze", + "immutable_release_verification": "to_be_recorded_in_delivery_and_PR_after_publication", + "publisher_signature_verified": false, + "trust": "fixed_github_https_and_explicit_exact_sha256_confirmation_unsigned" + }, + "limitations": [ + "Tests use existing prepared Python dependencies, not fresh-machine setup.", + "Historical real sessions are reused read-only; migration tests do not establish new GUI task acceptance.", + "No universal task-plan compatibility, autonomous recovery or unattended execution claim.", + "No speed, accuracy, model-token or cost benefit is established.", + "A verification flag or process death alone never proves input settlement; active, unknown, changed or unsupported evidence remains refused.", + "Author publication, static preflight, installed execution and independent catalog approval remain separate outcomes." + ] +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/README.md b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/README.md new file mode 100644 index 0000000..1f80f47 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/README.md @@ -0,0 +1,100 @@ +# Author revision — Windows GUI Runtime Connector 0.0.6 + +Revision within [PR #11](https://github.com/Code-Amadeus/Amadeus-Extensions/pull/11), +addressing the [maintenance-settlement blocker](https://github.com/Code-Amadeus/Amadeus-Extensions/pull/11#issuecomment-6415025554). +The 0.0.5 and earlier candidate evidence and published bytes are retained. +These are author materials, **not final catalog approval or a live catalog entry**. + +## Exact immutable delivery + +- [Connector release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.6): + `amadeus_agent_gui_runtime-0.0.6-py3-none-any.whl`, **25,761 bytes**, + SHA-256 `e55b88de422d2a8bfcb0edd39331a4980d5753c25a2ec084b7b2abac2ee8c586`. +- [Source ZIP](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/extension-source-0.0.6.zip): + **49,929 bytes**, SHA-256 `61b9f0f6456ba6d08f0d8d69463a0969335228c7d646ea397bc1467ae258c048`. +- Source commit `b0ddd8096bacd0d8710cc60736bce5b861032156`; source repository and + [ISC license](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/LICENSE) + establish author/rights references for independent verification. +- Recommend repaired [Runtime 0.1.9](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.9). + Installer SHA-256 `bde46f7a8c47b42388c8ac39916c5152cb0931528d171170c0d9b91e2bf5e972`; + update target digest `6163b60b33eecbc4067a1951c0ae2f690385719e13d85c255159c11bbc161d8a`. +- All 11 Runtime and eight connector assets were anonymously downloaded and + matched frozen size/SHA-256 after publication. The installer remains unsigned. + +## Changes and installation commitment + +The resource-only HTTP MCP + Skill wheel updates its packaged Runtime +recommendation to 0.1.9 and moves mutable store-review wording out of the Skill. +Configuration keys, permissions, HTTP contributions and the recovery boundary +are unchanged. Skills are behavior-impacting operating instructions and remain +reviewed as such. Both disconnected recovery tools stay operator-only; +same-session Main screenshot review and explicit continuation remain supported. + +Users separately install/configure/start/stop/update Runtime. Use Windows x64, +a compatible Amadeus with native HTTP MCP and Skill support, and Host Python +3.12; Runtime supports the documented prepared API Python 3.12 or existing 3.11 +environment. No local GPU/model weights are required for the API route. Provider +API credentials stay in Runtime and may incur service charges; the connector's +secret `connection_token` is a separate local authentication secret. Configure +a trusted loopback `runtime_url`, bind both contributions to Pi and follow Host +enable/restart/new-Work requirements. Disabling/uninstalling this connector +does not stop/uninstall the external Runtime or delete its data. + +[English setup](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.md) +· [中文指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.zh-CN.md) +· [0.1.8 recovery procedure](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md) + +## Evidence and limits + +- Two offline wheel builds match byte-for-byte. Source, METADATA, all packaged + resources and RECORD match. Attached diff compares exact 0.0.5 candidate bytes, + not a previously approved package. +- Fixed catalog `3c739e1a5c177d585db3ed63868725dae5cadc32`, Host + `1840c8e4f646992ddaebea3139c8895f29743a8f`, Windows/CPython 3.12.10 preflight + passed format, Host and policy; `review_status=not_reviewed` and human/runtime + independent review remain pending. +- Runtime original plan/runner/receipt settlement: **187 affected checks** passed. + **94 updater/installer checks** and **five exact-release migration cases** passed. + Counts overlap and are not added as unique coverage. Original failures and + repaired test-harness failures remain retained; see `AUTHOR_VALIDATION.json`. +- Original 0.1.8 completion/cancellation evidence stays unchanged. In a separate + exact 0.1.8 installation, old `settle/apply` and direct installer refusal were + reproduced; the verified new release's external maintenance CLI settled the + original proofs, then the **original old updater** applied exact 0.1.9 bytes + and passed its fixed health check. Active lock/process, unknown input and + altered receipt cases still refused. No registration was manually deleted. +- Final **installed 0.0.6 + Runtime 0.1.9**: shipping Host `b6616a1`, Pi 1.2.0, + native ExtensionInstaller and real Work route completed Documents → Reports → + Up → Receipts, one original four-step plan. No refusal proxy or Main semantic + intervention occurred this round. Pi read the final bound image; author + inspection confirmed Receipts and its marker. Owned window/host cleanup, + fresh HTTP initialize/status/DELETE 200 and official `settle` passed, clearing + **one** proven registration. All 700 payload and two marker hashes stayed equal. + Controller termination of HTTP/Electron parents returned Windows exit 1 after + verified host/window cleanup; this is not called graceful daemon shutdown. +- `recover`, `observe`, `resume_pre_dispatch` task-plan settlement remains + conservatively unqualified. No new performance/general-accuracy claim; no new + certification of current-agent mode in Amadeus, physical power loss, every + migration, operator-prepared-window retention or disable-with-live-Runtime. + +Independent maintainers retain the earlier checks for their stated scope and +own remaining Host UI/credential-error and final installed acceptance. After +that they add real `catalog/packages` review facts **in this PR**, obtain +non-author approval on the final head, merge, then use a separate publication PR. +This revision edits only `review-candidates`, not approvals/index/policy/workflows. +Candidate-only green `publication:false` CI is not admission approval. + +## 简体中文 + +本轮在原 #11 返修,不覆盖旧版本。Runtime 0.1.9 修复原计划、runner 与输入回执的 +维护结算;连接器 0.0.6 更新包内推荐版本,配置/权限与恢复边界不变。两恢复工具 +仍交操作员,同会话 Main 看图审核后继续原任务的能力保留。 + +双离线构建及固定可信预检通过;187 项相关回归、94 项更新器/安装器检查和五项 +确切发行迁移用例分组记录,不累加。复现旧版拒绝后,用独立验真的新脚本受锁核验 +原证据,随后原更新器成功升级;活动/未知输入和篡改回执仍拒绝,未手删登记。 +最终安装态 Pi→HTTP→Runtime 四步导航完成,无拒绝注入、无 Main 语义接管;清理、 +重连释放及官方结算通过,验证清除 1 条登记,700 项载荷与两个测试文件摘要不变。 + +独立验收及商店批准仍由维护者负责;作者仅补候选材料,不自填正式收录事实,不把 +CI 通过当作上架。完整字节身份、已测范围与限制见附带报告及上述不可变发布链接。 diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/candidate-diff-from-0.0.5.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/candidate-diff-from-0.0.5.json new file mode 100644 index 0000000..4054389 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/candidate-diff-from-0.0.5.json @@ -0,0 +1,894 @@ +{ + "changes": [ + { + "after": "4f58649569d337b493144355bed934640927b516071b30055afb30fcdf247a25", + "before": "ef72cc23085e6fe0eee202f88ebc5c2464c76cb39bd97d4387b29d8ca5cb98ac", + "diff_truncated": false, + "path": "amadeus_agent_gui/__init__.py", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,3 +1,3 @@", + " \"\"\"Amadeus resource extension: native HTTP MCP declaration and execution Skill.\"\"\"", + " ", + "-__version__ = \"0.0.5\"", + "+__version__ = \"0.0.6\"" + ] + }, + { + "after": "81536805fea6ed16f40964a091cca9a9b1a865adb6d277da78899d72fdbca7d1", + "before": "5d7b806a85279650e71bf6233fad883b2948b59ce0a02f761f308d87ed582eeb", + "diff_truncated": false, + "path": "amadeus_agent_gui/amadeus-extension.json", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,16 +1,16 @@", + " {", + " \"schema\": \"amadeus.extension/v0\",", + " \"id\": \"io.github.desolate-jix.gui-runtime\",", + "- \"version\": \"0.0.5\",", + "+ \"version\": \"0.0.6\",", + " \"display_name\": {", + " \"en\": \"Windows GUI Runtime Connector\",", + " \"zh-CN\": \"Windows GUI Runtime \u8fde\u63a5\u5668\"", + " },", + " \"description\": {", + "- \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.8; require 0.1.6+ authenticated HTTP MCP and review/continue tools, with actual capability checks. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "- \"zh-CN\": \"\u8fde\u63a5\u5668\uff1a\u9700\u81ea\u884c\u5355\u72ec\u5b89\u88c5\u3001\u914d\u7f6e\u5e76\u542f\u52a8 Windows GUI Runtime\u3002\u5efa\u8bae\u4f7f\u7528 0.1.8\uff1b\u8981\u6c42\u5177\u5907 0.1.6 \u8d77\u63d0\u4f9b\u7684\u9274\u6743 HTTP MCP \u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u5de5\u5177\uff0c\u5e76\u6838\u5bf9\u5b9e\u9645\u80fd\u529b\u3002\u586b\u5199\u53ef\u4fe1\u672c\u673a runtime_url \u548c connection_token\uff0c\u5c06 MCP \u4e0e Skill \u7ed1\u5b9a Pi\u3002Runtime \u7531\u7528\u6237\u72ec\u7acb\u90e8\u7f72\u548c\u505c\u6b62\uff1b\u505c\u7528\uff0f\u5378\u8f7d\u672c\u8fde\u63a5\u5668\u4e0d\u4f1a\u505c\u6b62\u3001\u5378\u8f7d Runtime \u6216\u5220\u9664\u5176\u6570\u636e\u3002\u5916\u90e8\u6a21\u578b API \u53ef\u80fd\u6309\u7528\u91cf\u6536\u8d39\u3002\"", + "+ \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.9; require 0.1.6+ authenticated HTTP MCP and review/continue tools, with actual capability checks. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "+ \"zh-CN\": \"\u8fde\u63a5\u5668\uff1a\u9700\u81ea\u884c\u5355\u72ec\u5b89\u88c5\u3001\u914d\u7f6e\u5e76\u542f\u52a8 Windows GUI Runtime\u3002\u5efa\u8bae\u4f7f\u7528 0.1.9\uff1b\u8981\u6c42\u5177\u5907 0.1.6 \u8d77\u63d0\u4f9b\u7684\u9274\u6743 HTTP MCP \u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u5de5\u5177\uff0c\u5e76\u6838\u5bf9\u5b9e\u9645\u80fd\u529b\u3002\u586b\u5199\u53ef\u4fe1\u672c\u673a runtime_url \u548c connection_token\uff0c\u5c06 MCP \u4e0e Skill \u7ed1\u5b9a Pi\u3002Runtime \u7531\u7528\u6237\u72ec\u7acb\u90e8\u7f72\u548c\u505c\u6b62\uff1b\u505c\u7528\uff0f\u5378\u8f7d\u672c\u8fde\u63a5\u5668\u4e0d\u4f1a\u505c\u6b62\u3001\u5378\u8f7d Runtime \u6216\u5220\u9664\u5176\u6570\u636e\u3002\u5916\u90e8\u6a21\u578b API \u53ef\u80fd\u6309\u7528\u91cf\u6536\u8d39\u3002\"", + " },", + "- \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.md\",", + " \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + " \"author\": {", + " \"name\": \"Desolate-Jix\"" + ] + }, + { + "after": "254a1ceaa2e04c296fbd87035536bb5aba6ed6f18c6824c04d9ee3a143939c25", + "before": "6c32de6340236315516edc45147be041eeb67e97a3f205c7f0592be26bf693de", + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -8,12 +8,12 @@", + " Read `references/runtime.md` before using the connected Runtime. Discover its", + " actual tools and schemas; Pi names may be namespaced or hashed, so never invent", + " a tool name. This Skill supplies no tools, authority, executor, learning mode or", + "-shell route. Connector 0.0.5 is author-published; independent store review and", + "-new installed GUI acceptance with Runtime 0.1.8 remain pending. Historical", + "-0.0.4/0.1.6 controlled Pi evidence is a separate result.", + "+shell route. Connector 0.0.6 supplies installation and execution guidance;", + "+publication, independent store approval and installed GUI execution are separate", + "+results. Historical 0.0.4/0.1.6 controlled Pi evidence is a separate result.", + " ", + "-Use only the existing external API route. Recommend separately released", + "-Runtime 0.1.8; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + "+Use only the existing external API route. Recommend separately installed", + "+Runtime 0.1.9; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + " service must supply field review/continue. Runtime 0.1.5 has no HTTP entry point.", + " Runtime 0.1.7 current-Agent mode is not qualified through Amadeus here. Manually", + " check MCP initialization version, actual tools/schemas, authentication and", + "@@ -57,26 +57,33 @@", + " `host_alive=false`, `pending_ids=[]`, `cleanup_verified=true` and no unresolved", + " cleanup error. Only then release the native HTTP owner. If an old owner is", + " unresolved, inspect its original receipts and cleanup diagnostics. If the", + "-original connection is lost, retain evidence and stop for operator recovery;", + "-do not steal ownership, repeatedly reconnect/restart, or delete queues, locks", + "-or session records. Report task outcome separately from cleanup.", + "+original connection is lost, retain evidence and stop for operator recovery.", + "+After Pi disconnects or encounters an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` are operator-only;", + "+Pi must not use them to take over the old session or workflow. Main's", + "+bound-image review/continue path in the original live session remains available", + "+under its existing contracts. Do not steal ownership, repeatedly", + "+reconnect/restart, or delete queues, locks or session records. Report task", + "+outcome separately from cleanup. Runtime 0.1.9 fixes `task_plan` input-settlement", + "+validation; consult the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+for retained Runtime 0.1.8 evidence and the maintained operator entry point.", + " ", + " Disabling/removing the connector releases the Host connection only; it does", + " not stop/uninstall the independently running Runtime or delete its data. Finish", + "-cleanup before disabling/removing. Connector 0.0.5 changes documentation and", + "-metadata only; 0.0.3/0.0.4 connection settings need no migration and input gates", + "-and permissions do not change.", + "+cleanup before disabling/removing. Connector 0.0.6 updates guidance and metadata;", + "+Runtime fixes are delivered separately. 0.0.3/0.0.4/0.0.5 connection settings", + "+need no migration and input gates and permissions do not change.", + " ", + " ## \u7b80\u4f53\u4e2d\u6587", + " ", + "-\u4f7f\u7528\u8fde\u63a5\u7684 Runtime \u524d\u5148\u8bfb `references/runtime.md`\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u4e0e schema\uff1bPi \u540d\u79f0\u53ef\u80fd\u5e26\u547d\u540d\u7a7a\u95f4\u6216\u54c8\u5e0c\uff0c\u4e0d\u80fd\u731c\u5de5\u5177\u540d\u3002\u672c Skill \u4e0d\u63d0\u4f9b\u5de5\u5177\u3001\u6388\u6743\u3001\u6267\u884c\u5668\u3001\u5b66\u4e60\u6a21\u5f0f\u6216 shell \u8def\u7ebf\u3002\u8fde\u63a5\u5668 0.0.5 \u4e3a\u4f5c\u8005\u53d1\u884c\uff1b\u72ec\u7acb\u5546\u5e97\u5ba1\u6838\u53ca\u4e0e Runtime 0.1.8 \u7684\u65b0\u5b89\u88c5\u6001 GUI \u9a8c\u6536\u4ecd\u5f85\u5b8c\u6210\u3002\u5386\u53f2 0.0.4\uff0f0.1.6 \u53d7\u63a7 Pi \u8bc1\u636e\u5355\u72ec\u8bb0\u5f55\u3002", + "+\u4f7f\u7528\u8fde\u63a5\u7684 Runtime \u524d\u5148\u8bfb `references/runtime.md`\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u4e0e schema\uff1bPi \u540d\u79f0\u53ef\u80fd\u5e26\u547d\u540d\u7a7a\u95f4\u6216\u54c8\u5e0c\uff0c\u4e0d\u80fd\u731c\u5de5\u5177\u540d\u3002\u672c Skill \u4e0d\u63d0\u4f9b\u5de5\u5177\u3001\u6388\u6743\u3001\u6267\u884c\u5668\u3001\u5b66\u4e60\u6a21\u5f0f\u6216 shell \u8def\u7ebf\u3002\u8fde\u63a5\u5668 0.0.6 \u63d0\u4f9b\u5b89\u88c5\u4e0e\u6267\u884c\u6307\u5f15\uff1b\u4f5c\u8005\u53d1\u5e03\u3001\u72ec\u7acb\u5546\u5e97\u6279\u51c6\u53ca\u5b89\u88c5\u6001 GUI \u6267\u884c\u5206\u522b\u8bb0\u5f55\u3002\u5386\u53f2 0.0.4\uff0f0.1.6 \u53d7\u63a7 Pi \u8bc1\u636e\u5355\u72ec\u8bb0\u5f55\u3002", + " ", + "-\u4ec5\u4f7f\u7528\u539f\u6709 external API \u8def\u7ebf\u3002\u63a8\u8350\u72ec\u7acb\u53d1\u5e03\u7684 Runtime 0.1.8\uff1b\u6700\u4f4e 0.1.6 \u63d0\u4f9b HTTP\uff0f\u8f93\u5165\u524d\u5ba1\u6838\u5408\u540c\uff0c\u6d3b\u52a8\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6ca1\u6709 HTTP \u5165\u53e3\u3002\u6b64\u5904\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u4eba\u5de5\u6838\u5bf9 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u5b9e\u9645\u5de5\u5177\uff0fschema\u3001\u9274\u6743\u53ca\u5ba1\u6838\uff0f\u6e05\u7406\u80fd\u529b\uff1b\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\u3002\u672c\u5305\u4e0d\u63d0\u4f9b\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+\u4ec5\u4f7f\u7528\u539f\u6709 external API \u8def\u7ebf\u3002\u63a8\u8350\u72ec\u7acb\u5b89\u88c5\u7684 Runtime 0.1.9\uff1b\u6700\u4f4e 0.1.6 \u63d0\u4f9b HTTP\uff0f\u8f93\u5165\u524d\u5ba1\u6838\u5408\u540c\uff0c\u6d3b\u52a8\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6ca1\u6709 HTTP \u5165\u53e3\u3002\u6b64\u5904\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u4eba\u5de5\u6838\u5bf9 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u5b9e\u9645\u5de5\u5177\uff0fschema\u3001\u9274\u6743\u53ca\u5ba1\u6838\uff0f\u6e05\u7406\u80fd\u529b\uff1b\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\u3002\u672c\u5305\u4e0d\u63d0\u4f9b\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + " ", + " \u5b8c\u6574\u6388\u6743 Work \u4fdd\u6301\u4e00\u4e2a Runtime MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u64cd\u4f5c\u5458\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u5e26\u9274\u6743\u7684\u672c\u673a daemon\uff1b\u8fde\u63a5\u5668\u4e0d\u4f1a\u542f\u52a8 Python\u3001\u9009\u62e9\u53ef\u6267\u884c\u8def\u5f84\u3001\u63d0\u4f9b\u6a21\u578b\u5bc6\u94a5\u6216\u6539 profile\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0d\u662f\u6a21\u578b API Key\u3002\u622a\u56fe\uff0f\u4efb\u52a1\u4fe1\u606f\u53ef\u80fd\u53d1\u9001\u7ed9\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\uff0c\u670d\u52a1\u8c03\u7528\u53ef\u80fd\u6536\u8d39\u3002\u786e\u8ba4\u4efb\u52a1\u8303\u56f4\u53ca Runtime \u8f93\u5165\u6388\u6743\uff1a`--allow-local-input` \u542f\u7528\u8f93\u5165\uff0c\u540c\u65f6\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u5bbf\u4e3b\u53ea\u542f\u52a8\u4e00\u6b21\uff0c\u7b49\u5f85 ready\uff0c\u542f\u52a8\uff0f\u9009\u62e9\u76ee\u6807\u7a97\u53e3\uff0c\u4f7f\u7528\u5f53\u524d\u7ed1\u5b9a\u89c2\u5bdf\uff0c\u63d0\u4ea4\u4efb\u52a1\u5e76\u68c0\u67e5\u539f\u56de\u6267\u3002\u542f\u52a8\u6216\u5f02\u6b65\u786e\u8ba4\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u63d0\u524d\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u6279\u6b21\uff0c\u4e0d\u5728\u5176\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\u6216\u6587\u6863\u5de5\u4f5c\u3002", + " ", + " \u5f85\u5b9a\u3001\u672a\u77e5\u3001\u8d85\u65f6\u3001\u4e2d\u65ad\u8f93\u5165\u6216\u56fe\u50cf\u4e0d\u53ef\u7528\u65f6\uff0c\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID \u5e76\u68c0\u67e5\u72b6\u6001\u3002\u53ef\u80fd\u6267\u884c\u8fc7\u7684\u8f93\u5165\u4e0d\u80fd\u6362 ID \u91cd\u653e\uff0c\u4e5f\u4e0d\u80fd\u4e3a\u5ef6\u957f\u7b49\u5f85\u800c\u91cd\u4ea4\u3002\u771f\u5b9e `pre_action_review_packet.v1` \u6216 `field_review_packet.v1` \u51fa\u73b0\u65f6\uff0c\u7528\u65b0\u5916\u5c42 request ID \u548c `images=none` \u8c03\u7528 `agent_command_status`\uff0c`command_id=packet.execution_request_id`\u3002\u968f\u540e\u7528 `instant_image` \u53d6\u8be5\u72b6\u6001\u8bf7\u6c42\u7ed1\u5b9a\u56fe\u50cf\uff1a\u5019\u9009\u770b `view=before`\uff0c\u5df2\u8f93\u5165\u6587\u5b57\u770b `view=after`\u3002\u5bf9\u7167\u4efb\u52a1\u68c0\u67e5\u786e\u5207\u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236 `caller_controls.review.request`\uff0c\u4ec5\u6dfb\u52a0\u5b9e\u9645 verdict\uff0freason\uff0c\u518d\u5355\u72ec\u4f7f\u7528\u8fd4\u56de\u7684 continue recipe\u3002\u5ba1\u6838\u672c\u8eab\u4e0d\u8f93\u5165\u3002\u524d\u7f6e\u7ee7\u7eed\u4fdd\u7559\u539f job\uff0f\u5019\u9009\uff0c\u6d3e\u53d1\u4e00\u6b21\u524d\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u786c\u95e8\u7981\uff1b\u6587\u5b57\u7ed3\u679c\u7ee7\u7eed\u4e0d\u91cd\u8f93\uff0c\u540e\u7eed submit \u4ecd\u987b\u666e\u901a\u95e8\u7981\u53ca\u6838\u9a8c\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u7968\u636e\u6216\u5019\u9009\u5df2\u8fc7\u671f\u5c31\u505c\u62a5\u3002\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u6210\u529f\u6216\u91cd\u542f\uff0f\u91cd\u653e\u3002", + " ", + "-\u53d6\u6d88\u987b\u7ed3\u7b97\u5230\u771f\u5b9e\u7ec8\u6001\uff1b\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u6216\u6e05\u7406\u3002\u4ec5\u6309\u8fd4\u56de handle\uff0fprocess \u8eab\u4efd\u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff0c\u4ec5\u5904\u7406\u5df2\u6388\u6743\u9009\u62e9\u7684\u4fdd\u5b58\u5bf9\u8bdd\u6846\uff0c\u5e76\u6838\u5bf9 `window_closed`\u3002\u4fdd\u7559\u539f\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\uff0c\u9664\u975e\u5176\u5173\u95ed\u5df2\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u3002\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2\u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\uff0c\u4e4b\u540e\u624d\u91ca\u653e\u539f\u751f HTTP \u6240\u6709\u8005\u3002\u65e7\u6240\u6709\u8005\u672a\u7ed3\u7b97\u65f6\u8bfb\u53d6\u539f\u56de\u6267\u548c\u6e05\u7406\u8bca\u65ad\uff1b\u539f\u8fde\u63a5\u4e22\u5931\u65f6\u4fdd\u7559\u8bc1\u636e\u5e76\u505c\u6b62\uff0c\u4ea4\u64cd\u4f5c\u5458\u6062\u590d\uff0c\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\u3001\u9501\u6216\u4f1a\u8bdd\u8bb0\u5f55\u3002\u4efb\u52a1\u7ed3\u679c\u4e0e\u6e05\u7406\u5206\u522b\u62a5\u544a\u3002", + "+\u53d6\u6d88\u987b\u7ed3\u7b97\u5230\u771f\u5b9e\u7ec8\u6001\uff1b\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u6216\u6e05\u7406\u3002\u4ec5\u6309\u8fd4\u56de handle\uff0fprocess \u8eab\u4efd\u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff0c\u4ec5\u5904\u7406\u5df2\u6388\u6743\u9009\u62e9\u7684\u4fdd\u5b58\u5bf9\u8bdd\u6846\uff0c\u5e76\u6838\u5bf9 `window_closed`\u3002\u4fdd\u7559\u539f\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\uff0c\u9664\u975e\u5176\u5173\u95ed\u5df2\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u3002\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2\u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\uff0c\u4e4b\u540e\u624d\u91ca\u653e\u539f\u751f HTTP \u6240\u6709\u8005\u3002\u65e7\u6240\u6709\u8005\u672a\u7ed3\u7b97\u65f6\u8bfb\u53d6\u539f\u56de\u6267\u548c\u6e05\u7406\u8bca\u65ad\uff1b\u539f\u8fde\u63a5\u4e22\u5931\u65f6\u4fdd\u7559\u8bc1\u636e\u5e76\u505c\u6b62\uff0c\u4ea4\u64cd\u4f5c\u5458\u6062\u590d\u3002Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview`\u3001`instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528\uff0cPi \u4e0d\u5f97\u7528\u5b83\u4eec\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u5de5\u4f5c\u6d41\u3002\u539f\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\uff0f\u7ee7\u7eed\u7684\u8def\u5f84\u4ecd\u6309\u65e2\u6709\u5408\u540c\u4fdd\u7559\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\u3001\u9501\u6216\u4f1a\u8bdd\u8bb0\u5f55\u3002\u4efb\u52a1\u7ed3\u679c\u4e0e\u6e05\u7406\u5206\u522b\u62a5\u544a\u3002Runtime 0.1.9 \u4fee\u590d `task_plan` \u8f93\u5165\u7ed3\u7b97\u9a8c\u8bc1\uff1b\u4fdd\u7559\u7684 Runtime 0.1.8 \u8bc1\u636e\u53ca\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u89c1[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u3002", + " ", + "-\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u72ec\u7acb\u8fd0\u884c\u7684 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\u518d\u7981\u7528\uff0f\u79fb\u9664\u3002\u8fde\u63a5\u5668 0.0.5 \u53ea\u6539\u6587\u6863\u4e0e\u5143\u6570\u636e\uff0c0.0.3\uff0f0.0.4 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002", + "+\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u72ec\u7acb\u8fd0\u884c\u7684 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\u518d\u7981\u7528\uff0f\u79fb\u9664\u3002\u8fde\u63a5\u5668 0.0.6 \u66f4\u65b0\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b0.0.3\uff0f0.0.4\uff0f0.0.5 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002" + ] + }, + { + "after": "ad5908a5be02cd78318becab8d43682a348d7d8d4e1fe36ecfdb297537028ad4", + "before": "0c9901d2e99e985a919c09a7c6ca1e7cfb199c0a31614b6c01798bedcda6b1d0", + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -13,7 +13,7 @@", + " ", + " \u672c\u8d44\u6e90\u8fde\u63a5\u5668\u4f7f\u7528\u7528\u6237\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u3001\u5e26\u9274\u6743\u7684 Windows \u672c\u673a HTTP MCP Runtime\uff0c\u4e0d\u4f1a\u542f\u52a8\u5916\u90e8\u4ee3\u7801\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0e\u6a21\u578b API Key \u4e0d\u540c\u3002\u672c Skill \u4ec5\u652f\u6301\u539f\u6709 external API \u8def\u7ebf\uff1b\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\u4f1a\u63a5\u6536\u8bc6\u522b\uff0f\u5ba1\u6838\u622a\u56fe\u53ca\u4efb\u52a1\u4fe1\u606f\uff0c\u53ef\u80fd\u6309\u8c03\u7528\u6536\u8d39\u3002\u8f93\u5165\u987b\u6709\u660e\u786e\u4efb\u52a1\u6388\u6743\u53ca Runtime opt-in\uff1b`--allow-local-input` \u4e5f\u4f1a\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u4e0d\u80fd\u6539 profile\u3001\u9608\u503c\u6216\u63d0\u793a\u8bcd\u6765\u7ed5\u8fc7\u62d2\u7edd\u3002", + " ", + "-Recommend released Runtime 0.1.8. The minimum HTTP/pre-action contract is 0.1.6;", + "+Recommend Runtime 0.1.9. The minimum HTTP/pre-action contract is 0.1.6;", + " the service must also supply field-review/continue. Runtime 0.1.5 has field", + " review but no HTTP entry point. This connector does not qualify Runtime 0.1.7", + " current-Agent mode through Amadeus. Manually inspect the MCP initialization", + "@@ -24,7 +24,7 @@", + " about Pi's namespaced/hashed tool names. Neither a version marker nor a later", + " release proves compatibility; no automatic compatibility detector is provided.", + " ", + "-\u63a8\u8350\u5df2\u53d1\u5e03 Runtime 0.1.8\u3002\u6700\u4f4e HTTP\uff0f\u524d\u7f6e\u5ba1\u6838\u5408\u540c\u4e3a 0.1.6\uff0c\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6709\u6587\u5b57\u5ba1\u6838\u4f46\u6ca1\u6709 HTTP \u5165\u53e3\u3002\u672c\u8fde\u63a5\u5668\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u8f93\u5165\u524d\u4eba\u5de5\u68c0\u67e5 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u9274\u6743\u3001\u5df2\u53d1\u73b0\u5de5\u5177\u53ca\u6d3b\u52a8 schema\uff1a`instant_start`\u3001`instant_status`\u3001`instant_run`\u3001`instant_result`\u3001`instant_image`\u3001`instant_stop`\uff0c\u4ee5\u53ca task-plan\uff0f\u539f\u547d\u4ee4\u72b6\u6001\u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u652f\u6301\u3002\u4e0b\u6587\u903b\u8f91\u540d\u79f0\u662f Runtime \u540d\u79f0\uff0c\u4e0d\u80fd\u636e\u6b64\u731c Pi \u5e26\u547d\u540d\u7a7a\u95f4\uff0f\u54c8\u5e0c\u7684\u5de5\u5177\u540d\u3002\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\uff0c\u672c\u5305\u6ca1\u6709\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+\u63a8\u8350 Runtime 0.1.9\u3002\u6700\u4f4e HTTP\uff0f\u524d\u7f6e\u5ba1\u6838\u5408\u540c\u4e3a 0.1.6\uff0c\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6709\u6587\u5b57\u5ba1\u6838\u4f46\u6ca1\u6709 HTTP \u5165\u53e3\u3002\u672c\u8fde\u63a5\u5668\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u8f93\u5165\u524d\u4eba\u5de5\u68c0\u67e5 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u9274\u6743\u3001\u5df2\u53d1\u73b0\u5de5\u5177\u53ca\u6d3b\u52a8 schema\uff1a`instant_start`\u3001`instant_status`\u3001`instant_run`\u3001`instant_result`\u3001`instant_image`\u3001`instant_stop`\uff0c\u4ee5\u53ca task-plan\uff0f\u539f\u547d\u4ee4\u72b6\u6001\u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u652f\u6301\u3002\u4e0b\u6587\u903b\u8f91\u540d\u79f0\u662f Runtime \u540d\u79f0\uff0c\u4e0d\u80fd\u636e\u6b64\u731c Pi \u5e26\u547d\u540d\u7a7a\u95f4\uff0f\u54c8\u5e0c\u7684\u5de5\u5177\u540d\u3002\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\uff0c\u672c\u5305\u6ca1\u6709\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + " ", + " ## Start and select / \u542f\u52a8\u4e0e\u9009\u62e9", + " ", + "@@ -202,6 +202,18 @@", + " ", + " \u8d85\u65f6\uff0f\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u3002\u539f\u8fde\u63a5\u4ecd\u53ef\u7528\u65f6\uff0c\u68c0\u67e5\u539f\u56de\u6267\uff0c\u4f7f\u7528\u5176\u771f\u5b9e cancel\uff0fstatus recipe \u5e76\u7b49\u5230\u7ec8\u6001\u3002owner \u51b2\u7a81\u6216\u6e05\u7406\u95e8\u7981\u987b\u7ecf\u539f\u6d3b\u52a8 Work \u5904\u7406\u3002\u8bfb\u53d6 `cleanup_pending` \u8bca\u65ad\uff0c\u89e3\u9664\u5177\u4f53\u963b\u585e\u540e\u8c03\u7528 `instant_stop` \u53ea\u91cd\u8bd5\u6e05\u7406\uff0c\u518d\u67e5\u8be2\u72b6\u6001\u3002\u539f\u8fde\u63a5\u4e0d\u53ef\u7528\u65f6\u4fdd\u7559\u8bc1\u636e\uff0c\u505c\u6b62\u5e76\u4ea4\u64cd\u4f5c\u5458\uff0f\u7ef4\u62a4\u8005\u6062\u590d\uff1b\u65b0 Work \u4e0d\u662f\u65e7 owner\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\uff0f\u9501\uff0f\u4f1a\u8bdd\u8bb0\u5f55\u3001\u4e0d\u91cd\u653e\u672a\u77e5\u8f93\u5165\u6765\u7ed5\u8fc7\u95e8\u7981\u3002", + " ", + "+After Pi disconnects or encounters an owner conflict,", + "+`instant_recovery_preview` and `instant_recover_session` are both", + "+**operator-only**. Pi must not call either tool to take over the old session or", + "+resume its workflow. Main's bound-image review and continuation of the original", + "+job in the same live session remain supported under the contracts above.", + "+Runtime 0.1.9 fixes `task_plan` input-settlement validation. For retained Runtime", + "+0.1.8 evidence, follow the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+and its maintained operator entry point. Keep original receipts and diagnostics;", + "+unknown settlement does not prove that no input occurred or authorize replay.", + "+", + "+Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview` \u548c `instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u5747**\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528**\u3002Pi \u4e0d\u5f97\u8c03\u7528\u4efb\u4e00\u5de5\u5177\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u7eed\u8dd1\u5176\u5de5\u4f5c\u6d41\u3002\u540c\u4e00\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\u5e76\u7ee7\u7eed\u539f job \u7684\u8def\u5f84\u4ecd\u6309\u4e0a\u6587\u5408\u540c\u4fdd\u7559\u3002Runtime 0.1.9 \u4fee\u590d `task_plan` \u8f93\u5165\u7ed3\u7b97\u9a8c\u8bc1\uff1b\u4fdd\u7559\u7684 Runtime 0.1.8 \u8bc1\u636e\u987b\u6309[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u53ca\u5176\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u5904\u7406\u3002\u4fdd\u7559\u539f\u56de\u6267\u548c\u8bca\u65ad\uff1b\u672a\u77e5\u7ed3\u7b97\u65e2\u4e0d\u80fd\u8bc1\u660e\u6ca1\u6709\u6267\u884c\u8f93\u5165\uff0c\u4e5f\u4e0d\u6388\u6743\u91cd\u653e\u3002", + "+", + " ## Owned-window and host cleanup / \u81ea\u6709\u7a97\u53e3\u4e0e\u5bbf\u4e3b\u6536\u5c3e", + " ", + " After input settles, close only a task-launched window using the exact", + "@@ -244,13 +256,14 @@", + " ", + " ## Evidence boundary / \u8bc1\u636e\u8fb9\u754c", + " ", + "-Connector 0.0.5 changes documentation/disclosure and metadata only; existing", + "-0.0.3/0.0.4 connection settings need no migration, and permissions/input gates", + "-do not change. It is author-published and pending independent store review.", + "+Connector 0.0.6 updates installation/recovery guidance and metadata; Runtime", + "+fixes are delivered separately. Existing 0.0.3/0.0.4/0.0.5 connection settings", + "+need no migration, and permissions/input gates do not change.", + " [Controlled installed Pi evidence](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "-belongs to connector 0.0.4/Runtime 0.1.6; new 0.0.5/0.1.8 installed GUI acceptance", + "-remains pending. Read the separate [0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "-for the exact scope of packaging/protocol checks. These layers do not establish", + "-independent approval, unattended accuracy or performance.", + "-", + "-\u8fde\u63a5\u5668 0.0.5 \u53ea\u6539\u6587\u6863\uff0f\u62ab\u9732\u4e0e\u5143\u6570\u636e\uff1b\u65e2\u6709 0.0.3\uff0f0.0.4 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u6743\u9650\uff0f\u8f93\u5165\u95e8\u7981\u4e0d\u53d8\u3002\u672c\u7248\u4e3a\u4f5c\u8005\u53d1\u884c\uff0c\u72ec\u7acb\u5546\u5e97\u5ba1\u6838\u5f85\u5b8c\u6210\u3002[\u53d7\u63a7\u5b89\u88c5\u6001 Pi \u8bc1\u636e](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)\u5c5e\u4e8e\u8fde\u63a5\u5668 0.0.4\uff0fRuntime 0.1.6\uff1b\u65b0 0.0.5\uff0f0.1.8 \u5b89\u88c5\u6001 GUI \u9a8c\u6536\u4ecd\u5f85\u5b8c\u6210\u3002\u6253\u5305\uff0f\u534f\u8bae\u68c0\u67e5\u7684\u786e\u5207\u8303\u56f4\u89c1\u5355\u72ec\u7684 [0.0.5 \u4f5c\u8005\u9a8c\u8bc1\u8bb0\u5f55](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)\uff0c\u8fd9\u4e9b\u5c42\u4e0d\u8bc1\u660e\u72ec\u7acb\u6279\u51c6\u3001\u65e0\u4eba\u51c6\u786e\u7387\u6216\u6027\u80fd\u3002", + "+belongs to connector 0.0.4/Runtime 0.1.6; it does not validate the", + "+0.0.6/0.1.9 combination. Read the separate [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+for its exact scope of packaging/protocol checks. Publication, author checks,", + "+installed GUI execution and independent approval are separate results; these", + "+records do not establish unattended accuracy or performance.", + "+", + "+\u8fde\u63a5\u5668 0.0.6 \u66f4\u65b0\u5b89\u88c5\uff0f\u6062\u590d\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b\u65e2\u6709 0.0.3\uff0f0.0.4\uff0f0.0.5 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u6743\u9650\uff0f\u8f93\u5165\u95e8\u7981\u4e0d\u53d8\u3002[\u53d7\u63a7\u5b89\u88c5\u6001 Pi \u8bc1\u636e](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)\u5c5e\u4e8e\u8fde\u63a5\u5668 0.0.4\uff0fRuntime 0.1.6\uff0c\u4e0d\u9a8c\u8bc1 0.0.6\uff0f0.1.9 \u7ec4\u5408\u3002\u6253\u5305\uff0f\u534f\u8bae\u68c0\u67e5\u7684\u786e\u5207\u8303\u56f4\u89c1\u5355\u72ec\u7684 [0.0.5 \u5386\u53f2\u4f5c\u8005\u9a8c\u8bc1\u8bb0\u5f55](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)\u3002\u4f5c\u8005\u53d1\u5e03\u3001\u4f5c\u8005\u68c0\u67e5\u3001\u5b89\u88c5\u6001 GUI \u6267\u884c\u53ca\u72ec\u7acb\u6279\u51c6\u5206\u522b\u8bb0\u5f55\uff1b\u8fd9\u4e9b\u8bb0\u5f55\u4e0d\u8bc1\u660e\u65e0\u4eba\u51c6\u786e\u7387\u6216\u6027\u80fd\u3002" + ] + }, + { + "after": null, + "before": "4c1ac5cefd1183cdfb06a1e7db0c3f9414e2f03b91218560b64faa2435f61145", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/METADATA", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,240 +0,0 @@", + "-Metadata-Version: 2.4", + "-Name: amadeus-agent-gui-runtime", + "-Version: 0.0.5", + "-Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "-License-Expression: ISC", + "-Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.md", + "-Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "-Requires-Python: <3.13,>=3.12", + "-Description-Content-Type: text/markdown", + "-License-File: LICENSE", + "-Dynamic: license-file", + "-", + "-# Amadeus Windows GUI Runtime Connector 0.0.5", + "-", + "-[\u7b80\u4f53\u4e2d\u6587](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "-", + "-This author-published connector connects Pi to a **separately installed and", + "-operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "-contains a connection declaration and execution Skill, not the Runtime.", + "-**Independent store review is pending; publication is not store approval.**", + "-", + "-## Downloads and compatibility", + "-", + "-- [Connector 0.0.5 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.5)", + "-- [Connector wheel: amadeus_agent_gui_runtime-0.0.5-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/amadeus_agent_gui_runtime-0.0.5-py3-none-any.whl)", + "-- [Connector source: extension-source-0.0.5.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/extension-source-0.0.5.zip)", + "-- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.5/preflight.json)", + "-- [Recommended Runtime 0.1.8 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.8/AgentGUIRuntimeExecution-Setup.exe)", + "- and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.8)", + "-", + "-Install the Runtime yourself on the Windows computer running Amadeus, then", + "-import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.8/README.md#quick-start).", + "-The connector and Runtime have independent version numbers and release tags;", + "-connector 0.0.5 does not update Runtime 0.1.8.", + "-", + "-| Combination or capability | Supported scope and evidence |", + "-| --- | --- |", + "-| Runtime 0.1.8 + connector 0.0.5 | Recommended released Runtime and this connector. New installed GUI acceptance of this exact combination and independent store review remain pending. |", + "-| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It is not a new 0.0.5/0.1.8 test. |", + "-| Minimum Runtime contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply the field-review/continue contract. |", + "-| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "-| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "-| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "-", + "-The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "-Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "-are separate from the [0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "-and independent store review. Do not treat a release number or preflight success", + "-as proof of desktop execution.", + "-", + "-## What runs where", + "-", + "-| Component | Responsibility |", + "-| --- | --- |", + "-| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "-| Connector 0.0.5 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "-| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "-", + "-The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "-Python 3.12, retains supported Python 3.11 environments and requires **no local", + "-GPU or model-weight download**. Optional local-model setup has its separate", + "-Python 3.11 contract and is outside this connector's supported route. A shared", + "-Python minor version does not mean sharing a virtual environment; each", + "-component keeps its locked dependencies.", + "-", + "-## Start the local Runtime", + "-", + "-Install the Runtime first. Install `uv` if setup requests it. Copy", + "-`configs/vision-api-openai-luna.example.json` and", + "-`configs/decision-profile.visual-execution.example.json` to private profile", + "-files, then configure endpoints, models and task conditions according to the", + "-Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "-Screenshots and task information used for recognition/review are sent to the", + "-selected model services. Those services may charge for calls; this wheel", + "-includes no model service or API credit. Set each profile's `api_key_env` only", + "-in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "-put a provider key in connector settings.", + "-", + "-Generate and privately store a strong random URL-safe **local connection", + "-token** of 32\u2013256 characters (for example, using `secrets.token_urlsafe(32)` in", + "-your trusted Python environment). It is distinct from every model-provider API", + "-key. Prompt for secrets without echoing them, then start the service in a", + "-dedicated console:", + "-", + "-```powershell", + "-$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "-$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "-$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "-$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "-$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "-$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "-Set-Location -LiteralPath $RuntimeRoot", + "-& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "-& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "- --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "- --api-profile $VisionProfile --decision-profile $DecisionProfile", + "-```", + "-", + "-Run setup once; it may download locked dependencies. Its generated standalone", + "-stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "-to retain an existing supported API environment. An explicit different minor", + "-version requires a separate environment rather than an in-place replacement.", + "-Keep this console open while Amadeus uses the service.", + "-", + "-Input is disabled by default. For an explicitly authorized desktop task, append", + "-the existing `--allow-local-input` option to the final startup command. **This", + "-option also turns automatic risk interception off.** A token authenticates the", + "-connection; it does not authorize arbitrary clicks, submissions, payments or", + "-unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "-rejects browser Origin headers before MCP processing. Do not expose it through", + "-a public bind, tunnel or reverse proxy.", + "-", + "-## Install and connect", + "-", + "-1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "- check its actual installed version against the recorded baseline above.", + "-2. Download and install the **0.0.5 wheel** in Settings \u2192 Extensions. Inspect its", + "- identity and disclosure; installation starts disabled.", + "-3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "- Use only your trusted local Runtime. Set secret `connection_token` to the", + "- same local token supplied to the Runtime console, not a model API key.", + "-4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "- and open a new Work session. Saved configuration does not prove it is loaded.", + "-5. Inspect the MCP initialization version and discovered tools, then read", + "- `instant_status` before requesting input. Required tools are `instant_start`,", + "- `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "- `instant_stop`; their schemas must support the task-plan, original-command", + "- status and review/continue operations described in the packaged Skill.", + "- Check actual returned review recipes when that state occurs. This is a", + "- manual check, not automatic compatibility certification.", + "-", + "-The connector cannot start, install, upgrade or reconfigure the external", + "-Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "-configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "-", + "-## A small reproducible task", + "-", + "-Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "-yourself. Before connecting Pi, manually prepare two empty folders in a new", + "-temporary root, for example:", + "-", + "-```powershell", + "-$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "-New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "-$FixtureRoot", + "-```", + "-", + "-Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "-actual path, and tell Pi to select that observed window. The prepared window is", + "-operator-owned; selecting it does not make it task-owned. Authorize only this", + "-task, with local input explicitly enabled:", + "-", + "-> In the prepared 7-Zip window at ``, use folder navigation", + "-> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "-> displayed path is `\\Documents\\Receipts`. Do not create,", + "-> rename, delete, edit, compress or extract anything, enter credentials, open", + "-> another location or close the operator-prepared window. Stop and report any", + "-> uncertain input or review without a valid ticket. After the task, settle the", + "-> original receipts and verify Runtime host cleanup.", + "-", + "-Acceptance requires four successful original navigation steps, bound image", + "-evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "-Report any Main review or assistance. Do not count launch acknowledgements,", + "-pending receipts or an uninspected screenshot as success. No external data write", + "-is authorized; the fixture is created manually beforehand. It is a", + "-navigation example, not compression/extraction or a performance benchmark.", + "-", + "-## Task, review and cleanup", + "-", + "-Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "-and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "-Keep one MCP connection and one input owner for the whole Work. Pending,", + "-unknown or interrupted input keeps its original request/run/command IDs; never", + "-replay it with a new ID to extend a wait.", + "-", + "-At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "-status request, inspect that status request's bound **before** image, then copy", + "-the returned review recipe and use its separately returned continue recipe.", + "-Review itself does not click. Continuation retains the original job/candidate", + "-and must pass a fresh target-region check and existing input gates before one", + "-dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "-already-entered text; continuation does not retype. A field review does not", + "-approve a candidate or prove a later submission succeeded. Without a genuine", + "-resumable ticket, or with stale evidence, stop and report the original state.", + "-", + "-Historical Pi evidence used a natively resized complete bound frame, not", + "-byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "-tests establish their stated recovery scope, not unattended accuracy, speed or", + "-new-combination acceptance.", + "-", + "-Close only task-launched windows using their returned identities, and verify", + "-`window_closed`; retain an operator-prepared window as in the example above.", + "-Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "-`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "-can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "-the connector changes its Host-side connection configuration; backend changes", + "-follow the Host's restart requirements. It does not stop or uninstall the external", + "-Runtime or delete its data. Finish cleanup before disabling/removing;", + "-stop the independent service deliberately afterward if desired.", + "-", + "-## Troubleshooting and recovery", + "-", + "-| Symptom | What to check and do |", + "-| --- | --- |", + "-| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "-| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "-| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "-| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "-| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "-| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "-| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "-", + "-The author-side source 0.1.8 check observed that a stopped session's maintenance", + "-registration was not immediately retired after two start/stop/release cycles in", + "-one HTTP service, although both hosts exited. The updater separately validates", + "-original settlement evidence and can retire settled registrations; this check", + "-did not reproduce a blocked update. Host cleanup and maintenance readiness are", + "-separate results. Retain original session evidence and request Runtime support", + "-if maintenance is refused; do not delete locks or registrations. See the", + "-[validation scope](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md).", + "-", + "-## Version changes and store status", + "-", + "-0.0.5 changes documentation/disclosure and package metadata. It does not change", + "-connection configuration, permissions, input execution or Runtime code. Existing", + "-0.0.3/0.0.4 `runtime_url` and `connection_token` settings need no migration.", + "-The historical 0.0.2 stdio launcher and immutable 0.0.4 artifacts remain intact.", + "-When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "-local-input settings at the independent service; explicitly fill the two", + "-connector settings. Never reinterpret an old provider key as a connection token.", + "-", + "-Author publication, wheel/preflight checks, protocol checks, installed GUI", + "-execution and independent catalog approval are separate results. This", + "-author-published 0.0.5 distribution is **pending independent store review**;", + "-it contains no author-written approval or fictional reviewer. Read the exact", + "-scope of each linked result; unrun layers remain pending.", + "-", + "-The connector code is ISC. Runtime and third-party licensing remain separate.", + "-The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "-payload." + ] + }, + { + "after": null, + "before": "d40a2c095b0382d5ee2a598594494d690c7f034aacd60b0c8ef81f698ebc54e3", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/RECORD", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,10 +0,0 @@", + "-amadeus_agent_gui/__init__.py,sha256=73LMIwheb-Du4gL4jrxcJGTHbLOb2X1Dh7KdjKXLmKw,106", + "-amadeus_agent_gui/amadeus-extension.json,sha256=XXuAaoUnllDnG_YjP62IOylItZzgoC92HzCNh-1YLus,2597", + "-amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=bDLeY0AjYxVRbtxFFHvgQe62fpej8gXH8Fkr4mv2k94,8101", + "-amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=DJkB0umemFqRnAmnxsoefPsZnAoxYUtsAXmL7c2msdA,20667", + "-amadeus_agent_gui_runtime-0.0.5.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "-amadeus_agent_gui_runtime-0.0.5.dist-info/METADATA,sha256=TBrFzv0Rg837BqHn2ww_lBTi8DuRIYVgtk-qJDX2EUU,18045", + "-amadeus_agent_gui_runtime-0.0.5.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "-amadeus_agent_gui_runtime-0.0.5.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "-amadeus_agent_gui_runtime-0.0.5.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "-amadeus_agent_gui_runtime-0.0.5.dist-info/RECORD,," + ] + }, + { + "after": null, + "before": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/WHEEL", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,5 +0,0 @@", + "-Wheel-Version: 1.0", + "-Generator: setuptools (83.0.0)", + "-Root-Is-Purelib: true", + "-Tag: py3-none-any", + "-" + ] + }, + { + "after": null, + "before": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/entry_points.txt", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,2 +0,0 @@", + "-[amadeus.extensions]", + "-io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": null, + "before": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/licenses/LICENSE", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,15 +0,0 @@", + "-ISC License", + "-", + "-Copyright (c) 2026 Desolate-Jix", + "-", + "-Permission to use, copy, modify, and/or distribute this software for any", + "-purpose with or without fee is hereby granted, provided that the above", + "-copyright notice and this permission notice appear in all copies.", + "-", + "-THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": null, + "before": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.5.dist-info/top_level.txt", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1 +0,0 @@", + "-amadeus_agent_gui" + ] + }, + { + "after": "150a51e7320e17d4f5784d068d3cf643485b02cdb14bcb46c9fa0cf9a289168e", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/METADATA", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,244 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.6", + "+Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.md", + "+Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "+Requires-Python: <3.13,>=3.12", + "+Description-Content-Type: text/markdown", + "+License-File: LICENSE", + "+Dynamic: license-file", + "+", + "+# Amadeus Windows GUI Runtime Connector 0.0.6", + "+", + "+[\u7b80\u4f53\u4e2d\u6587](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "+", + "+This author-published connector connects Pi to a **separately installed and", + "+operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "+contains a connection declaration and execution Skill, not the Runtime. Use", + "+this guide to install and connect it; publication and independent store", + "+approval are separate results.", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.6 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.6)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.6-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/amadeus_agent_gui_runtime-0.0.6-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.6.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/extension-source-0.0.6.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/preflight.json)", + "+- [Recommended Runtime 0.1.9 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.9/AgentGUIRuntimeExecution-Setup.exe)", + "+ and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.9)", + "+", + "+Install the Runtime yourself on the Windows computer running Amadeus, then", + "+import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/README.md#quick-start).", + "+The connector and Runtime have independent version numbers and release tags;", + "+connector 0.0.6 does not update Runtime 0.1.9.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.9 + connector 0.0.6 | Recommended Runtime and this connector. Inspect the actual running service and the scope of its validation evidence before input; a version pair alone does not prove installed GUI execution. |", + "+| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It does not validate the 0.0.6/0.1.9 combination. |", + "+| Minimum Runtime contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply the field-review/continue contract. |", + "+| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "+| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "+| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "+", + "+The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "+Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+are separate from the [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+and independent store review. Do not treat a release number or preflight success", + "+as proof of desktop execution.", + "+", + "+## What runs where", + "+", + "+| Component | Responsibility |", + "+| --- | --- |", + "+| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "+| Connector 0.0.6 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "+| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "+", + "+The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "+Python 3.12, retains supported Python 3.11 environments and requires **no local", + "+GPU or model-weight download**. Optional local-model setup has its separate", + "+Python 3.11 contract and is outside this connector's supported route. A shared", + "+Python minor version does not mean sharing a virtual environment; each", + "+component keeps its locked dependencies.", + "+", + "+## Start the local Runtime", + "+", + "+Install the Runtime first. Install `uv` if setup requests it. Copy", + "+`configs/vision-api-openai-luna.example.json` and", + "+`configs/decision-profile.visual-execution.example.json` to private profile", + "+files, then configure endpoints, models and task conditions according to the", + "+Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "+Screenshots and task information used for recognition/review are sent to the", + "+selected model services. Those services may charge for calls; this wheel", + "+includes no model service or API credit. Set each profile's `api_key_env` only", + "+in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "+put a provider key in connector settings.", + "+", + "+Generate and privately store a strong random URL-safe **local connection", + "+token** of 32\u2013256 characters (for example, using `secrets.token_urlsafe(32)` in", + "+your trusted Python environment). It is distinct from every model-provider API", + "+key. Prompt for secrets without echoing them, then start the service in a", + "+dedicated console:", + "+", + "+```powershell", + "+$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "+$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "+$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "+$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "+$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "+$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "+Set-Location -LiteralPath $RuntimeRoot", + "+& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "+& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "+ --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "+ --api-profile $VisionProfile --decision-profile $DecisionProfile", + "+```", + "+", + "+Run setup once; it may download locked dependencies. Its generated standalone", + "+stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "+to retain an existing supported API environment. An explicit different minor", + "+version requires a separate environment rather than an in-place replacement.", + "+Keep this console open while Amadeus uses the service.", + "+", + "+Input is disabled by default. For an explicitly authorized desktop task, append", + "+the existing `--allow-local-input` option to the final startup command. **This", + "+option also turns automatic risk interception off.** A token authenticates the", + "+connection; it does not authorize arbitrary clicks, submissions, payments or", + "+unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "+rejects browser Origin headers before MCP processing. Do not expose it through", + "+a public bind, tunnel or reverse proxy.", + "+", + "+## Install and connect", + "+", + "+1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "+ check its actual installed version against the recorded baseline above.", + "+2. Download and install the **0.0.6 wheel** in Settings \u2192 Extensions. Inspect its", + "+ identity and disclosure; installation starts disabled.", + "+3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "+ Use only your trusted local Runtime. Set secret `connection_token` to the", + "+ same local token supplied to the Runtime console, not a model API key.", + "+4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "+ and open a new Work session. Saved configuration does not prove it is loaded.", + "+5. Inspect the MCP initialization version and discovered tools, then read", + "+ `instant_status` before requesting input. Required tools are `instant_start`,", + "+ `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "+ `instant_stop`; their schemas must support the task-plan, original-command", + "+ status and review/continue operations described in the packaged Skill.", + "+ Check actual returned review recipes when that state occurs. This is a", + "+ manual check, not automatic compatibility certification.", + "+", + "+The connector cannot start, install, upgrade or reconfigure the external", + "+Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "+configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "+", + "+## A small reproducible task", + "+", + "+Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "+yourself. Before connecting Pi, manually prepare two empty folders in a new", + "+temporary root, for example:", + "+", + "+```powershell", + "+$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "+New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "+$FixtureRoot", + "+```", + "+", + "+Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "+actual path, and tell Pi to select that observed window. The prepared window is", + "+operator-owned; selecting it does not make it task-owned. Authorize only this", + "+task, with local input explicitly enabled:", + "+", + "+> In the prepared 7-Zip window at ``, use folder navigation", + "+> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "+> displayed path is `\\Documents\\Receipts`. Do not create,", + "+> rename, delete, edit, compress or extract anything, enter credentials, open", + "+> another location or close the operator-prepared window. Stop and report any", + "+> uncertain input or review without a valid ticket. After the task, settle the", + "+> original receipts and verify Runtime host cleanup.", + "+", + "+Acceptance requires four successful original navigation steps, bound image", + "+evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "+Report any Main review or assistance. Do not count launch acknowledgements,", + "+pending receipts or an uninspected screenshot as success. No external data write", + "+is authorized; the fixture is created manually beforehand. It is a", + "+navigation example, not compression/extraction or a performance benchmark.", + "+", + "+## Task, review and cleanup", + "+", + "+Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "+and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "+Keep one MCP connection and one input owner for the whole Work. Pending,", + "+unknown or interrupted input keeps its original request/run/command IDs; never", + "+replay it with a new ID to extend a wait.", + "+", + "+At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "+status request, inspect that status request's bound **before** image, then copy", + "+the returned review recipe and use its separately returned continue recipe.", + "+Review itself does not click. Continuation retains the original job/candidate", + "+and must pass a fresh target-region check and existing input gates before one", + "+dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "+already-entered text; continuation does not retype. A field review does not", + "+approve a candidate or prove a later submission succeeded. Without a genuine", + "+resumable ticket, or with stale evidence, stop and report the original state.", + "+", + "+Historical Pi evidence used a natively resized complete bound frame, not", + "+byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "+tests establish their stated recovery scope, not unattended accuracy, speed or", + "+new-combination acceptance.", + "+", + "+Close only task-launched windows using their returned identities, and verify", + "+`window_closed`; retain an operator-prepared window as in the example above.", + "+Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "+`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "+can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "+the connector changes its Host-side connection configuration; backend changes", + "+follow the Host's restart requirements. It does not stop or uninstall the external", + "+Runtime or delete its data. Finish cleanup before disabling/removing;", + "+stop the independent service deliberately afterward if desired.", + "+", + "+## Troubleshooting and recovery", + "+", + "+| Symptom | What to check and do |", + "+| --- | --- |", + "+| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "+| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "+| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "+| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "+| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "+| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "+| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "+", + "+After Pi disconnects or reports an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` remain **operator-only**;", + "+Pi must not call them to take over the old session or continue its workflow.", + "+This restriction does not remove Main's bound-image review/continue path in", + "+the original live session: that path retains the original job and existing", + "+input gates. For settlement diagnostics and migration from Runtime 0.1.8, see", + "+the [Runtime settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md).", + "+Runtime 0.1.9 fixes `task_plan` input-settlement validation; follow that guide", + "+to verify retained 0.1.8 evidence through the maintained settlement entry point.", + "+Keep original evidence; an unknown settlement is not proof that no input ran.", + "+", + "+## Version changes and installation scope", + "+", + "+0.0.6 updates package metadata and bilingual installation/recovery guidance,", + "+and recommends Runtime 0.1.9. Runtime fixes are delivered separately; this wheel", + "+does not change connection configuration, permissions or input execution.", + "+Existing 0.0.3/0.0.4/0.0.5 `runtime_url` and `connection_token` settings need no", + "+migration. The historical 0.0.2 stdio launcher and earlier release artifacts", + "+remain intact.", + "+When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "+local-input settings at the independent service; explicitly fill the two", + "+connector settings. Never reinterpret an old provider key as a connection token.", + "+", + "+Author publication, wheel/preflight checks, protocol checks, installed GUI", + "+execution and independent catalog approval are separate results. Read the exact", + "+scope and version of each linked result. Installing this connector does not", + "+establish acceptance of a particular Runtime/Amadeus combination.", + "+", + "+The connector code is ISC. Runtime and third-party licensing remain separate.", + "+The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "+payload." + ] + }, + { + "after": "ca9412818749720a9f4bc4c0c026fae5074b7e4c4dcab21a3f76c882685359c1", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/RECORD", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=T1hklWnTN7STFENVvtk0ZAkntRYHGzAFWvsw_N8keiU,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=gVNoBf6m7Rb0CWSgkcypqbGoZa220nfaeImdcv28p9E,2597", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=JUoc6qLgTClvvYcDVTa7Wrpu1vGMaCTATZ7joUOTnCU,9324", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=rVkIpb4CzXgxi-yrjUNoKjSNfY1OH-Nuz9spdTcCitQ,22188", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/METADATA,sha256=FQpR5zIOF9T1eE0GjTz2Q0hbAs2xS8tGyfoM-aKJFo4,18314", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/RECORD,," + ] + }, + { + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/WHEEL", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,5 @@", + "+Wheel-Version: 1.0", + "+Generator: setuptools (83.0.0)", + "+Root-Is-Purelib: true", + "+Tag: py3-none-any", + "+" + ] + }, + { + "after": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/entry_points.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,2 @@", + "+[amadeus.extensions]", + "+io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/licenses/LICENSE", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,15 @@", + "+ISC License", + "+", + "+Copyright (c) 2026 Desolate-Jix", + "+", + "+Permission to use, copy, modify, and/or distribute this software for any", + "+purpose with or without fee is hereby granted, provided that the above", + "+copyright notice and this permission notice appear in all copies.", + "+", + "+THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/top_level.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1 @@", + "+amadeus_agent_gui" + ] + } + ], + "note": "Diff is evidence only; every version needs independent full review.", + "ok": true, + "review_status": "not_reviewed" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/preflight.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/preflight.json new file mode 100644 index 0000000..6ddb0a6 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/preflight.json @@ -0,0 +1,865 @@ +{ + "checked": [ + "manifest", + "package_resources", + "skill_metadata", + "wheel_metadata" + ], + "checks": { + "catalog_policy": "passed", + "human_and_runtime_review": "pending", + "package_format": "passed", + "target_host": "passed" + }, + "environment": { + "platform": "win32", + "python": "3.12.10" + }, + "host_commit": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "identity": { + "id": "io.github.desolate-jix.gui-runtime", + "sha256": "e55b88de422d2a8bfcb0edd39331a4980d5753c25a2ec084b7b2abac2ee8c586", + "version": "0.0.6" + }, + "inventory": [ + { + "after": "4f58649569d337b493144355bed934640927b516071b30055afb30fcdf247a25", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/__init__.py", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,3 @@", + "+\"\"\"Amadeus resource extension: native HTTP MCP declaration and execution Skill.\"\"\"", + "+", + "+__version__ = \"0.0.6\"" + ] + }, + { + "after": "81536805fea6ed16f40964a091cca9a9b1a865adb6d277da78899d72fdbca7d1", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/amadeus-extension.json", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,72 @@", + "+{", + "+ \"schema\": \"amadeus.extension/v0\",", + "+ \"id\": \"io.github.desolate-jix.gui-runtime\",", + "+ \"version\": \"0.0.6\",", + "+ \"display_name\": {", + "+ \"en\": \"Windows GUI Runtime Connector\",", + "+ \"zh-CN\": \"Windows GUI Runtime \u8fde\u63a5\u5668\"", + "+ },", + "+ \"description\": {", + "+ \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.9; require 0.1.6+ authenticated HTTP MCP and review/continue tools, with actual capability checks. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "+ \"zh-CN\": \"\u8fde\u63a5\u5668\uff1a\u9700\u81ea\u884c\u5355\u72ec\u5b89\u88c5\u3001\u914d\u7f6e\u5e76\u542f\u52a8 Windows GUI Runtime\u3002\u5efa\u8bae\u4f7f\u7528 0.1.9\uff1b\u8981\u6c42\u5177\u5907 0.1.6 \u8d77\u63d0\u4f9b\u7684\u9274\u6743 HTTP MCP \u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u5de5\u5177\uff0c\u5e76\u6838\u5bf9\u5b9e\u9645\u80fd\u529b\u3002\u586b\u5199\u53ef\u4fe1\u672c\u673a runtime_url \u548c connection_token\uff0c\u5c06 MCP \u4e0e Skill \u7ed1\u5b9a Pi\u3002Runtime \u7531\u7528\u6237\u72ec\u7acb\u90e8\u7f72\u548c\u505c\u6b62\uff1b\u505c\u7528\uff0f\u5378\u8f7d\u672c\u8fde\u63a5\u5668\u4e0d\u4f1a\u505c\u6b62\u3001\u5378\u8f7d Runtime \u6216\u5220\u9664\u5176\u6570\u636e\u3002\u5916\u90e8\u6a21\u578b API \u53ef\u80fd\u6309\u7528\u91cf\u6536\u8d39\u3002\"", + "+ },", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + "+ \"author\": {", + "+ \"name\": \"Desolate-Jix\"", + "+ },", + "+ \"license\": \"ISC\",", + "+ \"engines\": {", + "+ \"amadeus_host_api\": \">=0.1,<0.2\",", + "+ \"platforms\": [", + "+ \"win32\"", + "+ ]", + "+ },", + "+ \"runtime\": {", + "+ \"kind\": \"none\"", + "+ },", + "+ \"config\": {", + "+ \"runtime_url\": {", + "+ \"type\": \"string\",", + "+ \"title\": \"Trusted loopback MCP URL / \u53ef\u4fe1\u672c\u673a MCP \u5730\u5740\",", + "+ \"required\": true,", + "+ \"default\": \"http://127.0.0.1:17665/mcp\"", + "+ },", + "+ \"connection_token\": {", + "+ \"type\": \"string\",", + "+ \"title\": \"Local MCP connection token (not a model API key) / \u672c\u673a\u8fde\u63a5\u5bc6\u94a5\uff08\u4e0d\u662f\u6a21\u578b API key\uff09\",", + "+ \"required\": true,", + "+ \"secret\": true", + "+ }", + "+ },", + "+ \"contributes\": {", + "+ \"mcp_server\": [", + "+ {", + "+ \"id\": \"execution\",", + "+ \"contract\": \"amadeus.mcp-server/v0\",", + "+ \"transport\": \"http\",", + "+ \"url\": \"${config.runtime_url}\",", + "+ \"bearer_token\": \"${config.connection_token}\"", + "+ }", + "+ ],", + "+ \"skill\": [", + "+ {", + "+ \"id\": \"gui-execution\",", + "+ \"contract\": \"amadeus.skill/v0\",", + "+ \"path\": \"skills/gui-execution\",", + "+ \"title\": {", + "+ \"en\": \"GUI execution\",", + "+ \"zh-CN\": \"GUI \u6267\u884c\"", + "+ }", + "+ }", + "+ ]", + "+ },", + "+ \"permissions\": {", + "+ \"host\": [],", + "+ \"os\": {", + "+ \"network\": [", + "+ \"*\"", + "+ ]", + "+ }", + "+ }", + "+}" + ] + }, + { + "after": "254a1ceaa2e04c296fbd87035536bb5aba6ed6f18c6824c04d9ee3a143939c25", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,89 @@", + "+---", + "+name: gui-execution", + "+description: Execute an explicitly authorized Windows GUI task through the connected external-API Runtime route, preserve original request and evidence identities, handle review without replaying input, and verify owned-window and host cleanup.", + "+---", + "+", + "+## English", + "+", + "+Read `references/runtime.md` before using the connected Runtime. Discover its", + "+actual tools and schemas; Pi names may be namespaced or hashed, so never invent", + "+a tool name. This Skill supplies no tools, authority, executor, learning mode or", + "+shell route. Connector 0.0.6 supplies installation and execution guidance;", + "+publication, independent store approval and installed GUI execution are separate", + "+results. Historical 0.0.4/0.1.6 controlled Pi evidence is a separate result.", + "+", + "+Use only the existing external API route. Recommend separately installed", + "+Runtime 0.1.9; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + "+service must supply field review/continue. Runtime 0.1.5 has no HTTP entry point.", + "+Runtime 0.1.7 current-Agent mode is not qualified through Amadeus here. Manually", + "+check MCP initialization version, actual tools/schemas, authentication and", + "+review/cleanup capabilities; neither a version number nor a later release", + "+establishes compatibility. No automatic compatibility detector is provided.", + "+", + "+Keep one Runtime MCP connection and one input owner for the complete authorized", + "+Work. The operator independently installs and starts the authenticated loopback", + "+daemon. The connector never launches Python, chooses executable paths, supplies", + "+provider keys or changes profiles. The local connection token is not a model", + "+API key. Screenshots/task information can reach the configured model services,", + "+whose calls may cost money. Confirm task scope and Runtime input opt-in:", + "+`--allow-local-input` enables input and turns automatic risk interception off.", + "+Start the host once, wait for ready, launch/select the intended window, use", + "+current bound observations, submit the task and inspect original receipts. A", + "+launch or asynchronous acknowledgement is not task success. Prepare known", + "+independent fields together and read healthy pending batches promptly; do not", + "+insert unrelated searches or documentation between them.", + "+", + "+For pending, unknown, timeout, interrupted input or unavailable images, retain", + "+original request/run/command IDs and inspect their state. Never replay possibly", + "+executed input under a new ID or resubmit to extend a wait. At a genuine", + "+`pre_action_review_packet.v1` or `field_review_packet.v1`, read", + "+`agent_command_status` with `command_id=packet.execution_request_id` under a new", + "+outer request ID and `images=none`. Retrieve that status request's bound image with", + "+`instant_image`: `view=before` for a candidate, `view=after` for entered text.", + "+Inspect the exact bound evidence against the task, copy", + "+`caller_controls.review.request` and add only the actual verdict/reason. Then", + "+separately use the returned continue recipe. Review alone performs no input.", + "+Pre-action continuation retains the original job/candidate and requires a fresh", + "+target-region check and existing hard gates before one dispatch. Field", + "+continuation does not retype; any submit suffix still needs normal gates and", + "+verification. With no genuine resumable ticket or a stale candidate, stop and", + "+report. Do not manufacture hashes, wait IDs, success or a restart/replay.", + "+", + "+Cancellation must settle to a real terminal state; a disconnect is not", + "+cancellation or cleanup. Close only task-launched windows using their returned", + "+handle/process identity, resolve save dialogs only for an authorized choice,", + "+and verify `window_closed`. Keep pre-existing/operator-prepared windows unless", + "+their closure is explicitly in scope. Call `instant_stop`, then poll until", + "+`host_alive=false`, `pending_ids=[]`, `cleanup_verified=true` and no unresolved", + "+cleanup error. Only then release the native HTTP owner. If an old owner is", + "+unresolved, inspect its original receipts and cleanup diagnostics. If the", + "+original connection is lost, retain evidence and stop for operator recovery.", + "+After Pi disconnects or encounters an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` are operator-only;", + "+Pi must not use them to take over the old session or workflow. Main's", + "+bound-image review/continue path in the original live session remains available", + "+under its existing contracts. Do not steal ownership, repeatedly", + "+reconnect/restart, or delete queues, locks or session records. Report task", + "+outcome separately from cleanup. Runtime 0.1.9 fixes `task_plan` input-settlement", + "+validation; consult the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+for retained Runtime 0.1.8 evidence and the maintained operator entry point.", + "+", + "+Disabling/removing the connector releases the Host connection only; it does", + "+not stop/uninstall the independently running Runtime or delete its data. Finish", + "+cleanup before disabling/removing. Connector 0.0.6 updates guidance and metadata;", + "+Runtime fixes are delivered separately. 0.0.3/0.0.4/0.0.5 connection settings", + "+need no migration and input gates and permissions do not change.", + "+", + "+## \u7b80\u4f53\u4e2d\u6587", + "+", + "+\u4f7f\u7528\u8fde\u63a5\u7684 Runtime \u524d\u5148\u8bfb `references/runtime.md`\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u4e0e schema\uff1bPi \u540d\u79f0\u53ef\u80fd\u5e26\u547d\u540d\u7a7a\u95f4\u6216\u54c8\u5e0c\uff0c\u4e0d\u80fd\u731c\u5de5\u5177\u540d\u3002\u672c Skill \u4e0d\u63d0\u4f9b\u5de5\u5177\u3001\u6388\u6743\u3001\u6267\u884c\u5668\u3001\u5b66\u4e60\u6a21\u5f0f\u6216 shell \u8def\u7ebf\u3002\u8fde\u63a5\u5668 0.0.6 \u63d0\u4f9b\u5b89\u88c5\u4e0e\u6267\u884c\u6307\u5f15\uff1b\u4f5c\u8005\u53d1\u5e03\u3001\u72ec\u7acb\u5546\u5e97\u6279\u51c6\u53ca\u5b89\u88c5\u6001 GUI \u6267\u884c\u5206\u522b\u8bb0\u5f55\u3002\u5386\u53f2 0.0.4\uff0f0.1.6 \u53d7\u63a7 Pi \u8bc1\u636e\u5355\u72ec\u8bb0\u5f55\u3002", + "+", + "+\u4ec5\u4f7f\u7528\u539f\u6709 external API \u8def\u7ebf\u3002\u63a8\u8350\u72ec\u7acb\u5b89\u88c5\u7684 Runtime 0.1.9\uff1b\u6700\u4f4e 0.1.6 \u63d0\u4f9b HTTP\uff0f\u8f93\u5165\u524d\u5ba1\u6838\u5408\u540c\uff0c\u6d3b\u52a8\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6ca1\u6709 HTTP \u5165\u53e3\u3002\u6b64\u5904\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u4eba\u5de5\u6838\u5bf9 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u5b9e\u9645\u5de5\u5177\uff0fschema\u3001\u9274\u6743\u53ca\u5ba1\u6838\uff0f\u6e05\u7406\u80fd\u529b\uff1b\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\u3002\u672c\u5305\u4e0d\u63d0\u4f9b\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+", + "+\u5b8c\u6574\u6388\u6743 Work \u4fdd\u6301\u4e00\u4e2a Runtime MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u64cd\u4f5c\u5458\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u5e26\u9274\u6743\u7684\u672c\u673a daemon\uff1b\u8fde\u63a5\u5668\u4e0d\u4f1a\u542f\u52a8 Python\u3001\u9009\u62e9\u53ef\u6267\u884c\u8def\u5f84\u3001\u63d0\u4f9b\u6a21\u578b\u5bc6\u94a5\u6216\u6539 profile\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0d\u662f\u6a21\u578b API Key\u3002\u622a\u56fe\uff0f\u4efb\u52a1\u4fe1\u606f\u53ef\u80fd\u53d1\u9001\u7ed9\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\uff0c\u670d\u52a1\u8c03\u7528\u53ef\u80fd\u6536\u8d39\u3002\u786e\u8ba4\u4efb\u52a1\u8303\u56f4\u53ca Runtime \u8f93\u5165\u6388\u6743\uff1a`--allow-local-input` \u542f\u7528\u8f93\u5165\uff0c\u540c\u65f6\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u5bbf\u4e3b\u53ea\u542f\u52a8\u4e00\u6b21\uff0c\u7b49\u5f85 ready\uff0c\u542f\u52a8\uff0f\u9009\u62e9\u76ee\u6807\u7a97\u53e3\uff0c\u4f7f\u7528\u5f53\u524d\u7ed1\u5b9a\u89c2\u5bdf\uff0c\u63d0\u4ea4\u4efb\u52a1\u5e76\u68c0\u67e5\u539f\u56de\u6267\u3002\u542f\u52a8\u6216\u5f02\u6b65\u786e\u8ba4\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u63d0\u524d\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u6279\u6b21\uff0c\u4e0d\u5728\u5176\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\u6216\u6587\u6863\u5de5\u4f5c\u3002", + "+", + "+\u5f85\u5b9a\u3001\u672a\u77e5\u3001\u8d85\u65f6\u3001\u4e2d\u65ad\u8f93\u5165\u6216\u56fe\u50cf\u4e0d\u53ef\u7528\u65f6\uff0c\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID \u5e76\u68c0\u67e5\u72b6\u6001\u3002\u53ef\u80fd\u6267\u884c\u8fc7\u7684\u8f93\u5165\u4e0d\u80fd\u6362 ID \u91cd\u653e\uff0c\u4e5f\u4e0d\u80fd\u4e3a\u5ef6\u957f\u7b49\u5f85\u800c\u91cd\u4ea4\u3002\u771f\u5b9e `pre_action_review_packet.v1` \u6216 `field_review_packet.v1` \u51fa\u73b0\u65f6\uff0c\u7528\u65b0\u5916\u5c42 request ID \u548c `images=none` \u8c03\u7528 `agent_command_status`\uff0c`command_id=packet.execution_request_id`\u3002\u968f\u540e\u7528 `instant_image` \u53d6\u8be5\u72b6\u6001\u8bf7\u6c42\u7ed1\u5b9a\u56fe\u50cf\uff1a\u5019\u9009\u770b `view=before`\uff0c\u5df2\u8f93\u5165\u6587\u5b57\u770b `view=after`\u3002\u5bf9\u7167\u4efb\u52a1\u68c0\u67e5\u786e\u5207\u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236 `caller_controls.review.request`\uff0c\u4ec5\u6dfb\u52a0\u5b9e\u9645 verdict\uff0freason\uff0c\u518d\u5355\u72ec\u4f7f\u7528\u8fd4\u56de\u7684 continue recipe\u3002\u5ba1\u6838\u672c\u8eab\u4e0d\u8f93\u5165\u3002\u524d\u7f6e\u7ee7\u7eed\u4fdd\u7559\u539f job\uff0f\u5019\u9009\uff0c\u6d3e\u53d1\u4e00\u6b21\u524d\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u786c\u95e8\u7981\uff1b\u6587\u5b57\u7ed3\u679c\u7ee7\u7eed\u4e0d\u91cd\u8f93\uff0c\u540e\u7eed submit \u4ecd\u987b\u666e\u901a\u95e8\u7981\u53ca\u6838\u9a8c\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u7968\u636e\u6216\u5019\u9009\u5df2\u8fc7\u671f\u5c31\u505c\u62a5\u3002\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u6210\u529f\u6216\u91cd\u542f\uff0f\u91cd\u653e\u3002", + "+", + "+\u53d6\u6d88\u987b\u7ed3\u7b97\u5230\u771f\u5b9e\u7ec8\u6001\uff1b\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u6216\u6e05\u7406\u3002\u4ec5\u6309\u8fd4\u56de handle\uff0fprocess \u8eab\u4efd\u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff0c\u4ec5\u5904\u7406\u5df2\u6388\u6743\u9009\u62e9\u7684\u4fdd\u5b58\u5bf9\u8bdd\u6846\uff0c\u5e76\u6838\u5bf9 `window_closed`\u3002\u4fdd\u7559\u539f\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\uff0c\u9664\u975e\u5176\u5173\u95ed\u5df2\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u3002\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2\u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\uff0c\u4e4b\u540e\u624d\u91ca\u653e\u539f\u751f HTTP \u6240\u6709\u8005\u3002\u65e7\u6240\u6709\u8005\u672a\u7ed3\u7b97\u65f6\u8bfb\u53d6\u539f\u56de\u6267\u548c\u6e05\u7406\u8bca\u65ad\uff1b\u539f\u8fde\u63a5\u4e22\u5931\u65f6\u4fdd\u7559\u8bc1\u636e\u5e76\u505c\u6b62\uff0c\u4ea4\u64cd\u4f5c\u5458\u6062\u590d\u3002Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview`\u3001`instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528\uff0cPi \u4e0d\u5f97\u7528\u5b83\u4eec\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u5de5\u4f5c\u6d41\u3002\u539f\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\uff0f\u7ee7\u7eed\u7684\u8def\u5f84\u4ecd\u6309\u65e2\u6709\u5408\u540c\u4fdd\u7559\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\u3001\u9501\u6216\u4f1a\u8bdd\u8bb0\u5f55\u3002\u4efb\u52a1\u7ed3\u679c\u4e0e\u6e05\u7406\u5206\u522b\u62a5\u544a\u3002Runtime 0.1.9 \u4fee\u590d `task_plan` \u8f93\u5165\u7ed3\u7b97\u9a8c\u8bc1\uff1b\u4fdd\u7559\u7684 Runtime 0.1.8 \u8bc1\u636e\u53ca\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u89c1[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u3002", + "+", + "+\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u72ec\u7acb\u8fd0\u884c\u7684 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\u518d\u7981\u7528\uff0f\u79fb\u9664\u3002\u8fde\u63a5\u5668 0.0.6 \u66f4\u65b0\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b0.0.3\uff0f0.0.4\uff0f0.0.5 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002" + ] + }, + { + "after": "ad5908a5be02cd78318becab8d43682a348d7d8d4e1fe36ecfdb297537028ad4", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,269 @@", + "+# Runtime session and receipt contract / \u4f1a\u8bdd\u4e0e\u56de\u6267\u5408\u540c", + "+", + "+## Prerequisites / \u4f7f\u7528\u524d\u63d0", + "+", + "+This resource connector uses an independently installed, operator-started,", + "+authenticated Windows loopback HTTP MCP Runtime. It never launches external", + "+code. The local connection token is distinct from provider API keys. This", + "+Skill supports the existing external API route only; configured model services", + "+receive recognition/review screenshots and task information and may charge for", + "+calls. Input requires explicit task authorization and Runtime opt-in;", + "+`--allow-local-input` also turns automatic risk interception off. Do not change", + "+profiles, thresholds or prompts to bypass a refusal.", + "+", + "+\u672c\u8d44\u6e90\u8fde\u63a5\u5668\u4f7f\u7528\u7528\u6237\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u3001\u5e26\u9274\u6743\u7684 Windows \u672c\u673a HTTP MCP Runtime\uff0c\u4e0d\u4f1a\u542f\u52a8\u5916\u90e8\u4ee3\u7801\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0e\u6a21\u578b API Key \u4e0d\u540c\u3002\u672c Skill \u4ec5\u652f\u6301\u539f\u6709 external API \u8def\u7ebf\uff1b\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\u4f1a\u63a5\u6536\u8bc6\u522b\uff0f\u5ba1\u6838\u622a\u56fe\u53ca\u4efb\u52a1\u4fe1\u606f\uff0c\u53ef\u80fd\u6309\u8c03\u7528\u6536\u8d39\u3002\u8f93\u5165\u987b\u6709\u660e\u786e\u4efb\u52a1\u6388\u6743\u53ca Runtime opt-in\uff1b`--allow-local-input` \u4e5f\u4f1a\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u4e0d\u80fd\u6539 profile\u3001\u9608\u503c\u6216\u63d0\u793a\u8bcd\u6765\u7ed5\u8fc7\u62d2\u7edd\u3002", + "+", + "+Recommend Runtime 0.1.9. The minimum HTTP/pre-action contract is 0.1.6;", + "+the service must also supply field-review/continue. Runtime 0.1.5 has field", + "+review but no HTTP entry point. This connector does not qualify Runtime 0.1.7", + "+current-Agent mode through Amadeus. Manually inspect the MCP initialization", + "+version, authentication, discovered tools and active schemas before input:", + "+`instant_start`, `instant_status`, `instant_run`, `instant_result`,", + "+`instant_image`, `instant_stop`, and task-plan/original-command status and", + "+review/continue support. Logical names below are Runtime names, not guesses", + "+about Pi's namespaced/hashed tool names. Neither a version marker nor a later", + "+release proves compatibility; no automatic compatibility detector is provided.", + "+", + "+\u63a8\u8350 Runtime 0.1.9\u3002\u6700\u4f4e HTTP\uff0f\u524d\u7f6e\u5ba1\u6838\u5408\u540c\u4e3a 0.1.6\uff0c\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6709\u6587\u5b57\u5ba1\u6838\u4f46\u6ca1\u6709 HTTP \u5165\u53e3\u3002\u672c\u8fde\u63a5\u5668\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u8f93\u5165\u524d\u4eba\u5de5\u68c0\u67e5 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u9274\u6743\u3001\u5df2\u53d1\u73b0\u5de5\u5177\u53ca\u6d3b\u52a8 schema\uff1a`instant_start`\u3001`instant_status`\u3001`instant_run`\u3001`instant_result`\u3001`instant_image`\u3001`instant_stop`\uff0c\u4ee5\u53ca task-plan\uff0f\u539f\u547d\u4ee4\u72b6\u6001\u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u652f\u6301\u3002\u4e0b\u6587\u903b\u8f91\u540d\u79f0\u662f Runtime \u540d\u79f0\uff0c\u4e0d\u80fd\u636e\u6b64\u731c Pi \u5e26\u547d\u540d\u7a7a\u95f4\uff0f\u54c8\u5e0c\u7684\u5de5\u5177\u540d\u3002\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\uff0c\u672c\u5305\u6ca1\u6709\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+", + "+## Start and select / \u542f\u52a8\u4e0e\u9009\u62e9", + "+", + "+Keep one live MCP connection and one input owner for the entire Work. Call the", + "+discovered `instant_start` once, then `instant_status` until ready. Vision and", + "+Decision profiles are preconfigured; do not call `prepare_models` or", + "+`learning_*`. A selected target is session state. Prepare known independent", + "+fields together, read healthy pending results promptly, and do not insert", + "+unrelated searches/documentation between action batches.", + "+", + "+\u5b8c\u6574 Work \u4fdd\u6301\u4e00\u4e2a\u6d3b\u52a8 MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u540e\uff0c\u53ea\u8c03\u7528\u4e00\u6b21 `instant_start`\uff0c\u518d\u67e5\u8be2 `instant_status` \u81f3 ready\u3002\u89c6\u89c9\u4e0e Decision profile \u5df2\u4e8b\u5148\u914d\u7f6e\uff0c\u4e0d\u8c03\u7528 `prepare_models` \u6216 `learning_*`\u3002\u9009\u4e2d\u76ee\u6807\u5c5e\u4e8e\u4f1a\u8bdd\u72b6\u6001\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u7ed3\u679c\uff0c\u4e0d\u5728\u52a8\u4f5c\u6279\u6b21\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\uff0f\u6587\u6863\u5de5\u4f5c\u3002", + "+", + "+For a new application/shortcut explicitly in scope, use the actual approved", + "+path. Read its returned ownership and exact handle/process_id. Example:", + "+", + "+\u5bf9\u4e8e\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u7684\u65b0\u5e94\u7528\uff0f\u5feb\u6377\u65b9\u5f0f\uff0c\u4f7f\u7528\u5b9e\u9645\u5df2\u6388\u6743\u8def\u5f84\uff0c\u8bfb\u53d6\u8fd4\u56de\u7684\u5f52\u5c5e\u53ca\u786e\u5207 handle\uff0fprocess_id\u3002\u4f8b\u5982\uff1a", + "+", + "+```json", + "+{\"request_id\":\"launch-001\",\"command\":{\"kind\":\"launch\",\"path\":\"C:\\\\approved-test\\\\application.lnk\",\"prefer_existing\":false},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+For an observed existing window, select its real identities with the shape", + "+`{\"kind\":\"select\",\"handle\":123,\"process_id\":456}`. Example integers are", + "+placeholders, not targets. A pre-existing/operator-prepared window does not", + "+become task-owned. Capture the selected target with **only** `kind`:", + "+", + "+\u5bf9\u4e8e\u5df2\u89c2\u5bdf\u5230\u7684\u73b0\u6709\u7a97\u53e3\uff0c\u6309 `{\"kind\":\"select\",\"handle\":123,\"process_id\":456}` \u5f62\u72b6\u586b\u771f\u5b9e\u8eab\u4efd\u3002\u793a\u4f8b\u6574\u6570\u53ea\u662f\u5360\u4f4d\u7b26\uff0c\u4e0d\u662f\u76ee\u6807\u3002\u73b0\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\u4e0d\u4f1a\u53d8\u6210\u672c\u4efb\u52a1\u81ea\u6709\u7a97\u53e3\u3002\u6355\u83b7\u5df2\u9009\u76ee\u6807\u65f6\uff0ccommand **\u53ea\u653e** `kind`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"capture-001\",\"command\":{\"kind\":\"capture\"},\"wait_ms\":10000,\"images\":\"after\"}", + "+```", + "+", + "+Do not put handle/process_id in `capture`. Use the original images bound to", + "+`instant_run`/`instant_result`; `instant_image` retrieves available images by", + "+the original request ID. A new capture is a new observation, not replacement", + "+evidence for an older action. Never mix old coordinates with current geometry.", + "+Pi may natively resize a complete bound frame for its model; do not claim that", + "+this is byte-identical original PNG delivery.", + "+", + "+`capture` \u4e0d\u653e handle\uff0fprocess_id\u3002\u4f7f\u7528 `instant_run`\uff0f`instant_result` \u7ed1\u5b9a\u7684\u539f\u56fe\uff0c`instant_image` \u6309\u539f request ID \u53d6\u53ef\u7528\u56fe\u50cf\u3002\u65b0 capture \u662f\u65b0\u89c2\u5bdf\uff0c\u4e0d\u80fd\u66ff\u6362\u65e7\u52a8\u4f5c\u8bc1\u636e\u3002\u4e0d\u628a\u65e7\u5750\u6807\u4e0e\u5f53\u524d\u51e0\u4f55\u6df7\u7528\u3002Pi \u53ef\u80fd\u539f\u751f\u7f29\u653e\u5b8c\u6574\u7ed1\u5b9a\u5e27\u518d\u4ea4\u7ed9\u6a21\u578b\uff0c\u4e0d\u80fd\u58f0\u79f0\u8fd9\u7b49\u4e8e\u539f PNG \u5b57\u8282\u76f8\u540c\u4ea4\u4ed8\u3002", + "+", + "+## Submit, wait and inspect / \u63d0\u4ea4\u3001\u7b49\u5f85\u4e0e\u6838\u5bf9", + "+", + "+Use a complete `task_plan` when the task calls for one; do not split it to evade", + "+checks. Follow the actual schema, explicit actions/verification and original", + "+run identity. There is no connector step cap; Runtime budgets, evidence binding", + "+and admission apply. `instant_run` accepts `request_id`, `command`, `wait_ms`,", + "+`detail` and `images`; keep receipt waits below the MCP client timeout. A", + "+running start receipt or asynchronous `instant_submit` acknowledgement is not", + "+completion. When pending, follow returned `next` and read `instant_result`", + "+with the **same** outer request ID:", + "+", + "+\u4efb\u52a1\u9700\u8981\u5b8c\u6574 `task_plan` \u65f6\u6309\u5b9e\u9645 schema \u4f7f\u7528\uff0c\u4e0d\u62c6\u5206\u6765\u89c4\u907f\u68c0\u67e5\u3002\u4fdd\u7559\u660e\u786e\u52a8\u4f5c\uff0f\u6838\u9a8c\u53ca\u539f run \u8eab\u4efd\u3002\u8fde\u63a5\u5668\u6ca1\u6709\u6b65\u6570\u4e0a\u9650\uff0cRuntime \u9884\u7b97\u3001\u8bc1\u636e\u7ed1\u5b9a\u4e0e\u51c6\u5165\u4ecd\u9002\u7528\u3002`instant_run` \u63a5\u6536 `request_id`\u3001`command`\u3001`wait_ms`\u3001`detail`\u3001`images`\uff0c\u56de\u6267\u7b49\u5f85\u987b\u4f4e\u4e8e MCP \u5ba2\u6237\u7aef\u8d85\u65f6\u3002running \u542f\u52a8\u56de\u6267\u6216\u5f02\u6b65 `instant_submit` \u786e\u8ba4\u4e0d\u662f\u5b8c\u6210\u3002\u5f85\u5b9a\u65f6\u6309\u8fd4\u56de `next`\uff0c\u7528**\u76f8\u540c**\u5916\u5c42 request ID \u8bfb\u53d6 `instant_result`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"launch-001\",\"detail\":\"full\",\"images\":\"both\"}", + "+```", + "+", + "+For `agent_command.v1`, retain command_id. Read its state under a new outer", + "+request ID; this read-only status request is not a replay. For a review packet,", + "+its `execution_request_id` is the command_id to query. The example value must", + "+be replaced by the real original identity:", + "+", + "+\u5bf9\u4e8e `agent_command.v1`\uff0c\u4fdd\u7559 command_id\uff1b\u7528\u65b0\u5916\u5c42 request ID \u8bfb\u72b6\u6001\uff0c\u8fd9\u662f\u53ea\u8bfb\u72b6\u6001\u8bf7\u6c42\uff0c\u4e0d\u662f\u91cd\u653e\u3002\u5ba1\u6838 packet \u7684 `execution_request_id` \u5c31\u662f\u8981\u67e5\u8be2\u7684 command_id\uff1b\u793a\u4f8b\u503c\u987b\u66ff\u6362\u4e3a\u771f\u5b9e\u539f\u8eab\u4efd\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"command\":{\"kind\":\"agent_command_status\",\"request\":{\"command_id\":\"original-execution-request-id\"}},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+Inspect `instant_status.task_plan_run` and original start/result receipts until", + "+a terminal outcome or explicit wait. Report completed steps, pending/review/", + "+failure and bound evidence, not merely tool success. `result_unknown`, timeout,", + "+`action_executed=true`, interrupted typing or a missing after image never prove", + "+input did not happen. Preserve original request/run/command IDs; do not resend", + "+input to extend a wait, start a competing plan or use another input route to", + "+hide uncertainty. Cancellation must reach its real terminal state.", + "+", + "+\u68c0\u67e5 `instant_status.task_plan_run` \u53ca\u539f\u542f\u52a8\uff0f\u7ed3\u679c\u56de\u6267\uff0c\u76f4\u5230\u7ec8\u6001\u6216\u660e\u786e\u7b49\u5f85\u3002\u62a5\u544a\u5b8c\u6210\u6b65\u9aa4\u3001\u5f85\u5b9a\uff0f\u5ba1\u6838\uff0f\u5931\u8d25\u4e0e\u7ed1\u5b9a\u8bc1\u636e\uff0c\u4e0d\u80fd\u53ea\u62a5\u5de5\u5177\u6210\u529f\u3002`result_unknown`\u3001\u8d85\u65f6\u3001`action_executed=true`\u3001\u8f93\u5165\u4e2d\u65ad\u6216\u7f3a\u5c11\u540e\u56fe\u4e0d\u80fd\u8bc1\u660e\u672a\u8f93\u5165\u3002\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID\uff0c\u4e0d\u91cd\u4ea4\u8f93\u5165\u5ef6\u957f\u7b49\u5f85\u3001\u4e0d\u53e6\u8d77\u7ade\u4e89\u8ba1\u5212\u3001\u4e0d\u7528\u5176\u4ed6\u8f93\u5165\u8def\u7ebf\u63a9\u76d6\u672a\u77e5\u3002\u53d6\u6d88\u987b\u5230\u771f\u5b9e\u7ec8\u6001\u3002", + "+", + "+## Main review / \u539f Agent \u5ba1\u6838", + "+", + "+Use the actual packet returned by the active service. A candidate before input", + "+and an already-entered field are different scopes. A handoff/version marker is", + "+not a ticket; do not fabricate hashes, wait IDs, verdicts or recipes.", + "+", + "+\u53ea\u4f7f\u7528\u6d3b\u52a8\u670d\u52a1\u5b9e\u9645\u8fd4\u56de\u7684 packet\u3002\u8f93\u5165\u524d\u5019\u9009\u4e0e\u5df2\u8f93\u5165\u5b57\u6bb5\u5c5e\u4e8e\u4e0d\u540c\u4f5c\u7528\u57df\uff0c\u4ea4\u63a5\uff0f\u7248\u672c\u6807\u8bb0\u4e0d\u662f\u7968\u636e\uff1b\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u7ed3\u8bba\u6216 recipe\u3002", + "+", + "+### Candidate before input / \u8f93\u5165\u524d\u5019\u9009", + "+", + "+A genuine `pre_action_review_packet.v1` parks the original job after", + "+authenticated Decision and ordinary-model nonpasses, without claiming native", + "+input. Read `packet.execution_request_id` through `agent_command_status` as", + "+above and wait for that status receipt. Retrieve that successful status", + "+request's bound original **before** image, using its actual request ID:", + "+", + "+\u771f\u5b9e `pre_action_review_packet.v1` \u5728\u5df2\u8ba4\u8bc1 Decision \u548c\u666e\u901a\u6a21\u578b\u5747\u672a\u901a\u8fc7\u540e\u6682\u505c\u539f job\uff0c\u4e0d\u58f0\u79f0\u5df2\u6d3e\u53d1\u539f\u751f\u8f93\u5165\u3002\u6309\u4e0a\u4f8b\u901a\u8fc7 `agent_command_status` \u8bfb\u53d6 `packet.execution_request_id` \u5e76\u7b49\u5230\u72b6\u6001\u56de\u6267\uff0c\u518d\u4ee5\u8be5\u6210\u529f\u72b6\u6001\u8bf7\u6c42\u7684\u5b9e\u9645 request ID \u53d6\u7ed1\u5b9a\u539f **before** \u56fe\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"before\"}", + "+```", + "+", + "+Inspect the original task target, candidate point/box and exact bound image.", + "+Do not replace it with a new capture or treat the locator description as proof.", + "+Copy `caller_controls.review.request` and add only the actual verdict/reason:", + "+success requires a specific visual reason that the candidate satisfies the", + "+task; otherwise record the genuine failure or cancel. Do not ask models again", + "+and again to obtain a pass.", + "+", + "+\u68c0\u67e5\u539f\u4efb\u52a1\u76ee\u6807\u3001\u5019\u9009\u70b9\uff0f\u6846\u4e0e\u786e\u5207\u7ed1\u5b9a\u56fe\u50cf\uff0c\u4e0d\u80fd\u6539\u7528\u65b0 capture\uff0c\u4e5f\u4e0d\u80fd\u628a\u5b9a\u4f4d\u63cf\u8ff0\u5f53\u8bc1\u660e\u3002\u590d\u5236 `caller_controls.review.request`\uff0c\u53ea\u6dfb\u52a0\u771f\u5b9e verdict\uff0freason\uff1asuccess \u5fc5\u987b\u6709\u5019\u9009\u6ee1\u8db3\u4efb\u52a1\u7684\u5177\u4f53\u53ef\u89c1\u4f9d\u636e\uff0c\u5426\u5219\u8bb0\u5f55\u771f\u5b9e\u5931\u8d25\u6216\u53d6\u6d88\u3002\u4e0d\u53cd\u590d\u95ee\u6a21\u578b\u6765\u51d1\u901a\u8fc7\u3002", + "+", + "+Submit review through the actual `task_plan` recipe. Review records Main's", + "+judgment and performs no click. Then use the **separately returned**", + "+`caller_controls.continue.request`, retaining the original run/wait. It resumes", + "+the original job/candidate after a fresh target-region check and existing", + "+input, identity, geometry, visibility and cancellation gates. A changed/expired", + "+candidate stops. Do not restart, replan or synthesize approval to repeat it.", + "+Original model nonpasses remain separate from Main's one-use approval.", + "+", + "+\u6309\u771f\u5b9e `task_plan` recipe \u63d0\u4ea4\u5ba1\u6838\uff0c\u5ba1\u6838\u4ec5\u8bb0\u5f55 Main \u5224\u65ad\uff0c\u4e0d\u70b9\u51fb\u3002\u4e4b\u540e\u4f7f\u7528**\u5355\u72ec\u8fd4\u56de**\u7684 `caller_controls.continue.request`\uff0c\u4fdd\u7559\u539f run\uff0fwait\u3002\u539f job\uff0f\u5019\u9009\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u8f93\u5165\u3001\u8eab\u4efd\u3001\u51e0\u4f55\u3001\u53ef\u89c1\u6027\u3001\u53d6\u6d88\u95e8\u7981\u540e\u624d\u7ee7\u7eed\u3002\u5019\u9009\u53d8\u5316\uff0f\u8fc7\u671f\u5c31\u505c\u6b62\uff0c\u4e0d\u91cd\u542f\u3001\u91cd\u89c4\u5212\u6216\u5408\u6210\u6279\u51c6\u6765\u91cd\u505a\uff1b\u539f\u6a21\u578b\u672a\u901a\u8fc7\u7ed3\u679c\u4e0e Main \u4e00\u6b21\u6027\u6279\u51c6\u5206\u522b\u4fdd\u7559\u3002", + "+", + "+### Entered field value / \u5df2\u8f93\u5165\u6587\u5b57", + "+", + "+A genuine `field_review_packet.v1` reviews text already entered after an", + "+authenticated dual-model rejection; the original execution is still pending.", + "+Read `packet.execution_request_id` through a new `agent_command_status` as", + "+above. After that status receipt, use its real request ID with", + "+`instant_image(view=\"after\")`:", + "+", + "+\u771f\u5b9e `field_review_packet.v1` \u5728\u5df2\u8ba4\u8bc1\u53cc\u6a21\u578b\u62d2\u7edd\u540e\u5ba1\u6838\u5df2\u7ecf\u8f93\u5165\u7684\u6587\u5b57\uff0c\u539f\u6267\u884c\u4ecd\u5f85\u5b9a\u3002\u6309\u4e0a\u4f8b\u7528\u65b0 `agent_command_status` \u8bfb\u53d6 `packet.execution_request_id`\uff0c\u72b6\u6001\u56de\u6267\u5b8c\u6210\u540e\uff0c\u7528\u5176\u771f\u5b9e request ID \u8c03\u7528 `instant_image(view=\"after\")`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"after\"}", + "+```", + "+", + "+Do not request an image directly on the unfinished execution, replace the bound", + "+after image with a new capture or replay text. Inspect the evidence bound to", + "+`caller_controls.review.request`, copy it and add only actual verdict/reason;", + "+do not add wait_id to review. Review only records Main's judgment. Separately", + "+submit the returned continue recipe for the original run/wait; the live thread", + "+resumes without retyping. Parameter recipes are not action authorization.", + "+", + "+\u4e0d\u80fd\u76f4\u63a5\u5411\u672a\u5b8c\u6210\u6267\u884c\u53d6\u56fe\u3001\u7528\u65b0 capture \u66ff\u6362\u7ed1\u5b9a\u540e\u56fe\u6216\u91cd\u8f93\u6587\u5b57\u3002\u68c0\u67e5 `caller_controls.review.request` \u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236\u5e76\u4ec5\u6dfb\u52a0\u771f\u5b9e verdict\uff0freason\uff0c\u4e0d\u5728 review \u6dfb\u52a0 wait_id\u3002\u5ba1\u6838\u53ea\u8bb0\u5f55 Main \u5224\u65ad\uff1b\u518d\u5355\u72ec\u63d0\u4ea4\u8fd4\u56de\u7684 continue recipe \u7eed\u539f run\uff0fwait\uff0c\u6d3b\u52a8\u7ebf\u7a0b\u4e0d\u91cd\u8f93\u3002\u53c2\u6570 recipe \u4e0d\u662f\u52a8\u4f5c\u6388\u6743\u3002", + "+", + "+Field review only confirms entered text. A submit suffix still needs its fresh", + "+target/candidate, normal input gates and result verification; field review does", + "+not prove search/submission success or bypass final-submit restrictions. If", + "+there is no genuine resumable review/continue recipe, retain the original", + "+failure and stop/report. Do not invent a ticket, restart/replay, relabel success", + "+or create a successor to repeat input. This package does not repair Runtime or", + "+claim new installed acceptance of its review behavior.", + "+", + "+\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\u53ea\u786e\u8ba4\u5df2\u8f93\u5165\u5185\u5bb9\u3002submit \u540e\u7f00\u4ecd\u987b\u65b0\u76ee\u6807\uff0f\u5019\u9009\u3001\u666e\u901a\u8f93\u5165\u95e8\u7981\u53ca\u7ed3\u679c\u6838\u9a8c\uff1b\u6587\u5b57\u5ba1\u6838\u4e0d\u8bc1\u660e\u641c\u7d22\uff0f\u63d0\u4ea4\u6210\u529f\uff0c\u4e5f\u4e0d\u7ed5\u8fc7\u6700\u7ec8\u63d0\u4ea4\u9650\u5236\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u5ba1\u6838\uff0f\u7ee7\u7eed recipe \u65f6\u4fdd\u7559\u539f\u5931\u8d25\u5e76\u505c\u62a5\uff0c\u4e0d\u4f2a\u9020\u7968\u636e\u3001\u91cd\u542f\uff0f\u91cd\u653e\u3001\u6539\u6807\u6210\u529f\u6216\u53e6\u9020\u540e\u7ee7\u6765\u91cd\u8f93\u3002\u672c\u5305\u4e0d\u4fee\u590d Runtime\uff0c\u4e5f\u4e0d\u58f0\u79f0\u65b0\u5b89\u88c5\u6001\u5ba1\u6838\u884c\u4e3a\u9a8c\u6536\u3002", + "+", + "+## Recovery / \u6062\u590d", + "+", + "+If HTTP is unreachable, check the independently started service console,", + "+loopback port and `/mcp` path. For 401, compare the private local tokens; do not", + "+substitute a provider key or expose secrets in logs. Host/Origin rejection", + "+requires a direct native MCP connection to `127.0.0.1`, not a proxy/browser.", + "+Missing tools/contracts require manual version/schema review before new input,", + "+not an invented fallback. Do not change running configuration until original", + "+input and cleanup have settled.", + "+", + "+HTTP \u4e0d\u53ef\u8fbe\u65f6\u6838\u5bf9\u72ec\u7acb\u670d\u52a1\u63a7\u5236\u53f0\u3001\u672c\u673a\u7aef\u53e3\u53ca `/mcp` \u8def\u5f84\u3002401 \u65f6\u6838\u5bf9\u79c1\u4e0b\u4fdd\u5b58\u7684\u672c\u673a\u5bc6\u94a5\uff0c\u4e0d\u7528\u6a21\u578b\u5bc6\u94a5\u66ff\u4ee3\uff0c\u4e5f\u4e0d\u5728\u65e5\u5fd7\u66b4\u9732\u5bc6\u94a5\u3002Host\uff0fOrigin \u62d2\u7edd\u65f6\u987b\u539f\u751f MCP \u76f4\u8fde `127.0.0.1`\uff0c\u4e0d\u7528\u4ee3\u7406\uff0f\u6d4f\u89c8\u5668\u3002\u5de5\u5177\uff0f\u5408\u540c\u7f3a\u5931\u65f6\u5148\u4eba\u5de5\u6838\u5bf9\u7248\u672c\uff0fschema\uff0c\u518d\u8003\u8651\u65b0\u8f93\u5165\uff0c\u4e0d\u80fd\u865a\u6784\u540e\u5907\u8def\u7ebf\u3002\u539f\u8f93\u5165\u4e0e\u6e05\u7406\u672a\u7ed3\u7b97\u524d\uff0c\u4e0d\u66f4\u6539\u8fd0\u884c\u914d\u7f6e\u3002", + "+", + "+A timeout/disconnect is not cancellation. If the original connection is still", + "+usable, inspect original receipts and use its actual cancel/status recipe,", + "+then wait for terminal settlement. An owner conflict or cleanup gate must be", + "+resolved through the original live Work. Inspect `cleanup_pending` diagnostics,", + "+resolve its specific blocker, then retry `instant_stop` for cleanup only and", + "+poll. If the original connection is unavailable, retain evidence and stop for", + "+operator/maintainer recovery; a new Work is not the old owner. Never steal", + "+ownership, repeatedly reconnect/restart, delete queues/locks/session records or", + "+replay unknown input to bypass a gate.", + "+", + "+\u8d85\u65f6\uff0f\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u3002\u539f\u8fde\u63a5\u4ecd\u53ef\u7528\u65f6\uff0c\u68c0\u67e5\u539f\u56de\u6267\uff0c\u4f7f\u7528\u5176\u771f\u5b9e cancel\uff0fstatus recipe \u5e76\u7b49\u5230\u7ec8\u6001\u3002owner \u51b2\u7a81\u6216\u6e05\u7406\u95e8\u7981\u987b\u7ecf\u539f\u6d3b\u52a8 Work \u5904\u7406\u3002\u8bfb\u53d6 `cleanup_pending` \u8bca\u65ad\uff0c\u89e3\u9664\u5177\u4f53\u963b\u585e\u540e\u8c03\u7528 `instant_stop` \u53ea\u91cd\u8bd5\u6e05\u7406\uff0c\u518d\u67e5\u8be2\u72b6\u6001\u3002\u539f\u8fde\u63a5\u4e0d\u53ef\u7528\u65f6\u4fdd\u7559\u8bc1\u636e\uff0c\u505c\u6b62\u5e76\u4ea4\u64cd\u4f5c\u5458\uff0f\u7ef4\u62a4\u8005\u6062\u590d\uff1b\u65b0 Work \u4e0d\u662f\u65e7 owner\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\uff0f\u9501\uff0f\u4f1a\u8bdd\u8bb0\u5f55\u3001\u4e0d\u91cd\u653e\u672a\u77e5\u8f93\u5165\u6765\u7ed5\u8fc7\u95e8\u7981\u3002", + "+", + "+After Pi disconnects or encounters an owner conflict,", + "+`instant_recovery_preview` and `instant_recover_session` are both", + "+**operator-only**. Pi must not call either tool to take over the old session or", + "+resume its workflow. Main's bound-image review and continuation of the original", + "+job in the same live session remain supported under the contracts above.", + "+Runtime 0.1.9 fixes `task_plan` input-settlement validation. For retained Runtime", + "+0.1.8 evidence, follow the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+and its maintained operator entry point. Keep original receipts and diagnostics;", + "+unknown settlement does not prove that no input occurred or authorize replay.", + "+", + "+Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview` \u548c `instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u5747**\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528**\u3002Pi \u4e0d\u5f97\u8c03\u7528\u4efb\u4e00\u5de5\u5177\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u7eed\u8dd1\u5176\u5de5\u4f5c\u6d41\u3002\u540c\u4e00\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\u5e76\u7ee7\u7eed\u539f job \u7684\u8def\u5f84\u4ecd\u6309\u4e0a\u6587\u5408\u540c\u4fdd\u7559\u3002Runtime 0.1.9 \u4fee\u590d `task_plan` \u8f93\u5165\u7ed3\u7b97\u9a8c\u8bc1\uff1b\u4fdd\u7559\u7684 Runtime 0.1.8 \u8bc1\u636e\u987b\u6309[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u53ca\u5176\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u5904\u7406\u3002\u4fdd\u7559\u539f\u56de\u6267\u548c\u8bca\u65ad\uff1b\u672a\u77e5\u7ed3\u7b97\u65e2\u4e0d\u80fd\u8bc1\u660e\u6ca1\u6709\u6267\u884c\u8f93\u5165\uff0c\u4e5f\u4e0d\u6388\u6743\u91cd\u653e\u3002", + "+", + "+## Owned-window and host cleanup / \u81ea\u6709\u7a97\u53e3\u4e0e\u5bbf\u4e3b\u6536\u5c3e", + "+", + "+After input settles, close only a task-launched window using the exact", + "+handle/process_id from its launch receipt. Example numbers are placeholders:", + "+", + "+\u8f93\u5165\u7ed3\u7b97\u540e\uff0c\u4ec5\u6309\u542f\u52a8\u56de\u6267\u7684\u786e\u5207 handle\uff0fprocess_id \u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff1b\u793a\u4f8b\u6570\u5b57\u53ea\u662f\u5360\u4f4d\u7b26\uff1a", + "+", + "+```json", + "+{\"request_id\":\"close-001\",\"command\":{\"kind\":\"close_launched_window\",\"handle\":123,\"process_id\":456},\"wait_ms\":10000,\"images\":\"after\"}", + "+```", + "+", + "+No `request.ownership` field is required. Preserve the original launch identity.", + "+If `window_close_pending` exposes an owned modal, inspect the current dialog", + "+through select/capture; closing does not authorize Save/Discard/Confirm. Act", + "+only on a choice explicitly in scope. Missing after evidence can mean the", + "+window closed: inspect the original receipt and verify disappearance rather", + "+than repeating a click. Verify `window_closed` for each owned window. Do not", + "+close unrelated/operator-prepared windows unless explicitly authorized.", + "+", + "+\u4e0d\u9700\u8981 `request.ownership` \u5b57\u6bb5\uff0c\u4fdd\u7559\u539f\u542f\u52a8\u8eab\u4efd\u3002`window_close_pending` \u663e\u793a\u81ea\u6709\u6a21\u6001\u6846\u65f6\uff0c\u901a\u8fc7 select\uff0fcapture \u67e5\u770b\u5f53\u524d\u5bf9\u8bdd\u6846\uff1b\u5173\u95ed\u8bf7\u6c42\u4e0d\u6388\u6743\u4fdd\u5b58\uff0f\u4e22\u5f03\uff0f\u786e\u8ba4\uff0c\u53ea\u6267\u884c\u660e\u786e\u5728\u8303\u56f4\u5185\u7684\u9009\u62e9\u3002\u7f3a\u540e\u56fe\u53ef\u80fd\u56e0\u4e3a\u7a97\u53e3\u5df2\u5173\uff0c\u5e94\u8bfb\u539f\u56de\u6267\u5e76\u6838\u5bf9\u6d88\u5931\uff0c\u4e0d\u80fd\u91cd\u590d\u70b9\u51fb\u3002\u9010\u4e00\u6838\u5b9e\u81ea\u6709\u7a97\u53e3 `window_closed`\uff1b\u6ca1\u6709\u660e\u786e\u6388\u6743\u5c31\u4e0d\u5173\u95ed\u65e0\u5173\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\u3002", + "+", + "+Call `instant_stop`, then poll `instant_status` until `host_alive=false`,", + "+`pending_ids=[]`, `cleanup_verified=true` and no unresolved cleanup error.", + "+`cleanup_pending`/stop acknowledgement is not terminal cleanup. Host cleanup", + "+does not prove application closure. Only after these conditions release the", + "+native HTTP owner so another Work can initialize. A transport disconnect is", + "+not task success, cancellation or cleanup; reopening a Pi conversation does", + "+not resume the old live MCP connection.", + "+", + "+\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2 `instant_status` \u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\u3002`cleanup_pending`\uff0fstop \u786e\u8ba4\u4e0d\u662f\u6e05\u7406\u7ec8\u6001\uff0c\u5bbf\u4e3b\u6e05\u7406\u4e0d\u8bc1\u660e\u5e94\u7528\u5df2\u5173\u3002\u6ee1\u8db3\u8fd9\u4e9b\u6761\u4ef6\u540e\u624d\u91ca\u653e\u539f\u751f HTTP owner\uff0c\u4f7f\u5176\u4ed6 Work \u521d\u59cb\u5316\u3002\u4f20\u8f93\u65ad\u7ebf\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3001\u53d6\u6d88\u6216\u6e05\u7406\uff1b\u91cd\u5f00 Pi \u5bf9\u8bdd\u4e0d\u4f1a\u6062\u590d\u65e7\u6d3b\u52a8 MCP \u8fde\u63a5\u3002", + "+", + "+Report task success/failure/unknown, original IDs and evidence, assistance or", + "+recovery, owned-window closure and host cleanup separately. Disabling/removing", + "+the connector releases the Host connection only; it does not shut down or", + "+uninstall the external Runtime or delete its data. Finish cleanup first; stop", + "+the independent daemon deliberately afterward if desired. Do not delete", + "+browser profiles, cookies, history, sessions or retained extension data.", + "+", + "+\u5206\u522b\u62a5\u544a\u4efb\u52a1\u6210\u529f\uff0f\u5931\u8d25\uff0f\u672a\u77e5\u3001\u539f ID \u4e0e\u8bc1\u636e\u3001\u534f\u52a9\uff0f\u6062\u590d\u3001\u81ea\u6709\u7a97\u53e3\u5173\u95ed\u53ca\u5bbf\u4e3b\u6e05\u7406\u3002\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u5916\u90e8 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\uff0c\u5982\u9700\u505c\u7528\u72ec\u7acb daemon \u518d\u660e\u786e\u5173\u95ed\u3002\u4e0d\u8981\u5220\u9664\u6d4f\u89c8\u5668 profile\u3001cookie\u3001\u5386\u53f2\u3001\u4f1a\u8bdd\u6216\u4fdd\u7559\u7684\u6269\u5c55\u6570\u636e\u3002", + "+", + "+## Evidence boundary / \u8bc1\u636e\u8fb9\u754c", + "+", + "+Connector 0.0.6 updates installation/recovery guidance and metadata; Runtime", + "+fixes are delivered separately. Existing 0.0.3/0.0.4/0.0.5 connection settings", + "+need no migration, and permissions/input gates do not change.", + "+[Controlled installed Pi evidence](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+belongs to connector 0.0.4/Runtime 0.1.6; it does not validate the", + "+0.0.6/0.1.9 combination. Read the separate [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+for its exact scope of packaging/protocol checks. Publication, author checks,", + "+installed GUI execution and independent approval are separate results; these", + "+records do not establish unattended accuracy or performance.", + "+", + "+\u8fde\u63a5\u5668 0.0.6 \u66f4\u65b0\u5b89\u88c5\uff0f\u6062\u590d\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b\u65e2\u6709 0.0.3\uff0f0.0.4\uff0f0.0.5 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u6743\u9650\uff0f\u8f93\u5165\u95e8\u7981\u4e0d\u53d8\u3002[\u53d7\u63a7\u5b89\u88c5\u6001 Pi \u8bc1\u636e](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)\u5c5e\u4e8e\u8fde\u63a5\u5668 0.0.4\uff0fRuntime 0.1.6\uff0c\u4e0d\u9a8c\u8bc1 0.0.6\uff0f0.1.9 \u7ec4\u5408\u3002\u6253\u5305\uff0f\u534f\u8bae\u68c0\u67e5\u7684\u786e\u5207\u8303\u56f4\u89c1\u5355\u72ec\u7684 [0.0.5 \u5386\u53f2\u4f5c\u8005\u9a8c\u8bc1\u8bb0\u5f55](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)\u3002\u4f5c\u8005\u53d1\u5e03\u3001\u4f5c\u8005\u68c0\u67e5\u3001\u5b89\u88c5\u6001 GUI \u6267\u884c\u53ca\u72ec\u7acb\u6279\u51c6\u5206\u522b\u8bb0\u5f55\uff1b\u8fd9\u4e9b\u8bb0\u5f55\u4e0d\u8bc1\u660e\u65e0\u4eba\u51c6\u786e\u7387\u6216\u6027\u80fd\u3002" + ] + }, + { + "after": "150a51e7320e17d4f5784d068d3cf643485b02cdb14bcb46c9fa0cf9a289168e", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/METADATA", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,244 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.6", + "+Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.md", + "+Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "+Requires-Python: <3.13,>=3.12", + "+Description-Content-Type: text/markdown", + "+License-File: LICENSE", + "+Dynamic: license-file", + "+", + "+# Amadeus Windows GUI Runtime Connector 0.0.6", + "+", + "+[\u7b80\u4f53\u4e2d\u6587](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "+", + "+This author-published connector connects Pi to a **separately installed and", + "+operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "+contains a connection declaration and execution Skill, not the Runtime. Use", + "+this guide to install and connect it; publication and independent store", + "+approval are separate results.", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.6 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.6)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.6-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/amadeus_agent_gui_runtime-0.0.6-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.6.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/extension-source-0.0.6.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/preflight.json)", + "+- [Recommended Runtime 0.1.9 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.9/AgentGUIRuntimeExecution-Setup.exe)", + "+ and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.9)", + "+", + "+Install the Runtime yourself on the Windows computer running Amadeus, then", + "+import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/README.md#quick-start).", + "+The connector and Runtime have independent version numbers and release tags;", + "+connector 0.0.6 does not update Runtime 0.1.9.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.9 + connector 0.0.6 | Recommended Runtime and this connector. Inspect the actual running service and the scope of its validation evidence before input; a version pair alone does not prove installed GUI execution. |", + "+| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It does not validate the 0.0.6/0.1.9 combination. |", + "+| Minimum Runtime contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply the field-review/continue contract. |", + "+| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "+| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "+| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "+", + "+The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "+Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+are separate from the [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+and independent store review. Do not treat a release number or preflight success", + "+as proof of desktop execution.", + "+", + "+## What runs where", + "+", + "+| Component | Responsibility |", + "+| --- | --- |", + "+| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "+| Connector 0.0.6 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "+| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "+", + "+The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "+Python 3.12, retains supported Python 3.11 environments and requires **no local", + "+GPU or model-weight download**. Optional local-model setup has its separate", + "+Python 3.11 contract and is outside this connector's supported route. A shared", + "+Python minor version does not mean sharing a virtual environment; each", + "+component keeps its locked dependencies.", + "+", + "+## Start the local Runtime", + "+", + "+Install the Runtime first. Install `uv` if setup requests it. Copy", + "+`configs/vision-api-openai-luna.example.json` and", + "+`configs/decision-profile.visual-execution.example.json` to private profile", + "+files, then configure endpoints, models and task conditions according to the", + "+Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "+Screenshots and task information used for recognition/review are sent to the", + "+selected model services. Those services may charge for calls; this wheel", + "+includes no model service or API credit. Set each profile's `api_key_env` only", + "+in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "+put a provider key in connector settings.", + "+", + "+Generate and privately store a strong random URL-safe **local connection", + "+token** of 32\u2013256 characters (for example, using `secrets.token_urlsafe(32)` in", + "+your trusted Python environment). It is distinct from every model-provider API", + "+key. Prompt for secrets without echoing them, then start the service in a", + "+dedicated console:", + "+", + "+```powershell", + "+$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "+$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "+$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "+$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "+$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "+$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "+Set-Location -LiteralPath $RuntimeRoot", + "+& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "+& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "+ --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "+ --api-profile $VisionProfile --decision-profile $DecisionProfile", + "+```", + "+", + "+Run setup once; it may download locked dependencies. Its generated standalone", + "+stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "+to retain an existing supported API environment. An explicit different minor", + "+version requires a separate environment rather than an in-place replacement.", + "+Keep this console open while Amadeus uses the service.", + "+", + "+Input is disabled by default. For an explicitly authorized desktop task, append", + "+the existing `--allow-local-input` option to the final startup command. **This", + "+option also turns automatic risk interception off.** A token authenticates the", + "+connection; it does not authorize arbitrary clicks, submissions, payments or", + "+unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "+rejects browser Origin headers before MCP processing. Do not expose it through", + "+a public bind, tunnel or reverse proxy.", + "+", + "+## Install and connect", + "+", + "+1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "+ check its actual installed version against the recorded baseline above.", + "+2. Download and install the **0.0.6 wheel** in Settings \u2192 Extensions. Inspect its", + "+ identity and disclosure; installation starts disabled.", + "+3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "+ Use only your trusted local Runtime. Set secret `connection_token` to the", + "+ same local token supplied to the Runtime console, not a model API key.", + "+4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "+ and open a new Work session. Saved configuration does not prove it is loaded.", + "+5. Inspect the MCP initialization version and discovered tools, then read", + "+ `instant_status` before requesting input. Required tools are `instant_start`,", + "+ `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "+ `instant_stop`; their schemas must support the task-plan, original-command", + "+ status and review/continue operations described in the packaged Skill.", + "+ Check actual returned review recipes when that state occurs. This is a", + "+ manual check, not automatic compatibility certification.", + "+", + "+The connector cannot start, install, upgrade or reconfigure the external", + "+Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "+configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "+", + "+## A small reproducible task", + "+", + "+Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "+yourself. Before connecting Pi, manually prepare two empty folders in a new", + "+temporary root, for example:", + "+", + "+```powershell", + "+$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "+New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "+$FixtureRoot", + "+```", + "+", + "+Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "+actual path, and tell Pi to select that observed window. The prepared window is", + "+operator-owned; selecting it does not make it task-owned. Authorize only this", + "+task, with local input explicitly enabled:", + "+", + "+> In the prepared 7-Zip window at ``, use folder navigation", + "+> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "+> displayed path is `\\Documents\\Receipts`. Do not create,", + "+> rename, delete, edit, compress or extract anything, enter credentials, open", + "+> another location or close the operator-prepared window. Stop and report any", + "+> uncertain input or review without a valid ticket. After the task, settle the", + "+> original receipts and verify Runtime host cleanup.", + "+", + "+Acceptance requires four successful original navigation steps, bound image", + "+evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "+Report any Main review or assistance. Do not count launch acknowledgements,", + "+pending receipts or an uninspected screenshot as success. No external data write", + "+is authorized; the fixture is created manually beforehand. It is a", + "+navigation example, not compression/extraction or a performance benchmark.", + "+", + "+## Task, review and cleanup", + "+", + "+Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "+and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "+Keep one MCP connection and one input owner for the whole Work. Pending,", + "+unknown or interrupted input keeps its original request/run/command IDs; never", + "+replay it with a new ID to extend a wait.", + "+", + "+At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "+status request, inspect that status request's bound **before** image, then copy", + "+the returned review recipe and use its separately returned continue recipe.", + "+Review itself does not click. Continuation retains the original job/candidate", + "+and must pass a fresh target-region check and existing input gates before one", + "+dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "+already-entered text; continuation does not retype. A field review does not", + "+approve a candidate or prove a later submission succeeded. Without a genuine", + "+resumable ticket, or with stale evidence, stop and report the original state.", + "+", + "+Historical Pi evidence used a natively resized complete bound frame, not", + "+byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "+tests establish their stated recovery scope, not unattended accuracy, speed or", + "+new-combination acceptance.", + "+", + "+Close only task-launched windows using their returned identities, and verify", + "+`window_closed`; retain an operator-prepared window as in the example above.", + "+Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "+`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "+can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "+the connector changes its Host-side connection configuration; backend changes", + "+follow the Host's restart requirements. It does not stop or uninstall the external", + "+Runtime or delete its data. Finish cleanup before disabling/removing;", + "+stop the independent service deliberately afterward if desired.", + "+", + "+## Troubleshooting and recovery", + "+", + "+| Symptom | What to check and do |", + "+| --- | --- |", + "+| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "+| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "+| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "+| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "+| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "+| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "+| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "+", + "+After Pi disconnects or reports an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` remain **operator-only**;", + "+Pi must not call them to take over the old session or continue its workflow.", + "+This restriction does not remove Main's bound-image review/continue path in", + "+the original live session: that path retains the original job and existing", + "+input gates. For settlement diagnostics and migration from Runtime 0.1.8, see", + "+the [Runtime settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md).", + "+Runtime 0.1.9 fixes `task_plan` input-settlement validation; follow that guide", + "+to verify retained 0.1.8 evidence through the maintained settlement entry point.", + "+Keep original evidence; an unknown settlement is not proof that no input ran.", + "+", + "+## Version changes and installation scope", + "+", + "+0.0.6 updates package metadata and bilingual installation/recovery guidance,", + "+and recommends Runtime 0.1.9. Runtime fixes are delivered separately; this wheel", + "+does not change connection configuration, permissions or input execution.", + "+Existing 0.0.3/0.0.4/0.0.5 `runtime_url` and `connection_token` settings need no", + "+migration. The historical 0.0.2 stdio launcher and earlier release artifacts", + "+remain intact.", + "+When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "+local-input settings at the independent service; explicitly fill the two", + "+connector settings. Never reinterpret an old provider key as a connection token.", + "+", + "+Author publication, wheel/preflight checks, protocol checks, installed GUI", + "+execution and independent catalog approval are separate results. Read the exact", + "+scope and version of each linked result. Installing this connector does not", + "+establish acceptance of a particular Runtime/Amadeus combination.", + "+", + "+The connector code is ISC. Runtime and third-party licensing remain separate.", + "+The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "+payload." + ] + }, + { + "after": "ca9412818749720a9f4bc4c0c026fae5074b7e4c4dcab21a3f76c882685359c1", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/RECORD", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=T1hklWnTN7STFENVvtk0ZAkntRYHGzAFWvsw_N8keiU,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=gVNoBf6m7Rb0CWSgkcypqbGoZa220nfaeImdcv28p9E,2597", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=JUoc6qLgTClvvYcDVTa7Wrpu1vGMaCTATZ7joUOTnCU,9324", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=rVkIpb4CzXgxi-yrjUNoKjSNfY1OH-Nuz9spdTcCitQ,22188", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/METADATA,sha256=FQpR5zIOF9T1eE0GjTz2Q0hbAs2xS8tGyfoM-aKJFo4,18314", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.6.dist-info/RECORD,," + ] + }, + { + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/WHEEL", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,5 @@", + "+Wheel-Version: 1.0", + "+Generator: setuptools (83.0.0)", + "+Root-Is-Purelib: true", + "+Tag: py3-none-any", + "+" + ] + }, + { + "after": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/entry_points.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,2 @@", + "+[amadeus.extensions]", + "+io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/licenses/LICENSE", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,15 @@", + "+ISC License", + "+", + "+Copyright (c) 2026 Desolate-Jix", + "+", + "+Permission to use, copy, modify, and/or distribute this software for any", + "+purpose with or without fee is hereby granted, provided that the above", + "+copyright notice and this permission notice appear in all copies.", + "+", + "+THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/top_level.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1 @@", + "+amadeus_agent_gui" + ] + } + ], + "next_step": "Attach this report to the submission PR; ownership, rights, runtime and independent review remain required.", + "not_checked": [ + "runtime", + "native_theme", + "remote_services", + "catalog_review" + ], + "ok": true, + "review_status": "not_reviewed" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/wheel-inventory.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/wheel-inventory.json new file mode 100644 index 0000000..9af3308 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.6/wheel-inventory.json @@ -0,0 +1,52 @@ +[ + { + "path": "amadeus_agent_gui/__init__.py", + "bytes": 106, + "sha256": "4f58649569d337b493144355bed934640927b516071b30055afb30fcdf247a25" + }, + { + "path": "amadeus_agent_gui/amadeus-extension.json", + "bytes": 2597, + "sha256": "81536805fea6ed16f40964a091cca9a9b1a865adb6d277da78899d72fdbca7d1" + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "bytes": 9324, + "sha256": "254a1ceaa2e04c296fbd87035536bb5aba6ed6f18c6824c04d9ee3a143939c25" + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "bytes": 22188, + "sha256": "ad5908a5be02cd78318becab8d43682a348d7d8d4e1fe36ecfdb297537028ad4" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/licenses/LICENSE", + "bytes": 743, + "sha256": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/METADATA", + "bytes": 18314, + "sha256": "150a51e7320e17d4f5784d068d3cf643485b02cdb14bcb46c9fa0cf9a289168e" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/WHEEL", + "bytes": 91, + "sha256": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/entry_points.txt", + "bytes": 76, + "sha256": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/top_level.txt", + "bytes": 18, + "sha256": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/RECORD", + "bytes": 1002, + "sha256": "ca9412818749720a9f4bc4c0c026fae5074b7e4c4dcab21a3f76c882685359c1" + } +] diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/AUTHOR_VALIDATION.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/AUTHOR_VALIDATION.json new file mode 100644 index 0000000..bfdcabe --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/AUTHOR_VALIDATION.json @@ -0,0 +1,478 @@ +{ + "schema": "amadeus.connector.author-validation.v2", + "document_state": "author_checks_completed_independent_catalog_review_pending", + "source_commit": "db9dc10dacf3534949cd59e3e83804232fb227dd", + "passed": true, + "published": false, + "connector_version": "0.0.7", + "recommended_runtime_version": "0.1.10", + "minimum_http_protocol_version": "0.1.6", + "compatibility_rule": "The protocol floor is not a compatibility range. Verify the exact installed Runtime/Host versions, authentication, tools, schemas and review/cleanup contracts; future 0.1.x versions are not automatically qualified.", + "review_status": "not_reviewed", + "independent_catalog_approval": "pending", + "packaging": { + "two_offline_builds_byte_identical": true, + "wheel_record_and_source_match": true, + "metadata_and_resources_match_source": true, + "source_zip_verified": true, + "dependencies": [], + "runtime_payload_included": false, + "wheel_sha256": "43e5a22e9a289ee7ad9852f66128096e1f361449a54dbb619038e870b5b852b7", + "source_zip_sha256": "ef3bd6fd3dacbaaceb4f3c79e6e68b3030c60bc9e86b99ade011c882d20d3ae9", + "manifest_config_permissions_contributions_runtime_engines_unchanged_from_006": true, + "retained_preflight_failure": "Initial unpublished candidate exceeded the fixed Host description limit (516 characters); one English phrase was shortened to 488 characters, followed by fresh two-build and pinned-preflight success. Failed candidate bytes were retained and are not the delivered artifact." + }, + "pinned_static_preflight": { + "catalog_commit": "3c739e1a5c177d585db3ed63868725dae5cadc32", + "host_commit": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "requirements_sha256": "eca122787362dc7d39b309b931c5e17ce7fb0507f79524589f2978bb018c17e7", + "environment": { + "platform": "win32", + "python": "3.12.10" + }, + "checks": { + "catalog_policy": "passed", + "human_and_runtime_review": "pending", + "package_format": "passed", + "target_host": "passed" + }, + "review_status": "not_reviewed", + "runtime_tests_run_by_static_checker": false, + "report_sha256": "f0122c2b825b8ea4a9190bc6efd1d8aec040cec9756dca0615ed2834e3786c90", + "previous_wheel_version": "0.0.6", + "previous_wheel_sha256": "e55b88de422d2a8bfcb0edd39331a4980d5753c25a2ec084b7b2abac2ee8c586" + }, + "runtime_scope": { + "new_rejection_proof": "Only original producer-ordered, durable pre-dispatch rejection evidence may settle a failed control as zero input.", + "legacy_successful_observe": "Original immutable observation artifacts and original terminal input evidence may be verified without backfilling a new control receipt.", + "absence_is_not_zero_input": true, + "old_error_strings_are_not_proof": true, + "legacy_rejected_control_without_original_proof": "blocked", + "unknown_active_missing_changed_or_partially_written_evidence": "blocked", + "reserved_observe_hidden_by_failed_control": "blocked", + "successful_control_settlement_not_qualified": [ + "recover", + "resume_pre_dispatch" + ], + "api_and_thresholds": "unchanged", + "input_authorization_and_gates": "unchanged", + "new_performance_claim": false, + "new_general_accuracy_claim": false, + "physical_power_loss_certified": false + }, + "recovery_policy": { + "operator_only_tools": [ + "instant_recovery_preview", + "instant_recover_session" + ], + "pi_must_not_invoke_for_disconnected_owner_takeover": true, + "same_live_session_main_review_and_original_job_continue": "retained_under_existing_gates", + "legacy_rejection_without_original_producer_proof": "blocked; no backfilled proof or rewritten journal", + "successful_recover_and_resume_pre_dispatch_settlement": "unqualified" + }, + "test_group_accounting": { + "groups_overlap": true, + "aggregate_test_total": null, + "reason": "Each XML group is reported independently; overlapping tests are not added together.", + "counts_read_from_xml": true + }, + "test_groups": [ + { + "evidence": "control-gates-final.xml", + "sha256": "e87c5390612536949c20560e0649806f4ae77a8163a00d41324b61169bd0d266", + "role": "Execution/queue/start/cancel/recovery/worker/host gates", + "counts_from_junit": { + "tests": 282, + "passed": 282, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed", + "source_scope": "Before the final reserved-observe tightening; affected control/observe cases were rerun in separate groups." + }, + { + "evidence": "control-observe-final.xml", + "sha256": "68b306d520a889cce28a73ac784c891ea736d1d23bd22e9adba525f4cc6a4fe5", + "role": "Control, read-only observe and maintained manual observation", + "counts_from_junit": { + "tests": 136, + "passed": 136, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed", + "source_scope": "Includes reserved-observe refusal; final typed-invalid binding guard is additionally covered by the final control and independent boundary groups." + }, + { + "evidence": "control-rejection-complete.xml", + "sha256": "7212084154e6eb2c61e2eef96967d6508b0b3c3ae666d2d13335c64c46ccb545", + "role": "Final control proof, typed invalid bindings and reserved-observe refusal", + "counts_from_junit": { + "tests": 34, + "passed": 34, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed" + }, + { + "evidence": "observe-maintained-final.xml", + "sha256": "4062a39c73a16798f596e437502b4610709685bedd8212baf377d2f2b3a18365", + "role": "Maintained capture boundary and immutable observe artifacts", + "counts_from_junit": { + "tests": 35, + "passed": 35, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed" + }, + { + "evidence": "root-release-regression.xml", + "sha256": "e0deb3c5d06a60541163d5f2ca91116144818c644137ad7a35aeca52a0a0d153", + "role": "Release packaging and runtime regression", + "counts_from_junit": { + "tests": 51, + "passed": 51, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed" + }, + { + "evidence": "upgrade-route-trial-01.xml", + "sha256": "1b82e648243c9c3cdeab9f8e08331de7472267d1d74404d62c5836882631dea2", + "role": "Published 0.1.9 installer/staging/original-updater to 0.1.10", + "counts_from_junit": { + "tests": 6, + "passed": 6, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed" + }, + { + "evidence": "review/final-control-audit.xml", + "sha256": "ccf7393340071946a32d95e431a8016bc715364c8f8a6c2c3db36c211b543e50", + "role": "Author-team separate control capability and crash/tamper audit", + "counts_from_junit": { + "tests": 26, + "passed": 26, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed", + "source_scope": "Initial frozen control audit before the final reserved-observe tightening; the final boundary audit is reported separately." + }, + { + "evidence": "review/observe-reserve-final-two.xml", + "sha256": "d677e8b657ffd38a6a1423dc2c5ff416ad40a055447e1de96c3f5fffd850d5ce", + "role": "Author-team separate final reserved-observe boundary audit", + "counts_from_junit": { + "tests": 2, + "passed": 2, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed", + "source_scope": "Final typed-invalid and reserved-observe consumer boundary." + } + ], + "retained_failure_and_repair_evidence": [ + { + "evidence": "observe-red.xml", + "sha256": "144f5eb6d2a0d2ddcb4b253fa96b18b5cd9002b3cce3a841655f54ce802da3e6", + "role": "Original observe-control unsupported settlement failure", + "counts_from_junit": { + "tests": 3, + "passed": 0, + "failures": 3, + "errors": 0, + "skipped": 0 + }, + "result": "expected_failure_reproduced" + }, + { + "evidence": "control-rejection-red.xml", + "sha256": "03641d30868365c2fdadd345114fc828070ec737d5d6b411dcb158b55c2962ef", + "role": "Original sole/extra rejected start and stale review settlement failures", + "counts_from_junit": { + "tests": 3, + "passed": 0, + "failures": 3, + "errors": 0, + "skipped": 0 + }, + "result": "expected_failure_reproduced" + }, + { + "evidence": "failed-observe-reserved-red.xml", + "sha256": "82f4b2eefa552b43327912cb1ec6710ba3f85dde15d8b2ee4deb032c7e990762", + "role": "Reserved observation hidden by failed control before final tightening", + "counts_from_junit": { + "tests": 1, + "passed": 0, + "failures": 1, + "errors": 0, + "skipped": 0 + }, + "result": "expected_failure_reproduced" + }, + { + "evidence": "failed-observe-reserved-green.xml", + "sha256": "b309327e61dd8eae0202dabfd537f0bb1fa31867922b7e586694a65600f18b71", + "role": "Same retained reserved-observe reproduction after final tightening", + "counts_from_junit": { + "tests": 1, + "passed": 1, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "result": "passed" + } + ], + "published_019_to_010_upgrade": { + "evidence": "upgrade-route-trial-01-acceptance.json", + "sha256": "7d777146d328e1f8864b3137c8df73be8a91a4156b39c39fbc82554b1b3352c4", + "result": "passed", + "junit_sha256": "1b82e648243c9c3cdeab9f8e08331de7472267d1d74404d62c5836882631dea2", + "baseline_version": "0.1.9", + "new_version": "0.1.10", + "old_target_digest": "6163b60b33eecbc4067a1951c0ae2f690385719e13d85c255159c11bbc161d8a", + "new_target_digest": "73b54fb57ae996d9803e8745400a68e4f40294d11358a62acbac47b5364d5f23", + "published_baseline_asset_sha256": { + "runtime-update.json": "1b3e23c9da0921ccb44e7c77dc15585f798a5d702e4961ad622c4c18b6c9c123", + "AgentGUIRuntimeExecution-Setup.exe": "bde46f7a8c47b42388c8ac39916c5152cb0931528d171170c0d9b91e2bf5e972", + "AgentGUIRuntimeExecution-update.zip": "0e54ee8037bc2104d5a1b0729ca3f4f14add54f53c7d5a0c0e186b60f67d52ff" + }, + "new_payload_files": 703, + "old_payload_files": 700, + "original_payloads_and_sessions_unchanged": true, + "legacy_observe_original_dispatch_count": 1, + "legacy_observe_new_control_receipt_exists": false, + "verified_route": [ + "published019_installer_real_check_install", + "published019_stage_exact010_from_local_verified_assets", + "old_official_settle_and_apply_refused_unsettled_observe", + "new010_manual_installer_refused_unsettled_observe", + "new010_external_cli_locked_settlement_success", + "original019_updater_apply010_success", + "independent_installed010_health_success", + "user_and_environment_sentinels_unchanged" + ], + "negative_controls": [ + "old_rejected_review_without_original_control_proof", + "installation_active_lock", + "missing_original_receipt", + "changed_original_receipt", + "active_original_process" + ], + "new_control_proof_backfilled": false, + "old_journal_rewritten": false, + "registrations_manually_deleted": false, + "fixture_boundaries": [ + "synthetic original dispatch receipt", + "synthetic PNG capture", + "offline assessment" + ], + "network_used": false, + "desktop_used": false, + "model_used": false, + "health": { + "passed": true, + "input_executed": false, + "host_started": false + } + }, + "new_installed_pi_live_acceptance": { + "status": "passed_scoped_author_functional_acceptance", + "passed": true, + "report": { + "name": "PUBLIC_LIVE_0110_ACCEPTANCE.json", + "url": "https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.10/PUBLIC_LIVE_0110_ACCEPTANCE.json", + "sha256": "e3f11f74c21ba3c93a4d62bb84d2fa1ab4197c793fd99396e05d62249df9b96d" + }, + "acceptance": { + "schema": "runtime_live_control_acceptance.v1", + "result": "passed", + "source_commit": "db9dc10dacf3534949cd59e3e83804232fb227dd", + "runtime_version": "0.1.10", + "connector_version": "0.0.7", + "scope": "one installed four-step functional TEST with original Pi review", + "successful_steps": 4, + "original_input_dispatches": 4, + "original_runs": 1, + "history_judged_by": [ + "agent", + "decision", + "decision", + "decision" + ], + "competing_start_rejected_before_dispatch": true, + "stale_packet_review_rejected_before_dispatch": true, + "observe_captured_read_only": true, + "observe_settlement_action_executed": false, + "original_step_replayed": false, + "new_observation_review_then_explicit_continue": true, + "observation_image_delivery": { + "source": "instant_result images=after", + "image_block_present": true, + "original_pixels_metadata": true, + "sha256": "931f4a915b1f4ec6ce1749edefb78e54b2165c5fa93f2ac188332337a30adc54", + "packet_sha256": "a2ffcf5454abcbfe09be773191579336a8ad8afe6276411a45d35d3001a650aa", + "logged_base64_truncated": true + }, + "final_png_sha256": "9e68556999ccb28e1cb16fda1f7f3009ef5e9dbe223032b53012feebc0283b4e", + "root_visual_confirmation": "Receipts and receipt-marker.txt confirmed in the bound final PNG", + "payload": { + "files_verified": 703, + "all_original_hashes_unchanged": true, + "manifest_file_set_sha256": "c26994cfd34ad5a0831a35b943ae07a9f80b371ab79ef25c9ab661b253dfbec8" + }, + "markers": { + "count": 2, + "all_original_hashes_unchanged": true + }, + "cleanup": { + "original_report_stopped": true, + "cleanup_errors": [], + "sampler_stopped": true, + "owned_window_closed": true, + "fresh_probe": { + "host_alive": false, + "pending_ids": [], + "cleanup_verified": true + }, + "http_owner_delete_status": 200, + "owner_launcher_runtime_exit": 1, + "owner_launcher_product_exit": 1 + }, + "official_settlement": { + "settled": true, + "registered_sessions": 1, + "cleared_sessions": 1, + "coverage": "registered_sessions_only", + "legacy_sessions_proven": false + }, + "input_catalog_sha256": "c01581112e93273d6fd8f1cc60ab6e9f5b853647d7c9edb34ad9651c2c319f5b", + "caller_tool_errors": [ + { + "kind": "shell_tool_request_rejected", + "source_line": 19, + "event_sha256": "3fb33c7295372a6217dbd1e84c17dc3d42661d4a77c1077914ec2bb3702c3648" + }, + { + "kind": "unsupported_observation_view_argument", + "source_line": 134, + "event_sha256": "7b5e86f528170ba13b8e48f8cae00de3c947e3fddea045157b73595ed35edc21" + }, + { + "kind": "after_view_image_unavailable", + "source_line": 146, + "event_sha256": "2c788d1a78f52bc507a8d440b945c329e0d0475bb4fcd00def12188a7df12008" + } + ], + "caller_overhead": { + "tool_calls": 25, + "permission_requested": 21, + "permission_allowed": 21, + "repeated_read_only_calls_retained": true + }, + "limitations": [ + "Functional TEST; not an error-free or performance sample.", + "Model totals, reasoning time and unclassified caller gaps are not inferred.", + "Product log truncates image base64; delivery metadata and bound original PNG hashes are retained.", + "Earlier live attempts remain separate; no results were replaced or rescored." + ], + "source_artifact_sha256": { + "frozen_configuration": "24de0eec4a4e76492c8983d7e6a64cfabc431586541a3038b227d006c9e3dabe", + "release_runtime_update_manifest": "16e7ba09d00f1baff98440fab6308716789797f043b6d71ec1837319a92448f1", + "original_marker_inventory": "ac041d2c17a60d290e90917a0d93824d5c8d41868daad46e4ecdfdd52c05e88e", + "frozen_decision_profile": "6e0654d2913a27cc16a4454efda09a5aa16b0ffd4ec124f9060315fb7e48e29b", + "original_trial": "7b96f008941b20b2bad330e82062c87a39934787d31c96868bee0dc26edceeb6", + "original_input_command_1": "fba97faae769c00fd0b27e61569c5252394519cdba5e7d2f87dae6a950f381a6", + "original_input_acceptance_1": "e4160ade44d12e8535f1c1d553a288ad8379d12c700dcc75cdc33146dc0174a1", + "original_input_worker_1": "3d2c4479beb2fa5283311319413c38c4c465eb39037e0eb194167491ecd094b6", + "original_input_command_2": "ed201e9b0ef23b3427920be558b8a10dc35f23674acd7bd1e948103f2ed991d2", + "original_input_acceptance_2": "88c7dc0938ac284948bee21a77982e8885f6ea0636c3b743b9189055344ab180", + "original_input_worker_2": "a933365bead57c7f96ea5b694c23c2c9b21b2f0345326f0f7540f471f6a3889d", + "original_input_command_3": "b69a934a09768ca52491ae890f640b3730944b8f075fcb074b5b0403add8523d", + "original_input_acceptance_3": "7c4980312c0b9e8fceb02a5d0f85444633add7d04bd4f52140dc43b50952916a", + "original_input_worker_3": "2bf13692a7fd12eb0e1b3aed537384dda52abd9284f606faeffa4a91843ae09f", + "original_input_command_4": "25c02f0e7f44feef5033f5f25ece05461d3a153830deeb9a6850208cb3ba8140", + "original_input_acceptance_4": "be0c88f5f90d1b7111a75e9b6d44b1a03a4dede3a44c556e189ad2d6695144b4", + "original_input_worker_4": "4005e2805de8ab8e01d86a743b1d4dcd32c8de78289a407af0efd404cfdde8cd", + "plan-start-01_response": "83aea703d1bd6b23b77d42bdbd310ec21ac5aadb6af39be5b6e2383709cc4bb9", + "plan-start-01_command": "0aef89385d2f80541a8767debd2d524ddc4e1e08a8efe491e4c9055b2101519c", + "plan-start-01_control_receipt": "8b8bb1b8c6f0202e88402c5a62c6ef3e76c1075f6cecfe14f991d7f2237532ce", + "test-extra-start-01_response": "b50057599419c98c1294c5a835ef54355c8378cbd3292976a82aa26ce2aa12e1", + "test-extra-start-01_command": "0aef89385d2f80541a8767debd2d524ddc4e1e08a8efe491e4c9055b2101519c", + "test-extra-start-01_control_receipt": "f9ab522e5a62b8ea5bcda0f803c05bc1a0fb6b6577c09c1e4a83171f749e0421", + "observe-01_response": "485f5ff0d30c6e9966915dd46096697000412c18d5126dae05b0d0db904c5e08", + "observe-01_command": "affd950bbe2fc3a6d81569ddece5225fb0370c7605e8c0cb90f19a598695b056", + "observe-01_control_receipt": "098db74d4eecc48c2244c6b69410c8f0ce8f4c8f1b38aa98937ef7f063e52a23", + "test-stale-review-01_response": "bf285930a0c65377d793834a8dbf60b80da7c8aba655d26fcf2ee4958aeda662", + "test-stale-review-01_command": "075174ac50dafd57ad443ce7ce0335dbcd65fe488ec2bbe4a6a83530783cdff5", + "test-stale-review-01_control_receipt": "45beab91ade724650d16fd7b1a0c76551dba20de011cbe96f9f564080ef08a5a", + "review-01_response": "15d9d9ff3e096195604b90eaec83630c904cadc5748b5ccc60e3c79e4bb056fd", + "review-01_command": "0941950cee20fbe3a0861383e41329ad9acb27a5e52567a14f7bdd442b5fadad", + "review-01_control_receipt": "5c572ddd6a08afd39b264705e65e6a815b1b8d50a161cd39f883c362a93c0ac5", + "continue-01_response": "f1cb02f9660ad70a0fd7f42e2a95530060946b69e2d2a01e11a8e3cb9c3c0e80", + "continue-01_command": "b1d9e589c960b709aa786fdcec5f5bc6e9408acf8d7e6d930ff72e57e88f8442", + "continue-01_control_receipt": "672a81edf56c1805c5148a9496a2e7168400acfa20f199386852e8108abfef2b", + "bound_observation_png": "931f4a915b1f4ec6ce1749edefb78e54b2165c5fa93f2ac188332337a30adc54", + "bound_final_png": "9e68556999ccb28e1cb16fda1f7f3009ef5e9dbe223032b53012feebc0283b4e", + "original_stopped_report": "817025bda4ef4248f12333b0189d4df4ba6cc4c9f572e6ba11407c1e961ca98b", + "original_owned_window_close": "0b0cfda23f385ef44d5811ef44f3f4f4f532db58cf0fe65bf771a1d5593af733", + "independent_fresh_release_probe": "a2f28650c46197b417153ddb74aa31a83073bf124f88b80aff5d5b184a670f15", + "original_owners_stopped": "2e4aaed6f373c48759b1575e63d15961ecf2fcfcf8fbc1bec8f55b6006a31fa9", + "official_installed_settle_stdout_stderr": "ed1a8e1f4e0480ec96dcc1f97b71458c68e4d8e670d040ec2d82376aa0b6bca7", + "original_product_events": "2f85042c14eccfc5ed0e94b5b901bbd0b18595cf3e142d2e89719f374a54ee17" + } + }, + "history_summary": { + "deliberate_first_step_main_judgment": 1, + "following_decision_judgments": 3, + "extra_semantic_main_interventions": 0 + }, + "parent_shutdown_semantics": { + "owned_runtime_parent_raw_exit_code": 1, + "owned_product_parent_raw_exit_code": 1, + "outer_harness_exit_code_reported_by_root": 0, + "interpretation": "The owned parents were terminated after verified Runtime host/window cleanup and HTTP release; this is not called graceful zero-exit shutdown of every process." + } + }, + "publication_checks": { + "release_upload": "not performed at validation freeze; see separate delivery receipt", + "anonymous_download_verification": "not performed at validation freeze; see separate delivery receipt", + "release_tag_and_asset_sha256_verification": "not performed at validation freeze; see separate delivery receipt", + "independent_final_head_review": "pending" + }, + "limitations": [ + "Author checks and code audits do not establish independent catalog approval.", + "Overlapping test groups are reported separately, without summing a unique test total.", + "The upgrade route uses bounded synthetic dispatch/image/assessment fixtures and is separate from installed GUI execution.", + "Active, unknown, missing, changed, partially written or reserved observation evidence remains refused.", + "No new performance, general accuracy, unattended execution or physical power-loss claim.", + "The final live run is a functional TEST with three retained caller errors and terminated owned parents; it is not an error-free sample or a performance benchmark." + ], + "privacy": { + "raw_screenshots_included": false, + "absolute_local_paths_included": false, + "local_usernames_or_sids_included": false, + "credentials_or_real_profile_values_included": false, + "source_paths": "repository/package-relative only", + "evidence_references": "portable relative artifact names and SHA-256 only" + }, + "published_state_scope": "at_validation_freeze", + "publication_state_at_validation_freeze": "not_performed; see separate delivery receipt" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/README.md b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/README.md new file mode 100644 index 0000000..f6867af --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/README.md @@ -0,0 +1,135 @@ +# Author revision — Windows GUI Runtime Connector 0.0.7 + +Revision prepared within [PR #11](https://github.com/Code-Amadeus/Amadeus-Extensions/pull/11). +Author build, bounded Runtime repair/upgrade and scoped installed Pi checks are +complete. Publication/download verification was not performed at validation freeze; +`review_status=not_reviewed`. Independent final-head review and catalog approval +remain the maintainers' responsibility. The 0.0.6 and earlier candidate materials +and published bytes remain unchanged. + +## Exact delivery identity + +- [Wheel](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/amadeus_agent_gui_runtime-0.0.7-py3-none-any.whl): + `amadeus_agent_gui_runtime-0.0.7-py3-none-any.whl`, **26,659 bytes**, + SHA-256 `43e5a22e9a289ee7ad9852f66128096e1f361449a54dbb619038e870b5b852b7`. +- [Source ZIP](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/extension-source-0.0.7.zip): + **51,032 bytes**, SHA-256 `ef3bd6fd3dacbaaceb4f3c79e6e68b3030c60bc9e86b99ade011c882d20d3ae9`. +- Final source commit: `db9dc10dacf3534949cd59e3e83804232fb227dd`. The fixed build timestamp and package source + hashes are recorded in `BUILD_VERIFICATION.json`; final metadata did not + rewrite the wheel bytes. [Connector release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.7) + · [ISC license](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/LICENSE). +- [Frozen final installed live report](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.10/PUBLIC_LIVE_0110_ACCEPTANCE.json), SHA-256 `e3f11f74c21ba3c93a4d62bb84d2fa1ab4197c793fd99396e05d62249df9b96d`. + Release links identify the intended exact assets. Anonymous-download and + release-tag/asset-SHA-256 checks are recorded in the separate delivery receipt + and PR, apart from these frozen author checks. + +## Repair scope and unchanged boundaries + +Recommend [Runtime 0.1.10](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.10). +Runtime settles failed controls only when their original producer records prove +a durable before-dispatch rejection, and successful `observe` through original +immutable capture/packet/ledger artifacts and terminal original input. A failed +control cannot conceal a reserved observation. Missing records, old error +strings, unknown input and partial writes are not zero-input proof. Legacy +rejected controls without original proof remain blocked; no new proof is +backfilled and no old journal is rewritten. Successful `recover` and +`resume_pre_dispatch` settlement remains unqualified. + +The resource-only HTTP MCP + Skill connector recommends this separately +installed/configured/started/stopped/updated Runtime. Configuration, permissions, +contributions, runtime kind and Host engines are unchanged from 0.0.6. The two +tools `instant_recovery_preview` and `instant_recover_session` remain +operator-only after disconnection/owner conflict; Pi must not invoke them to +take over the old owner/workflow. Same-session Main bound-image review and +explicit continuation of the original job retain the existing input, identity, +freshness, geometry and cancellation gates. + +The minimum HTTP protocol starts at 0.1.6; it is not a compatibility range or +qualification of future 0.1.x versions. Check actual Runtime/Host versions and +authenticated HTTP MCP, tool/schema, review/continue and cleanup capabilities. +Host Python 3.12 and Runtime's documented prepared API environment remain +separate. The API route needs no local GPU/model weights. Provider keys stay +in Runtime and provider calls may charge usage fees; the connector's secret +`connection_token` is a separate loopback authentication secret. Follow Host +enable/restart/new-Work requirements. Removing the connector does not stop or +uninstall Runtime or delete its data. + +[English setup](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.md) +· [中文指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.zh-CN.md) +· [Retained-session settlement procedure](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md) + +## Completed checks and retained limits + +- Two offline wheel builds are byte-identical. Source, METADATA, all wheel + members, resources and RECORD match. The diff uses the exact 0.0.6 candidate + SHA-256 `e55b88de422d2a8bfcb0edd39331a4980d5753c25a2ec084b7b2abac2ee8c586`; + it is not a comparison against an approved catalog artifact. +- Fixed catalog `3c739e1a5c177d585db3ed63868725dae5cadc32`, Host + `1840c8e4f646992ddaebea3139c8895f29743a8f`, lock SHA-256 + `eca122787362dc7d39b309b931c5e17ce7fb0507f79524589f2978bb018c17e7`, Windows/ + CPython 3.12.10 preflight passed format, target Host and catalog policy. + Human/runtime independent review remains pending. +- Runtime test groups and six exact-release 0.1.9-to-0.1.10 upgrade cases are + recorded individually in `AUTHOR_VALIDATION.json`; overlapping groups are not + summed as unique coverage. Upgrade fixtures use synthetic original dispatch + receipts/images/offline assessment and are separate from the live GUI run. +- Final installed **0.0.7 + Runtime 0.1.10** functional TEST passed: one original + four-step 7-Zip plan, four original input dispatches, no replay. The first step + was deliberately judged by Main; the remaining three were judged by Decision, + with no additional semantic Main intervention. One read-only `observe` + settled with `action_executed=false`; Main reviewed the new observation and + explicitly continued the same original run. Extra start and stale-packet + review were both rejected before dispatch. +- The bound observation image was delivered by `instant_result(images=after)`; + image delivery metadata and the original PNG hash are retained because product + logs truncate base64. Root inspection confirmed **Receipts and + receipt-marker.txt** in the bound final PNG. All **703 payload files** and + **two markers** retained their original hashes. +- The original report was stopped, sampler stopped, owned window closed and + cleanup errors empty. The fresh probe confirmed `host_alive=false`, + `pending_ids=[]`, `cleanup_verified=true`; HTTP owner DELETE returned **200**. + Official settlement reported **registered 1 / cleared 1** with registered-only + coverage; this does not qualify unknown legacy sessions. +- All **three caller errors** remain in the frozen live report: rejected shell + tool request, unsupported observation-view argument and unavailable after-view + image. The later `instant_result(images=after)` delivery succeeded. Owned + Runtime/HTTP and product/Electron parent termination returned raw exits **1/1**; + the outer harness returned **0** after verified host/window cleanup and release. + This is a functional TEST, not an error-free sample or a claim that every + process exited gracefully with code zero. +- The initial unpublished wheel exceeded the fixed manifest description limit. + One English phrase was shortened from 516 to 488 characters; fresh builds and + pinned preflight passed. Failed candidate bytes remain retained separately. + +Maintainers own independent review/approval on the final head. This revision +prepares five `review-candidates` files only; it does not add `catalog/packages` +approvals, index entries, policy or workflows. No performance, general accuracy, +unattended recovery or physical power-loss acceptance is claimed. Earlier live +attempts remain separate and were not replaced or rescored. + +## 简体中文 + +本轮在原 #11 返修,旧候选和发布字节不变。连接器 0.0.7 推荐 Runtime 0.1.10; +最低 0.1.6 仅为 HTTP 协议起点,不承诺所有未来 0.1.x 兼容。配置、权限、贡献、 +runtime、engines 与恢复政策不变:两恢复工具仅限操作员,同会话 Main 看绑定图 +审核并明确继续原 job 的能力及既有输入门禁保留。 + +拒绝控制必须有原 producer 的持久派发前证明;成功 observe 须闭合原截图、 +packet、账本和原输入终态。失败控制不能掩盖 reserved 观察。旧拒绝缺证明仍 +拒绝,不回填证明、不重写旧日志;成功 recover/resume_pre_dispatch 结算仍 +未具资格。分组回归、六项确切发行升级及 live 分别记录,不累加。 + +最终安装态功能 TEST 已通过:原单一四步计划、四次原输入、不重放;首步为刻意 +Main 判断,后三步为 Decision,没有额外语义 Main。一次只读 observe 的结算 +`action_executed=false`,Main 看新图后明确继续原 run;额外 start 与过期 review +均在派发前拒绝。最终绑定 PNG 确认 Receipts 和 receipt-marker.txt,703 项载荷 +及两个 marker 摘要均不变。自有窗口、宿主及采样器清理通过,新 probe 无宿主/ +待定输入,HTTP DELETE 200;官方 settle 登记 1/清除 1,范围仅限已登记会话。 + +三个调用方错误均保留;绑定观察图最终经原 `instant_result(images=after)` 成功 +交付。自有 HTTP/Electron 父进程终止后的原始退出为 1/1,外层 harness 为 0, +不能写成所有进程均优雅退出 0。本次是有保留错误的功能测试,不是性能或无差错 +样本。冻结 live 报告及 SHA 见上方链接;早期尝试分别保留,不替换或重评分。 + +作者验收已完成;独立维护者最终 head 复审、商店批准及未来发布/匿名下载校验 +分别记录。本轮仍 `not_reviewed`,不宣称独立复审或正式上架通过。 diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/candidate-diff-from-0.0.6.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/candidate-diff-from-0.0.6.json new file mode 100644 index 0000000..b6231cb --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/candidate-diff-from-0.0.6.json @@ -0,0 +1,904 @@ +{ + "changes": [ + { + "after": "96652a61f585b0e54255d45fe55c78bf9da3afc6562c3eb16e40be6f10fcf439", + "before": "4f58649569d337b493144355bed934640927b516071b30055afb30fcdf247a25", + "diff_truncated": false, + "path": "amadeus_agent_gui/__init__.py", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,3 +1,3 @@", + " \"\"\"Amadeus resource extension: native HTTP MCP declaration and execution Skill.\"\"\"", + " ", + "-__version__ = \"0.0.6\"", + "+__version__ = \"0.0.7\"" + ] + }, + { + "after": "534ecff58e42124dfcfdfa14b078eca8c5e47d4b8cf6f60d64ffe0cf75110325", + "before": "81536805fea6ed16f40964a091cca9a9b1a865adb6d277da78899d72fdbca7d1", + "diff_truncated": false, + "path": "amadeus_agent_gui/amadeus-extension.json", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,16 +1,16 @@", + " {", + " \"schema\": \"amadeus.extension/v0\",", + " \"id\": \"io.github.desolate-jix.gui-runtime\",", + "- \"version\": \"0.0.6\",", + "+ \"version\": \"0.0.7\",", + " \"display_name\": {", + " \"en\": \"Windows GUI Runtime Connector\",", + " \"zh-CN\": \"Windows GUI Runtime \u8fde\u63a5\u5668\"", + " },", + " \"description\": {", + "- \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.9; require 0.1.6+ authenticated HTTP MCP and review/continue tools, with actual capability checks. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "- \"zh-CN\": \"\u8fde\u63a5\u5668\uff1a\u9700\u81ea\u884c\u5355\u72ec\u5b89\u88c5\u3001\u914d\u7f6e\u5e76\u542f\u52a8 Windows GUI Runtime\u3002\u5efa\u8bae\u4f7f\u7528 0.1.9\uff1b\u8981\u6c42\u5177\u5907 0.1.6 \u8d77\u63d0\u4f9b\u7684\u9274\u6743 HTTP MCP \u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u5de5\u5177\uff0c\u5e76\u6838\u5bf9\u5b9e\u9645\u80fd\u529b\u3002\u586b\u5199\u53ef\u4fe1\u672c\u673a runtime_url \u548c connection_token\uff0c\u5c06 MCP \u4e0e Skill \u7ed1\u5b9a Pi\u3002Runtime \u7531\u7528\u6237\u72ec\u7acb\u90e8\u7f72\u548c\u505c\u6b62\uff1b\u505c\u7528\uff0f\u5378\u8f7d\u672c\u8fde\u63a5\u5668\u4e0d\u4f1a\u505c\u6b62\u3001\u5378\u8f7d Runtime \u6216\u5220\u9664\u5176\u6570\u636e\u3002\u5916\u90e8\u6a21\u578b API \u53ef\u80fd\u6309\u7528\u91cf\u6536\u8d39\u3002\"", + "+ \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.10; 0.1.6 marks the minimum HTTP protocol, not a compatibility range. Check the actual version, authenticated HTTP MCP and review/continue tools. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "+ \"zh-CN\": \"\u8fde\u63a5\u5668\uff1a\u9700\u81ea\u884c\u5355\u72ec\u5b89\u88c5\u3001\u914d\u7f6e\u5e76\u542f\u52a8 Windows GUI Runtime\u3002\u5efa\u8bae\u4f7f\u7528 0.1.10\uff1b0.1.6 \u8868\u793a\u6700\u4f4e HTTP \u534f\u8bae\u8d77\u70b9\uff0c\u4e0d\u4fdd\u8bc1\u6240\u6709\u540e\u7eed\u7248\u672c\u517c\u5bb9\u3002\u987b\u6838\u5bf9\u5b9e\u9645\u7248\u672c\u3001\u9274\u6743 HTTP MCP \u53ca\u5ba1\u6838\uff0f\u7ee7\u7eed\u5de5\u5177\u3002\u586b\u5199\u53ef\u4fe1\u672c\u673a runtime_url \u548c connection_token\uff0c\u5c06 MCP \u4e0e Skill \u7ed1\u5b9a Pi\u3002Runtime \u7531\u7528\u6237\u72ec\u7acb\u90e8\u7f72\u548c\u505c\u6b62\uff1b\u505c\u7528\uff0f\u5378\u8f7d\u672c\u8fde\u63a5\u5668\u4e0d\u4f1a\u505c\u6b62\u3001\u5378\u8f7d Runtime \u6216\u5220\u9664\u5176\u6570\u636e\u3002\u5916\u90e8\u6a21\u578b API \u53ef\u80fd\u6309\u7528\u91cf\u6536\u8d39\u3002\"", + " },", + "- \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.md\",", + " \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + " \"author\": {", + " \"name\": \"Desolate-Jix\"" + ] + }, + { + "after": "01da4f99f5eea0aa6acfc87865cfc90e5e85cfc3a86f6a1d5f47ff87341a0ae9", + "before": "254a1ceaa2e04c296fbd87035536bb5aba6ed6f18c6824c04d9ee3a143939c25", + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -8,17 +8,18 @@", + " Read `references/runtime.md` before using the connected Runtime. Discover its", + " actual tools and schemas; Pi names may be namespaced or hashed, so never invent", + " a tool name. This Skill supplies no tools, authority, executor, learning mode or", + "-shell route. Connector 0.0.6 supplies installation and execution guidance;", + "+shell route. Connector 0.0.7 supplies installation and execution guidance;", + " publication, independent store approval and installed GUI execution are separate", + " results. Historical 0.0.4/0.1.6 controlled Pi evidence is a separate result.", + " ", + " Use only the existing external API route. Recommend separately installed", + "-Runtime 0.1.9; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + "+Runtime 0.1.10; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + " service must supply field review/continue. Runtime 0.1.5 has no HTTP entry point.", + " Runtime 0.1.7 current-Agent mode is not qualified through Amadeus here. Manually", + " check MCP initialization version, actual tools/schemas, authentication and", + " review/cleanup capabilities; neither a version number nor a later release", + "-establishes compatibility. No automatic compatibility detector is provided.", + "+establishes compatibility. The 0.1.6 protocol floor does not qualify all later", + "+0.1.x versions. No automatic compatibility detector is provided.", + " ", + " Keep one Runtime MCP connection and one input owner for the complete authorized", + " Work. The operator independently installs and starts the authenticated loopback", + "@@ -64,26 +65,30 @@", + " bound-image review/continue path in the original live session remains available", + " under its existing contracts. Do not steal ownership, repeatedly", + " reconnect/restart, or delete queues, locks or session records. Report task", + "-outcome separately from cleanup. Runtime 0.1.9 fixes `task_plan` input-settlement", + "-validation; consult the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "-for retained Runtime 0.1.8 evidence and the maintained operator entry point.", + "+outcome separately from cleanup. Runtime 0.1.10 adds settlement of proven", + "+rejected `task_plan` controls and successful `observe` requests. Rejections", + "+require original durable before-dispatch proof; error strings alone are", + "+insufficient. Successful observation requires bound original capture and ledger", + "+evidence. Settlement of `recover` and `resume_pre_dispatch` remains unqualified.", + "+Consult the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+for retained evidence and the maintained operator entry point.", + " ", + " Disabling/removing the connector releases the Host connection only; it does", + " not stop/uninstall the independently running Runtime or delete its data. Finish", + "-cleanup before disabling/removing. Connector 0.0.6 updates guidance and metadata;", + "-Runtime fixes are delivered separately. 0.0.3/0.0.4/0.0.5 connection settings", + "+cleanup before disabling/removing. Connector 0.0.7 updates guidance and metadata;", + "+Runtime fixes are delivered separately. 0.0.3/0.0.4/0.0.5/0.0.6 connection settings", + " need no migration and input gates and permissions do not change.", + " ", + " ## \u7b80\u4f53\u4e2d\u6587", + " ", + "-\u4f7f\u7528\u8fde\u63a5\u7684 Runtime \u524d\u5148\u8bfb `references/runtime.md`\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u4e0e schema\uff1bPi \u540d\u79f0\u53ef\u80fd\u5e26\u547d\u540d\u7a7a\u95f4\u6216\u54c8\u5e0c\uff0c\u4e0d\u80fd\u731c\u5de5\u5177\u540d\u3002\u672c Skill \u4e0d\u63d0\u4f9b\u5de5\u5177\u3001\u6388\u6743\u3001\u6267\u884c\u5668\u3001\u5b66\u4e60\u6a21\u5f0f\u6216 shell \u8def\u7ebf\u3002\u8fde\u63a5\u5668 0.0.6 \u63d0\u4f9b\u5b89\u88c5\u4e0e\u6267\u884c\u6307\u5f15\uff1b\u4f5c\u8005\u53d1\u5e03\u3001\u72ec\u7acb\u5546\u5e97\u6279\u51c6\u53ca\u5b89\u88c5\u6001 GUI \u6267\u884c\u5206\u522b\u8bb0\u5f55\u3002\u5386\u53f2 0.0.4\uff0f0.1.6 \u53d7\u63a7 Pi \u8bc1\u636e\u5355\u72ec\u8bb0\u5f55\u3002", + "+\u4f7f\u7528\u8fde\u63a5\u7684 Runtime \u524d\u5148\u8bfb `references/runtime.md`\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u4e0e schema\uff1bPi \u540d\u79f0\u53ef\u80fd\u5e26\u547d\u540d\u7a7a\u95f4\u6216\u54c8\u5e0c\uff0c\u4e0d\u80fd\u731c\u5de5\u5177\u540d\u3002\u672c Skill \u4e0d\u63d0\u4f9b\u5de5\u5177\u3001\u6388\u6743\u3001\u6267\u884c\u5668\u3001\u5b66\u4e60\u6a21\u5f0f\u6216 shell \u8def\u7ebf\u3002\u8fde\u63a5\u5668 0.0.7 \u63d0\u4f9b\u5b89\u88c5\u4e0e\u6267\u884c\u6307\u5f15\uff1b\u4f5c\u8005\u53d1\u5e03\u3001\u72ec\u7acb\u5546\u5e97\u6279\u51c6\u53ca\u5b89\u88c5\u6001 GUI \u6267\u884c\u5206\u522b\u8bb0\u5f55\u3002\u5386\u53f2 0.0.4\uff0f0.1.6 \u53d7\u63a7 Pi \u8bc1\u636e\u5355\u72ec\u8bb0\u5f55\u3002", + " ", + "-\u4ec5\u4f7f\u7528\u539f\u6709 external API \u8def\u7ebf\u3002\u63a8\u8350\u72ec\u7acb\u5b89\u88c5\u7684 Runtime 0.1.9\uff1b\u6700\u4f4e 0.1.6 \u63d0\u4f9b HTTP\uff0f\u8f93\u5165\u524d\u5ba1\u6838\u5408\u540c\uff0c\u6d3b\u52a8\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6ca1\u6709 HTTP \u5165\u53e3\u3002\u6b64\u5904\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u4eba\u5de5\u6838\u5bf9 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u5b9e\u9645\u5de5\u5177\uff0fschema\u3001\u9274\u6743\u53ca\u5ba1\u6838\uff0f\u6e05\u7406\u80fd\u529b\uff1b\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\u3002\u672c\u5305\u4e0d\u63d0\u4f9b\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+\u4ec5\u4f7f\u7528\u539f\u6709 external API \u8def\u7ebf\u3002\u63a8\u8350\u72ec\u7acb\u5b89\u88c5\u7684 Runtime 0.1.10\uff1b\u6700\u4f4e 0.1.6 \u63d0\u4f9b HTTP\uff0f\u8f93\u5165\u524d\u5ba1\u6838\u5408\u540c\uff0c\u6d3b\u52a8\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6ca1\u6709 HTTP \u5165\u53e3\u3002\u6b64\u5904\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u4eba\u5de5\u6838\u5bf9 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u5b9e\u9645\u5de5\u5177\uff0fschema\u3001\u9274\u6743\u53ca\u5ba1\u6838\uff0f\u6e05\u7406\u80fd\u529b\uff1b\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\u30020.1.6 \u7684\u534f\u8bae\u8d77\u70b9\u4e0d\u8868\u793a\u6240\u6709\u540e\u7eed 0.1.x \u7248\u672c\u5747\u5df2\u5177\u5907\u8d44\u683c\u3002\u672c\u5305\u4e0d\u63d0\u4f9b\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + " ", + " \u5b8c\u6574\u6388\u6743 Work \u4fdd\u6301\u4e00\u4e2a Runtime MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u64cd\u4f5c\u5458\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u5e26\u9274\u6743\u7684\u672c\u673a daemon\uff1b\u8fde\u63a5\u5668\u4e0d\u4f1a\u542f\u52a8 Python\u3001\u9009\u62e9\u53ef\u6267\u884c\u8def\u5f84\u3001\u63d0\u4f9b\u6a21\u578b\u5bc6\u94a5\u6216\u6539 profile\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0d\u662f\u6a21\u578b API Key\u3002\u622a\u56fe\uff0f\u4efb\u52a1\u4fe1\u606f\u53ef\u80fd\u53d1\u9001\u7ed9\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\uff0c\u670d\u52a1\u8c03\u7528\u53ef\u80fd\u6536\u8d39\u3002\u786e\u8ba4\u4efb\u52a1\u8303\u56f4\u53ca Runtime \u8f93\u5165\u6388\u6743\uff1a`--allow-local-input` \u542f\u7528\u8f93\u5165\uff0c\u540c\u65f6\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u5bbf\u4e3b\u53ea\u542f\u52a8\u4e00\u6b21\uff0c\u7b49\u5f85 ready\uff0c\u542f\u52a8\uff0f\u9009\u62e9\u76ee\u6807\u7a97\u53e3\uff0c\u4f7f\u7528\u5f53\u524d\u7ed1\u5b9a\u89c2\u5bdf\uff0c\u63d0\u4ea4\u4efb\u52a1\u5e76\u68c0\u67e5\u539f\u56de\u6267\u3002\u542f\u52a8\u6216\u5f02\u6b65\u786e\u8ba4\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u63d0\u524d\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u6279\u6b21\uff0c\u4e0d\u5728\u5176\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\u6216\u6587\u6863\u5de5\u4f5c\u3002", + " ", + " \u5f85\u5b9a\u3001\u672a\u77e5\u3001\u8d85\u65f6\u3001\u4e2d\u65ad\u8f93\u5165\u6216\u56fe\u50cf\u4e0d\u53ef\u7528\u65f6\uff0c\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID \u5e76\u68c0\u67e5\u72b6\u6001\u3002\u53ef\u80fd\u6267\u884c\u8fc7\u7684\u8f93\u5165\u4e0d\u80fd\u6362 ID \u91cd\u653e\uff0c\u4e5f\u4e0d\u80fd\u4e3a\u5ef6\u957f\u7b49\u5f85\u800c\u91cd\u4ea4\u3002\u771f\u5b9e `pre_action_review_packet.v1` \u6216 `field_review_packet.v1` \u51fa\u73b0\u65f6\uff0c\u7528\u65b0\u5916\u5c42 request ID \u548c `images=none` \u8c03\u7528 `agent_command_status`\uff0c`command_id=packet.execution_request_id`\u3002\u968f\u540e\u7528 `instant_image` \u53d6\u8be5\u72b6\u6001\u8bf7\u6c42\u7ed1\u5b9a\u56fe\u50cf\uff1a\u5019\u9009\u770b `view=before`\uff0c\u5df2\u8f93\u5165\u6587\u5b57\u770b `view=after`\u3002\u5bf9\u7167\u4efb\u52a1\u68c0\u67e5\u786e\u5207\u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236 `caller_controls.review.request`\uff0c\u4ec5\u6dfb\u52a0\u5b9e\u9645 verdict\uff0freason\uff0c\u518d\u5355\u72ec\u4f7f\u7528\u8fd4\u56de\u7684 continue recipe\u3002\u5ba1\u6838\u672c\u8eab\u4e0d\u8f93\u5165\u3002\u524d\u7f6e\u7ee7\u7eed\u4fdd\u7559\u539f job\uff0f\u5019\u9009\uff0c\u6d3e\u53d1\u4e00\u6b21\u524d\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u786c\u95e8\u7981\uff1b\u6587\u5b57\u7ed3\u679c\u7ee7\u7eed\u4e0d\u91cd\u8f93\uff0c\u540e\u7eed submit \u4ecd\u987b\u666e\u901a\u95e8\u7981\u53ca\u6838\u9a8c\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u7968\u636e\u6216\u5019\u9009\u5df2\u8fc7\u671f\u5c31\u505c\u62a5\u3002\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u6210\u529f\u6216\u91cd\u542f\uff0f\u91cd\u653e\u3002", + " ", + "-\u53d6\u6d88\u987b\u7ed3\u7b97\u5230\u771f\u5b9e\u7ec8\u6001\uff1b\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u6216\u6e05\u7406\u3002\u4ec5\u6309\u8fd4\u56de handle\uff0fprocess \u8eab\u4efd\u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff0c\u4ec5\u5904\u7406\u5df2\u6388\u6743\u9009\u62e9\u7684\u4fdd\u5b58\u5bf9\u8bdd\u6846\uff0c\u5e76\u6838\u5bf9 `window_closed`\u3002\u4fdd\u7559\u539f\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\uff0c\u9664\u975e\u5176\u5173\u95ed\u5df2\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u3002\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2\u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\uff0c\u4e4b\u540e\u624d\u91ca\u653e\u539f\u751f HTTP \u6240\u6709\u8005\u3002\u65e7\u6240\u6709\u8005\u672a\u7ed3\u7b97\u65f6\u8bfb\u53d6\u539f\u56de\u6267\u548c\u6e05\u7406\u8bca\u65ad\uff1b\u539f\u8fde\u63a5\u4e22\u5931\u65f6\u4fdd\u7559\u8bc1\u636e\u5e76\u505c\u6b62\uff0c\u4ea4\u64cd\u4f5c\u5458\u6062\u590d\u3002Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview`\u3001`instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528\uff0cPi \u4e0d\u5f97\u7528\u5b83\u4eec\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u5de5\u4f5c\u6d41\u3002\u539f\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\uff0f\u7ee7\u7eed\u7684\u8def\u5f84\u4ecd\u6309\u65e2\u6709\u5408\u540c\u4fdd\u7559\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\u3001\u9501\u6216\u4f1a\u8bdd\u8bb0\u5f55\u3002\u4efb\u52a1\u7ed3\u679c\u4e0e\u6e05\u7406\u5206\u522b\u62a5\u544a\u3002Runtime 0.1.9 \u4fee\u590d `task_plan` \u8f93\u5165\u7ed3\u7b97\u9a8c\u8bc1\uff1b\u4fdd\u7559\u7684 Runtime 0.1.8 \u8bc1\u636e\u53ca\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u89c1[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u3002", + "+\u53d6\u6d88\u987b\u7ed3\u7b97\u5230\u771f\u5b9e\u7ec8\u6001\uff1b\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u6216\u6e05\u7406\u3002\u4ec5\u6309\u8fd4\u56de handle\uff0fprocess \u8eab\u4efd\u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff0c\u4ec5\u5904\u7406\u5df2\u6388\u6743\u9009\u62e9\u7684\u4fdd\u5b58\u5bf9\u8bdd\u6846\uff0c\u5e76\u6838\u5bf9 `window_closed`\u3002\u4fdd\u7559\u539f\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\uff0c\u9664\u975e\u5176\u5173\u95ed\u5df2\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u3002\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2\u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\uff0c\u4e4b\u540e\u624d\u91ca\u653e\u539f\u751f HTTP \u6240\u6709\u8005\u3002\u65e7\u6240\u6709\u8005\u672a\u7ed3\u7b97\u65f6\u8bfb\u53d6\u539f\u56de\u6267\u548c\u6e05\u7406\u8bca\u65ad\uff1b\u539f\u8fde\u63a5\u4e22\u5931\u65f6\u4fdd\u7559\u8bc1\u636e\u5e76\u505c\u6b62\uff0c\u4ea4\u64cd\u4f5c\u5458\u6062\u590d\u3002Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview`\u3001`instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528\uff0cPi \u4e0d\u5f97\u7528\u5b83\u4eec\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u5de5\u4f5c\u6d41\u3002\u539f\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\uff0f\u7ee7\u7eed\u7684\u8def\u5f84\u4ecd\u6309\u65e2\u6709\u5408\u540c\u4fdd\u7559\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\u3001\u9501\u6216\u4f1a\u8bdd\u8bb0\u5f55\u3002\u4efb\u52a1\u7ed3\u679c\u4e0e\u6e05\u7406\u5206\u522b\u62a5\u544a\u3002Runtime 0.1.10 \u65b0\u589e\u8bc1\u636e\u5b8c\u6574\u7684\u62d2\u7edd `task_plan` \u63a7\u5236\u53ca\u6210\u529f `observe` \u8bf7\u6c42\u7684\u7ed3\u7b97\uff1b\u62d2\u7edd\u987b\u6709\u539f\u59cb\u6301\u4e45\u5316\u6d3e\u53d1\u524d\u8bc1\u660e\uff0c\u9519\u8bef\u5b57\u7b26\u4e32\u672c\u8eab\u4e0d\u8db3\u4e3a\u636e\uff0c\u6210\u529f\u89c2\u5bdf\u987b\u6709\u7ed1\u5b9a\u7684\u539f\u622a\u56fe\u53ca\u8d26\u672c\u8bc1\u636e\u3002`recover`\u3001`resume_pre_dispatch` \u7684\u7ed3\u7b97\u4ecd\u672a\u5177\u5907\u8d44\u683c\u3002\u4fdd\u7559\u8bc1\u636e\u53ca\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u89c1[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u3002", + " ", + "-\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u72ec\u7acb\u8fd0\u884c\u7684 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\u518d\u7981\u7528\uff0f\u79fb\u9664\u3002\u8fde\u63a5\u5668 0.0.6 \u66f4\u65b0\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b0.0.3\uff0f0.0.4\uff0f0.0.5 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002", + "+\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u72ec\u7acb\u8fd0\u884c\u7684 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\u518d\u7981\u7528\uff0f\u79fb\u9664\u3002\u8fde\u63a5\u5668 0.0.7 \u66f4\u65b0\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b0.0.3\uff0f0.0.4\uff0f0.0.5\uff0f0.0.6 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002" + ] + }, + { + "after": "29c382a99908790a8f7375f0e041f4ed96f99f5598cc9317066b5cb8c874f16b", + "before": "ad5908a5be02cd78318becab8d43682a348d7d8d4e1fe36ecfdb297537028ad4", + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -13,7 +13,7 @@", + " ", + " \u672c\u8d44\u6e90\u8fde\u63a5\u5668\u4f7f\u7528\u7528\u6237\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u3001\u5e26\u9274\u6743\u7684 Windows \u672c\u673a HTTP MCP Runtime\uff0c\u4e0d\u4f1a\u542f\u52a8\u5916\u90e8\u4ee3\u7801\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0e\u6a21\u578b API Key \u4e0d\u540c\u3002\u672c Skill \u4ec5\u652f\u6301\u539f\u6709 external API \u8def\u7ebf\uff1b\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\u4f1a\u63a5\u6536\u8bc6\u522b\uff0f\u5ba1\u6838\u622a\u56fe\u53ca\u4efb\u52a1\u4fe1\u606f\uff0c\u53ef\u80fd\u6309\u8c03\u7528\u6536\u8d39\u3002\u8f93\u5165\u987b\u6709\u660e\u786e\u4efb\u52a1\u6388\u6743\u53ca Runtime opt-in\uff1b`--allow-local-input` \u4e5f\u4f1a\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u4e0d\u80fd\u6539 profile\u3001\u9608\u503c\u6216\u63d0\u793a\u8bcd\u6765\u7ed5\u8fc7\u62d2\u7edd\u3002", + " ", + "-Recommend Runtime 0.1.9. The minimum HTTP/pre-action contract is 0.1.6;", + "+Recommend Runtime 0.1.10. The minimum HTTP/pre-action contract is 0.1.6;", + " the service must also supply field-review/continue. Runtime 0.1.5 has field", + " review but no HTTP entry point. This connector does not qualify Runtime 0.1.7", + " current-Agent mode through Amadeus. Manually inspect the MCP initialization", + "@@ -23,8 +23,10 @@", + " review/continue support. Logical names below are Runtime names, not guesses", + " about Pi's namespaced/hashed tool names. Neither a version marker nor a later", + " release proves compatibility; no automatic compatibility detector is provided.", + "-", + "-\u63a8\u8350 Runtime 0.1.9\u3002\u6700\u4f4e HTTP\uff0f\u524d\u7f6e\u5ba1\u6838\u5408\u540c\u4e3a 0.1.6\uff0c\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6709\u6587\u5b57\u5ba1\u6838\u4f46\u6ca1\u6709 HTTP \u5165\u53e3\u3002\u672c\u8fde\u63a5\u5668\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u8f93\u5165\u524d\u4eba\u5de5\u68c0\u67e5 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u9274\u6743\u3001\u5df2\u53d1\u73b0\u5de5\u5177\u53ca\u6d3b\u52a8 schema\uff1a`instant_start`\u3001`instant_status`\u3001`instant_run`\u3001`instant_result`\u3001`instant_image`\u3001`instant_stop`\uff0c\u4ee5\u53ca task-plan\uff0f\u539f\u547d\u4ee4\u72b6\u6001\u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u652f\u6301\u3002\u4e0b\u6587\u903b\u8f91\u540d\u79f0\u662f Runtime \u540d\u79f0\uff0c\u4e0d\u80fd\u636e\u6b64\u731c Pi \u5e26\u547d\u540d\u7a7a\u95f4\uff0f\u54c8\u5e0c\u7684\u5de5\u5177\u540d\u3002\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\uff0c\u672c\u5305\u6ca1\u6709\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+The 0.1.6 protocol floor does not qualify every later 0.1.x version; use", + "+validation evidence for the exact Runtime/connector versions and route.", + "+", + "+\u63a8\u8350 Runtime 0.1.10\u3002\u6700\u4f4e HTTP\uff0f\u524d\u7f6e\u5ba1\u6838\u5408\u540c\u4e3a 0.1.6\uff0c\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6709\u6587\u5b57\u5ba1\u6838\u4f46\u6ca1\u6709 HTTP \u5165\u53e3\u3002\u672c\u8fde\u63a5\u5668\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u8f93\u5165\u524d\u4eba\u5de5\u68c0\u67e5 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u9274\u6743\u3001\u5df2\u53d1\u73b0\u5de5\u5177\u53ca\u6d3b\u52a8 schema\uff1a`instant_start`\u3001`instant_status`\u3001`instant_run`\u3001`instant_result`\u3001`instant_image`\u3001`instant_stop`\uff0c\u4ee5\u53ca task-plan\uff0f\u539f\u547d\u4ee4\u72b6\u6001\u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u652f\u6301\u3002\u4e0b\u6587\u903b\u8f91\u540d\u79f0\u662f Runtime \u540d\u79f0\uff0c\u4e0d\u80fd\u636e\u6b64\u731c Pi \u5e26\u547d\u540d\u7a7a\u95f4\uff0f\u54c8\u5e0c\u7684\u5de5\u5177\u540d\u3002\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\uff0c\u672c\u5305\u6ca1\u6709\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u30020.1.6 \u7684\u534f\u8bae\u8d77\u70b9\u4e0d\u8868\u793a\u6240\u6709\u540e\u7eed 0.1.x \u7248\u672c\u5747\u5df2\u5177\u5907\u8d44\u683c\uff1b\u987b\u6309\u786e\u5207 Runtime\uff0f\u8fde\u63a5\u5668\u7248\u672c\u53ca\u8def\u7ebf\u7684\u9a8c\u8bc1\u8bc1\u636e\u5224\u65ad\u3002", + " ", + " ## Start and select / \u542f\u52a8\u4e0e\u9009\u62e9", + " ", + "@@ -207,12 +209,17 @@", + " **operator-only**. Pi must not call either tool to take over the old session or", + " resume its workflow. Main's bound-image review and continuation of the original", + " job in the same live session remain supported under the contracts above.", + "-Runtime 0.1.9 fixes `task_plan` input-settlement validation. For retained Runtime", + "-0.1.8 evidence, follow the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+Runtime 0.1.10 adds settlement for proven rejected `task_plan` controls and", + "+successful `observe` requests. A rejection needs its original durable", + "+before-dispatch proof; an error string alone cannot prove zero input.", + "+Successful observation needs its bound original capture and ledger evidence.", + "+Settlement of `recover` and `resume_pre_dispatch` remains unqualified; no", + "+support for those paths is claimed here. For retained evidence, follow the", + "+[settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + " and its maintained operator entry point. Keep original receipts and diagnostics;", + " unknown settlement does not prove that no input occurred or authorize replay.", + " ", + "-Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview` \u548c `instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u5747**\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528**\u3002Pi \u4e0d\u5f97\u8c03\u7528\u4efb\u4e00\u5de5\u5177\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u7eed\u8dd1\u5176\u5de5\u4f5c\u6d41\u3002\u540c\u4e00\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\u5e76\u7ee7\u7eed\u539f job \u7684\u8def\u5f84\u4ecd\u6309\u4e0a\u6587\u5408\u540c\u4fdd\u7559\u3002Runtime 0.1.9 \u4fee\u590d `task_plan` \u8f93\u5165\u7ed3\u7b97\u9a8c\u8bc1\uff1b\u4fdd\u7559\u7684 Runtime 0.1.8 \u8bc1\u636e\u987b\u6309[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u53ca\u5176\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u5904\u7406\u3002\u4fdd\u7559\u539f\u56de\u6267\u548c\u8bca\u65ad\uff1b\u672a\u77e5\u7ed3\u7b97\u65e2\u4e0d\u80fd\u8bc1\u660e\u6ca1\u6709\u6267\u884c\u8f93\u5165\uff0c\u4e5f\u4e0d\u6388\u6743\u91cd\u653e\u3002", + "+Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview` \u548c `instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u5747**\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528**\u3002Pi \u4e0d\u5f97\u8c03\u7528\u4efb\u4e00\u5de5\u5177\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u7eed\u8dd1\u5176\u5de5\u4f5c\u6d41\u3002\u540c\u4e00\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\u5e76\u7ee7\u7eed\u539f job \u7684\u8def\u5f84\u4ecd\u6309\u4e0a\u6587\u5408\u540c\u4fdd\u7559\u3002Runtime 0.1.10 \u65b0\u589e\u8bc1\u636e\u5b8c\u6574\u7684\u62d2\u7edd `task_plan` \u63a7\u5236\u53ca\u6210\u529f `observe` \u8bf7\u6c42\u7684\u7ed3\u7b97\uff1b\u62d2\u7edd\u987b\u6709\u539f\u59cb\u6301\u4e45\u5316\u6d3e\u53d1\u524d\u8bc1\u660e\uff0c\u9519\u8bef\u5b57\u7b26\u4e32\u672c\u8eab\u4e0d\u80fd\u8bc1\u660e\u96f6\u8f93\u5165\uff0c\u6210\u529f\u89c2\u5bdf\u987b\u6709\u7ed1\u5b9a\u7684\u539f\u622a\u56fe\u53ca\u8d26\u672c\u8bc1\u636e\u3002`recover`\u3001`resume_pre_dispatch` \u7684\u7ed3\u7b97\u4ecd\u672a\u5177\u5907\u8d44\u683c\uff0c\u6b64\u5904\u4e0d\u58f0\u79f0\u652f\u6301\u3002\u4fdd\u7559\u8bc1\u636e\u987b\u6309[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u53ca\u5176\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u5904\u7406\u3002\u4fdd\u7559\u539f\u56de\u6267\u548c\u8bca\u65ad\uff1b\u672a\u77e5\u7ed3\u7b97\u65e2\u4e0d\u80fd\u8bc1\u660e\u6ca1\u6709\u6267\u884c\u8f93\u5165\uff0c\u4e5f\u4e0d\u6388\u6743\u91cd\u653e\u3002", + " ", + " ## Owned-window and host cleanup / \u81ea\u6709\u7a97\u53e3\u4e0e\u5bbf\u4e3b\u6536\u5c3e", + " ", + "@@ -256,14 +263,14 @@", + " ", + " ## Evidence boundary / \u8bc1\u636e\u8fb9\u754c", + " ", + "-Connector 0.0.6 updates installation/recovery guidance and metadata; Runtime", + "-fixes are delivered separately. Existing 0.0.3/0.0.4/0.0.5 connection settings", + "+Connector 0.0.7 updates installation/recovery guidance and metadata; Runtime", + "+fixes are delivered separately. Existing 0.0.3/0.0.4/0.0.5/0.0.6 connection settings", + " need no migration, and permissions/input gates do not change.", + " [Controlled installed Pi evidence](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + " belongs to connector 0.0.4/Runtime 0.1.6; it does not validate the", + "-0.0.6/0.1.9 combination. Read the separate [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+0.0.7/0.1.10 combination. Read the separate [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + " for its exact scope of packaging/protocol checks. Publication, author checks,", + " installed GUI execution and independent approval are separate results; these", + " records do not establish unattended accuracy or performance.", + " ", + "-\u8fde\u63a5\u5668 0.0.6 \u66f4\u65b0\u5b89\u88c5\uff0f\u6062\u590d\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b\u65e2\u6709 0.0.3\uff0f0.0.4\uff0f0.0.5 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u6743\u9650\uff0f\u8f93\u5165\u95e8\u7981\u4e0d\u53d8\u3002[\u53d7\u63a7\u5b89\u88c5\u6001 Pi \u8bc1\u636e](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)\u5c5e\u4e8e\u8fde\u63a5\u5668 0.0.4\uff0fRuntime 0.1.6\uff0c\u4e0d\u9a8c\u8bc1 0.0.6\uff0f0.1.9 \u7ec4\u5408\u3002\u6253\u5305\uff0f\u534f\u8bae\u68c0\u67e5\u7684\u786e\u5207\u8303\u56f4\u89c1\u5355\u72ec\u7684 [0.0.5 \u5386\u53f2\u4f5c\u8005\u9a8c\u8bc1\u8bb0\u5f55](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)\u3002\u4f5c\u8005\u53d1\u5e03\u3001\u4f5c\u8005\u68c0\u67e5\u3001\u5b89\u88c5\u6001 GUI \u6267\u884c\u53ca\u72ec\u7acb\u6279\u51c6\u5206\u522b\u8bb0\u5f55\uff1b\u8fd9\u4e9b\u8bb0\u5f55\u4e0d\u8bc1\u660e\u65e0\u4eba\u51c6\u786e\u7387\u6216\u6027\u80fd\u3002", + "+\u8fde\u63a5\u5668 0.0.7 \u66f4\u65b0\u5b89\u88c5\uff0f\u6062\u590d\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b\u65e2\u6709 0.0.3\uff0f0.0.4\uff0f0.0.5\uff0f0.0.6 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u6743\u9650\uff0f\u8f93\u5165\u95e8\u7981\u4e0d\u53d8\u3002[\u53d7\u63a7\u5b89\u88c5\u6001 Pi \u8bc1\u636e](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)\u5c5e\u4e8e\u8fde\u63a5\u5668 0.0.4\uff0fRuntime 0.1.6\uff0c\u4e0d\u9a8c\u8bc1 0.0.7\uff0f0.1.10 \u7ec4\u5408\u3002\u6253\u5305\uff0f\u534f\u8bae\u68c0\u67e5\u7684\u786e\u5207\u8303\u56f4\u89c1\u5355\u72ec\u7684 [0.0.5 \u5386\u53f2\u4f5c\u8005\u9a8c\u8bc1\u8bb0\u5f55](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)\u3002\u4f5c\u8005\u53d1\u5e03\u3001\u4f5c\u8005\u68c0\u67e5\u3001\u5b89\u88c5\u6001 GUI \u6267\u884c\u53ca\u72ec\u7acb\u6279\u51c6\u5206\u522b\u8bb0\u5f55\uff1b\u8fd9\u4e9b\u8bb0\u5f55\u4e0d\u8bc1\u660e\u65e0\u4eba\u51c6\u786e\u7387\u6216\u6027\u80fd\u3002" + ] + }, + { + "after": null, + "before": "150a51e7320e17d4f5784d068d3cf643485b02cdb14bcb46c9fa0cf9a289168e", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/METADATA", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,244 +0,0 @@", + "-Metadata-Version: 2.4", + "-Name: amadeus-agent-gui-runtime", + "-Version: 0.0.6", + "-Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "-License-Expression: ISC", + "-Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.md", + "-Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "-Requires-Python: <3.13,>=3.12", + "-Description-Content-Type: text/markdown", + "-License-File: LICENSE", + "-Dynamic: license-file", + "-", + "-# Amadeus Windows GUI Runtime Connector 0.0.6", + "-", + "-[\u7b80\u4f53\u4e2d\u6587](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "-", + "-This author-published connector connects Pi to a **separately installed and", + "-operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "-contains a connection declaration and execution Skill, not the Runtime. Use", + "-this guide to install and connect it; publication and independent store", + "-approval are separate results.", + "-", + "-## Downloads and compatibility", + "-", + "-- [Connector 0.0.6 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.6)", + "-- [Connector wheel: amadeus_agent_gui_runtime-0.0.6-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/amadeus_agent_gui_runtime-0.0.6-py3-none-any.whl)", + "-- [Connector source: extension-source-0.0.6.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/extension-source-0.0.6.zip)", + "-- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.6/preflight.json)", + "-- [Recommended Runtime 0.1.9 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.9/AgentGUIRuntimeExecution-Setup.exe)", + "- and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.9)", + "-", + "-Install the Runtime yourself on the Windows computer running Amadeus, then", + "-import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/README.md#quick-start).", + "-The connector and Runtime have independent version numbers and release tags;", + "-connector 0.0.6 does not update Runtime 0.1.9.", + "-", + "-| Combination or capability | Supported scope and evidence |", + "-| --- | --- |", + "-| Runtime 0.1.9 + connector 0.0.6 | Recommended Runtime and this connector. Inspect the actual running service and the scope of its validation evidence before input; a version pair alone does not prove installed GUI execution. |", + "-| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It does not validate the 0.0.6/0.1.9 combination. |", + "-| Minimum Runtime contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply the field-review/continue contract. |", + "-| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "-| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "-| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "-", + "-The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "-Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "-are separate from the [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "-and independent store review. Do not treat a release number or preflight success", + "-as proof of desktop execution.", + "-", + "-## What runs where", + "-", + "-| Component | Responsibility |", + "-| --- | --- |", + "-| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "-| Connector 0.0.6 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "-| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "-", + "-The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "-Python 3.12, retains supported Python 3.11 environments and requires **no local", + "-GPU or model-weight download**. Optional local-model setup has its separate", + "-Python 3.11 contract and is outside this connector's supported route. A shared", + "-Python minor version does not mean sharing a virtual environment; each", + "-component keeps its locked dependencies.", + "-", + "-## Start the local Runtime", + "-", + "-Install the Runtime first. Install `uv` if setup requests it. Copy", + "-`configs/vision-api-openai-luna.example.json` and", + "-`configs/decision-profile.visual-execution.example.json` to private profile", + "-files, then configure endpoints, models and task conditions according to the", + "-Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "-Screenshots and task information used for recognition/review are sent to the", + "-selected model services. Those services may charge for calls; this wheel", + "-includes no model service or API credit. Set each profile's `api_key_env` only", + "-in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "-put a provider key in connector settings.", + "-", + "-Generate and privately store a strong random URL-safe **local connection", + "-token** of 32\u2013256 characters (for example, using `secrets.token_urlsafe(32)` in", + "-your trusted Python environment). It is distinct from every model-provider API", + "-key. Prompt for secrets without echoing them, then start the service in a", + "-dedicated console:", + "-", + "-```powershell", + "-$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "-$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "-$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "-$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "-$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "-$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "-Set-Location -LiteralPath $RuntimeRoot", + "-& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "-& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "- --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "- --api-profile $VisionProfile --decision-profile $DecisionProfile", + "-```", + "-", + "-Run setup once; it may download locked dependencies. Its generated standalone", + "-stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "-to retain an existing supported API environment. An explicit different minor", + "-version requires a separate environment rather than an in-place replacement.", + "-Keep this console open while Amadeus uses the service.", + "-", + "-Input is disabled by default. For an explicitly authorized desktop task, append", + "-the existing `--allow-local-input` option to the final startup command. **This", + "-option also turns automatic risk interception off.** A token authenticates the", + "-connection; it does not authorize arbitrary clicks, submissions, payments or", + "-unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "-rejects browser Origin headers before MCP processing. Do not expose it through", + "-a public bind, tunnel or reverse proxy.", + "-", + "-## Install and connect", + "-", + "-1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "- check its actual installed version against the recorded baseline above.", + "-2. Download and install the **0.0.6 wheel** in Settings \u2192 Extensions. Inspect its", + "- identity and disclosure; installation starts disabled.", + "-3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "- Use only your trusted local Runtime. Set secret `connection_token` to the", + "- same local token supplied to the Runtime console, not a model API key.", + "-4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "- and open a new Work session. Saved configuration does not prove it is loaded.", + "-5. Inspect the MCP initialization version and discovered tools, then read", + "- `instant_status` before requesting input. Required tools are `instant_start`,", + "- `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "- `instant_stop`; their schemas must support the task-plan, original-command", + "- status and review/continue operations described in the packaged Skill.", + "- Check actual returned review recipes when that state occurs. This is a", + "- manual check, not automatic compatibility certification.", + "-", + "-The connector cannot start, install, upgrade or reconfigure the external", + "-Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "-configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "-", + "-## A small reproducible task", + "-", + "-Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "-yourself. Before connecting Pi, manually prepare two empty folders in a new", + "-temporary root, for example:", + "-", + "-```powershell", + "-$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "-New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "-$FixtureRoot", + "-```", + "-", + "-Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "-actual path, and tell Pi to select that observed window. The prepared window is", + "-operator-owned; selecting it does not make it task-owned. Authorize only this", + "-task, with local input explicitly enabled:", + "-", + "-> In the prepared 7-Zip window at ``, use folder navigation", + "-> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "-> displayed path is `\\Documents\\Receipts`. Do not create,", + "-> rename, delete, edit, compress or extract anything, enter credentials, open", + "-> another location or close the operator-prepared window. Stop and report any", + "-> uncertain input or review without a valid ticket. After the task, settle the", + "-> original receipts and verify Runtime host cleanup.", + "-", + "-Acceptance requires four successful original navigation steps, bound image", + "-evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "-Report any Main review or assistance. Do not count launch acknowledgements,", + "-pending receipts or an uninspected screenshot as success. No external data write", + "-is authorized; the fixture is created manually beforehand. It is a", + "-navigation example, not compression/extraction or a performance benchmark.", + "-", + "-## Task, review and cleanup", + "-", + "-Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "-and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.6/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "-Keep one MCP connection and one input owner for the whole Work. Pending,", + "-unknown or interrupted input keeps its original request/run/command IDs; never", + "-replay it with a new ID to extend a wait.", + "-", + "-At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "-status request, inspect that status request's bound **before** image, then copy", + "-the returned review recipe and use its separately returned continue recipe.", + "-Review itself does not click. Continuation retains the original job/candidate", + "-and must pass a fresh target-region check and existing input gates before one", + "-dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "-already-entered text; continuation does not retype. A field review does not", + "-approve a candidate or prove a later submission succeeded. Without a genuine", + "-resumable ticket, or with stale evidence, stop and report the original state.", + "-", + "-Historical Pi evidence used a natively resized complete bound frame, not", + "-byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "-tests establish their stated recovery scope, not unattended accuracy, speed or", + "-new-combination acceptance.", + "-", + "-Close only task-launched windows using their returned identities, and verify", + "-`window_closed`; retain an operator-prepared window as in the example above.", + "-Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "-`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "-can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "-the connector changes its Host-side connection configuration; backend changes", + "-follow the Host's restart requirements. It does not stop or uninstall the external", + "-Runtime or delete its data. Finish cleanup before disabling/removing;", + "-stop the independent service deliberately afterward if desired.", + "-", + "-## Troubleshooting and recovery", + "-", + "-| Symptom | What to check and do |", + "-| --- | --- |", + "-| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "-| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "-| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "-| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "-| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "-| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "-| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "-", + "-After Pi disconnects or reports an owner conflict, both", + "-`instant_recovery_preview` and `instant_recover_session` remain **operator-only**;", + "-Pi must not call them to take over the old session or continue its workflow.", + "-This restriction does not remove Main's bound-image review/continue path in", + "-the original live session: that path retains the original job and existing", + "-input gates. For settlement diagnostics and migration from Runtime 0.1.8, see", + "-the [Runtime settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.9/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md).", + "-Runtime 0.1.9 fixes `task_plan` input-settlement validation; follow that guide", + "-to verify retained 0.1.8 evidence through the maintained settlement entry point.", + "-Keep original evidence; an unknown settlement is not proof that no input ran.", + "-", + "-## Version changes and installation scope", + "-", + "-0.0.6 updates package metadata and bilingual installation/recovery guidance,", + "-and recommends Runtime 0.1.9. Runtime fixes are delivered separately; this wheel", + "-does not change connection configuration, permissions or input execution.", + "-Existing 0.0.3/0.0.4/0.0.5 `runtime_url` and `connection_token` settings need no", + "-migration. The historical 0.0.2 stdio launcher and earlier release artifacts", + "-remain intact.", + "-When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "-local-input settings at the independent service; explicitly fill the two", + "-connector settings. Never reinterpret an old provider key as a connection token.", + "-", + "-Author publication, wheel/preflight checks, protocol checks, installed GUI", + "-execution and independent catalog approval are separate results. Read the exact", + "-scope and version of each linked result. Installing this connector does not", + "-establish acceptance of a particular Runtime/Amadeus combination.", + "-", + "-The connector code is ISC. Runtime and third-party licensing remain separate.", + "-The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "-payload." + ] + }, + { + "after": null, + "before": "ca9412818749720a9f4bc4c0c026fae5074b7e4c4dcab21a3f76c882685359c1", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/RECORD", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,10 +0,0 @@", + "-amadeus_agent_gui/__init__.py,sha256=T1hklWnTN7STFENVvtk0ZAkntRYHGzAFWvsw_N8keiU,106", + "-amadeus_agent_gui/amadeus-extension.json,sha256=gVNoBf6m7Rb0CWSgkcypqbGoZa220nfaeImdcv28p9E,2597", + "-amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=JUoc6qLgTClvvYcDVTa7Wrpu1vGMaCTATZ7joUOTnCU,9324", + "-amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=rVkIpb4CzXgxi-yrjUNoKjSNfY1OH-Nuz9spdTcCitQ,22188", + "-amadeus_agent_gui_runtime-0.0.6.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "-amadeus_agent_gui_runtime-0.0.6.dist-info/METADATA,sha256=FQpR5zIOF9T1eE0GjTz2Q0hbAs2xS8tGyfoM-aKJFo4,18314", + "-amadeus_agent_gui_runtime-0.0.6.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "-amadeus_agent_gui_runtime-0.0.6.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "-amadeus_agent_gui_runtime-0.0.6.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "-amadeus_agent_gui_runtime-0.0.6.dist-info/RECORD,," + ] + }, + { + "after": null, + "before": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/WHEEL", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,5 +0,0 @@", + "-Wheel-Version: 1.0", + "-Generator: setuptools (83.0.0)", + "-Root-Is-Purelib: true", + "-Tag: py3-none-any", + "-" + ] + }, + { + "after": null, + "before": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/entry_points.txt", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,2 +0,0 @@", + "-[amadeus.extensions]", + "-io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": null, + "before": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/licenses/LICENSE", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,15 +0,0 @@", + "-ISC License", + "-", + "-Copyright (c) 2026 Desolate-Jix", + "-", + "-Permission to use, copy, modify, and/or distribute this software for any", + "-purpose with or without fee is hereby granted, provided that the above", + "-copyright notice and this permission notice appear in all copies.", + "-", + "-THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": null, + "before": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.6.dist-info/top_level.txt", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1 +0,0 @@", + "-amadeus_agent_gui" + ] + }, + { + "after": "8d0ee375be35650ec5b2b30fc20bd91f30016c3f38f68d1662ecd2040efc60c0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/METADATA", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,249 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.7", + "+Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.md", + "+Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "+Requires-Python: <3.13,>=3.12", + "+Description-Content-Type: text/markdown", + "+License-File: LICENSE", + "+Dynamic: license-file", + "+", + "+# Amadeus Windows GUI Runtime Connector 0.0.7", + "+", + "+[\u7b80\u4f53\u4e2d\u6587](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "+", + "+This author-published connector connects Pi to a **separately installed and", + "+operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "+contains a connection declaration and execution Skill, not the Runtime. Use", + "+this guide to install and connect it; publication and independent store", + "+approval are separate results.", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.7 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.7)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.7-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/amadeus_agent_gui_runtime-0.0.7-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.7.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/extension-source-0.0.7.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/preflight.json)", + "+- [Recommended Runtime 0.1.10 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.10/AgentGUIRuntimeExecution-Setup.exe)", + "+ and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.10)", + "+", + "+Install the Runtime yourself on the Windows computer running Amadeus, then", + "+import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/README.md#quick-start).", + "+The connector and Runtime have independent version numbers and release tags;", + "+connector 0.0.7 does not update Runtime 0.1.10.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.10 + connector 0.0.7 | Recommended Runtime and this connector. Inspect the actual running service and the scope of its validation evidence before input; a version pair alone does not prove installed GUI execution. |", + "+| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It does not validate the 0.0.7/0.1.10 combination. |", + "+| Minimum protocol contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply field-review/continue. This protocol floor does not qualify every later Runtime, including all future 0.1.x releases. |", + "+| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "+| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "+| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "+", + "+The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "+Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+are separate from the [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+and independent store review. Do not treat a release number or preflight success", + "+as proof of desktop execution.", + "+", + "+## What runs where", + "+", + "+| Component | Responsibility |", + "+| --- | --- |", + "+| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "+| Connector 0.0.7 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "+| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "+", + "+The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "+Python 3.12, retains supported Python 3.11 environments and requires **no local", + "+GPU or model-weight download**. Optional local-model setup has its separate", + "+Python 3.11 contract and is outside this connector's supported route. A shared", + "+Python minor version does not mean sharing a virtual environment; each", + "+component keeps its locked dependencies.", + "+", + "+## Start the local Runtime", + "+", + "+Install the Runtime first. Install `uv` if setup requests it. Copy", + "+`configs/vision-api-openai-luna.example.json` and", + "+`configs/decision-profile.visual-execution.example.json` to private profile", + "+files, then configure endpoints, models and task conditions according to the", + "+Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "+Screenshots and task information used for recognition/review are sent to the", + "+selected model services. Those services may charge for calls; this wheel", + "+includes no model service or API credit. Set each profile's `api_key_env` only", + "+in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "+put a provider key in connector settings.", + "+", + "+Generate and privately store a strong random URL-safe **local connection", + "+token** of 32\u2013256 characters (for example, using `secrets.token_urlsafe(32)` in", + "+your trusted Python environment). It is distinct from every model-provider API", + "+key. Prompt for secrets without echoing them, then start the service in a", + "+dedicated console:", + "+", + "+```powershell", + "+$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "+$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "+$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "+$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "+$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "+$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "+Set-Location -LiteralPath $RuntimeRoot", + "+& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "+& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "+ --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "+ --api-profile $VisionProfile --decision-profile $DecisionProfile", + "+```", + "+", + "+Run setup once; it may download locked dependencies. Its generated standalone", + "+stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "+to retain an existing supported API environment. An explicit different minor", + "+version requires a separate environment rather than an in-place replacement.", + "+Keep this console open while Amadeus uses the service.", + "+", + "+Input is disabled by default. For an explicitly authorized desktop task, append", + "+the existing `--allow-local-input` option to the final startup command. **This", + "+option also turns automatic risk interception off.** A token authenticates the", + "+connection; it does not authorize arbitrary clicks, submissions, payments or", + "+unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "+rejects browser Origin headers before MCP processing. Do not expose it through", + "+a public bind, tunnel or reverse proxy.", + "+", + "+## Install and connect", + "+", + "+1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "+ check its actual installed version against the recorded baseline above.", + "+2. Download and install the **0.0.7 wheel** in Settings \u2192 Extensions. Inspect its", + "+ identity and disclosure; installation starts disabled.", + "+3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "+ Use only your trusted local Runtime. Set secret `connection_token` to the", + "+ same local token supplied to the Runtime console, not a model API key.", + "+4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "+ and open a new Work session. Saved configuration does not prove it is loaded.", + "+5. Inspect the MCP initialization version and discovered tools, then read", + "+ `instant_status` before requesting input. Required tools are `instant_start`,", + "+ `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "+ `instant_stop`; their schemas must support the task-plan, original-command", + "+ status and review/continue operations described in the packaged Skill.", + "+ Check actual returned review recipes when that state occurs. This is a", + "+ manual check, not automatic compatibility certification.", + "+", + "+The connector cannot start, install, upgrade or reconfigure the external", + "+Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "+configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "+", + "+## A small reproducible task", + "+", + "+Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "+yourself. Before connecting Pi, manually prepare two empty folders in a new", + "+temporary root, for example:", + "+", + "+```powershell", + "+$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "+New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "+$FixtureRoot", + "+```", + "+", + "+Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "+actual path, and tell Pi to select that observed window. The prepared window is", + "+operator-owned; selecting it does not make it task-owned. Authorize only this", + "+task, with local input explicitly enabled:", + "+", + "+> In the prepared 7-Zip window at ``, use folder navigation", + "+> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "+> displayed path is `\\Documents\\Receipts`. Do not create,", + "+> rename, delete, edit, compress or extract anything, enter credentials, open", + "+> another location or close the operator-prepared window. Stop and report any", + "+> uncertain input or review without a valid ticket. After the task, settle the", + "+> original receipts and verify Runtime host cleanup.", + "+", + "+Acceptance requires four successful original navigation steps, bound image", + "+evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "+Report any Main review or assistance. Do not count launch acknowledgements,", + "+pending receipts or an uninspected screenshot as success. No external data write", + "+is authorized; the fixture is created manually beforehand. It is a", + "+navigation example, not compression/extraction or a performance benchmark.", + "+", + "+## Task, review and cleanup", + "+", + "+Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "+and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "+Keep one MCP connection and one input owner for the whole Work. Pending,", + "+unknown or interrupted input keeps its original request/run/command IDs; never", + "+replay it with a new ID to extend a wait.", + "+", + "+At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "+status request, inspect that status request's bound **before** image, then copy", + "+the returned review recipe and use its separately returned continue recipe.", + "+Review itself does not click. Continuation retains the original job/candidate", + "+and must pass a fresh target-region check and existing input gates before one", + "+dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "+already-entered text; continuation does not retype. A field review does not", + "+approve a candidate or prove a later submission succeeded. Without a genuine", + "+resumable ticket, or with stale evidence, stop and report the original state.", + "+", + "+Historical Pi evidence used a natively resized complete bound frame, not", + "+byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "+tests establish their stated recovery scope, not unattended accuracy, speed or", + "+new-combination acceptance.", + "+", + "+Close only task-launched windows using their returned identities, and verify", + "+`window_closed`; retain an operator-prepared window as in the example above.", + "+Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "+`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "+can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "+the connector changes its Host-side connection configuration; backend changes", + "+follow the Host's restart requirements. It does not stop or uninstall the external", + "+Runtime or delete its data. Finish cleanup before disabling/removing;", + "+stop the independent service deliberately afterward if desired.", + "+", + "+## Troubleshooting and recovery", + "+", + "+| Symptom | What to check and do |", + "+| --- | --- |", + "+| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "+| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "+| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "+| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "+| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "+| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "+| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "+", + "+After Pi disconnects or reports an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` remain **operator-only**;", + "+Pi must not call them to take over the old session or continue its workflow.", + "+This restriction does not remove Main's bound-image review/continue path in", + "+the original live session: that path retains the original job and existing", + "+input gates. For settlement diagnostics and migration from Runtime 0.1.8, see", + "+the [Runtime settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md).", + "+Runtime 0.1.10 extends `task_plan` input-settlement validation to proven rejected", + "+control requests and successful `observe` requests. A rejection must have its", + "+original durable before-dispatch proof; an error string alone does not prove", + "+zero input. Successful observation must bind the original capture and ledger", + "+evidence. `recover` and `resume_pre_dispatch` settlement remain unqualified;", + "+this release does not claim support for them. Follow the guide to verify", + "+retained evidence through the maintained settlement entry point.", + "+Keep original evidence; an unknown settlement is not proof that no input ran.", + "+", + "+## Version changes and installation scope", + "+", + "+0.0.7 updates package metadata and bilingual installation/recovery guidance,", + "+and recommends Runtime 0.1.10. Runtime fixes are delivered separately; this wheel", + "+does not change connection configuration, permissions or input execution.", + "+Existing 0.0.3/0.0.4/0.0.5/0.0.6 `runtime_url` and `connection_token` settings need no", + "+migration. The historical 0.0.2 stdio launcher and earlier release artifacts", + "+remain intact.", + "+When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "+local-input settings at the independent service; explicitly fill the two", + "+connector settings. Never reinterpret an old provider key as a connection token.", + "+", + "+Author publication, wheel/preflight checks, protocol checks, installed GUI", + "+execution and independent catalog approval are separate results. Read the exact", + "+scope and version of each linked result. Installing this connector does not", + "+establish acceptance of a particular Runtime/Amadeus combination.", + "+", + "+The connector code is ISC. Runtime and third-party licensing remain separate.", + "+The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "+payload." + ] + }, + { + "after": "1d5f5c432b38fccb5b12f56de2b1eeec90875d79f95ca21ccc75db9ffec5e7a6", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/RECORD", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=lmUqYfWFsOVCVdRf5Vx4v52jr8ZWLD6xbkC-bxD89Dk,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=U07P9Y5CEk38_foUsHjsqMXkfUuM9vYNZP_gz3URAyU,2689", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=AdpPmfXuoKpqz8h4Zc_JDl6Fz8Oob2odX0f_hzQaCuk,9987", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=KcOCqZkIeQqPc3Xw4EH07Zb5n1WYzJMXBmtcuMh08Ws,23092", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/METADATA,sha256=jQ7jdb41ZQ7FsrMPwgvZHzABbD849o0WYuzSBA78YMA,18786", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/RECORD,," + ] + }, + { + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/WHEEL", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,5 @@", + "+Wheel-Version: 1.0", + "+Generator: setuptools (83.0.0)", + "+Root-Is-Purelib: true", + "+Tag: py3-none-any", + "+" + ] + }, + { + "after": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/entry_points.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,2 @@", + "+[amadeus.extensions]", + "+io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/licenses/LICENSE", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,15 @@", + "+ISC License", + "+", + "+Copyright (c) 2026 Desolate-Jix", + "+", + "+Permission to use, copy, modify, and/or distribute this software for any", + "+purpose with or without fee is hereby granted, provided that the above", + "+copyright notice and this permission notice appear in all copies.", + "+", + "+THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/top_level.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1 @@", + "+amadeus_agent_gui" + ] + } + ], + "note": "Diff is evidence only; every version needs independent full review.", + "ok": true, + "review_status": "not_reviewed" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/preflight.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/preflight.json new file mode 100644 index 0000000..6859b03 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/preflight.json @@ -0,0 +1,882 @@ +{ + "checked": [ + "manifest", + "package_resources", + "skill_metadata", + "wheel_metadata" + ], + "checks": { + "catalog_policy": "passed", + "human_and_runtime_review": "pending", + "package_format": "passed", + "target_host": "passed" + }, + "environment": { + "platform": "win32", + "python": "3.12.10" + }, + "host_commit": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "identity": { + "id": "io.github.desolate-jix.gui-runtime", + "sha256": "43e5a22e9a289ee7ad9852f66128096e1f361449a54dbb619038e870b5b852b7", + "version": "0.0.7" + }, + "inventory": [ + { + "after": "96652a61f585b0e54255d45fe55c78bf9da3afc6562c3eb16e40be6f10fcf439", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/__init__.py", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,3 @@", + "+\"\"\"Amadeus resource extension: native HTTP MCP declaration and execution Skill.\"\"\"", + "+", + "+__version__ = \"0.0.7\"" + ] + }, + { + "after": "534ecff58e42124dfcfdfa14b078eca8c5e47d4b8cf6f60d64ffe0cf75110325", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/amadeus-extension.json", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,72 @@", + "+{", + "+ \"schema\": \"amadeus.extension/v0\",", + "+ \"id\": \"io.github.desolate-jix.gui-runtime\",", + "+ \"version\": \"0.0.7\",", + "+ \"display_name\": {", + "+ \"en\": \"Windows GUI Runtime Connector\",", + "+ \"zh-CN\": \"Windows GUI Runtime \u8fde\u63a5\u5668\"", + "+ },", + "+ \"description\": {", + "+ \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.10; 0.1.6 marks the minimum HTTP protocol, not a compatibility range. Check the actual version, authenticated HTTP MCP and review/continue tools. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "+ \"zh-CN\": \"\u8fde\u63a5\u5668\uff1a\u9700\u81ea\u884c\u5355\u72ec\u5b89\u88c5\u3001\u914d\u7f6e\u5e76\u542f\u52a8 Windows GUI Runtime\u3002\u5efa\u8bae\u4f7f\u7528 0.1.10\uff1b0.1.6 \u8868\u793a\u6700\u4f4e HTTP \u534f\u8bae\u8d77\u70b9\uff0c\u4e0d\u4fdd\u8bc1\u6240\u6709\u540e\u7eed\u7248\u672c\u517c\u5bb9\u3002\u987b\u6838\u5bf9\u5b9e\u9645\u7248\u672c\u3001\u9274\u6743 HTTP MCP \u53ca\u5ba1\u6838\uff0f\u7ee7\u7eed\u5de5\u5177\u3002\u586b\u5199\u53ef\u4fe1\u672c\u673a runtime_url \u548c connection_token\uff0c\u5c06 MCP \u4e0e Skill \u7ed1\u5b9a Pi\u3002Runtime \u7531\u7528\u6237\u72ec\u7acb\u90e8\u7f72\u548c\u505c\u6b62\uff1b\u505c\u7528\uff0f\u5378\u8f7d\u672c\u8fde\u63a5\u5668\u4e0d\u4f1a\u505c\u6b62\u3001\u5378\u8f7d Runtime \u6216\u5220\u9664\u5176\u6570\u636e\u3002\u5916\u90e8\u6a21\u578b API \u53ef\u80fd\u6309\u7528\u91cf\u6536\u8d39\u3002\"", + "+ },", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + "+ \"author\": {", + "+ \"name\": \"Desolate-Jix\"", + "+ },", + "+ \"license\": \"ISC\",", + "+ \"engines\": {", + "+ \"amadeus_host_api\": \">=0.1,<0.2\",", + "+ \"platforms\": [", + "+ \"win32\"", + "+ ]", + "+ },", + "+ \"runtime\": {", + "+ \"kind\": \"none\"", + "+ },", + "+ \"config\": {", + "+ \"runtime_url\": {", + "+ \"type\": \"string\",", + "+ \"title\": \"Trusted loopback MCP URL / \u53ef\u4fe1\u672c\u673a MCP \u5730\u5740\",", + "+ \"required\": true,", + "+ \"default\": \"http://127.0.0.1:17665/mcp\"", + "+ },", + "+ \"connection_token\": {", + "+ \"type\": \"string\",", + "+ \"title\": \"Local MCP connection token (not a model API key) / \u672c\u673a\u8fde\u63a5\u5bc6\u94a5\uff08\u4e0d\u662f\u6a21\u578b API key\uff09\",", + "+ \"required\": true,", + "+ \"secret\": true", + "+ }", + "+ },", + "+ \"contributes\": {", + "+ \"mcp_server\": [", + "+ {", + "+ \"id\": \"execution\",", + "+ \"contract\": \"amadeus.mcp-server/v0\",", + "+ \"transport\": \"http\",", + "+ \"url\": \"${config.runtime_url}\",", + "+ \"bearer_token\": \"${config.connection_token}\"", + "+ }", + "+ ],", + "+ \"skill\": [", + "+ {", + "+ \"id\": \"gui-execution\",", + "+ \"contract\": \"amadeus.skill/v0\",", + "+ \"path\": \"skills/gui-execution\",", + "+ \"title\": {", + "+ \"en\": \"GUI execution\",", + "+ \"zh-CN\": \"GUI \u6267\u884c\"", + "+ }", + "+ }", + "+ ]", + "+ },", + "+ \"permissions\": {", + "+ \"host\": [],", + "+ \"os\": {", + "+ \"network\": [", + "+ \"*\"", + "+ ]", + "+ }", + "+ }", + "+}" + ] + }, + { + "after": "01da4f99f5eea0aa6acfc87865cfc90e5e85cfc3a86f6a1d5f47ff87341a0ae9", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,94 @@", + "+---", + "+name: gui-execution", + "+description: Execute an explicitly authorized Windows GUI task through the connected external-API Runtime route, preserve original request and evidence identities, handle review without replaying input, and verify owned-window and host cleanup.", + "+---", + "+", + "+## English", + "+", + "+Read `references/runtime.md` before using the connected Runtime. Discover its", + "+actual tools and schemas; Pi names may be namespaced or hashed, so never invent", + "+a tool name. This Skill supplies no tools, authority, executor, learning mode or", + "+shell route. Connector 0.0.7 supplies installation and execution guidance;", + "+publication, independent store approval and installed GUI execution are separate", + "+results. Historical 0.0.4/0.1.6 controlled Pi evidence is a separate result.", + "+", + "+Use only the existing external API route. Recommend separately installed", + "+Runtime 0.1.10; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + "+service must supply field review/continue. Runtime 0.1.5 has no HTTP entry point.", + "+Runtime 0.1.7 current-Agent mode is not qualified through Amadeus here. Manually", + "+check MCP initialization version, actual tools/schemas, authentication and", + "+review/cleanup capabilities; neither a version number nor a later release", + "+establishes compatibility. The 0.1.6 protocol floor does not qualify all later", + "+0.1.x versions. No automatic compatibility detector is provided.", + "+", + "+Keep one Runtime MCP connection and one input owner for the complete authorized", + "+Work. The operator independently installs and starts the authenticated loopback", + "+daemon. The connector never launches Python, chooses executable paths, supplies", + "+provider keys or changes profiles. The local connection token is not a model", + "+API key. Screenshots/task information can reach the configured model services,", + "+whose calls may cost money. Confirm task scope and Runtime input opt-in:", + "+`--allow-local-input` enables input and turns automatic risk interception off.", + "+Start the host once, wait for ready, launch/select the intended window, use", + "+current bound observations, submit the task and inspect original receipts. A", + "+launch or asynchronous acknowledgement is not task success. Prepare known", + "+independent fields together and read healthy pending batches promptly; do not", + "+insert unrelated searches or documentation between them.", + "+", + "+For pending, unknown, timeout, interrupted input or unavailable images, retain", + "+original request/run/command IDs and inspect their state. Never replay possibly", + "+executed input under a new ID or resubmit to extend a wait. At a genuine", + "+`pre_action_review_packet.v1` or `field_review_packet.v1`, read", + "+`agent_command_status` with `command_id=packet.execution_request_id` under a new", + "+outer request ID and `images=none`. Retrieve that status request's bound image with", + "+`instant_image`: `view=before` for a candidate, `view=after` for entered text.", + "+Inspect the exact bound evidence against the task, copy", + "+`caller_controls.review.request` and add only the actual verdict/reason. Then", + "+separately use the returned continue recipe. Review alone performs no input.", + "+Pre-action continuation retains the original job/candidate and requires a fresh", + "+target-region check and existing hard gates before one dispatch. Field", + "+continuation does not retype; any submit suffix still needs normal gates and", + "+verification. With no genuine resumable ticket or a stale candidate, stop and", + "+report. Do not manufacture hashes, wait IDs, success or a restart/replay.", + "+", + "+Cancellation must settle to a real terminal state; a disconnect is not", + "+cancellation or cleanup. Close only task-launched windows using their returned", + "+handle/process identity, resolve save dialogs only for an authorized choice,", + "+and verify `window_closed`. Keep pre-existing/operator-prepared windows unless", + "+their closure is explicitly in scope. Call `instant_stop`, then poll until", + "+`host_alive=false`, `pending_ids=[]`, `cleanup_verified=true` and no unresolved", + "+cleanup error. Only then release the native HTTP owner. If an old owner is", + "+unresolved, inspect its original receipts and cleanup diagnostics. If the", + "+original connection is lost, retain evidence and stop for operator recovery.", + "+After Pi disconnects or encounters an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` are operator-only;", + "+Pi must not use them to take over the old session or workflow. Main's", + "+bound-image review/continue path in the original live session remains available", + "+under its existing contracts. Do not steal ownership, repeatedly", + "+reconnect/restart, or delete queues, locks or session records. Report task", + "+outcome separately from cleanup. Runtime 0.1.10 adds settlement of proven", + "+rejected `task_plan` controls and successful `observe` requests. Rejections", + "+require original durable before-dispatch proof; error strings alone are", + "+insufficient. Successful observation requires bound original capture and ledger", + "+evidence. Settlement of `recover` and `resume_pre_dispatch` remains unqualified.", + "+Consult the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+for retained evidence and the maintained operator entry point.", + "+", + "+Disabling/removing the connector releases the Host connection only; it does", + "+not stop/uninstall the independently running Runtime or delete its data. Finish", + "+cleanup before disabling/removing. Connector 0.0.7 updates guidance and metadata;", + "+Runtime fixes are delivered separately. 0.0.3/0.0.4/0.0.5/0.0.6 connection settings", + "+need no migration and input gates and permissions do not change.", + "+", + "+## \u7b80\u4f53\u4e2d\u6587", + "+", + "+\u4f7f\u7528\u8fde\u63a5\u7684 Runtime \u524d\u5148\u8bfb `references/runtime.md`\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u4e0e schema\uff1bPi \u540d\u79f0\u53ef\u80fd\u5e26\u547d\u540d\u7a7a\u95f4\u6216\u54c8\u5e0c\uff0c\u4e0d\u80fd\u731c\u5de5\u5177\u540d\u3002\u672c Skill \u4e0d\u63d0\u4f9b\u5de5\u5177\u3001\u6388\u6743\u3001\u6267\u884c\u5668\u3001\u5b66\u4e60\u6a21\u5f0f\u6216 shell \u8def\u7ebf\u3002\u8fde\u63a5\u5668 0.0.7 \u63d0\u4f9b\u5b89\u88c5\u4e0e\u6267\u884c\u6307\u5f15\uff1b\u4f5c\u8005\u53d1\u5e03\u3001\u72ec\u7acb\u5546\u5e97\u6279\u51c6\u53ca\u5b89\u88c5\u6001 GUI \u6267\u884c\u5206\u522b\u8bb0\u5f55\u3002\u5386\u53f2 0.0.4\uff0f0.1.6 \u53d7\u63a7 Pi \u8bc1\u636e\u5355\u72ec\u8bb0\u5f55\u3002", + "+", + "+\u4ec5\u4f7f\u7528\u539f\u6709 external API \u8def\u7ebf\u3002\u63a8\u8350\u72ec\u7acb\u5b89\u88c5\u7684 Runtime 0.1.10\uff1b\u6700\u4f4e 0.1.6 \u63d0\u4f9b HTTP\uff0f\u8f93\u5165\u524d\u5ba1\u6838\u5408\u540c\uff0c\u6d3b\u52a8\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6ca1\u6709 HTTP \u5165\u53e3\u3002\u6b64\u5904\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u4eba\u5de5\u6838\u5bf9 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u5b9e\u9645\u5de5\u5177\uff0fschema\u3001\u9274\u6743\u53ca\u5ba1\u6838\uff0f\u6e05\u7406\u80fd\u529b\uff1b\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\u30020.1.6 \u7684\u534f\u8bae\u8d77\u70b9\u4e0d\u8868\u793a\u6240\u6709\u540e\u7eed 0.1.x \u7248\u672c\u5747\u5df2\u5177\u5907\u8d44\u683c\u3002\u672c\u5305\u4e0d\u63d0\u4f9b\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u3002", + "+", + "+\u5b8c\u6574\u6388\u6743 Work \u4fdd\u6301\u4e00\u4e2a Runtime MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u64cd\u4f5c\u5458\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u5e26\u9274\u6743\u7684\u672c\u673a daemon\uff1b\u8fde\u63a5\u5668\u4e0d\u4f1a\u542f\u52a8 Python\u3001\u9009\u62e9\u53ef\u6267\u884c\u8def\u5f84\u3001\u63d0\u4f9b\u6a21\u578b\u5bc6\u94a5\u6216\u6539 profile\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0d\u662f\u6a21\u578b API Key\u3002\u622a\u56fe\uff0f\u4efb\u52a1\u4fe1\u606f\u53ef\u80fd\u53d1\u9001\u7ed9\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\uff0c\u670d\u52a1\u8c03\u7528\u53ef\u80fd\u6536\u8d39\u3002\u786e\u8ba4\u4efb\u52a1\u8303\u56f4\u53ca Runtime \u8f93\u5165\u6388\u6743\uff1a`--allow-local-input` \u542f\u7528\u8f93\u5165\uff0c\u540c\u65f6\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u5bbf\u4e3b\u53ea\u542f\u52a8\u4e00\u6b21\uff0c\u7b49\u5f85 ready\uff0c\u542f\u52a8\uff0f\u9009\u62e9\u76ee\u6807\u7a97\u53e3\uff0c\u4f7f\u7528\u5f53\u524d\u7ed1\u5b9a\u89c2\u5bdf\uff0c\u63d0\u4ea4\u4efb\u52a1\u5e76\u68c0\u67e5\u539f\u56de\u6267\u3002\u542f\u52a8\u6216\u5f02\u6b65\u786e\u8ba4\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u63d0\u524d\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u6279\u6b21\uff0c\u4e0d\u5728\u5176\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\u6216\u6587\u6863\u5de5\u4f5c\u3002", + "+", + "+\u5f85\u5b9a\u3001\u672a\u77e5\u3001\u8d85\u65f6\u3001\u4e2d\u65ad\u8f93\u5165\u6216\u56fe\u50cf\u4e0d\u53ef\u7528\u65f6\uff0c\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID \u5e76\u68c0\u67e5\u72b6\u6001\u3002\u53ef\u80fd\u6267\u884c\u8fc7\u7684\u8f93\u5165\u4e0d\u80fd\u6362 ID \u91cd\u653e\uff0c\u4e5f\u4e0d\u80fd\u4e3a\u5ef6\u957f\u7b49\u5f85\u800c\u91cd\u4ea4\u3002\u771f\u5b9e `pre_action_review_packet.v1` \u6216 `field_review_packet.v1` \u51fa\u73b0\u65f6\uff0c\u7528\u65b0\u5916\u5c42 request ID \u548c `images=none` \u8c03\u7528 `agent_command_status`\uff0c`command_id=packet.execution_request_id`\u3002\u968f\u540e\u7528 `instant_image` \u53d6\u8be5\u72b6\u6001\u8bf7\u6c42\u7ed1\u5b9a\u56fe\u50cf\uff1a\u5019\u9009\u770b `view=before`\uff0c\u5df2\u8f93\u5165\u6587\u5b57\u770b `view=after`\u3002\u5bf9\u7167\u4efb\u52a1\u68c0\u67e5\u786e\u5207\u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236 `caller_controls.review.request`\uff0c\u4ec5\u6dfb\u52a0\u5b9e\u9645 verdict\uff0freason\uff0c\u518d\u5355\u72ec\u4f7f\u7528\u8fd4\u56de\u7684 continue recipe\u3002\u5ba1\u6838\u672c\u8eab\u4e0d\u8f93\u5165\u3002\u524d\u7f6e\u7ee7\u7eed\u4fdd\u7559\u539f job\uff0f\u5019\u9009\uff0c\u6d3e\u53d1\u4e00\u6b21\u524d\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u786c\u95e8\u7981\uff1b\u6587\u5b57\u7ed3\u679c\u7ee7\u7eed\u4e0d\u91cd\u8f93\uff0c\u540e\u7eed submit \u4ecd\u987b\u666e\u901a\u95e8\u7981\u53ca\u6838\u9a8c\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u7968\u636e\u6216\u5019\u9009\u5df2\u8fc7\u671f\u5c31\u505c\u62a5\u3002\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u6210\u529f\u6216\u91cd\u542f\uff0f\u91cd\u653e\u3002", + "+", + "+\u53d6\u6d88\u987b\u7ed3\u7b97\u5230\u771f\u5b9e\u7ec8\u6001\uff1b\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u6216\u6e05\u7406\u3002\u4ec5\u6309\u8fd4\u56de handle\uff0fprocess \u8eab\u4efd\u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff0c\u4ec5\u5904\u7406\u5df2\u6388\u6743\u9009\u62e9\u7684\u4fdd\u5b58\u5bf9\u8bdd\u6846\uff0c\u5e76\u6838\u5bf9 `window_closed`\u3002\u4fdd\u7559\u539f\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\uff0c\u9664\u975e\u5176\u5173\u95ed\u5df2\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u3002\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2\u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\uff0c\u4e4b\u540e\u624d\u91ca\u653e\u539f\u751f HTTP \u6240\u6709\u8005\u3002\u65e7\u6240\u6709\u8005\u672a\u7ed3\u7b97\u65f6\u8bfb\u53d6\u539f\u56de\u6267\u548c\u6e05\u7406\u8bca\u65ad\uff1b\u539f\u8fde\u63a5\u4e22\u5931\u65f6\u4fdd\u7559\u8bc1\u636e\u5e76\u505c\u6b62\uff0c\u4ea4\u64cd\u4f5c\u5458\u6062\u590d\u3002Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview`\u3001`instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528\uff0cPi \u4e0d\u5f97\u7528\u5b83\u4eec\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u5de5\u4f5c\u6d41\u3002\u539f\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\uff0f\u7ee7\u7eed\u7684\u8def\u5f84\u4ecd\u6309\u65e2\u6709\u5408\u540c\u4fdd\u7559\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\u3001\u9501\u6216\u4f1a\u8bdd\u8bb0\u5f55\u3002\u4efb\u52a1\u7ed3\u679c\u4e0e\u6e05\u7406\u5206\u522b\u62a5\u544a\u3002Runtime 0.1.10 \u65b0\u589e\u8bc1\u636e\u5b8c\u6574\u7684\u62d2\u7edd `task_plan` \u63a7\u5236\u53ca\u6210\u529f `observe` \u8bf7\u6c42\u7684\u7ed3\u7b97\uff1b\u62d2\u7edd\u987b\u6709\u539f\u59cb\u6301\u4e45\u5316\u6d3e\u53d1\u524d\u8bc1\u660e\uff0c\u9519\u8bef\u5b57\u7b26\u4e32\u672c\u8eab\u4e0d\u8db3\u4e3a\u636e\uff0c\u6210\u529f\u89c2\u5bdf\u987b\u6709\u7ed1\u5b9a\u7684\u539f\u622a\u56fe\u53ca\u8d26\u672c\u8bc1\u636e\u3002`recover`\u3001`resume_pre_dispatch` \u7684\u7ed3\u7b97\u4ecd\u672a\u5177\u5907\u8d44\u683c\u3002\u4fdd\u7559\u8bc1\u636e\u53ca\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u89c1[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u3002", + "+", + "+\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u72ec\u7acb\u8fd0\u884c\u7684 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\u518d\u7981\u7528\uff0f\u79fb\u9664\u3002\u8fde\u63a5\u5668 0.0.7 \u66f4\u65b0\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b0.0.3\uff0f0.0.4\uff0f0.0.5\uff0f0.0.6 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002" + ] + }, + { + "after": "29c382a99908790a8f7375f0e041f4ed96f99f5598cc9317066b5cb8c874f16b", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,276 @@", + "+# Runtime session and receipt contract / \u4f1a\u8bdd\u4e0e\u56de\u6267\u5408\u540c", + "+", + "+## Prerequisites / \u4f7f\u7528\u524d\u63d0", + "+", + "+This resource connector uses an independently installed, operator-started,", + "+authenticated Windows loopback HTTP MCP Runtime. It never launches external", + "+code. The local connection token is distinct from provider API keys. This", + "+Skill supports the existing external API route only; configured model services", + "+receive recognition/review screenshots and task information and may charge for", + "+calls. Input requires explicit task authorization and Runtime opt-in;", + "+`--allow-local-input` also turns automatic risk interception off. Do not change", + "+profiles, thresholds or prompts to bypass a refusal.", + "+", + "+\u672c\u8d44\u6e90\u8fde\u63a5\u5668\u4f7f\u7528\u7528\u6237\u72ec\u7acb\u5b89\u88c5\u5e76\u542f\u52a8\u3001\u5e26\u9274\u6743\u7684 Windows \u672c\u673a HTTP MCP Runtime\uff0c\u4e0d\u4f1a\u542f\u52a8\u5916\u90e8\u4ee3\u7801\u3002\u672c\u673a\u8fde\u63a5\u5bc6\u94a5\u4e0e\u6a21\u578b API Key \u4e0d\u540c\u3002\u672c Skill \u4ec5\u652f\u6301\u539f\u6709 external API \u8def\u7ebf\uff1b\u5df2\u914d\u7f6e\u6a21\u578b\u670d\u52a1\u4f1a\u63a5\u6536\u8bc6\u522b\uff0f\u5ba1\u6838\u622a\u56fe\u53ca\u4efb\u52a1\u4fe1\u606f\uff0c\u53ef\u80fd\u6309\u8c03\u7528\u6536\u8d39\u3002\u8f93\u5165\u987b\u6709\u660e\u786e\u4efb\u52a1\u6388\u6743\u53ca Runtime opt-in\uff1b`--allow-local-input` \u4e5f\u4f1a\u5173\u95ed\u81ea\u52a8\u98ce\u9669\u62e6\u622a\u3002\u4e0d\u80fd\u6539 profile\u3001\u9608\u503c\u6216\u63d0\u793a\u8bcd\u6765\u7ed5\u8fc7\u62d2\u7edd\u3002", + "+", + "+Recommend Runtime 0.1.10. The minimum HTTP/pre-action contract is 0.1.6;", + "+the service must also supply field-review/continue. Runtime 0.1.5 has field", + "+review but no HTTP entry point. This connector does not qualify Runtime 0.1.7", + "+current-Agent mode through Amadeus. Manually inspect the MCP initialization", + "+version, authentication, discovered tools and active schemas before input:", + "+`instant_start`, `instant_status`, `instant_run`, `instant_result`,", + "+`instant_image`, `instant_stop`, and task-plan/original-command status and", + "+review/continue support. Logical names below are Runtime names, not guesses", + "+about Pi's namespaced/hashed tool names. Neither a version marker nor a later", + "+release proves compatibility; no automatic compatibility detector is provided.", + "+The 0.1.6 protocol floor does not qualify every later 0.1.x version; use", + "+validation evidence for the exact Runtime/connector versions and route.", + "+", + "+\u63a8\u8350 Runtime 0.1.10\u3002\u6700\u4f4e HTTP\uff0f\u524d\u7f6e\u5ba1\u6838\u5408\u540c\u4e3a 0.1.6\uff0c\u670d\u52a1\u8fd8\u987b\u63d0\u4f9b\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\uff0f\u7ee7\u7eed\u3002Runtime 0.1.5 \u6709\u6587\u5b57\u5ba1\u6838\u4f46\u6ca1\u6709 HTTP \u5165\u53e3\u3002\u672c\u8fde\u63a5\u5668\u6ca1\u6709\u901a\u8fc7 Amadeus \u6838\u9a8c Runtime 0.1.7 current-Agent \u6a21\u5f0f\u3002\u8f93\u5165\u524d\u4eba\u5de5\u68c0\u67e5 MCP \u521d\u59cb\u5316\u7248\u672c\u3001\u9274\u6743\u3001\u5df2\u53d1\u73b0\u5de5\u5177\u53ca\u6d3b\u52a8 schema\uff1a`instant_start`\u3001`instant_status`\u3001`instant_run`\u3001`instant_result`\u3001`instant_image`\u3001`instant_stop`\uff0c\u4ee5\u53ca task-plan\uff0f\u539f\u547d\u4ee4\u72b6\u6001\u548c\u5ba1\u6838\uff0f\u7ee7\u7eed\u652f\u6301\u3002\u4e0b\u6587\u903b\u8f91\u540d\u79f0\u662f Runtime \u540d\u79f0\uff0c\u4e0d\u80fd\u636e\u6b64\u731c Pi \u5e26\u547d\u540d\u7a7a\u95f4\uff0f\u54c8\u5e0c\u7684\u5de5\u5177\u540d\u3002\u7248\u672c\u53f7\u6216\u540e\u7eed\u53d1\u884c\u4e0d\u80fd\u8bc1\u660e\u517c\u5bb9\uff0c\u672c\u5305\u6ca1\u6709\u81ea\u52a8\u517c\u5bb9\u63a2\u6d4b\u5668\u30020.1.6 \u7684\u534f\u8bae\u8d77\u70b9\u4e0d\u8868\u793a\u6240\u6709\u540e\u7eed 0.1.x \u7248\u672c\u5747\u5df2\u5177\u5907\u8d44\u683c\uff1b\u987b\u6309\u786e\u5207 Runtime\uff0f\u8fde\u63a5\u5668\u7248\u672c\u53ca\u8def\u7ebf\u7684\u9a8c\u8bc1\u8bc1\u636e\u5224\u65ad\u3002", + "+", + "+## Start and select / \u542f\u52a8\u4e0e\u9009\u62e9", + "+", + "+Keep one live MCP connection and one input owner for the entire Work. Call the", + "+discovered `instant_start` once, then `instant_status` until ready. Vision and", + "+Decision profiles are preconfigured; do not call `prepare_models` or", + "+`learning_*`. A selected target is session state. Prepare known independent", + "+fields together, read healthy pending results promptly, and do not insert", + "+unrelated searches/documentation between action batches.", + "+", + "+\u5b8c\u6574 Work \u4fdd\u6301\u4e00\u4e2a\u6d3b\u52a8 MCP \u8fde\u63a5\u548c\u4e00\u4e2a\u8f93\u5165\u6240\u6709\u8005\u3002\u53d1\u73b0\u5b9e\u9645\u5de5\u5177\u540e\uff0c\u53ea\u8c03\u7528\u4e00\u6b21 `instant_start`\uff0c\u518d\u67e5\u8be2 `instant_status` \u81f3 ready\u3002\u89c6\u89c9\u4e0e Decision profile \u5df2\u4e8b\u5148\u914d\u7f6e\uff0c\u4e0d\u8c03\u7528 `prepare_models` \u6216 `learning_*`\u3002\u9009\u4e2d\u76ee\u6807\u5c5e\u4e8e\u4f1a\u8bdd\u72b6\u6001\u3002\u5df2\u77e5\u72ec\u7acb\u5b57\u6bb5\u5408\u5e76\u51c6\u5907\uff0c\u53ca\u65f6\u8bfb\u53d6\u6b63\u5e38\u5f85\u5b9a\u7ed3\u679c\uff0c\u4e0d\u5728\u52a8\u4f5c\u6279\u6b21\u95f4\u63d2\u5165\u65e0\u5173\u641c\u7d22\uff0f\u6587\u6863\u5de5\u4f5c\u3002", + "+", + "+For a new application/shortcut explicitly in scope, use the actual approved", + "+path. Read its returned ownership and exact handle/process_id. Example:", + "+", + "+\u5bf9\u4e8e\u660e\u786e\u7eb3\u5165\u4efb\u52a1\u7684\u65b0\u5e94\u7528\uff0f\u5feb\u6377\u65b9\u5f0f\uff0c\u4f7f\u7528\u5b9e\u9645\u5df2\u6388\u6743\u8def\u5f84\uff0c\u8bfb\u53d6\u8fd4\u56de\u7684\u5f52\u5c5e\u53ca\u786e\u5207 handle\uff0fprocess_id\u3002\u4f8b\u5982\uff1a", + "+", + "+```json", + "+{\"request_id\":\"launch-001\",\"command\":{\"kind\":\"launch\",\"path\":\"C:\\\\approved-test\\\\application.lnk\",\"prefer_existing\":false},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+For an observed existing window, select its real identities with the shape", + "+`{\"kind\":\"select\",\"handle\":123,\"process_id\":456}`. Example integers are", + "+placeholders, not targets. A pre-existing/operator-prepared window does not", + "+become task-owned. Capture the selected target with **only** `kind`:", + "+", + "+\u5bf9\u4e8e\u5df2\u89c2\u5bdf\u5230\u7684\u73b0\u6709\u7a97\u53e3\uff0c\u6309 `{\"kind\":\"select\",\"handle\":123,\"process_id\":456}` \u5f62\u72b6\u586b\u771f\u5b9e\u8eab\u4efd\u3002\u793a\u4f8b\u6574\u6570\u53ea\u662f\u5360\u4f4d\u7b26\uff0c\u4e0d\u662f\u76ee\u6807\u3002\u73b0\u6709\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\u4e0d\u4f1a\u53d8\u6210\u672c\u4efb\u52a1\u81ea\u6709\u7a97\u53e3\u3002\u6355\u83b7\u5df2\u9009\u76ee\u6807\u65f6\uff0ccommand **\u53ea\u653e** `kind`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"capture-001\",\"command\":{\"kind\":\"capture\"},\"wait_ms\":10000,\"images\":\"after\"}", + "+```", + "+", + "+Do not put handle/process_id in `capture`. Use the original images bound to", + "+`instant_run`/`instant_result`; `instant_image` retrieves available images by", + "+the original request ID. A new capture is a new observation, not replacement", + "+evidence for an older action. Never mix old coordinates with current geometry.", + "+Pi may natively resize a complete bound frame for its model; do not claim that", + "+this is byte-identical original PNG delivery.", + "+", + "+`capture` \u4e0d\u653e handle\uff0fprocess_id\u3002\u4f7f\u7528 `instant_run`\uff0f`instant_result` \u7ed1\u5b9a\u7684\u539f\u56fe\uff0c`instant_image` \u6309\u539f request ID \u53d6\u53ef\u7528\u56fe\u50cf\u3002\u65b0 capture \u662f\u65b0\u89c2\u5bdf\uff0c\u4e0d\u80fd\u66ff\u6362\u65e7\u52a8\u4f5c\u8bc1\u636e\u3002\u4e0d\u628a\u65e7\u5750\u6807\u4e0e\u5f53\u524d\u51e0\u4f55\u6df7\u7528\u3002Pi \u53ef\u80fd\u539f\u751f\u7f29\u653e\u5b8c\u6574\u7ed1\u5b9a\u5e27\u518d\u4ea4\u7ed9\u6a21\u578b\uff0c\u4e0d\u80fd\u58f0\u79f0\u8fd9\u7b49\u4e8e\u539f PNG \u5b57\u8282\u76f8\u540c\u4ea4\u4ed8\u3002", + "+", + "+## Submit, wait and inspect / \u63d0\u4ea4\u3001\u7b49\u5f85\u4e0e\u6838\u5bf9", + "+", + "+Use a complete `task_plan` when the task calls for one; do not split it to evade", + "+checks. Follow the actual schema, explicit actions/verification and original", + "+run identity. There is no connector step cap; Runtime budgets, evidence binding", + "+and admission apply. `instant_run` accepts `request_id`, `command`, `wait_ms`,", + "+`detail` and `images`; keep receipt waits below the MCP client timeout. A", + "+running start receipt or asynchronous `instant_submit` acknowledgement is not", + "+completion. When pending, follow returned `next` and read `instant_result`", + "+with the **same** outer request ID:", + "+", + "+\u4efb\u52a1\u9700\u8981\u5b8c\u6574 `task_plan` \u65f6\u6309\u5b9e\u9645 schema \u4f7f\u7528\uff0c\u4e0d\u62c6\u5206\u6765\u89c4\u907f\u68c0\u67e5\u3002\u4fdd\u7559\u660e\u786e\u52a8\u4f5c\uff0f\u6838\u9a8c\u53ca\u539f run \u8eab\u4efd\u3002\u8fde\u63a5\u5668\u6ca1\u6709\u6b65\u6570\u4e0a\u9650\uff0cRuntime \u9884\u7b97\u3001\u8bc1\u636e\u7ed1\u5b9a\u4e0e\u51c6\u5165\u4ecd\u9002\u7528\u3002`instant_run` \u63a5\u6536 `request_id`\u3001`command`\u3001`wait_ms`\u3001`detail`\u3001`images`\uff0c\u56de\u6267\u7b49\u5f85\u987b\u4f4e\u4e8e MCP \u5ba2\u6237\u7aef\u8d85\u65f6\u3002running \u542f\u52a8\u56de\u6267\u6216\u5f02\u6b65 `instant_submit` \u786e\u8ba4\u4e0d\u662f\u5b8c\u6210\u3002\u5f85\u5b9a\u65f6\u6309\u8fd4\u56de `next`\uff0c\u7528**\u76f8\u540c**\u5916\u5c42 request ID \u8bfb\u53d6 `instant_result`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"launch-001\",\"detail\":\"full\",\"images\":\"both\"}", + "+```", + "+", + "+For `agent_command.v1`, retain command_id. Read its state under a new outer", + "+request ID; this read-only status request is not a replay. For a review packet,", + "+its `execution_request_id` is the command_id to query. The example value must", + "+be replaced by the real original identity:", + "+", + "+\u5bf9\u4e8e `agent_command.v1`\uff0c\u4fdd\u7559 command_id\uff1b\u7528\u65b0\u5916\u5c42 request ID \u8bfb\u72b6\u6001\uff0c\u8fd9\u662f\u53ea\u8bfb\u72b6\u6001\u8bf7\u6c42\uff0c\u4e0d\u662f\u91cd\u653e\u3002\u5ba1\u6838 packet \u7684 `execution_request_id` \u5c31\u662f\u8981\u67e5\u8be2\u7684 command_id\uff1b\u793a\u4f8b\u503c\u987b\u66ff\u6362\u4e3a\u771f\u5b9e\u539f\u8eab\u4efd\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"command\":{\"kind\":\"agent_command_status\",\"request\":{\"command_id\":\"original-execution-request-id\"}},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+Inspect `instant_status.task_plan_run` and original start/result receipts until", + "+a terminal outcome or explicit wait. Report completed steps, pending/review/", + "+failure and bound evidence, not merely tool success. `result_unknown`, timeout,", + "+`action_executed=true`, interrupted typing or a missing after image never prove", + "+input did not happen. Preserve original request/run/command IDs; do not resend", + "+input to extend a wait, start a competing plan or use another input route to", + "+hide uncertainty. Cancellation must reach its real terminal state.", + "+", + "+\u68c0\u67e5 `instant_status.task_plan_run` \u53ca\u539f\u542f\u52a8\uff0f\u7ed3\u679c\u56de\u6267\uff0c\u76f4\u5230\u7ec8\u6001\u6216\u660e\u786e\u7b49\u5f85\u3002\u62a5\u544a\u5b8c\u6210\u6b65\u9aa4\u3001\u5f85\u5b9a\uff0f\u5ba1\u6838\uff0f\u5931\u8d25\u4e0e\u7ed1\u5b9a\u8bc1\u636e\uff0c\u4e0d\u80fd\u53ea\u62a5\u5de5\u5177\u6210\u529f\u3002`result_unknown`\u3001\u8d85\u65f6\u3001`action_executed=true`\u3001\u8f93\u5165\u4e2d\u65ad\u6216\u7f3a\u5c11\u540e\u56fe\u4e0d\u80fd\u8bc1\u660e\u672a\u8f93\u5165\u3002\u4fdd\u7559\u539f request\uff0frun\uff0fcommand ID\uff0c\u4e0d\u91cd\u4ea4\u8f93\u5165\u5ef6\u957f\u7b49\u5f85\u3001\u4e0d\u53e6\u8d77\u7ade\u4e89\u8ba1\u5212\u3001\u4e0d\u7528\u5176\u4ed6\u8f93\u5165\u8def\u7ebf\u63a9\u76d6\u672a\u77e5\u3002\u53d6\u6d88\u987b\u5230\u771f\u5b9e\u7ec8\u6001\u3002", + "+", + "+## Main review / \u539f Agent \u5ba1\u6838", + "+", + "+Use the actual packet returned by the active service. A candidate before input", + "+and an already-entered field are different scopes. A handoff/version marker is", + "+not a ticket; do not fabricate hashes, wait IDs, verdicts or recipes.", + "+", + "+\u53ea\u4f7f\u7528\u6d3b\u52a8\u670d\u52a1\u5b9e\u9645\u8fd4\u56de\u7684 packet\u3002\u8f93\u5165\u524d\u5019\u9009\u4e0e\u5df2\u8f93\u5165\u5b57\u6bb5\u5c5e\u4e8e\u4e0d\u540c\u4f5c\u7528\u57df\uff0c\u4ea4\u63a5\uff0f\u7248\u672c\u6807\u8bb0\u4e0d\u662f\u7968\u636e\uff1b\u4e0d\u4f2a\u9020\u54c8\u5e0c\u3001wait ID\u3001\u7ed3\u8bba\u6216 recipe\u3002", + "+", + "+### Candidate before input / \u8f93\u5165\u524d\u5019\u9009", + "+", + "+A genuine `pre_action_review_packet.v1` parks the original job after", + "+authenticated Decision and ordinary-model nonpasses, without claiming native", + "+input. Read `packet.execution_request_id` through `agent_command_status` as", + "+above and wait for that status receipt. Retrieve that successful status", + "+request's bound original **before** image, using its actual request ID:", + "+", + "+\u771f\u5b9e `pre_action_review_packet.v1` \u5728\u5df2\u8ba4\u8bc1 Decision \u548c\u666e\u901a\u6a21\u578b\u5747\u672a\u901a\u8fc7\u540e\u6682\u505c\u539f job\uff0c\u4e0d\u58f0\u79f0\u5df2\u6d3e\u53d1\u539f\u751f\u8f93\u5165\u3002\u6309\u4e0a\u4f8b\u901a\u8fc7 `agent_command_status` \u8bfb\u53d6 `packet.execution_request_id` \u5e76\u7b49\u5230\u72b6\u6001\u56de\u6267\uff0c\u518d\u4ee5\u8be5\u6210\u529f\u72b6\u6001\u8bf7\u6c42\u7684\u5b9e\u9645 request ID \u53d6\u7ed1\u5b9a\u539f **before** \u56fe\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"before\"}", + "+```", + "+", + "+Inspect the original task target, candidate point/box and exact bound image.", + "+Do not replace it with a new capture or treat the locator description as proof.", + "+Copy `caller_controls.review.request` and add only the actual verdict/reason:", + "+success requires a specific visual reason that the candidate satisfies the", + "+task; otherwise record the genuine failure or cancel. Do not ask models again", + "+and again to obtain a pass.", + "+", + "+\u68c0\u67e5\u539f\u4efb\u52a1\u76ee\u6807\u3001\u5019\u9009\u70b9\uff0f\u6846\u4e0e\u786e\u5207\u7ed1\u5b9a\u56fe\u50cf\uff0c\u4e0d\u80fd\u6539\u7528\u65b0 capture\uff0c\u4e5f\u4e0d\u80fd\u628a\u5b9a\u4f4d\u63cf\u8ff0\u5f53\u8bc1\u660e\u3002\u590d\u5236 `caller_controls.review.request`\uff0c\u53ea\u6dfb\u52a0\u771f\u5b9e verdict\uff0freason\uff1asuccess \u5fc5\u987b\u6709\u5019\u9009\u6ee1\u8db3\u4efb\u52a1\u7684\u5177\u4f53\u53ef\u89c1\u4f9d\u636e\uff0c\u5426\u5219\u8bb0\u5f55\u771f\u5b9e\u5931\u8d25\u6216\u53d6\u6d88\u3002\u4e0d\u53cd\u590d\u95ee\u6a21\u578b\u6765\u51d1\u901a\u8fc7\u3002", + "+", + "+Submit review through the actual `task_plan` recipe. Review records Main's", + "+judgment and performs no click. Then use the **separately returned**", + "+`caller_controls.continue.request`, retaining the original run/wait. It resumes", + "+the original job/candidate after a fresh target-region check and existing", + "+input, identity, geometry, visibility and cancellation gates. A changed/expired", + "+candidate stops. Do not restart, replan or synthesize approval to repeat it.", + "+Original model nonpasses remain separate from Main's one-use approval.", + "+", + "+\u6309\u771f\u5b9e `task_plan` recipe \u63d0\u4ea4\u5ba1\u6838\uff0c\u5ba1\u6838\u4ec5\u8bb0\u5f55 Main \u5224\u65ad\uff0c\u4e0d\u70b9\u51fb\u3002\u4e4b\u540e\u4f7f\u7528**\u5355\u72ec\u8fd4\u56de**\u7684 `caller_controls.continue.request`\uff0c\u4fdd\u7559\u539f run\uff0fwait\u3002\u539f job\uff0f\u5019\u9009\u987b\u901a\u8fc7\u65b0\u622a\u56fe\u7684\u76ee\u6807\u533a\u57df\u6838\u5bf9\u53ca\u65e2\u6709\u8f93\u5165\u3001\u8eab\u4efd\u3001\u51e0\u4f55\u3001\u53ef\u89c1\u6027\u3001\u53d6\u6d88\u95e8\u7981\u540e\u624d\u7ee7\u7eed\u3002\u5019\u9009\u53d8\u5316\uff0f\u8fc7\u671f\u5c31\u505c\u6b62\uff0c\u4e0d\u91cd\u542f\u3001\u91cd\u89c4\u5212\u6216\u5408\u6210\u6279\u51c6\u6765\u91cd\u505a\uff1b\u539f\u6a21\u578b\u672a\u901a\u8fc7\u7ed3\u679c\u4e0e Main \u4e00\u6b21\u6027\u6279\u51c6\u5206\u522b\u4fdd\u7559\u3002", + "+", + "+### Entered field value / \u5df2\u8f93\u5165\u6587\u5b57", + "+", + "+A genuine `field_review_packet.v1` reviews text already entered after an", + "+authenticated dual-model rejection; the original execution is still pending.", + "+Read `packet.execution_request_id` through a new `agent_command_status` as", + "+above. After that status receipt, use its real request ID with", + "+`instant_image(view=\"after\")`:", + "+", + "+\u771f\u5b9e `field_review_packet.v1` \u5728\u5df2\u8ba4\u8bc1\u53cc\u6a21\u578b\u62d2\u7edd\u540e\u5ba1\u6838\u5df2\u7ecf\u8f93\u5165\u7684\u6587\u5b57\uff0c\u539f\u6267\u884c\u4ecd\u5f85\u5b9a\u3002\u6309\u4e0a\u4f8b\u7528\u65b0 `agent_command_status` \u8bfb\u53d6 `packet.execution_request_id`\uff0c\u72b6\u6001\u56de\u6267\u5b8c\u6210\u540e\uff0c\u7528\u5176\u771f\u5b9e request ID \u8c03\u7528 `instant_image(view=\"after\")`\uff1a", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"after\"}", + "+```", + "+", + "+Do not request an image directly on the unfinished execution, replace the bound", + "+after image with a new capture or replay text. Inspect the evidence bound to", + "+`caller_controls.review.request`, copy it and add only actual verdict/reason;", + "+do not add wait_id to review. Review only records Main's judgment. Separately", + "+submit the returned continue recipe for the original run/wait; the live thread", + "+resumes without retyping. Parameter recipes are not action authorization.", + "+", + "+\u4e0d\u80fd\u76f4\u63a5\u5411\u672a\u5b8c\u6210\u6267\u884c\u53d6\u56fe\u3001\u7528\u65b0 capture \u66ff\u6362\u7ed1\u5b9a\u540e\u56fe\u6216\u91cd\u8f93\u6587\u5b57\u3002\u68c0\u67e5 `caller_controls.review.request` \u7ed1\u5b9a\u8bc1\u636e\uff0c\u590d\u5236\u5e76\u4ec5\u6dfb\u52a0\u771f\u5b9e verdict\uff0freason\uff0c\u4e0d\u5728 review \u6dfb\u52a0 wait_id\u3002\u5ba1\u6838\u53ea\u8bb0\u5f55 Main \u5224\u65ad\uff1b\u518d\u5355\u72ec\u63d0\u4ea4\u8fd4\u56de\u7684 continue recipe \u7eed\u539f run\uff0fwait\uff0c\u6d3b\u52a8\u7ebf\u7a0b\u4e0d\u91cd\u8f93\u3002\u53c2\u6570 recipe \u4e0d\u662f\u52a8\u4f5c\u6388\u6743\u3002", + "+", + "+Field review only confirms entered text. A submit suffix still needs its fresh", + "+target/candidate, normal input gates and result verification; field review does", + "+not prove search/submission success or bypass final-submit restrictions. If", + "+there is no genuine resumable review/continue recipe, retain the original", + "+failure and stop/report. Do not invent a ticket, restart/replay, relabel success", + "+or create a successor to repeat input. This package does not repair Runtime or", + "+claim new installed acceptance of its review behavior.", + "+", + "+\u6587\u5b57\u7ed3\u679c\u5ba1\u6838\u53ea\u786e\u8ba4\u5df2\u8f93\u5165\u5185\u5bb9\u3002submit \u540e\u7f00\u4ecd\u987b\u65b0\u76ee\u6807\uff0f\u5019\u9009\u3001\u666e\u901a\u8f93\u5165\u95e8\u7981\u53ca\u7ed3\u679c\u6838\u9a8c\uff1b\u6587\u5b57\u5ba1\u6838\u4e0d\u8bc1\u660e\u641c\u7d22\uff0f\u63d0\u4ea4\u6210\u529f\uff0c\u4e5f\u4e0d\u7ed5\u8fc7\u6700\u7ec8\u63d0\u4ea4\u9650\u5236\u3002\u6ca1\u6709\u771f\u5b9e\u53ef\u7eed\u5ba1\u6838\uff0f\u7ee7\u7eed recipe \u65f6\u4fdd\u7559\u539f\u5931\u8d25\u5e76\u505c\u62a5\uff0c\u4e0d\u4f2a\u9020\u7968\u636e\u3001\u91cd\u542f\uff0f\u91cd\u653e\u3001\u6539\u6807\u6210\u529f\u6216\u53e6\u9020\u540e\u7ee7\u6765\u91cd\u8f93\u3002\u672c\u5305\u4e0d\u4fee\u590d Runtime\uff0c\u4e5f\u4e0d\u58f0\u79f0\u65b0\u5b89\u88c5\u6001\u5ba1\u6838\u884c\u4e3a\u9a8c\u6536\u3002", + "+", + "+## Recovery / \u6062\u590d", + "+", + "+If HTTP is unreachable, check the independently started service console,", + "+loopback port and `/mcp` path. For 401, compare the private local tokens; do not", + "+substitute a provider key or expose secrets in logs. Host/Origin rejection", + "+requires a direct native MCP connection to `127.0.0.1`, not a proxy/browser.", + "+Missing tools/contracts require manual version/schema review before new input,", + "+not an invented fallback. Do not change running configuration until original", + "+input and cleanup have settled.", + "+", + "+HTTP \u4e0d\u53ef\u8fbe\u65f6\u6838\u5bf9\u72ec\u7acb\u670d\u52a1\u63a7\u5236\u53f0\u3001\u672c\u673a\u7aef\u53e3\u53ca `/mcp` \u8def\u5f84\u3002401 \u65f6\u6838\u5bf9\u79c1\u4e0b\u4fdd\u5b58\u7684\u672c\u673a\u5bc6\u94a5\uff0c\u4e0d\u7528\u6a21\u578b\u5bc6\u94a5\u66ff\u4ee3\uff0c\u4e5f\u4e0d\u5728\u65e5\u5fd7\u66b4\u9732\u5bc6\u94a5\u3002Host\uff0fOrigin \u62d2\u7edd\u65f6\u987b\u539f\u751f MCP \u76f4\u8fde `127.0.0.1`\uff0c\u4e0d\u7528\u4ee3\u7406\uff0f\u6d4f\u89c8\u5668\u3002\u5de5\u5177\uff0f\u5408\u540c\u7f3a\u5931\u65f6\u5148\u4eba\u5de5\u6838\u5bf9\u7248\u672c\uff0fschema\uff0c\u518d\u8003\u8651\u65b0\u8f93\u5165\uff0c\u4e0d\u80fd\u865a\u6784\u540e\u5907\u8def\u7ebf\u3002\u539f\u8f93\u5165\u4e0e\u6e05\u7406\u672a\u7ed3\u7b97\u524d\uff0c\u4e0d\u66f4\u6539\u8fd0\u884c\u914d\u7f6e\u3002", + "+", + "+A timeout/disconnect is not cancellation. If the original connection is still", + "+usable, inspect original receipts and use its actual cancel/status recipe,", + "+then wait for terminal settlement. An owner conflict or cleanup gate must be", + "+resolved through the original live Work. Inspect `cleanup_pending` diagnostics,", + "+resolve its specific blocker, then retry `instant_stop` for cleanup only and", + "+poll. If the original connection is unavailable, retain evidence and stop for", + "+operator/maintainer recovery; a new Work is not the old owner. Never steal", + "+ownership, repeatedly reconnect/restart, delete queues/locks/session records or", + "+replay unknown input to bypass a gate.", + "+", + "+\u8d85\u65f6\uff0f\u65ad\u7ebf\u4e0d\u7b49\u4e8e\u53d6\u6d88\u3002\u539f\u8fde\u63a5\u4ecd\u53ef\u7528\u65f6\uff0c\u68c0\u67e5\u539f\u56de\u6267\uff0c\u4f7f\u7528\u5176\u771f\u5b9e cancel\uff0fstatus recipe \u5e76\u7b49\u5230\u7ec8\u6001\u3002owner \u51b2\u7a81\u6216\u6e05\u7406\u95e8\u7981\u987b\u7ecf\u539f\u6d3b\u52a8 Work \u5904\u7406\u3002\u8bfb\u53d6 `cleanup_pending` \u8bca\u65ad\uff0c\u89e3\u9664\u5177\u4f53\u963b\u585e\u540e\u8c03\u7528 `instant_stop` \u53ea\u91cd\u8bd5\u6e05\u7406\uff0c\u518d\u67e5\u8be2\u72b6\u6001\u3002\u539f\u8fde\u63a5\u4e0d\u53ef\u7528\u65f6\u4fdd\u7559\u8bc1\u636e\uff0c\u505c\u6b62\u5e76\u4ea4\u64cd\u4f5c\u5458\uff0f\u7ef4\u62a4\u8005\u6062\u590d\uff1b\u65b0 Work \u4e0d\u662f\u65e7 owner\u3002\u4e0d\u62a2\u5360\u3001\u4e0d\u53cd\u590d\u91cd\u8fde\uff0f\u91cd\u542f\u3001\u4e0d\u5220\u9664\u961f\u5217\uff0f\u9501\uff0f\u4f1a\u8bdd\u8bb0\u5f55\u3001\u4e0d\u91cd\u653e\u672a\u77e5\u8f93\u5165\u6765\u7ed5\u8fc7\u95e8\u7981\u3002", + "+", + "+After Pi disconnects or encounters an owner conflict,", + "+`instant_recovery_preview` and `instant_recover_session` are both", + "+**operator-only**. Pi must not call either tool to take over the old session or", + "+resume its workflow. Main's bound-image review and continuation of the original", + "+job in the same live session remain supported under the contracts above.", + "+Runtime 0.1.10 adds settlement for proven rejected `task_plan` controls and", + "+successful `observe` requests. A rejection needs its original durable", + "+before-dispatch proof; an error string alone cannot prove zero input.", + "+Successful observation needs its bound original capture and ledger evidence.", + "+Settlement of `recover` and `resume_pre_dispatch` remains unqualified; no", + "+support for those paths is claimed here. For retained evidence, follow the", + "+[settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+and its maintained operator entry point. Keep original receipts and diagnostics;", + "+unknown settlement does not prove that no input occurred or authorize replay.", + "+", + "+Pi \u65ad\u7ebf\u6216\u9047\u5230 owner \u51b2\u7a81\u540e\uff0c`instant_recovery_preview` \u548c `instant_recover_session` \u4e24\u4e2a\u5de5\u5177\u5747**\u4ec5\u9650\u64cd\u4f5c\u5458\u4f7f\u7528**\u3002Pi \u4e0d\u5f97\u8c03\u7528\u4efb\u4e00\u5de5\u5177\u63a5\u7ba1\u65e7\u4f1a\u8bdd\u6216\u7eed\u8dd1\u5176\u5de5\u4f5c\u6d41\u3002\u540c\u4e00\u6d3b\u52a8\u4f1a\u8bdd\u4e2d Main \u5bf9\u7ed1\u5b9a\u56fe\u50cf\u5ba1\u6838\u5e76\u7ee7\u7eed\u539f job \u7684\u8def\u5f84\u4ecd\u6309\u4e0a\u6587\u5408\u540c\u4fdd\u7559\u3002Runtime 0.1.10 \u65b0\u589e\u8bc1\u636e\u5b8c\u6574\u7684\u62d2\u7edd `task_plan` \u63a7\u5236\u53ca\u6210\u529f `observe` \u8bf7\u6c42\u7684\u7ed3\u7b97\uff1b\u62d2\u7edd\u987b\u6709\u539f\u59cb\u6301\u4e45\u5316\u6d3e\u53d1\u524d\u8bc1\u660e\uff0c\u9519\u8bef\u5b57\u7b26\u4e32\u672c\u8eab\u4e0d\u80fd\u8bc1\u660e\u96f6\u8f93\u5165\uff0c\u6210\u529f\u89c2\u5bdf\u987b\u6709\u7ed1\u5b9a\u7684\u539f\u622a\u56fe\u53ca\u8d26\u672c\u8bc1\u636e\u3002`recover`\u3001`resume_pre_dispatch` \u7684\u7ed3\u7b97\u4ecd\u672a\u5177\u5907\u8d44\u683c\uff0c\u6b64\u5904\u4e0d\u58f0\u79f0\u652f\u6301\u3002\u4fdd\u7559\u8bc1\u636e\u987b\u6309[\u7ed3\u7b97\u6062\u590d\u6307\u5357](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)\u53ca\u5176\u6b63\u5f0f\u7ef4\u62a4\u7684\u64cd\u4f5c\u5458\u5165\u53e3\u5904\u7406\u3002\u4fdd\u7559\u539f\u56de\u6267\u548c\u8bca\u65ad\uff1b\u672a\u77e5\u7ed3\u7b97\u65e2\u4e0d\u80fd\u8bc1\u660e\u6ca1\u6709\u6267\u884c\u8f93\u5165\uff0c\u4e5f\u4e0d\u6388\u6743\u91cd\u653e\u3002", + "+", + "+## Owned-window and host cleanup / \u81ea\u6709\u7a97\u53e3\u4e0e\u5bbf\u4e3b\u6536\u5c3e", + "+", + "+After input settles, close only a task-launched window using the exact", + "+handle/process_id from its launch receipt. Example numbers are placeholders:", + "+", + "+\u8f93\u5165\u7ed3\u7b97\u540e\uff0c\u4ec5\u6309\u542f\u52a8\u56de\u6267\u7684\u786e\u5207 handle\uff0fprocess_id \u5173\u95ed\u672c\u4efb\u52a1\u542f\u52a8\u7684\u7a97\u53e3\uff1b\u793a\u4f8b\u6570\u5b57\u53ea\u662f\u5360\u4f4d\u7b26\uff1a", + "+", + "+```json", + "+{\"request_id\":\"close-001\",\"command\":{\"kind\":\"close_launched_window\",\"handle\":123,\"process_id\":456},\"wait_ms\":10000,\"images\":\"after\"}", + "+```", + "+", + "+No `request.ownership` field is required. Preserve the original launch identity.", + "+If `window_close_pending` exposes an owned modal, inspect the current dialog", + "+through select/capture; closing does not authorize Save/Discard/Confirm. Act", + "+only on a choice explicitly in scope. Missing after evidence can mean the", + "+window closed: inspect the original receipt and verify disappearance rather", + "+than repeating a click. Verify `window_closed` for each owned window. Do not", + "+close unrelated/operator-prepared windows unless explicitly authorized.", + "+", + "+\u4e0d\u9700\u8981 `request.ownership` \u5b57\u6bb5\uff0c\u4fdd\u7559\u539f\u542f\u52a8\u8eab\u4efd\u3002`window_close_pending` \u663e\u793a\u81ea\u6709\u6a21\u6001\u6846\u65f6\uff0c\u901a\u8fc7 select\uff0fcapture \u67e5\u770b\u5f53\u524d\u5bf9\u8bdd\u6846\uff1b\u5173\u95ed\u8bf7\u6c42\u4e0d\u6388\u6743\u4fdd\u5b58\uff0f\u4e22\u5f03\uff0f\u786e\u8ba4\uff0c\u53ea\u6267\u884c\u660e\u786e\u5728\u8303\u56f4\u5185\u7684\u9009\u62e9\u3002\u7f3a\u540e\u56fe\u53ef\u80fd\u56e0\u4e3a\u7a97\u53e3\u5df2\u5173\uff0c\u5e94\u8bfb\u539f\u56de\u6267\u5e76\u6838\u5bf9\u6d88\u5931\uff0c\u4e0d\u80fd\u91cd\u590d\u70b9\u51fb\u3002\u9010\u4e00\u6838\u5b9e\u81ea\u6709\u7a97\u53e3 `window_closed`\uff1b\u6ca1\u6709\u660e\u786e\u6388\u6743\u5c31\u4e0d\u5173\u95ed\u65e0\u5173\uff0f\u64cd\u4f5c\u5458\u9884\u5907\u7a97\u53e3\u3002", + "+", + "+Call `instant_stop`, then poll `instant_status` until `host_alive=false`,", + "+`pending_ids=[]`, `cleanup_verified=true` and no unresolved cleanup error.", + "+`cleanup_pending`/stop acknowledgement is not terminal cleanup. Host cleanup", + "+does not prove application closure. Only after these conditions release the", + "+native HTTP owner so another Work can initialize. A transport disconnect is", + "+not task success, cancellation or cleanup; reopening a Pi conversation does", + "+not resume the old live MCP connection.", + "+", + "+\u8c03\u7528 `instant_stop`\uff0c\u67e5\u8be2 `instant_status` \u81f3 `host_alive=false`\u3001`pending_ids=[]`\u3001`cleanup_verified=true` \u4e14\u6ca1\u6709\u672a\u89e3\u51b3\u6e05\u7406\u9519\u8bef\u3002`cleanup_pending`\uff0fstop \u786e\u8ba4\u4e0d\u662f\u6e05\u7406\u7ec8\u6001\uff0c\u5bbf\u4e3b\u6e05\u7406\u4e0d\u8bc1\u660e\u5e94\u7528\u5df2\u5173\u3002\u6ee1\u8db3\u8fd9\u4e9b\u6761\u4ef6\u540e\u624d\u91ca\u653e\u539f\u751f HTTP owner\uff0c\u4f7f\u5176\u4ed6 Work \u521d\u59cb\u5316\u3002\u4f20\u8f93\u65ad\u7ebf\u4e0d\u662f\u4efb\u52a1\u6210\u529f\u3001\u53d6\u6d88\u6216\u6e05\u7406\uff1b\u91cd\u5f00 Pi \u5bf9\u8bdd\u4e0d\u4f1a\u6062\u590d\u65e7\u6d3b\u52a8 MCP \u8fde\u63a5\u3002", + "+", + "+Report task success/failure/unknown, original IDs and evidence, assistance or", + "+recovery, owned-window closure and host cleanup separately. Disabling/removing", + "+the connector releases the Host connection only; it does not shut down or", + "+uninstall the external Runtime or delete its data. Finish cleanup first; stop", + "+the independent daemon deliberately afterward if desired. Do not delete", + "+browser profiles, cookies, history, sessions or retained extension data.", + "+", + "+\u5206\u522b\u62a5\u544a\u4efb\u52a1\u6210\u529f\uff0f\u5931\u8d25\uff0f\u672a\u77e5\u3001\u539f ID \u4e0e\u8bc1\u636e\u3001\u534f\u52a9\uff0f\u6062\u590d\u3001\u81ea\u6709\u7a97\u53e3\u5173\u95ed\u53ca\u5bbf\u4e3b\u6e05\u7406\u3002\u7981\u7528\uff0f\u79fb\u9664\u8fde\u63a5\u5668\u53ea\u91ca\u653e Host \u8fde\u63a5\uff0c\u4e0d\u505c\u6b62\uff0f\u5378\u8f7d\u5916\u90e8 Runtime\uff0c\u4e5f\u4e0d\u5220\u9664\u5b83\u7684\u6570\u636e\u3002\u5148\u5b8c\u6210\u6e05\u7406\uff0c\u5982\u9700\u505c\u7528\u72ec\u7acb daemon \u518d\u660e\u786e\u5173\u95ed\u3002\u4e0d\u8981\u5220\u9664\u6d4f\u89c8\u5668 profile\u3001cookie\u3001\u5386\u53f2\u3001\u4f1a\u8bdd\u6216\u4fdd\u7559\u7684\u6269\u5c55\u6570\u636e\u3002", + "+", + "+## Evidence boundary / \u8bc1\u636e\u8fb9\u754c", + "+", + "+Connector 0.0.7 updates installation/recovery guidance and metadata; Runtime", + "+fixes are delivered separately. Existing 0.0.3/0.0.4/0.0.5/0.0.6 connection settings", + "+need no migration, and permissions/input gates do not change.", + "+[Controlled installed Pi evidence](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+belongs to connector 0.0.4/Runtime 0.1.6; it does not validate the", + "+0.0.7/0.1.10 combination. Read the separate [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+for its exact scope of packaging/protocol checks. Publication, author checks,", + "+installed GUI execution and independent approval are separate results; these", + "+records do not establish unattended accuracy or performance.", + "+", + "+\u8fde\u63a5\u5668 0.0.7 \u66f4\u65b0\u5b89\u88c5\uff0f\u6062\u590d\u6307\u5f15\u4e0e\u5143\u6570\u636e\uff0cRuntime \u4fee\u590d\u5355\u72ec\u4ea4\u4ed8\uff1b\u65e2\u6709 0.0.3\uff0f0.0.4\uff0f0.0.5\uff0f0.0.6 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u6743\u9650\uff0f\u8f93\u5165\u95e8\u7981\u4e0d\u53d8\u3002[\u53d7\u63a7\u5b89\u88c5\u6001 Pi \u8bc1\u636e](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)\u5c5e\u4e8e\u8fde\u63a5\u5668 0.0.4\uff0fRuntime 0.1.6\uff0c\u4e0d\u9a8c\u8bc1 0.0.7\uff0f0.1.10 \u7ec4\u5408\u3002\u6253\u5305\uff0f\u534f\u8bae\u68c0\u67e5\u7684\u786e\u5207\u8303\u56f4\u89c1\u5355\u72ec\u7684 [0.0.5 \u5386\u53f2\u4f5c\u8005\u9a8c\u8bc1\u8bb0\u5f55](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)\u3002\u4f5c\u8005\u53d1\u5e03\u3001\u4f5c\u8005\u68c0\u67e5\u3001\u5b89\u88c5\u6001 GUI \u6267\u884c\u53ca\u72ec\u7acb\u6279\u51c6\u5206\u522b\u8bb0\u5f55\uff1b\u8fd9\u4e9b\u8bb0\u5f55\u4e0d\u8bc1\u660e\u65e0\u4eba\u51c6\u786e\u7387\u6216\u6027\u80fd\u3002" + ] + }, + { + "after": "8d0ee375be35650ec5b2b30fc20bd91f30016c3f38f68d1662ecd2040efc60c0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/METADATA", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,249 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.7", + "+Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.md", + "+Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "+Requires-Python: <3.13,>=3.12", + "+Description-Content-Type: text/markdown", + "+License-File: LICENSE", + "+Dynamic: license-file", + "+", + "+# Amadeus Windows GUI Runtime Connector 0.0.7", + "+", + "+[\u7b80\u4f53\u4e2d\u6587](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "+", + "+This author-published connector connects Pi to a **separately installed and", + "+operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "+contains a connection declaration and execution Skill, not the Runtime. Use", + "+this guide to install and connect it; publication and independent store", + "+approval are separate results.", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.7 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.7)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.7-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/amadeus_agent_gui_runtime-0.0.7-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.7.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/extension-source-0.0.7.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/preflight.json)", + "+- [Recommended Runtime 0.1.10 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.10/AgentGUIRuntimeExecution-Setup.exe)", + "+ and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.10)", + "+", + "+Install the Runtime yourself on the Windows computer running Amadeus, then", + "+import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/README.md#quick-start).", + "+The connector and Runtime have independent version numbers and release tags;", + "+connector 0.0.7 does not update Runtime 0.1.10.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.10 + connector 0.0.7 | Recommended Runtime and this connector. Inspect the actual running service and the scope of its validation evidence before input; a version pair alone does not prove installed GUI execution. |", + "+| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It does not validate the 0.0.7/0.1.10 combination. |", + "+| Minimum protocol contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply field-review/continue. This protocol floor does not qualify every later Runtime, including all future 0.1.x releases. |", + "+| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "+| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "+| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "+", + "+The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "+Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+are separate from the [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+and independent store review. Do not treat a release number or preflight success", + "+as proof of desktop execution.", + "+", + "+## What runs where", + "+", + "+| Component | Responsibility |", + "+| --- | --- |", + "+| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "+| Connector 0.0.7 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "+| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "+", + "+The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "+Python 3.12, retains supported Python 3.11 environments and requires **no local", + "+GPU or model-weight download**. Optional local-model setup has its separate", + "+Python 3.11 contract and is outside this connector's supported route. A shared", + "+Python minor version does not mean sharing a virtual environment; each", + "+component keeps its locked dependencies.", + "+", + "+## Start the local Runtime", + "+", + "+Install the Runtime first. Install `uv` if setup requests it. Copy", + "+`configs/vision-api-openai-luna.example.json` and", + "+`configs/decision-profile.visual-execution.example.json` to private profile", + "+files, then configure endpoints, models and task conditions according to the", + "+Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "+Screenshots and task information used for recognition/review are sent to the", + "+selected model services. Those services may charge for calls; this wheel", + "+includes no model service or API credit. Set each profile's `api_key_env` only", + "+in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "+put a provider key in connector settings.", + "+", + "+Generate and privately store a strong random URL-safe **local connection", + "+token** of 32\u2013256 characters (for example, using `secrets.token_urlsafe(32)` in", + "+your trusted Python environment). It is distinct from every model-provider API", + "+key. Prompt for secrets without echoing them, then start the service in a", + "+dedicated console:", + "+", + "+```powershell", + "+$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "+$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "+$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "+$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "+$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "+$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "+Set-Location -LiteralPath $RuntimeRoot", + "+& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "+& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "+ --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "+ --api-profile $VisionProfile --decision-profile $DecisionProfile", + "+```", + "+", + "+Run setup once; it may download locked dependencies. Its generated standalone", + "+stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "+to retain an existing supported API environment. An explicit different minor", + "+version requires a separate environment rather than an in-place replacement.", + "+Keep this console open while Amadeus uses the service.", + "+", + "+Input is disabled by default. For an explicitly authorized desktop task, append", + "+the existing `--allow-local-input` option to the final startup command. **This", + "+option also turns automatic risk interception off.** A token authenticates the", + "+connection; it does not authorize arbitrary clicks, submissions, payments or", + "+unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "+rejects browser Origin headers before MCP processing. Do not expose it through", + "+a public bind, tunnel or reverse proxy.", + "+", + "+## Install and connect", + "+", + "+1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "+ check its actual installed version against the recorded baseline above.", + "+2. Download and install the **0.0.7 wheel** in Settings \u2192 Extensions. Inspect its", + "+ identity and disclosure; installation starts disabled.", + "+3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "+ Use only your trusted local Runtime. Set secret `connection_token` to the", + "+ same local token supplied to the Runtime console, not a model API key.", + "+4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "+ and open a new Work session. Saved configuration does not prove it is loaded.", + "+5. Inspect the MCP initialization version and discovered tools, then read", + "+ `instant_status` before requesting input. Required tools are `instant_start`,", + "+ `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "+ `instant_stop`; their schemas must support the task-plan, original-command", + "+ status and review/continue operations described in the packaged Skill.", + "+ Check actual returned review recipes when that state occurs. This is a", + "+ manual check, not automatic compatibility certification.", + "+", + "+The connector cannot start, install, upgrade or reconfigure the external", + "+Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "+configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "+", + "+## A small reproducible task", + "+", + "+Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "+yourself. Before connecting Pi, manually prepare two empty folders in a new", + "+temporary root, for example:", + "+", + "+```powershell", + "+$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "+New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "+$FixtureRoot", + "+```", + "+", + "+Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "+actual path, and tell Pi to select that observed window. The prepared window is", + "+operator-owned; selecting it does not make it task-owned. Authorize only this", + "+task, with local input explicitly enabled:", + "+", + "+> In the prepared 7-Zip window at ``, use folder navigation", + "+> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "+> displayed path is `\\Documents\\Receipts`. Do not create,", + "+> rename, delete, edit, compress or extract anything, enter credentials, open", + "+> another location or close the operator-prepared window. Stop and report any", + "+> uncertain input or review without a valid ticket. After the task, settle the", + "+> original receipts and verify Runtime host cleanup.", + "+", + "+Acceptance requires four successful original navigation steps, bound image", + "+evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "+Report any Main review or assistance. Do not count launch acknowledgements,", + "+pending receipts or an uninspected screenshot as success. No external data write", + "+is authorized; the fixture is created manually beforehand. It is a", + "+navigation example, not compression/extraction or a performance benchmark.", + "+", + "+## Task, review and cleanup", + "+", + "+Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "+and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "+Keep one MCP connection and one input owner for the whole Work. Pending,", + "+unknown or interrupted input keeps its original request/run/command IDs; never", + "+replay it with a new ID to extend a wait.", + "+", + "+At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "+status request, inspect that status request's bound **before** image, then copy", + "+the returned review recipe and use its separately returned continue recipe.", + "+Review itself does not click. Continuation retains the original job/candidate", + "+and must pass a fresh target-region check and existing input gates before one", + "+dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "+already-entered text; continuation does not retype. A field review does not", + "+approve a candidate or prove a later submission succeeded. Without a genuine", + "+resumable ticket, or with stale evidence, stop and report the original state.", + "+", + "+Historical Pi evidence used a natively resized complete bound frame, not", + "+byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "+tests establish their stated recovery scope, not unattended accuracy, speed or", + "+new-combination acceptance.", + "+", + "+Close only task-launched windows using their returned identities, and verify", + "+`window_closed`; retain an operator-prepared window as in the example above.", + "+Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "+`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "+can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "+the connector changes its Host-side connection configuration; backend changes", + "+follow the Host's restart requirements. It does not stop or uninstall the external", + "+Runtime or delete its data. Finish cleanup before disabling/removing;", + "+stop the independent service deliberately afterward if desired.", + "+", + "+## Troubleshooting and recovery", + "+", + "+| Symptom | What to check and do |", + "+| --- | --- |", + "+| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "+| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "+| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "+| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "+| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "+| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "+| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "+", + "+After Pi disconnects or reports an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` remain **operator-only**;", + "+Pi must not call them to take over the old session or continue its workflow.", + "+This restriction does not remove Main's bound-image review/continue path in", + "+the original live session: that path retains the original job and existing", + "+input gates. For settlement diagnostics and migration from Runtime 0.1.8, see", + "+the [Runtime settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md).", + "+Runtime 0.1.10 extends `task_plan` input-settlement validation to proven rejected", + "+control requests and successful `observe` requests. A rejection must have its", + "+original durable before-dispatch proof; an error string alone does not prove", + "+zero input. Successful observation must bind the original capture and ledger", + "+evidence. `recover` and `resume_pre_dispatch` settlement remain unqualified;", + "+this release does not claim support for them. Follow the guide to verify", + "+retained evidence through the maintained settlement entry point.", + "+Keep original evidence; an unknown settlement is not proof that no input ran.", + "+", + "+## Version changes and installation scope", + "+", + "+0.0.7 updates package metadata and bilingual installation/recovery guidance,", + "+and recommends Runtime 0.1.10. Runtime fixes are delivered separately; this wheel", + "+does not change connection configuration, permissions or input execution.", + "+Existing 0.0.3/0.0.4/0.0.5/0.0.6 `runtime_url` and `connection_token` settings need no", + "+migration. The historical 0.0.2 stdio launcher and earlier release artifacts", + "+remain intact.", + "+When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "+local-input settings at the independent service; explicitly fill the two", + "+connector settings. Never reinterpret an old provider key as a connection token.", + "+", + "+Author publication, wheel/preflight checks, protocol checks, installed GUI", + "+execution and independent catalog approval are separate results. Read the exact", + "+scope and version of each linked result. Installing this connector does not", + "+establish acceptance of a particular Runtime/Amadeus combination.", + "+", + "+The connector code is ISC. Runtime and third-party licensing remain separate.", + "+The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "+payload." + ] + }, + { + "after": "1d5f5c432b38fccb5b12f56de2b1eeec90875d79f95ca21ccc75db9ffec5e7a6", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/RECORD", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=lmUqYfWFsOVCVdRf5Vx4v52jr8ZWLD6xbkC-bxD89Dk,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=U07P9Y5CEk38_foUsHjsqMXkfUuM9vYNZP_gz3URAyU,2689", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=AdpPmfXuoKpqz8h4Zc_JDl6Fz8Oob2odX0f_hzQaCuk,9987", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=KcOCqZkIeQqPc3Xw4EH07Zb5n1WYzJMXBmtcuMh08Ws,23092", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/METADATA,sha256=jQ7jdb41ZQ7FsrMPwgvZHzABbD849o0WYuzSBA78YMA,18786", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.7.dist-info/RECORD,," + ] + }, + { + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/WHEEL", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,5 @@", + "+Wheel-Version: 1.0", + "+Generator: setuptools (83.0.0)", + "+Root-Is-Purelib: true", + "+Tag: py3-none-any", + "+" + ] + }, + { + "after": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/entry_points.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,2 @@", + "+[amadeus.extensions]", + "+io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "after": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/licenses/LICENSE", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,15 @@", + "+ISC License", + "+", + "+Copyright (c) 2026 Desolate-Jix", + "+", + "+Permission to use, copy, modify, and/or distribute this software for any", + "+purpose with or without fee is hereby granted, provided that the above", + "+copyright notice and this permission notice appear in all copies.", + "+", + "+THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "after": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/top_level.txt", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1 @@", + "+amadeus_agent_gui" + ] + } + ], + "next_step": "Attach this report to the submission PR; ownership, rights, runtime and independent review remain required.", + "not_checked": [ + "runtime", + "native_theme", + "remote_services", + "catalog_review" + ], + "ok": true, + "review_status": "not_reviewed" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/wheel-inventory.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/wheel-inventory.json new file mode 100644 index 0000000..af9f76d --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.7/wheel-inventory.json @@ -0,0 +1,52 @@ +[ + { + "path": "amadeus_agent_gui/__init__.py", + "bytes": 106, + "sha256": "96652a61f585b0e54255d45fe55c78bf9da3afc6562c3eb16e40be6f10fcf439" + }, + { + "path": "amadeus_agent_gui/amadeus-extension.json", + "bytes": 2689, + "sha256": "534ecff58e42124dfcfdfa14b078eca8c5e47d4b8cf6f60d64ffe0cf75110325" + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "bytes": 9987, + "sha256": "01da4f99f5eea0aa6acfc87865cfc90e5e85cfc3a86f6a1d5f47ff87341a0ae9" + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "bytes": 23092, + "sha256": "29c382a99908790a8f7375f0e041f4ed96f99f5598cc9317066b5cb8c874f16b" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/licenses/LICENSE", + "bytes": 743, + "sha256": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/METADATA", + "bytes": 18786, + "sha256": "8d0ee375be35650ec5b2b30fc20bd91f30016c3f38f68d1662ecd2040efc60c0" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/WHEEL", + "bytes": 91, + "sha256": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/entry_points.txt", + "bytes": 76, + "sha256": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/top_level.txt", + "bytes": 18, + "sha256": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/RECORD", + "bytes": 1002, + "sha256": "1d5f5c432b38fccb5b12f56de2b1eeec90875d79f95ca21ccc75db9ffec5e7a6" + } +] diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/AUTHOR_VALIDATION.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/AUTHOR_VALIDATION.json new file mode 100644 index 0000000..fa219a1 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/AUTHOR_VALIDATION.json @@ -0,0 +1,235 @@ +{ + "schema": "amadeus.connector.author_validation.v1", + "source_commit": "323099100b04beeb6ee67a846f0e530998c19bbc", + "connector_version": "0.0.8", + "recommended_runtime": "0.1.11", + "passed": true, + "passed_scope": "The bounded author checks listed here only; independent catalog approval remains not_reviewed.", + "artifacts": [ + { + "name": "amadeus_agent_gui_runtime-0.0.8-py3-none-any.whl", + "bytes": 27990, + "sha256": "2f532faf152faf2e1e3ab3140e1097487689be34d638e4ee86539e06886cbcaf" + }, + { + "name": "extension-source-0.0.8.zip", + "bytes": 52657, + "sha256": "b54afe548dae17c04600f48553b9e27033db4a370f6963ad2ea518b585cff3b4" + } + ], + "baseline_007": { + "wheel_sha256": "43e5a22e9a289ee7ad9852f66128096e1f361449a54dbb619038e870b5b852b7", + "source_zip_sha256": "ef3bd6fd3dacbaaceb4f3c79e6e68b3030c60bc9e86b99ade011c882d20d3ae9" + }, + "build_anchor_commit": "db9dc10dacf3534949cd59e3e83804232fb227dd", + "frozen_source_inventory_matches_final_commit": true, + "pinned_static_preflight": { + "catalog_commit": "3c739e1a5c177d585db3ed63868725dae5cadc32", + "host_commit": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "requirements_sha256": "eca122787362dc7d39b309b931c5e17ce7fb0507f79524589f2978bb018c17e7", + "environment": { + "platform": "win32", + "python": "3.12.10" + }, + "checks": { + "catalog_policy": "passed", + "human_and_runtime_review": "pending", + "package_format": "passed", + "target_host": "passed" + }, + "review_status": "not_reviewed" + }, + "original_public_static_reports": { + "preflight.json": { + "name": "preflight.json", + "bytes": 73402, + "sha256": "05e7cd531189c25cb98bdaf7d9c95e8604bc6755d219aa0e030494b9c3bf98f8" + }, + "wheel-inventory.json": { + "name": "wheel-inventory.json", + "bytes": 1740, + "sha256": "86a9f1dbf6b1429b0e32abcdda538f43822771297c5945ec07b3f6225d9b395e" + }, + "candidate-diff-from-0.0.7.json": { + "name": "candidate-diff-from-0.0.7.json", + "bytes": 79619, + "sha256": "db3e1465a15d97aaa84311d7f5b471fec7b8d1c9d45527ba943ad8df416768a6" + } + }, + "static_report_provenance": "The already sanitized public fixed-checker reports are copied byte for byte, with their original inventory list shape. They bind the wheel SHA-256 and are not represented as checks rerun at the final source commit.", + "source_regressions": [ + { + "scope_id": "source_lifecycle", + "scope": "HTTP lifecycle, initialization/DELETE, attachment, MCP, epoch/admission, startup and cleanup gates; source tests, not installed GUI execution.", + "passed": true, + "tests": 215, + "failures": 0, + "errors": 0, + "skipped": 0, + "original_junit": { + "name": "lifecycle-final.xml", + "bytes": 29697, + "sha256": "f7ce9bb53074e3f876e7b16cda7aec1baf02b6255f9217230afeab0083ab3849" + }, + "test_modules": [ + "tests.test_instant_agent_startup", + "tests.test_instant_attachment_transport", + "tests.test_instant_epoch_recovery", + "tests.test_instant_mcp", + "tests.test_instant_mcp_http", + "tests.test_instant_mcp_http_initial_lifecycle", + "tests.test_instant_start_cleanup_rejection", + "tests.test_session_epoch_admission" + ], + "combined_with_other_counts": false + }, + { + "scope_id": "source_package_and_settlement", + "scope": "Execution packaging, updater/settlement, original task-plan observation and rejection settlement; overlaps are not added to other scopes.", + "passed": true, + "tests": 139, + "failures": 0, + "errors": 0, + "skipped": 0, + "original_junit": { + "name": "package-settlement-regression.xml", + "bytes": 21825, + "sha256": "92fdd65045a7bff2b02ce47642a3d82041e518633596a1e188b86e3ea9866ac1" + }, + "test_modules": [ + "tests.test_execution_component", + "tests.test_runtime_update_cli", + "tests.test_runtime_update_schedule", + "tests.test_session_input_task_plan", + "tests.test_session_input_task_plan_observation", + "tests.test_task_plan_control_rejection_terminal" + ], + "combined_with_other_counts": false + }, + { + "scope_id": "independent_source_counterexamples", + "scope": "Independent bounded source counterexamples for never-started proof and conservative release gates; not another installed GUI run.", + "passed": true, + "tests": 4, + "failures": 0, + "errors": 0, + "skipped": 0, + "original_junit": { + "name": "independent-counterexamples.xml", + "bytes": 886, + "sha256": "c94604e4f448ba82bc66593612c66a11e02302cc87c237c981b02747e51aa208" + }, + "test_modules": [ + "test_independent_cold_counterexamples" + ], + "combined_with_other_counts": false + } + ], + "regression_count_policy": "215, 139 and 4 are separately scoped original JUnit results; no combined unique-test total is reported.", + "root_runtime_public_acceptance": { + "name": "PUBLIC_HTTP_OWNER_RELEASE_ACCEPTANCE.json", + "bytes": 9280, + "sha256": "a4007f761ea9865c628373b97467cdf176729c8a056f9e77ae34731883653a3b", + "passed": true, + "version": "0.1.11", + "scope": "Root public HTTP owner-release acceptance; its original report remains separate evidence." + }, + "installed_http_acceptance": { + "name": "PUBLIC_INSTALLED_HTTP_LIFECYCLE_ACCEPTANCE.json", + "bytes": 3185, + "sha256": "957ead096957456ed9342c54f1f8bd2292dd937a761d4f1ee71e9504ac68da19", + "source_commit_reference": "323099100b04beeb6ee67a846f0e530998c19bbc", + "original_report_modified": false, + "source_association_note": "The CLI source reference and verified frozen package source associate this release with the unmodified installed report; an absent source_commit in that original schema is not backfilled.", + "result": { + "schema": "installed_http_lifecycle_acceptance.v1", + "version": "0.1.11", + "passed": true, + "raw_tcp_rounds": 2, + "raw_delete_statuses": [ + 200, + 200 + ], + "sdk_auto_negotiation_rounds": 2, + "sdk_automatic_delete_statuses": [ + 200, + 200 + ], + "cleanup_verified_remained_false": true, + "exact_never_started_producer_proof": true, + "lease_held_after_http_deletes": true, + "lease_released_at_server_shutdown": true, + "all_owned_file_hashes_equal_before_after": true, + "native_temporary_check_install_and_uninstall": true, + "temporary_owned_root_removed": true, + "installed_app_namespace_only": true, + "start_calls": 0, + "execution_host_launch_calls": 0, + "input_submit_calls": 0, + "desktop_actions": 0, + "model_api_calls": 0, + "installer_sha256": "1afaed72ce84f1c59965f6b915e9ffd8a32b8eaa1a6c9d6720eee8d1f71de56a", + "payload_files_verified_before_and_after": 704, + "runtime_python": "3.12.10", + "runtime_mcp": "2.1.1", + "runtime_httpx": "0.28.1", + "host_python": "3.12.14", + "host_mcp": "2.2.0", + "host_httpx2": "2.12.0", + "source_commit": "323099100b04beeb6ee67a846f0e530998c19bbc", + "source_commit_provenance": "root_supplied_after_frozen_source_verification", + "frozen_source_inputs_match_payload": true, + "frozen_source_input_files_verified": 702, + "measurement_report_sha256": "061ae84f2dcb63b83a1f157170eca784dcad6384cd2f9a239dff00681fedbab1", + "raw_stop_before_second_delete": true, + "distinct_owner_per_connection": true, + "negotiated_protocol": "2025-11-25", + "sdk_client_harness_processes": 1, + "data_root_written": false, + "shutdown_close_calls": 1, + "strict_minimal_child_environments": true, + "inherited_provider_credentials": false, + "temporary_token_persisted_or_printed": false, + "network_connections_loopback_only": true, + "daily_installation_changed": false, + "daily_host_configuration_changed": false, + "dependencies_installed": false, + "partial_attempts": [ + { + "classification": "external_acceptance_harness_error", + "reason": "Windows subprocess audit executable=None caused the harness Path conversion TypeError before SDK launch.", + "raw_tcp_rounds_passed": 2, + "raw_delete_statuses": [ + 200, + 200 + ], + "sdk_client_started": false, + "runtime_failure_observed": false, + "native_check_uninstall_passed": true, + "owned_root_removed": true, + "original_runtime_stderr_sha256": "3e69d9c2e801922067ffc16ff04f4eb59d915aade220f90b7e0b5dad563a34cf", + "original_orchestrator_error_sha256": "186fb4c42ebd6d6e285821b67888364df9f0c91caed52654f591a41622828eb2", + "cleanup_result_sha256": "be80bf230066e01ce1436ad5898239507f33a8d1c1b5413a47414a8b9250f910", + "native_uninstall_log_sha256": "4eefc99e3d73f9a6e7e1556e4014e552a3d6a111447c36d63eea51b4736b1d2a" + } + ] + }, + "scope": "Native temporary-check install/uninstall plus real installed HTTP and Host SDK lifecycle. No execution host, desktop action or model API; this is not Amadeus/Pi GUI acceptance." + }, + "boundaries": { + "minimum_http_protocol": "0.1.6", + "minimum_is_not_a_future_patch_compatibility_range": true, + "manifest_config_permissions_contributes_runtime_engines_unchanged_from_007": true, + "disconnected_session_recovery": "operator-only", + "same_live_session_main_review_continue": "retained under existing contracts", + "new_amadeus_pi_gui_acceptance_claimed": false, + "old_gui_author_results_recounted": false, + "model_policy_thresholds_or_input_authorization_changed": false + }, + "review_status": "not_reviewed", + "publication": { + "status": "not_performed_at_validation_freeze", + "delivery_verification": "Actual upload, release-tag/source identity and anonymous downloaded-asset hash checks belong to a separate delivery receipt." + }, + "privacy": "Only explicit public field allowlists, artifact identities and scoped counts are exported; no raw logs, local report paths, tokens or private live payloads are copied." +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/README.md b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/README.md new file mode 100644 index 0000000..ad4936b --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/README.md @@ -0,0 +1,71 @@ +# Author revision — Connector 0.0.8 / 未启动 owner 释放修复 + +This candidate addresses only the proven never-started HTTP-owner release fix +in Runtime 0.1.11. An initialized owner with cleanup_verified=false can release +only with original lifecycle proof of no start attempt, attached resources or +pending work. Initial-looking status alone is insufficient; started, active, +unknown and unclean owners retain the existing cleanup gates. The normal +cleanup_verified=true path remains. No model, threshold or input authority is +changed. + +Final release source reference: `323099100b04beeb6ee67a846f0e530998c19bbc`. Original wheel build anchor: +`db9dc10dacf3534949cd59e3e83804232fb227dd`. The frozen package inventory is checked against the final +commit, allowing only documented CRLF/LF normalization. A later commit is not +represented as the wheel's original build HEAD. + +- Wheel: `amadeus_agent_gui_runtime-0.0.8-py3-none-any.whl`, 27,990 bytes, SHA-256 `2f532faf152faf2e1e3ab3140e1097487689be34d638e4ee86539e06886cbcaf`. +- Source ZIP: `extension-source-0.0.8.zip`, 52,657 bytes, SHA-256 `b54afe548dae17c04600f48553b9e27033db4a370f6963ad2ea518b585cff3b4`. +- Comparison baseline: final published 0.0.7 wheel `43e5a22e9a289ee7ad9852f66128096e1f361449a54dbb619038e870b5b852b7` and + source ZIP `ef3bd6fd3dacbaaceb4f3c79e6e68b3030c60bc9e86b99ade011c882d20d3ae9`; 0.0.5/0.0.6/0.0.7 history is retained separately. + +Two offline wheel builds matched byte for byte. RECORD, metadata, source ZIP +and packaged resources matched. Fixed catalog `3c739e1a5c177d585db3ed63868725dae5cadc32`, Host `1840c8e4f646992ddaebea3139c8895f29743a8f` and +lock `eca122787362dc7d39b309b931c5e17ce7fb0507f79524589f2978bb018c17e7` checks retain `review_status=not_reviewed`; human/runtime review +in that static checker remains pending. The 215 source lifecycle checks, 139 +package/settlement checks and four independent source counterexamples each +passed within their own scope; they are not added into a unique-test total. + +The exact installed report `PUBLIC_INSTALLED_HTTP_LIFECYCLE_ACCEPTANCE.json` passed two raw TCP +HTTP rounds and two real Host SDK auto-negotiation/automatic DELETE rounds, +all DELETEs returning 200 while cleanup_verified remained false with original +never-started proof. Native temporary-check install/uninstall, retained +installation lease until server shutdown and owned-file hash equality passed. +It launched no execution host, performed no desktop input and called no model +API. This is installed HTTP/SDK lifecycle evidence, not new Amadeus/Pi GUI +execution. Old GUI author results are not rerun or recounted here. + +The first external harness attempt is retained separately: its two raw TCP +rounds passed, then a Windows subprocess-audit Path conversion TypeError +occurred before SDK launch. Native temporary-check cleanup/uninstall succeeded; +the four original diagnostic/cleanup hashes remain in AUTHOR_VALIDATION.json. +The second complete attempt supplies the two raw TCP and two SDK rounds above. +This is not an error-free first-attempt claim, and partial rounds are not added +to the final complete-attempt count. + +Connector settings, permissions, contributions, runtime kind and Host engines +remain unchanged from 0.0.7. Runtime and connector are installed and managed +separately. Recommend Runtime 0.1.11; minimum HTTP protocol 0.1.6 is not a promise +of compatibility with future patches. Disconnected recovery stays operator-only; +Pi must not use recovery tools to take over an old workflow. Same-session Main +bound-image review and explicit continuation retain existing gates. + +Publication was not performed at validation freeze. Actual uploads, tag/source +identity and anonymous downloaded-asset hash verification are recorded in a +separate delivery receipt. Independent final review and catalog approval remain +the maintainers' responsibility. No new speed, token-saving or accuracy claim +is made. The already sanitized public fixed-checker reports are copied byte for +byte, retaining the original wheel-inventory list shape. They remain the original +fixed-check results bound to the wheel SHA-256 and are not represented as checks +rerun at the final source commit. Final source binding belongs to +BUILD_VERIFICATION.json, AUTHOR_VALIDATION.json and this README; the author +report records the exact original static-report hashes. + +本次仅返修未启动 HTTP owner 的释放。215、139、4 项分别为原始限定范围的源码 +结果,不相加;真实安装态 HTTP/Host SDK 生命周期、临时检查安装/卸载及载荷 +摘要核对另列,不冒充新的 Pi GUI 验收,旧 GUI 作者结果不重算。连接器配置、权限、 +贡献与模型/输入门禁不变,最低协议不是未来补丁的通用兼容承诺;断线恢复仍仅限 +操作员。公开材料冻结时尚未发布,实际上传/匿名下载摘要另记 receipt,商店独立 +批准仍为 `not_reviewed`。 +首轮外部 harness 在 raw TCP 两轮通过后、SDK 启动前出现 Windows 审计 TypeError, +原部分结果及成功清理、四份原诊断/清理摘要继续保留;第二轮才是完整 raw2+SDK2, +不宣称无错首跑,不把部分轮次加进最终完整轮次。 diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/candidate-diff-from-0.0.7.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/candidate-diff-from-0.0.7.json new file mode 100644 index 0000000..c780e4a --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/candidate-diff-from-0.0.7.json @@ -0,0 +1,928 @@ +{ + "changes": [ + { + "path": "amadeus_agent_gui/__init__.py", + "status": "modified", + "before": "96652a61f585b0e54255d45fe55c78bf9da3afc6562c3eb16e40be6f10fcf439", + "after": "a01f47402fe71df66143269c3b2bb20465f62f5b84d1876b40463823f7a09505", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,3 +1,3 @@", + " \"\"\"Amadeus resource extension: native HTTP MCP declaration and execution Skill.\"\"\"", + " ", + "-__version__ = \"0.0.7\"", + "+__version__ = \"0.0.8\"" + ] + }, + { + "path": "amadeus_agent_gui/amadeus-extension.json", + "status": "modified", + "before": "534ecff58e42124dfcfdfa14b078eca8c5e47d4b8cf6f60d64ffe0cf75110325", + "after": "bb658feed2f8ae71cc156d92ff3842bd5e4404d129879ed7bde8d11c12635cea", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,16 +1,16 @@", + " {", + " \"schema\": \"amadeus.extension/v0\",", + " \"id\": \"io.github.desolate-jix.gui-runtime\",", + "- \"version\": \"0.0.7\",", + "+ \"version\": \"0.0.8\",", + " \"display_name\": {", + " \"en\": \"Windows GUI Runtime Connector\",", + " \"zh-CN\": \"Windows GUI Runtime 连接器\"", + " },", + " \"description\": {", + "- \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.10; 0.1.6 marks the minimum HTTP protocol, not a compatibility range. Check the actual version, authenticated HTTP MCP and review/continue tools. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "- \"zh-CN\": \"连接器:需自行单独安装、配置并启动 Windows GUI Runtime。建议使用 0.1.10;0.1.6 表示最低 HTTP 协议起点,不保证所有后续版本兼容。须核对实际版本、鉴权 HTTP MCP 及审核/继续工具。填写可信本机 runtime_url 和 connection_token,将 MCP 与 Skill 绑定 Pi。Runtime 由用户独立部署和停止;停用/卸载本连接器不会停止、卸载 Runtime 或删除其数据。外部模型 API 可能按用量收费。\"", + "+ \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.11; 0.1.6 marks the minimum HTTP protocol, not a compatibility range. Check the actual version, authenticated HTTP MCP and review/continue tools. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "+ \"zh-CN\": \"连接器:需自行单独安装、配置并启动 Windows GUI Runtime。建议使用 0.1.11;0.1.6 表示最低 HTTP 协议起点,不保证所有后续版本兼容。须核对实际版本、鉴权 HTTP MCP 及审核/继续工具。填写可信本机 runtime_url 和 connection_token,将 MCP 与 Skill 绑定 Pi。Runtime 由用户独立部署和停止;停用/卸载本连接器不会停止、卸载 Runtime 或删除其数据。外部模型 API 可能按用量收费。\"", + " },", + "- \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/README.md\",", + " \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + " \"author\": {", + " \"name\": \"Desolate-Jix\"" + ] + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "modified", + "before": "01da4f99f5eea0aa6acfc87865cfc90e5e85cfc3a86f6a1d5f47ff87341a0ae9", + "after": "f0fe12822f7f795fa0e199b69b32ce200896d3488e43ed6a247f88852b6037fa", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -8,18 +8,28 @@", + " Read `references/runtime.md` before using the connected Runtime. Discover its", + " actual tools and schemas; Pi names may be namespaced or hashed, so never invent", + " a tool name. This Skill supplies no tools, authority, executor, learning mode or", + "-shell route. Connector 0.0.7 supplies installation and execution guidance;", + "+shell route. Connector 0.0.8 supplies installation and execution guidance;", + " publication, independent store approval and installed GUI execution are separate", + " results. Historical 0.0.4/0.1.6 controlled Pi evidence is a separate result.", + " ", + " Use only the existing external API route. Recommend separately installed", + "-Runtime 0.1.10; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + "+Runtime 0.1.11; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + " service must supply field review/continue. Runtime 0.1.5 has no HTTP entry point.", + " Runtime 0.1.7 current-Agent mode is not qualified through Amadeus here. Manually", + " check MCP initialization version, actual tools/schemas, authentication and", + " review/cleanup capabilities; neither a version number nor a later release", + " establishes compatibility. The 0.1.6 protocol floor does not qualify all later", + " 0.1.x versions. No automatic compatibility detector is provided.", + "+", + "+Runtime 0.1.11 also fixes release of an initialized HTTP owner before any", + "+Runtime start attempt. DELETE can accept `cleanup_verified=false` only when the", + "+server's lifecycle evidence proves no start attempt, attached resources or", + "+pending work. Initial phase or `host_alive=false` alone is insufficient. Any", + "+attempted/failed start, active or unknown work, or unverified cleanup must follow", + "+the existing cleanup gate; the `cleanup_verified=true` path is unchanged. This", + "+exception releases an unused transport owner, not a task or recovery workflow.", + "+Do not start/stop a host or invoke recovery merely to make an unused owner", + "+releasable.", + " ", + " Keep one Runtime MCP connection and one input owner for the complete authorized", + " Work. The operator independently installs and starts the authenticated loopback", + "@@ -70,25 +80,27 @@", + " require original durable before-dispatch proof; error strings alone are", + " insufficient. Successful observation requires bound original capture and ledger", + " evidence. Settlement of `recover` and `resume_pre_dispatch` remains unqualified.", + "-Consult the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+Consult the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + " for retained evidence and the maintained operator entry point.", + " ", + " Disabling/removing the connector releases the Host connection only; it does", + " not stop/uninstall the independently running Runtime or delete its data. Finish", + "-cleanup before disabling/removing. Connector 0.0.7 updates guidance and metadata;", + "-Runtime fixes are delivered separately. 0.0.3/0.0.4/0.0.5/0.0.6 connection settings", + "+cleanup before disabling/removing. Connector 0.0.8 updates guidance and metadata;", + "+Runtime fixes are delivered separately. 0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 connection settings", + " need no migration and input gates and permissions do not change.", + " ", + " ## 简体中文", + " ", + "-使用连接的 Runtime 前先读 `references/runtime.md`。发现实际工具与 schema;Pi 名称可能带命名空间或哈希,不能猜工具名。本 Skill 不提供工具、授权、执行器、学习模式或 shell 路线。连接器 0.0.7 提供安装与执行指引;作者发布、独立商店批准及安装态 GUI 执行分别记录。历史 0.0.4/0.1.6 受控 Pi 证据单独记录。", + "+使用连接的 Runtime 前先读 `references/runtime.md`。发现实际工具与 schema;Pi 名称可能带命名空间或哈希,不能猜工具名。本 Skill 不提供工具、授权、执行器、学习模式或 shell 路线。连接器 0.0.8 提供安装与执行指引;作者发布、独立商店批准及安装态 GUI 执行分别记录。历史 0.0.4/0.1.6 受控 Pi 证据单独记录。", + " ", + "-仅使用原有 external API 路线。推荐独立安装的 Runtime 0.1.10;最低 0.1.6 提供 HTTP/输入前审核合同,活动服务还须提供文字结果审核/继续。Runtime 0.1.5 没有 HTTP 入口。此处没有通过 Amadeus 核验 Runtime 0.1.7 current-Agent 模式。人工核对 MCP 初始化版本、实际工具/schema、鉴权及审核/清理能力;版本号或后续发行不能证明兼容。0.1.6 的协议起点不表示所有后续 0.1.x 版本均已具备资格。本包不提供自动兼容探测器。", + "+仅使用原有 external API 路线。推荐独立安装的 Runtime 0.1.11;最低 0.1.6 提供 HTTP/输入前审核合同,活动服务还须提供文字结果审核/继续。Runtime 0.1.5 没有 HTTP 入口。此处没有通过 Amadeus 核验 Runtime 0.1.7 current-Agent 模式。人工核对 MCP 初始化版本、实际工具/schema、鉴权及审核/清理能力;版本号或后续发行不能证明兼容。0.1.6 的协议起点不表示所有后续 0.1.x 版本均已具备资格。本包不提供自动兼容探测器。", + "+", + "+Runtime 0.1.11 另修复从未尝试启动 Runtime 的已初始化 HTTP 所有者无法释放的问题。仅当服务端生命周期证据证明从未尝试 start、未附着资源且无 pending 时,DELETE 才允许 `cleanup_verified=false`;仅有初始 phase 或 `host_alive=false` 不足以放行。已尝试/失败的启动、活动或未知工作、未核验清理仍走原门禁,`cleanup_verified=true` 路线不变。这只释放未使用的传输所有者,不结算任务或恢复工作流;不要仅为释放未使用 owner 而启动/停止宿主或调用恢复。", + " ", + " 完整授权 Work 保持一个 Runtime MCP 连接和一个输入所有者。操作员独立安装并启动带鉴权的本机 daemon;连接器不会启动 Python、选择可执行路径、提供模型密钥或改 profile。本机连接密钥不是模型 API Key。截图/任务信息可能发送给已配置模型服务,服务调用可能收费。确认任务范围及 Runtime 输入授权:`--allow-local-input` 启用输入,同时关闭自动风险拦截。宿主只启动一次,等待 ready,启动/选择目标窗口,使用当前绑定观察,提交任务并检查原回执。启动或异步确认不是任务成功。已知独立字段提前合并准备,及时读取正常待定批次,不在其间插入无关搜索或文档工作。", + " ", + " 待定、未知、超时、中断输入或图像不可用时,保留原 request/run/command ID 并检查状态。可能执行过的输入不能换 ID 重放,也不能为延长等待而重交。真实 `pre_action_review_packet.v1` 或 `field_review_packet.v1` 出现时,用新外层 request ID 和 `images=none` 调用 `agent_command_status`,`command_id=packet.execution_request_id`。随后用 `instant_image` 取该状态请求绑定图像:候选看 `view=before`,已输入文字看 `view=after`。对照任务检查确切绑定证据,复制 `caller_controls.review.request`,仅添加实际 verdict/reason,再单独使用返回的 continue recipe。审核本身不输入。前置继续保留原 job/候选,派发一次前须通过新截图的目标区域核对及既有硬门禁;文字结果继续不重输,后续 submit 仍须普通门禁及核验。没有真实可续票据或候选已过期就停报。不伪造哈希、wait ID、成功或重启/重放。", + " ", + "-取消须结算到真实终态;断线不等于取消或清理。仅按返回 handle/process 身份关闭本任务启动的窗口,仅处理已授权选择的保存对话框,并核对 `window_closed`。保留原有/操作员预备窗口,除非其关闭已明确纳入任务。调用 `instant_stop`,查询至 `host_alive=false`、`pending_ids=[]`、`cleanup_verified=true` 且没有未解决清理错误,之后才释放原生 HTTP 所有者。旧所有者未结算时读取原回执和清理诊断;原连接丢失时保留证据并停止,交操作员恢复。Pi 断线或遇到 owner 冲突后,`instant_recovery_preview`、`instant_recover_session` 两个工具仅限操作员使用,Pi 不得用它们接管旧会话或工作流。原活动会话中 Main 对绑定图像审核/继续的路径仍按既有合同保留。不抢占、不反复重连/重启、不删除队列、锁或会话记录。任务结果与清理分别报告。Runtime 0.1.10 新增证据完整的拒绝 `task_plan` 控制及成功 `observe` 请求的结算;拒绝须有原始持久化派发前证明,错误字符串本身不足为据,成功观察须有绑定的原截图及账本证据。`recover`、`resume_pre_dispatch` 的结算仍未具备资格。保留证据及正式维护的操作员入口见[结算恢复指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)。", + "+取消须结算到真实终态;断线不等于取消或清理。仅按返回 handle/process 身份关闭本任务启动的窗口,仅处理已授权选择的保存对话框,并核对 `window_closed`。保留原有/操作员预备窗口,除非其关闭已明确纳入任务。调用 `instant_stop`,查询至 `host_alive=false`、`pending_ids=[]`、`cleanup_verified=true` 且没有未解决清理错误,之后才释放原生 HTTP 所有者。旧所有者未结算时读取原回执和清理诊断;原连接丢失时保留证据并停止,交操作员恢复。Pi 断线或遇到 owner 冲突后,`instant_recovery_preview`、`instant_recover_session` 两个工具仅限操作员使用,Pi 不得用它们接管旧会话或工作流。原活动会话中 Main 对绑定图像审核/继续的路径仍按既有合同保留。不抢占、不反复重连/重启、不删除队列、锁或会话记录。任务结果与清理分别报告。Runtime 0.1.10 新增证据完整的拒绝 `task_plan` 控制及成功 `observe` 请求的结算;拒绝须有原始持久化派发前证明,错误字符串本身不足为据,成功观察须有绑定的原截图及账本证据。`recover`、`resume_pre_dispatch` 的结算仍未具备资格。保留证据及正式维护的操作员入口见[结算恢复指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)。", + " ", + "-禁用/移除连接器只释放 Host 连接,不停止/卸载独立运行的 Runtime,也不删除它的数据。先完成清理再禁用/移除。连接器 0.0.7 更新指引与元数据,Runtime 修复单独交付;0.0.3/0.0.4/0.0.5/0.0.6 连接设置无需迁移,输入门禁及权限不变。", + "+禁用/移除连接器只释放 Host 连接,不停止/卸载独立运行的 Runtime,也不删除它的数据。先完成清理再禁用/移除。连接器 0.0.8 更新指引与元数据,Runtime 修复单独交付;0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 连接设置无需迁移,输入门禁及权限不变。" + ] + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "modified", + "before": "29c382a99908790a8f7375f0e041f4ed96f99f5598cc9317066b5cb8c874f16b", + "after": "aad0cfcbc53053cf4aff148f1a46e8bc621433705dba1fa96b7f20c6fc146cb6", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -13,7 +13,7 @@", + " ", + " 本资源连接器使用用户独立安装并启动、带鉴权的 Windows 本机 HTTP MCP Runtime,不会启动外部代码。本机连接密钥与模型 API Key 不同。本 Skill 仅支持原有 external API 路线;已配置模型服务会接收识别/审核截图及任务信息,可能按调用收费。输入须有明确任务授权及 Runtime opt-in;`--allow-local-input` 也会关闭自动风险拦截。不能改 profile、阈值或提示词来绕过拒绝。", + " ", + "-Recommend Runtime 0.1.10. The minimum HTTP/pre-action contract is 0.1.6;", + "+Recommend Runtime 0.1.11. The minimum HTTP/pre-action contract is 0.1.6;", + " the service must also supply field-review/continue. Runtime 0.1.5 has field", + " review but no HTTP entry point. This connector does not qualify Runtime 0.1.7", + " current-Agent mode through Amadeus. Manually inspect the MCP initialization", + "@@ -26,7 +26,21 @@", + " The 0.1.6 protocol floor does not qualify every later 0.1.x version; use", + " validation evidence for the exact Runtime/connector versions and route.", + " ", + "-推荐 Runtime 0.1.10。最低 HTTP/前置审核合同为 0.1.6,服务还须提供文字结果审核/继续。Runtime 0.1.5 有文字审核但没有 HTTP 入口。本连接器没有通过 Amadeus 核验 Runtime 0.1.7 current-Agent 模式。输入前人工检查 MCP 初始化版本、鉴权、已发现工具及活动 schema:`instant_start`、`instant_status`、`instant_run`、`instant_result`、`instant_image`、`instant_stop`,以及 task-plan/原命令状态和审核/继续支持。下文逻辑名称是 Runtime 名称,不能据此猜 Pi 带命名空间/哈希的工具名。版本号或后续发行不能证明兼容,本包没有自动兼容探测器。0.1.6 的协议起点不表示所有后续 0.1.x 版本均已具备资格;须按确切 Runtime/连接器版本及路线的验证证据判断。", + "+推荐 Runtime 0.1.11。最低 HTTP/前置审核合同为 0.1.6,服务还须提供文字结果审核/继续。Runtime 0.1.5 有文字审核但没有 HTTP 入口。本连接器没有通过 Amadeus 核验 Runtime 0.1.7 current-Agent 模式。输入前人工检查 MCP 初始化版本、鉴权、已发现工具及活动 schema:`instant_start`、`instant_status`、`instant_run`、`instant_result`、`instant_image`、`instant_stop`,以及 task-plan/原命令状态和审核/继续支持。下文逻辑名称是 Runtime 名称,不能据此猜 Pi 带命名空间/哈希的工具名。版本号或后续发行不能证明兼容,本包没有自动兼容探测器。0.1.6 的协议起点不表示所有后续 0.1.x 版本均已具备资格;须按确切 Runtime/连接器版本及路线的验证证据判断。", + "+", + "+## Never-started HTTP owner / 未启动 HTTP 所有者", + "+", + "+Runtime 0.1.11 also fixes release of an initialized HTTP owner before any", + "+Runtime start attempt. DELETE can accept `cleanup_verified=false` only when the", + "+server's lifecycle evidence proves no start attempt, attached resources or", + "+pending work. Initial phase or `host_alive=false` alone is insufficient. Any", + "+attempted/failed start, active or unknown work, or unverified cleanup must follow", + "+the existing cleanup gate; the `cleanup_verified=true` path is unchanged. This", + "+exception releases an unused transport owner, not a task or recovery workflow.", + "+Do not start/stop a host or invoke recovery merely to make an unused owner", + "+releasable.", + "+", + "+Runtime 0.1.11 另修复从未尝试启动 Runtime 的已初始化 HTTP 所有者无法释放的问题。仅当服务端生命周期证据证明从未尝试 start、未附着资源且无 pending 时,DELETE 才允许 `cleanup_verified=false`;仅有初始 phase 或 `host_alive=false` 不足以放行。已尝试/失败的启动、活动或未知工作、未核验清理仍走原门禁,`cleanup_verified=true` 路线不变。这只释放未使用的传输所有者,不结算任务或恢复工作流;不要仅为释放未使用 owner 而启动/停止宿主或调用恢复。", + " ", + " ## Start and select / 启动与选择", + " ", + "@@ -215,11 +229,11 @@", + " Successful observation needs its bound original capture and ledger evidence.", + " Settlement of `recover` and `resume_pre_dispatch` remains unqualified; no", + " support for those paths is claimed here. For retained evidence, follow the", + "-[settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+[settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + " and its maintained operator entry point. Keep original receipts and diagnostics;", + " unknown settlement does not prove that no input occurred or authorize replay.", + " ", + "-Pi 断线或遇到 owner 冲突后,`instant_recovery_preview` 和 `instant_recover_session` 两个工具均**仅限操作员使用**。Pi 不得调用任一工具接管旧会话或续跑其工作流。同一活动会话中 Main 对绑定图像审核并继续原 job 的路径仍按上文合同保留。Runtime 0.1.10 新增证据完整的拒绝 `task_plan` 控制及成功 `observe` 请求的结算;拒绝须有原始持久化派发前证明,错误字符串本身不能证明零输入,成功观察须有绑定的原截图及账本证据。`recover`、`resume_pre_dispatch` 的结算仍未具备资格,此处不声称支持。保留证据须按[结算恢复指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)及其正式维护的操作员入口处理。保留原回执和诊断;未知结算既不能证明没有执行输入,也不授权重放。", + "+Pi 断线或遇到 owner 冲突后,`instant_recovery_preview` 和 `instant_recover_session` 两个工具均**仅限操作员使用**。Pi 不得调用任一工具接管旧会话或续跑其工作流。同一活动会话中 Main 对绑定图像审核并继续原 job 的路径仍按上文合同保留。Runtime 0.1.10 新增证据完整的拒绝 `task_plan` 控制及成功 `observe` 请求的结算;拒绝须有原始持久化派发前证明,错误字符串本身不能证明零输入,成功观察须有绑定的原截图及账本证据。`recover`、`resume_pre_dispatch` 的结算仍未具备资格,此处不声称支持。保留证据须按[结算恢复指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)及其正式维护的操作员入口处理。保留原回执和诊断;未知结算既不能证明没有执行输入,也不授权重放。", + " ", + " ## Owned-window and host cleanup / 自有窗口与宿主收尾", + " ", + "@@ -263,14 +277,14 @@", + " ", + " ## Evidence boundary / 证据边界", + " ", + "-Connector 0.0.7 updates installation/recovery guidance and metadata; Runtime", + "-fixes are delivered separately. Existing 0.0.3/0.0.4/0.0.5/0.0.6 connection settings", + "+Connector 0.0.8 updates installation/recovery guidance and metadata; Runtime", + "+fixes are delivered separately. Existing 0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 connection settings", + " need no migration, and permissions/input gates do not change.", + " [Controlled installed Pi evidence](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + " belongs to connector 0.0.4/Runtime 0.1.6; it does not validate the", + "-0.0.7/0.1.10 combination. Read the separate [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+0.0.8/0.1.11 combination. Read the separate [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + " for its exact scope of packaging/protocol checks. Publication, author checks,", + " installed GUI execution and independent approval are separate results; these", + " records do not establish unattended accuracy or performance.", + " ", + "-连接器 0.0.7 更新安装/恢复指引与元数据,Runtime 修复单独交付;既有 0.0.3/0.0.4/0.0.5/0.0.6 连接设置无需迁移,权限/输入门禁不变。[受控安装态 Pi 证据](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)属于连接器 0.0.4/Runtime 0.1.6,不验证 0.0.7/0.1.10 组合。打包/协议检查的确切范围见单独的 [0.0.5 历史作者验证记录](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)。作者发布、作者检查、安装态 GUI 执行及独立批准分别记录;这些记录不证明无人准确率或性能。", + "+连接器 0.0.8 更新安装/恢复指引与元数据,Runtime 修复单独交付;既有 0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 连接设置无需迁移,权限/输入门禁不变。[受控安装态 Pi 证据](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)属于连接器 0.0.4/Runtime 0.1.6,不验证 0.0.8/0.1.11 组合。打包/协议检查的确切范围见单独的 [0.0.5 历史作者验证记录](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)。作者发布、作者检查、安装态 GUI 执行及独立批准分别记录;这些记录不证明无人准确率或性能。" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/METADATA", + "status": "removed", + "before": "8d0ee375be35650ec5b2b30fc20bd91f30016c3f38f68d1662ecd2040efc60c0", + "after": null, + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,249 +0,0 @@", + "-Metadata-Version: 2.4", + "-Name: amadeus-agent-gui-runtime", + "-Version: 0.0.7", + "-Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "-License-Expression: ISC", + "-Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.md", + "-Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "-Requires-Python: <3.13,>=3.12", + "-Description-Content-Type: text/markdown", + "-License-File: LICENSE", + "-Dynamic: license-file", + "-", + "-# Amadeus Windows GUI Runtime Connector 0.0.7", + "-", + "-[简体中文](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "-", + "-This author-published connector connects Pi to a **separately installed and", + "-operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "-contains a connection declaration and execution Skill, not the Runtime. Use", + "-this guide to install and connect it; publication and independent store", + "-approval are separate results.", + "-", + "-## Downloads and compatibility", + "-", + "-- [Connector 0.0.7 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.7)", + "-- [Connector wheel: amadeus_agent_gui_runtime-0.0.7-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/amadeus_agent_gui_runtime-0.0.7-py3-none-any.whl)", + "-- [Connector source: extension-source-0.0.7.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/extension-source-0.0.7.zip)", + "-- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.7/preflight.json)", + "-- [Recommended Runtime 0.1.10 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.10/AgentGUIRuntimeExecution-Setup.exe)", + "- and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.10)", + "-", + "-Install the Runtime yourself on the Windows computer running Amadeus, then", + "-import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/README.md#quick-start).", + "-The connector and Runtime have independent version numbers and release tags;", + "-connector 0.0.7 does not update Runtime 0.1.10.", + "-", + "-| Combination or capability | Supported scope and evidence |", + "-| --- | --- |", + "-| Runtime 0.1.10 + connector 0.0.7 | Recommended Runtime and this connector. Inspect the actual running service and the scope of its validation evidence before input; a version pair alone does not prove installed GUI execution. |", + "-| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It does not validate the 0.0.7/0.1.10 combination. |", + "-| Minimum protocol contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply field-review/continue. This protocol floor does not qualify every later Runtime, including all future 0.1.x releases. |", + "-| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "-| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "-| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "-", + "-The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "-Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "-are separate from the [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "-and independent store review. Do not treat a release number or preflight success", + "-as proof of desktop execution.", + "-", + "-## What runs where", + "-", + "-| Component | Responsibility |", + "-| --- | --- |", + "-| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "-| Connector 0.0.7 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "-| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "-", + "-The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "-Python 3.12, retains supported Python 3.11 environments and requires **no local", + "-GPU or model-weight download**. Optional local-model setup has its separate", + "-Python 3.11 contract and is outside this connector's supported route. A shared", + "-Python minor version does not mean sharing a virtual environment; each", + "-component keeps its locked dependencies.", + "-", + "-## Start the local Runtime", + "-", + "-Install the Runtime first. Install `uv` if setup requests it. Copy", + "-`configs/vision-api-openai-luna.example.json` and", + "-`configs/decision-profile.visual-execution.example.json` to private profile", + "-files, then configure endpoints, models and task conditions according to the", + "-Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "-Screenshots and task information used for recognition/review are sent to the", + "-selected model services. Those services may charge for calls; this wheel", + "-includes no model service or API credit. Set each profile's `api_key_env` only", + "-in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "-put a provider key in connector settings.", + "-", + "-Generate and privately store a strong random URL-safe **local connection", + "-token** of 32–256 characters (for example, using `secrets.token_urlsafe(32)` in", + "-your trusted Python environment). It is distinct from every model-provider API", + "-key. Prompt for secrets without echoing them, then start the service in a", + "-dedicated console:", + "-", + "-```powershell", + "-$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "-$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "-$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "-$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "-$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "-$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "-Set-Location -LiteralPath $RuntimeRoot", + "-& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "-& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "- --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "- --api-profile $VisionProfile --decision-profile $DecisionProfile", + "-```", + "-", + "-Run setup once; it may download locked dependencies. Its generated standalone", + "-stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "-to retain an existing supported API environment. An explicit different minor", + "-version requires a separate environment rather than an in-place replacement.", + "-Keep this console open while Amadeus uses the service.", + "-", + "-Input is disabled by default. For an explicitly authorized desktop task, append", + "-the existing `--allow-local-input` option to the final startup command. **This", + "-option also turns automatic risk interception off.** A token authenticates the", + "-connection; it does not authorize arbitrary clicks, submissions, payments or", + "-unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "-rejects browser Origin headers before MCP processing. Do not expose it through", + "-a public bind, tunnel or reverse proxy.", + "-", + "-## Install and connect", + "-", + "-1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "- check its actual installed version against the recorded baseline above.", + "-2. Download and install the **0.0.7 wheel** in Settings → Extensions. Inspect its", + "- identity and disclosure; installation starts disabled.", + "-3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "- Use only your trusted local Runtime. Set secret `connection_token` to the", + "- same local token supplied to the Runtime console, not a model API key.", + "-4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "- and open a new Work session. Saved configuration does not prove it is loaded.", + "-5. Inspect the MCP initialization version and discovered tools, then read", + "- `instant_status` before requesting input. Required tools are `instant_start`,", + "- `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "- `instant_stop`; their schemas must support the task-plan, original-command", + "- status and review/continue operations described in the packaged Skill.", + "- Check actual returned review recipes when that state occurs. This is a", + "- manual check, not automatic compatibility certification.", + "-", + "-The connector cannot start, install, upgrade or reconfigure the external", + "-Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "-configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "-", + "-## A small reproducible task", + "-", + "-Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "-yourself. Before connecting Pi, manually prepare two empty folders in a new", + "-temporary root, for example:", + "-", + "-```powershell", + "-$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "-New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "-$FixtureRoot", + "-```", + "-", + "-Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "-actual path, and tell Pi to select that observed window. The prepared window is", + "-operator-owned; selecting it does not make it task-owned. Authorize only this", + "-task, with local input explicitly enabled:", + "-", + "-> In the prepared 7-Zip window at ``, use folder navigation", + "-> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "-> displayed path is `\\Documents\\Receipts`. Do not create,", + "-> rename, delete, edit, compress or extract anything, enter credentials, open", + "-> another location or close the operator-prepared window. Stop and report any", + "-> uncertain input or review without a valid ticket. After the task, settle the", + "-> original receipts and verify Runtime host cleanup.", + "-", + "-Acceptance requires four successful original navigation steps, bound image", + "-evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "-Report any Main review or assistance. Do not count launch acknowledgements,", + "-pending receipts or an uninspected screenshot as success. No external data write", + "-is authorized; the fixture is created manually beforehand. It is a", + "-navigation example, not compression/extraction or a performance benchmark.", + "-", + "-## Task, review and cleanup", + "-", + "-Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "-and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.7/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "-Keep one MCP connection and one input owner for the whole Work. Pending,", + "-unknown or interrupted input keeps its original request/run/command IDs; never", + "-replay it with a new ID to extend a wait.", + "-", + "-At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "-status request, inspect that status request's bound **before** image, then copy", + "-the returned review recipe and use its separately returned continue recipe.", + "-Review itself does not click. Continuation retains the original job/candidate", + "-and must pass a fresh target-region check and existing input gates before one", + "-dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "-already-entered text; continuation does not retype. A field review does not", + "-approve a candidate or prove a later submission succeeded. Without a genuine", + "-resumable ticket, or with stale evidence, stop and report the original state.", + "-", + "-Historical Pi evidence used a natively resized complete bound frame, not", + "-byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "-tests establish their stated recovery scope, not unattended accuracy, speed or", + "-new-combination acceptance.", + "-", + "-Close only task-launched windows using their returned identities, and verify", + "-`window_closed`; retain an operator-prepared window as in the example above.", + "-Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "-`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "-can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "-the connector changes its Host-side connection configuration; backend changes", + "-follow the Host's restart requirements. It does not stop or uninstall the external", + "-Runtime or delete its data. Finish cleanup before disabling/removing;", + "-stop the independent service deliberately afterward if desired.", + "-", + "-## Troubleshooting and recovery", + "-", + "-| Symptom | What to check and do |", + "-| --- | --- |", + "-| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "-| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "-| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "-| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "-| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "-| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "-| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "-", + "-After Pi disconnects or reports an owner conflict, both", + "-`instant_recovery_preview` and `instant_recover_session` remain **operator-only**;", + "-Pi must not call them to take over the old session or continue its workflow.", + "-This restriction does not remove Main's bound-image review/continue path in", + "-the original live session: that path retains the original job and existing", + "-input gates. For settlement diagnostics and migration from Runtime 0.1.8, see", + "-the [Runtime settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.10/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md).", + "-Runtime 0.1.10 extends `task_plan` input-settlement validation to proven rejected", + "-control requests and successful `observe` requests. A rejection must have its", + "-original durable before-dispatch proof; an error string alone does not prove", + "-zero input. Successful observation must bind the original capture and ledger", + "-evidence. `recover` and `resume_pre_dispatch` settlement remain unqualified;", + "-this release does not claim support for them. Follow the guide to verify", + "-retained evidence through the maintained settlement entry point.", + "-Keep original evidence; an unknown settlement is not proof that no input ran.", + "-", + "-## Version changes and installation scope", + "-", + "-0.0.7 updates package metadata and bilingual installation/recovery guidance,", + "-and recommends Runtime 0.1.10. Runtime fixes are delivered separately; this wheel", + "-does not change connection configuration, permissions or input execution.", + "-Existing 0.0.3/0.0.4/0.0.5/0.0.6 `runtime_url` and `connection_token` settings need no", + "-migration. The historical 0.0.2 stdio launcher and earlier release artifacts", + "-remain intact.", + "-When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "-local-input settings at the independent service; explicitly fill the two", + "-connector settings. Never reinterpret an old provider key as a connection token.", + "-", + "-Author publication, wheel/preflight checks, protocol checks, installed GUI", + "-execution and independent catalog approval are separate results. Read the exact", + "-scope and version of each linked result. Installing this connector does not", + "-establish acceptance of a particular Runtime/Amadeus combination.", + "-", + "-The connector code is ISC. Runtime and third-party licensing remain separate.", + "-The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "-payload." + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/RECORD", + "status": "removed", + "before": "1d5f5c432b38fccb5b12f56de2b1eeec90875d79f95ca21ccc75db9ffec5e7a6", + "after": null, + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,10 +0,0 @@", + "-amadeus_agent_gui/__init__.py,sha256=lmUqYfWFsOVCVdRf5Vx4v52jr8ZWLD6xbkC-bxD89Dk,106", + "-amadeus_agent_gui/amadeus-extension.json,sha256=U07P9Y5CEk38_foUsHjsqMXkfUuM9vYNZP_gz3URAyU,2689", + "-amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=AdpPmfXuoKpqz8h4Zc_JDl6Fz8Oob2odX0f_hzQaCuk,9987", + "-amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=KcOCqZkIeQqPc3Xw4EH07Zb5n1WYzJMXBmtcuMh08Ws,23092", + "-amadeus_agent_gui_runtime-0.0.7.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "-amadeus_agent_gui_runtime-0.0.7.dist-info/METADATA,sha256=jQ7jdb41ZQ7FsrMPwgvZHzABbD849o0WYuzSBA78YMA,18786", + "-amadeus_agent_gui_runtime-0.0.7.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "-amadeus_agent_gui_runtime-0.0.7.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "-amadeus_agent_gui_runtime-0.0.7.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "-amadeus_agent_gui_runtime-0.0.7.dist-info/RECORD,," + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/WHEEL", + "status": "removed", + "before": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "after": null, + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,5 +0,0 @@", + "-Wheel-Version: 1.0", + "-Generator: setuptools (83.0.0)", + "-Root-Is-Purelib: true", + "-Tag: py3-none-any", + "-" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/entry_points.txt", + "status": "removed", + "before": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "after": null, + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,2 +0,0 @@", + "-[amadeus.extensions]", + "-io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/licenses/LICENSE", + "status": "removed", + "before": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "after": null, + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,15 +0,0 @@", + "-ISC License", + "-", + "-Copyright (c) 2026 Desolate-Jix", + "-", + "-Permission to use, copy, modify, and/or distribute this software for any", + "-purpose with or without fee is hereby granted, provided that the above", + "-copyright notice and this permission notice appear in all copies.", + "-", + "-THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.7.dist-info/top_level.txt", + "status": "removed", + "before": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "after": null, + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -1 +0,0 @@", + "-amadeus_agent_gui" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/METADATA", + "status": "added", + "before": null, + "after": "b604e37baca86e244faff43b2473ca187b393c62ce6345b362b7e96a14d8236c", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,261 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.8", + "+Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/README.md", + "+Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "+Requires-Python: <3.13,>=3.12", + "+Description-Content-Type: text/markdown", + "+License-File: LICENSE", + "+Dynamic: license-file", + "+", + "+# Amadeus Windows GUI Runtime Connector 0.0.8", + "+", + "+[简体中文](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "+", + "+This connector connects Pi to a **separately installed and", + "+operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "+contains a connection declaration and execution Skill, not the Runtime. Use", + "+this guide to install and connect it; publication and independent store", + "+approval are separate results.", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.8 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.8)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.8-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.8/amadeus_agent_gui_runtime-0.0.8-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.8.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.8/extension-source-0.0.8.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.8/preflight.json)", + "+- [Recommended Runtime 0.1.11 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.11/AgentGUIRuntimeExecution-Setup.exe)", + "+ and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.11)", + "+", + "+Install the Runtime yourself on the Windows computer running Amadeus, then", + "+import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/README.md#quick-start).", + "+The connector and Runtime have independent version numbers and release tags;", + "+connector 0.0.8 does not update Runtime 0.1.11.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.11 + connector 0.0.8 | Recommended Runtime and this connector. Inspect the actual running service and the scope of its validation evidence before input; a version pair alone does not prove installed GUI execution. |", + "+| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It does not validate the 0.0.8/0.1.11 combination. |", + "+| Minimum protocol contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply field-review/continue. This protocol floor does not qualify every later Runtime, including all future 0.1.x releases. |", + "+| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "+| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "+| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "+", + "+The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "+Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+are separate from the [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+and independent store review. Do not treat a release number or preflight success", + "+as proof of desktop execution.", + "+", + "+## What runs where", + "+", + "+| Component | Responsibility |", + "+| --- | --- |", + "+| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "+| Connector 0.0.8 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "+| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "+", + "+The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "+Python 3.12, retains supported Python 3.11 environments and requires **no local", + "+GPU or model-weight download**. Optional local-model setup has its separate", + "+Python 3.11 contract and is outside this connector's supported route. A shared", + "+Python minor version does not mean sharing a virtual environment; each", + "+component keeps its locked dependencies.", + "+", + "+## Start the local Runtime", + "+", + "+Install the Runtime first. Install `uv` if setup requests it. Copy", + "+`configs/vision-api-openai-luna.example.json` and", + "+`configs/decision-profile.visual-execution.example.json` to private profile", + "+files, then configure endpoints, models and task conditions according to the", + "+Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "+Screenshots and task information used for recognition/review are sent to the", + "+selected model services. Those services may charge for calls; this wheel", + "+includes no model service or API credit. Set each profile's `api_key_env` only", + "+in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "+put a provider key in connector settings.", + "+", + "+Generate and privately store a strong random URL-safe **local connection", + "+token** of 32–256 characters (for example, using `secrets.token_urlsafe(32)` in", + "+your trusted Python environment). It is distinct from every model-provider API", + "+key. Prompt for secrets without echoing them, then start the service in a", + "+dedicated console:", + "+", + "+```powershell", + "+$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "+$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "+$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "+$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "+$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "+$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "+Set-Location -LiteralPath $RuntimeRoot", + "+& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "+& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "+ --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "+ --api-profile $VisionProfile --decision-profile $DecisionProfile", + "+```", + "+", + "+Run setup once; it may download locked dependencies. Its generated standalone", + "+stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "+to retain an existing supported API environment. An explicit different minor", + "+version requires a separate environment rather than an in-place replacement.", + "+Keep this console open while Amadeus uses the service.", + "+", + "+Input is disabled by default. For an explicitly authorized desktop task, append", + "+the existing `--allow-local-input` option to the final startup command. **This", + "+option also turns automatic risk interception off.** A token authenticates the", + "+connection; it does not authorize arbitrary clicks, submissions, payments or", + "+unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "+rejects browser Origin headers before MCP processing. Do not expose it through", + "+a public bind, tunnel or reverse proxy.", + "+", + "+## Install and connect", + "+", + "+1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "+ check its actual installed version against the recorded baseline above.", + "+2. Download and install the **0.0.8 wheel** in Settings → Extensions. Inspect its", + "+ identity and disclosure; installation starts disabled.", + "+3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "+ Use only your trusted local Runtime. Set secret `connection_token` to the", + "+ same local token supplied to the Runtime console, not a model API key.", + "+4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "+ and open a new Work session. Saved configuration does not prove it is loaded.", + "+5. Inspect the MCP initialization version and discovered tools, then read", + "+ `instant_status` before requesting input. Required tools are `instant_start`,", + "+ `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "+ `instant_stop`; their schemas must support the task-plan, original-command", + "+ status and review/continue operations described in the packaged Skill.", + "+ Check actual returned review recipes when that state occurs. This is a", + "+ manual check, not automatic compatibility certification.", + "+", + "+The connector cannot start, install, upgrade or reconfigure the external", + "+Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "+configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "+", + "+## A small reproducible task", + "+", + "+Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "+yourself. Before connecting Pi, manually prepare two empty folders in a new", + "+temporary root, for example:", + "+", + "+```powershell", + "+$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "+New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "+$FixtureRoot", + "+```", + "+", + "+Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "+actual path, and tell Pi to select that observed window. The prepared window is", + "+operator-owned; selecting it does not make it task-owned. Authorize only this", + "+task, with local input explicitly enabled:", + "+", + "+> In the prepared 7-Zip window at ``, use folder navigation", + "+> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "+> displayed path is `\\Documents\\Receipts`. Do not create,", + "+> rename, delete, edit, compress or extract anything, enter credentials, open", + "+> another location or close the operator-prepared window. Stop and report any", + "+> uncertain input or review without a valid ticket. After the task, settle the", + "+> original receipts and verify Runtime host cleanup.", + "+", + "+Acceptance requires four successful original navigation steps, bound image", + "+evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "+Report any Main review or assistance. Do not count launch acknowledgements,", + "+pending receipts or an uninspected screenshot as success. No external data write", + "+is authorized; the fixture is created manually beforehand. It is a", + "+navigation example, not compression/extraction or a performance benchmark.", + "+", + "+## Task, review and cleanup", + "+", + "+Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "+and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "+Keep one MCP connection and one input owner for the whole Work. Pending,", + "+unknown or interrupted input keeps its original request/run/command IDs; never", + "+replay it with a new ID to extend a wait.", + "+", + "+At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "+status request, inspect that status request's bound **before** image, then copy", + "+the returned review recipe and use its separately returned continue recipe.", + "+Review itself does not click. Continuation retains the original job/candidate", + "+and must pass a fresh target-region check and existing input gates before one", + "+dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "+already-entered text; continuation does not retype. A field review does not", + "+approve a candidate or prove a later submission succeeded. Without a genuine", + "+resumable ticket, or with stale evidence, stop and report the original state.", + "+", + "+Historical Pi evidence used a natively resized complete bound frame, not", + "+byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "+tests establish their stated recovery scope, not unattended accuracy, speed or", + "+new-combination acceptance.", + "+", + "+Close only task-launched windows using their returned identities, and verify", + "+`window_closed`; retain an operator-prepared window as in the example above.", + "+Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "+`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "+can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "+the connector changes its Host-side connection configuration; backend changes", + "+follow the Host's restart requirements. It does not stop or uninstall the external", + "+Runtime or delete its data. Finish cleanup before disabling/removing;", + "+stop the independent service deliberately afterward if desired.", + "+", + "+## Troubleshooting and recovery", + "+", + "+| Symptom | What to check and do |", + "+| --- | --- |", + "+| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "+| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "+| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "+| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "+| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "+| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "+| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "+", + "+After Pi disconnects or reports an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` remain **operator-only**;", + "+Pi must not call them to take over the old session or continue its workflow.", + "+This restriction does not remove Main's bound-image review/continue path in", + "+the original live session: that path retains the original job and existing", + "+input gates. For settlement diagnostics and migration from Runtime 0.1.8, see", + "+the [Runtime settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md).", + "+Runtime 0.1.11 also fixes release of an initialized HTTP owner before any", + "+Runtime start attempt. DELETE can accept `cleanup_verified=false` only when the", + "+server's lifecycle evidence proves no start attempt, attached resources or", + "+pending work. Initial phase or `host_alive=false` alone is insufficient. Any", + "+attempted/failed start, active or unknown work, or unverified cleanup must follow", + "+the existing cleanup gate; the `cleanup_verified=true` path is unchanged. This", + "+exception releases an unused transport owner, not a task or recovery workflow.", + "+Do not start/stop a host or invoke recovery merely to make an unused owner", + "+releasable.", + "+", + "+Runtime 0.1.10 extends `task_plan` input-settlement validation to proven rejected", + "+control requests and successful `observe` requests. A rejection must have its", + "+original durable before-dispatch proof; an error string alone does not prove", + "+zero input. Successful observation must bind the original capture and ledger", + "+evidence. `recover` and `resume_pre_dispatch` settlement remain unqualified;", + "+this release does not claim support for them. Follow the guide to verify", + "+retained evidence through the maintained settlement entry point.", + "+Keep original evidence; an unknown settlement is not proof that no input ran.", + "+", + "+## Version changes and installation scope", + "+", + "+0.0.8 updates package metadata and bilingual installation/recovery guidance,", + "+and recommends Runtime 0.1.11 for the never-started-owner release fix. Exact", + "+checks and remaining qualification are recorded in the [Runtime release validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/releases/EXECUTION_0111_20261028.md).", + "+Runtime fixes are delivered separately; this wheel", + "+does not change connection configuration, permissions or input execution.", + "+Existing 0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 `runtime_url` and `connection_token` settings need no", + "+migration. The historical 0.0.2 stdio launcher and earlier release artifacts", + "+remain intact.", + "+When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "+local-input settings at the independent service; explicitly fill the two", + "+connector settings. Never reinterpret an old provider key as a connection token.", + "+", + "+Author publication, wheel/preflight checks, protocol checks, installed GUI", + "+execution and independent catalog approval are separate results. Read the exact", + "+scope and version of each linked result. Installing this connector does not", + "+establish acceptance of a particular Runtime/Amadeus combination.", + "+", + "+The connector code is ISC. Runtime and third-party licensing remain separate.", + "+The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "+payload." + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/RECORD", + "status": "added", + "before": null, + "after": "c63c3fc429b2adf6df2564da040796fa2c09bcb9835bd52e67eb6b8a5fcaf86d", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=oB9HQC_nHfZhQyacOyuyBGX2L1uE0YdrQEY4I_eglQU,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=u2WP7tL4rnHMFW2S_zhCvV5EBNEph57XvejRHBJjXOo,2689", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=8P4Sgi9_eV-g4Zm2mzLOIAiW00iOQ-1qJH-IhStgN_o,11222", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=qtDPy8UwU89K_xSPGkbovGIUM3Bduh-pa38gxvwUbLY,24383", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/METADATA,sha256=tgTje6yobiRPr_Q7JHPKGHs5PGLOY0WzYrfpahTYI2w,19672", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/RECORD,," + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/WHEEL", + "status": "added", + "before": null, + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,5 @@", + "+Wheel-Version: 1.0", + "+Generator: setuptools (83.0.0)", + "+Root-Is-Purelib: true", + "+Tag: py3-none-any", + "+" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/entry_points.txt", + "status": "added", + "before": null, + "after": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,2 @@", + "+[amadeus.extensions]", + "+io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/licenses/LICENSE", + "status": "added", + "before": null, + "after": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,15 @@", + "+ISC License", + "+", + "+Copyright (c) 2026 Desolate-Jix", + "+", + "+Permission to use, copy, modify, and/or distribute this software for any", + "+purpose with or without fee is hereby granted, provided that the above", + "+copyright notice and this permission notice appear in all copies.", + "+", + "+THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/top_level.txt", + "status": "added", + "before": null, + "after": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1 @@", + "+amadeus_agent_gui" + ] + } + ], + "note": "Diff is evidence only; every version needs independent full review.", + "ok": true, + "review_status": "not_reviewed" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/preflight.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/preflight.json new file mode 100644 index 0000000..f6d77d6 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/preflight.json @@ -0,0 +1,920 @@ +{ + "checked": [ + "manifest", + "package_resources", + "skill_metadata", + "wheel_metadata" + ], + "checks": { + "catalog_policy": "passed", + "human_and_runtime_review": "pending", + "package_format": "passed", + "target_host": "passed" + }, + "environment": { + "platform": "win32", + "python": "3.12.10" + }, + "host_commit": "1840c8e4f646992ddaebea3139c8895f29743a8f", + "identity": { + "id": "io.github.desolate-jix.gui-runtime", + "version": "0.0.8", + "sha256": "2f532faf152faf2e1e3ab3140e1097487689be34d638e4ee86539e06886cbcaf" + }, + "inventory": [ + { + "path": "amadeus_agent_gui/__init__.py", + "status": "added", + "before": null, + "after": "a01f47402fe71df66143269c3b2bb20465f62f5b84d1876b40463823f7a09505", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,3 @@", + "+\"\"\"Amadeus resource extension: native HTTP MCP declaration and execution Skill.\"\"\"", + "+", + "+__version__ = \"0.0.8\"" + ] + }, + { + "path": "amadeus_agent_gui/amadeus-extension.json", + "status": "added", + "before": null, + "after": "bb658feed2f8ae71cc156d92ff3842bd5e4404d129879ed7bde8d11c12635cea", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,72 @@", + "+{", + "+ \"schema\": \"amadeus.extension/v0\",", + "+ \"id\": \"io.github.desolate-jix.gui-runtime\",", + "+ \"version\": \"0.0.8\",", + "+ \"display_name\": {", + "+ \"en\": \"Windows GUI Runtime Connector\",", + "+ \"zh-CN\": \"Windows GUI Runtime 连接器\"", + "+ },", + "+ \"description\": {", + "+ \"en\": \"Connector to a separately installed and started Windows GUI Runtime. Recommend 0.1.11; 0.1.6 marks the minimum HTTP protocol, not a compatibility range. Check the actual version, authenticated HTTP MCP and review/continue tools. Configure trusted loopback runtime_url and connection_token; bind MCP and Skill to Pi. You deploy and stop Runtime separately. Disabling/uninstalling this connector does not stop/uninstall Runtime or delete its data. External model APIs may charge usage fees.\",", + "+ \"zh-CN\": \"连接器:需自行单独安装、配置并启动 Windows GUI Runtime。建议使用 0.1.11;0.1.6 表示最低 HTTP 协议起点,不保证所有后续版本兼容。须核对实际版本、鉴权 HTTP MCP 及审核/继续工具。填写可信本机 runtime_url 和 connection_token,将 MCP 与 Skill 绑定 Pi。Runtime 由用户独立部署和停止;停用/卸载本连接器不会停止、卸载 Runtime 或删除其数据。外部模型 API 可能按用量收费。\"", + "+ },", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + "+ \"author\": {", + "+ \"name\": \"Desolate-Jix\"", + "+ },", + "+ \"license\": \"ISC\",", + "+ \"engines\": {", + "+ \"amadeus_host_api\": \">=0.1,<0.2\",", + "+ \"platforms\": [", + "+ \"win32\"", + "+ ]", + "+ },", + "+ \"runtime\": {", + "+ \"kind\": \"none\"", + "+ },", + "+ \"config\": {", + "+ \"runtime_url\": {", + "+ \"type\": \"string\",", + "+ \"title\": \"Trusted loopback MCP URL / 可信本机 MCP 地址\",", + "+ \"required\": true,", + "+ \"default\": \"http://127.0.0.1:17665/mcp\"", + "+ },", + "+ \"connection_token\": {", + "+ \"type\": \"string\",", + "+ \"title\": \"Local MCP connection token (not a model API key) / 本机连接密钥(不是模型 API key)\",", + "+ \"required\": true,", + "+ \"secret\": true", + "+ }", + "+ },", + "+ \"contributes\": {", + "+ \"mcp_server\": [", + "+ {", + "+ \"id\": \"execution\",", + "+ \"contract\": \"amadeus.mcp-server/v0\",", + "+ \"transport\": \"http\",", + "+ \"url\": \"${config.runtime_url}\",", + "+ \"bearer_token\": \"${config.connection_token}\"", + "+ }", + "+ ],", + "+ \"skill\": [", + "+ {", + "+ \"id\": \"gui-execution\",", + "+ \"contract\": \"amadeus.skill/v0\",", + "+ \"path\": \"skills/gui-execution\",", + "+ \"title\": {", + "+ \"en\": \"GUI execution\",", + "+ \"zh-CN\": \"GUI 执行\"", + "+ }", + "+ }", + "+ ]", + "+ },", + "+ \"permissions\": {", + "+ \"host\": [],", + "+ \"os\": {", + "+ \"network\": [", + "+ \"*\"", + "+ ]", + "+ }", + "+ }", + "+}" + ] + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "added", + "before": null, + "after": "f0fe12822f7f795fa0e199b69b32ce200896d3488e43ed6a247f88852b6037fa", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,106 @@", + "+---", + "+name: gui-execution", + "+description: Execute an explicitly authorized Windows GUI task through the connected external-API Runtime route, preserve original request and evidence identities, handle review without replaying input, and verify owned-window and host cleanup.", + "+---", + "+", + "+## English", + "+", + "+Read `references/runtime.md` before using the connected Runtime. Discover its", + "+actual tools and schemas; Pi names may be namespaced or hashed, so never invent", + "+a tool name. This Skill supplies no tools, authority, executor, learning mode or", + "+shell route. Connector 0.0.8 supplies installation and execution guidance;", + "+publication, independent store approval and installed GUI execution are separate", + "+results. Historical 0.0.4/0.1.6 controlled Pi evidence is a separate result.", + "+", + "+Use only the existing external API route. Recommend separately installed", + "+Runtime 0.1.11; minimum 0.1.6 supplies the HTTP/pre-action contract, and the active", + "+service must supply field review/continue. Runtime 0.1.5 has no HTTP entry point.", + "+Runtime 0.1.7 current-Agent mode is not qualified through Amadeus here. Manually", + "+check MCP initialization version, actual tools/schemas, authentication and", + "+review/cleanup capabilities; neither a version number nor a later release", + "+establishes compatibility. The 0.1.6 protocol floor does not qualify all later", + "+0.1.x versions. No automatic compatibility detector is provided.", + "+", + "+Runtime 0.1.11 also fixes release of an initialized HTTP owner before any", + "+Runtime start attempt. DELETE can accept `cleanup_verified=false` only when the", + "+server's lifecycle evidence proves no start attempt, attached resources or", + "+pending work. Initial phase or `host_alive=false` alone is insufficient. Any", + "+attempted/failed start, active or unknown work, or unverified cleanup must follow", + "+the existing cleanup gate; the `cleanup_verified=true` path is unchanged. This", + "+exception releases an unused transport owner, not a task or recovery workflow.", + "+Do not start/stop a host or invoke recovery merely to make an unused owner", + "+releasable.", + "+", + "+Keep one Runtime MCP connection and one input owner for the complete authorized", + "+Work. The operator independently installs and starts the authenticated loopback", + "+daemon. The connector never launches Python, chooses executable paths, supplies", + "+provider keys or changes profiles. The local connection token is not a model", + "+API key. Screenshots/task information can reach the configured model services,", + "+whose calls may cost money. Confirm task scope and Runtime input opt-in:", + "+`--allow-local-input` enables input and turns automatic risk interception off.", + "+Start the host once, wait for ready, launch/select the intended window, use", + "+current bound observations, submit the task and inspect original receipts. A", + "+launch or asynchronous acknowledgement is not task success. Prepare known", + "+independent fields together and read healthy pending batches promptly; do not", + "+insert unrelated searches or documentation between them.", + "+", + "+For pending, unknown, timeout, interrupted input or unavailable images, retain", + "+original request/run/command IDs and inspect their state. Never replay possibly", + "+executed input under a new ID or resubmit to extend a wait. At a genuine", + "+`pre_action_review_packet.v1` or `field_review_packet.v1`, read", + "+`agent_command_status` with `command_id=packet.execution_request_id` under a new", + "+outer request ID and `images=none`. Retrieve that status request's bound image with", + "+`instant_image`: `view=before` for a candidate, `view=after` for entered text.", + "+Inspect the exact bound evidence against the task, copy", + "+`caller_controls.review.request` and add only the actual verdict/reason. Then", + "+separately use the returned continue recipe. Review alone performs no input.", + "+Pre-action continuation retains the original job/candidate and requires a fresh", + "+target-region check and existing hard gates before one dispatch. Field", + "+continuation does not retype; any submit suffix still needs normal gates and", + "+verification. With no genuine resumable ticket or a stale candidate, stop and", + "+report. Do not manufacture hashes, wait IDs, success or a restart/replay.", + "+", + "+Cancellation must settle to a real terminal state; a disconnect is not", + "+cancellation or cleanup. Close only task-launched windows using their returned", + "+handle/process identity, resolve save dialogs only for an authorized choice,", + "+and verify `window_closed`. Keep pre-existing/operator-prepared windows unless", + "+their closure is explicitly in scope. Call `instant_stop`, then poll until", + "+`host_alive=false`, `pending_ids=[]`, `cleanup_verified=true` and no unresolved", + "+cleanup error. Only then release the native HTTP owner. If an old owner is", + "+unresolved, inspect its original receipts and cleanup diagnostics. If the", + "+original connection is lost, retain evidence and stop for operator recovery.", + "+After Pi disconnects or encounters an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` are operator-only;", + "+Pi must not use them to take over the old session or workflow. Main's", + "+bound-image review/continue path in the original live session remains available", + "+under its existing contracts. Do not steal ownership, repeatedly", + "+reconnect/restart, or delete queues, locks or session records. Report task", + "+outcome separately from cleanup. Runtime 0.1.10 adds settlement of proven", + "+rejected `task_plan` controls and successful `observe` requests. Rejections", + "+require original durable before-dispatch proof; error strings alone are", + "+insufficient. Successful observation requires bound original capture and ledger", + "+evidence. Settlement of `recover` and `resume_pre_dispatch` remains unqualified.", + "+Consult the [settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+for retained evidence and the maintained operator entry point.", + "+", + "+Disabling/removing the connector releases the Host connection only; it does", + "+not stop/uninstall the independently running Runtime or delete its data. Finish", + "+cleanup before disabling/removing. Connector 0.0.8 updates guidance and metadata;", + "+Runtime fixes are delivered separately. 0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 connection settings", + "+need no migration and input gates and permissions do not change.", + "+", + "+## 简体中文", + "+", + "+使用连接的 Runtime 前先读 `references/runtime.md`。发现实际工具与 schema;Pi 名称可能带命名空间或哈希,不能猜工具名。本 Skill 不提供工具、授权、执行器、学习模式或 shell 路线。连接器 0.0.8 提供安装与执行指引;作者发布、独立商店批准及安装态 GUI 执行分别记录。历史 0.0.4/0.1.6 受控 Pi 证据单独记录。", + "+", + "+仅使用原有 external API 路线。推荐独立安装的 Runtime 0.1.11;最低 0.1.6 提供 HTTP/输入前审核合同,活动服务还须提供文字结果审核/继续。Runtime 0.1.5 没有 HTTP 入口。此处没有通过 Amadeus 核验 Runtime 0.1.7 current-Agent 模式。人工核对 MCP 初始化版本、实际工具/schema、鉴权及审核/清理能力;版本号或后续发行不能证明兼容。0.1.6 的协议起点不表示所有后续 0.1.x 版本均已具备资格。本包不提供自动兼容探测器。", + "+", + "+Runtime 0.1.11 另修复从未尝试启动 Runtime 的已初始化 HTTP 所有者无法释放的问题。仅当服务端生命周期证据证明从未尝试 start、未附着资源且无 pending 时,DELETE 才允许 `cleanup_verified=false`;仅有初始 phase 或 `host_alive=false` 不足以放行。已尝试/失败的启动、活动或未知工作、未核验清理仍走原门禁,`cleanup_verified=true` 路线不变。这只释放未使用的传输所有者,不结算任务或恢复工作流;不要仅为释放未使用 owner 而启动/停止宿主或调用恢复。", + "+", + "+完整授权 Work 保持一个 Runtime MCP 连接和一个输入所有者。操作员独立安装并启动带鉴权的本机 daemon;连接器不会启动 Python、选择可执行路径、提供模型密钥或改 profile。本机连接密钥不是模型 API Key。截图/任务信息可能发送给已配置模型服务,服务调用可能收费。确认任务范围及 Runtime 输入授权:`--allow-local-input` 启用输入,同时关闭自动风险拦截。宿主只启动一次,等待 ready,启动/选择目标窗口,使用当前绑定观察,提交任务并检查原回执。启动或异步确认不是任务成功。已知独立字段提前合并准备,及时读取正常待定批次,不在其间插入无关搜索或文档工作。", + "+", + "+待定、未知、超时、中断输入或图像不可用时,保留原 request/run/command ID 并检查状态。可能执行过的输入不能换 ID 重放,也不能为延长等待而重交。真实 `pre_action_review_packet.v1` 或 `field_review_packet.v1` 出现时,用新外层 request ID 和 `images=none` 调用 `agent_command_status`,`command_id=packet.execution_request_id`。随后用 `instant_image` 取该状态请求绑定图像:候选看 `view=before`,已输入文字看 `view=after`。对照任务检查确切绑定证据,复制 `caller_controls.review.request`,仅添加实际 verdict/reason,再单独使用返回的 continue recipe。审核本身不输入。前置继续保留原 job/候选,派发一次前须通过新截图的目标区域核对及既有硬门禁;文字结果继续不重输,后续 submit 仍须普通门禁及核验。没有真实可续票据或候选已过期就停报。不伪造哈希、wait ID、成功或重启/重放。", + "+", + "+取消须结算到真实终态;断线不等于取消或清理。仅按返回 handle/process 身份关闭本任务启动的窗口,仅处理已授权选择的保存对话框,并核对 `window_closed`。保留原有/操作员预备窗口,除非其关闭已明确纳入任务。调用 `instant_stop`,查询至 `host_alive=false`、`pending_ids=[]`、`cleanup_verified=true` 且没有未解决清理错误,之后才释放原生 HTTP 所有者。旧所有者未结算时读取原回执和清理诊断;原连接丢失时保留证据并停止,交操作员恢复。Pi 断线或遇到 owner 冲突后,`instant_recovery_preview`、`instant_recover_session` 两个工具仅限操作员使用,Pi 不得用它们接管旧会话或工作流。原活动会话中 Main 对绑定图像审核/继续的路径仍按既有合同保留。不抢占、不反复重连/重启、不删除队列、锁或会话记录。任务结果与清理分别报告。Runtime 0.1.10 新增证据完整的拒绝 `task_plan` 控制及成功 `observe` 请求的结算;拒绝须有原始持久化派发前证明,错误字符串本身不足为据,成功观察须有绑定的原截图及账本证据。`recover`、`resume_pre_dispatch` 的结算仍未具备资格。保留证据及正式维护的操作员入口见[结算恢复指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)。", + "+", + "+禁用/移除连接器只释放 Host 连接,不停止/卸载独立运行的 Runtime,也不删除它的数据。先完成清理再禁用/移除。连接器 0.0.8 更新指引与元数据,Runtime 修复单独交付;0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 连接设置无需迁移,输入门禁及权限不变。" + ] + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "added", + "before": null, + "after": "aad0cfcbc53053cf4aff148f1a46e8bc621433705dba1fa96b7f20c6fc146cb6", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,290 @@", + "+# Runtime session and receipt contract / 会话与回执合同", + "+", + "+## Prerequisites / 使用前提", + "+", + "+This resource connector uses an independently installed, operator-started,", + "+authenticated Windows loopback HTTP MCP Runtime. It never launches external", + "+code. The local connection token is distinct from provider API keys. This", + "+Skill supports the existing external API route only; configured model services", + "+receive recognition/review screenshots and task information and may charge for", + "+calls. Input requires explicit task authorization and Runtime opt-in;", + "+`--allow-local-input` also turns automatic risk interception off. Do not change", + "+profiles, thresholds or prompts to bypass a refusal.", + "+", + "+本资源连接器使用用户独立安装并启动、带鉴权的 Windows 本机 HTTP MCP Runtime,不会启动外部代码。本机连接密钥与模型 API Key 不同。本 Skill 仅支持原有 external API 路线;已配置模型服务会接收识别/审核截图及任务信息,可能按调用收费。输入须有明确任务授权及 Runtime opt-in;`--allow-local-input` 也会关闭自动风险拦截。不能改 profile、阈值或提示词来绕过拒绝。", + "+", + "+Recommend Runtime 0.1.11. The minimum HTTP/pre-action contract is 0.1.6;", + "+the service must also supply field-review/continue. Runtime 0.1.5 has field", + "+review but no HTTP entry point. This connector does not qualify Runtime 0.1.7", + "+current-Agent mode through Amadeus. Manually inspect the MCP initialization", + "+version, authentication, discovered tools and active schemas before input:", + "+`instant_start`, `instant_status`, `instant_run`, `instant_result`,", + "+`instant_image`, `instant_stop`, and task-plan/original-command status and", + "+review/continue support. Logical names below are Runtime names, not guesses", + "+about Pi's namespaced/hashed tool names. Neither a version marker nor a later", + "+release proves compatibility; no automatic compatibility detector is provided.", + "+The 0.1.6 protocol floor does not qualify every later 0.1.x version; use", + "+validation evidence for the exact Runtime/connector versions and route.", + "+", + "+推荐 Runtime 0.1.11。最低 HTTP/前置审核合同为 0.1.6,服务还须提供文字结果审核/继续。Runtime 0.1.5 有文字审核但没有 HTTP 入口。本连接器没有通过 Amadeus 核验 Runtime 0.1.7 current-Agent 模式。输入前人工检查 MCP 初始化版本、鉴权、已发现工具及活动 schema:`instant_start`、`instant_status`、`instant_run`、`instant_result`、`instant_image`、`instant_stop`,以及 task-plan/原命令状态和审核/继续支持。下文逻辑名称是 Runtime 名称,不能据此猜 Pi 带命名空间/哈希的工具名。版本号或后续发行不能证明兼容,本包没有自动兼容探测器。0.1.6 的协议起点不表示所有后续 0.1.x 版本均已具备资格;须按确切 Runtime/连接器版本及路线的验证证据判断。", + "+", + "+## Never-started HTTP owner / 未启动 HTTP 所有者", + "+", + "+Runtime 0.1.11 also fixes release of an initialized HTTP owner before any", + "+Runtime start attempt. DELETE can accept `cleanup_verified=false` only when the", + "+server's lifecycle evidence proves no start attempt, attached resources or", + "+pending work. Initial phase or `host_alive=false` alone is insufficient. Any", + "+attempted/failed start, active or unknown work, or unverified cleanup must follow", + "+the existing cleanup gate; the `cleanup_verified=true` path is unchanged. This", + "+exception releases an unused transport owner, not a task or recovery workflow.", + "+Do not start/stop a host or invoke recovery merely to make an unused owner", + "+releasable.", + "+", + "+Runtime 0.1.11 另修复从未尝试启动 Runtime 的已初始化 HTTP 所有者无法释放的问题。仅当服务端生命周期证据证明从未尝试 start、未附着资源且无 pending 时,DELETE 才允许 `cleanup_verified=false`;仅有初始 phase 或 `host_alive=false` 不足以放行。已尝试/失败的启动、活动或未知工作、未核验清理仍走原门禁,`cleanup_verified=true` 路线不变。这只释放未使用的传输所有者,不结算任务或恢复工作流;不要仅为释放未使用 owner 而启动/停止宿主或调用恢复。", + "+", + "+## Start and select / 启动与选择", + "+", + "+Keep one live MCP connection and one input owner for the entire Work. Call the", + "+discovered `instant_start` once, then `instant_status` until ready. Vision and", + "+Decision profiles are preconfigured; do not call `prepare_models` or", + "+`learning_*`. A selected target is session state. Prepare known independent", + "+fields together, read healthy pending results promptly, and do not insert", + "+unrelated searches/documentation between action batches.", + "+", + "+完整 Work 保持一个活动 MCP 连接和一个输入所有者。发现实际工具后,只调用一次 `instant_start`,再查询 `instant_status` 至 ready。视觉与 Decision profile 已事先配置,不调用 `prepare_models` 或 `learning_*`。选中目标属于会话状态。已知独立字段合并准备,及时读取正常待定结果,不在动作批次间插入无关搜索/文档工作。", + "+", + "+For a new application/shortcut explicitly in scope, use the actual approved", + "+path. Read its returned ownership and exact handle/process_id. Example:", + "+", + "+对于明确纳入任务的新应用/快捷方式,使用实际已授权路径,读取返回的归属及确切 handle/process_id。例如:", + "+", + "+```json", + "+{\"request_id\":\"launch-001\",\"command\":{\"kind\":\"launch\",\"path\":\"C:\\\\approved-test\\\\application.lnk\",\"prefer_existing\":false},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+For an observed existing window, select its real identities with the shape", + "+`{\"kind\":\"select\",\"handle\":123,\"process_id\":456}`. Example integers are", + "+placeholders, not targets. A pre-existing/operator-prepared window does not", + "+become task-owned. Capture the selected target with **only** `kind`:", + "+", + "+对于已观察到的现有窗口,按 `{\"kind\":\"select\",\"handle\":123,\"process_id\":456}` 形状填真实身份。示例整数只是占位符,不是目标。现有/操作员预备窗口不会变成本任务自有窗口。捕获已选目标时,command **只放** `kind`:", + "+", + "+```json", + "+{\"request_id\":\"capture-001\",\"command\":{\"kind\":\"capture\"},\"wait_ms\":10000,\"images\":\"after\"}", + "+```", + "+", + "+Do not put handle/process_id in `capture`. Use the original images bound to", + "+`instant_run`/`instant_result`; `instant_image` retrieves available images by", + "+the original request ID. A new capture is a new observation, not replacement", + "+evidence for an older action. Never mix old coordinates with current geometry.", + "+Pi may natively resize a complete bound frame for its model; do not claim that", + "+this is byte-identical original PNG delivery.", + "+", + "+`capture` 不放 handle/process_id。使用 `instant_run`/`instant_result` 绑定的原图,`instant_image` 按原 request ID 取可用图像。新 capture 是新观察,不能替换旧动作证据。不把旧坐标与当前几何混用。Pi 可能原生缩放完整绑定帧再交给模型,不能声称这等于原 PNG 字节相同交付。", + "+", + "+## Submit, wait and inspect / 提交、等待与核对", + "+", + "+Use a complete `task_plan` when the task calls for one; do not split it to evade", + "+checks. Follow the actual schema, explicit actions/verification and original", + "+run identity. There is no connector step cap; Runtime budgets, evidence binding", + "+and admission apply. `instant_run` accepts `request_id`, `command`, `wait_ms`,", + "+`detail` and `images`; keep receipt waits below the MCP client timeout. A", + "+running start receipt or asynchronous `instant_submit` acknowledgement is not", + "+completion. When pending, follow returned `next` and read `instant_result`", + "+with the **same** outer request ID:", + "+", + "+任务需要完整 `task_plan` 时按实际 schema 使用,不拆分来规避检查。保留明确动作/核验及原 run 身份。连接器没有步数上限,Runtime 预算、证据绑定与准入仍适用。`instant_run` 接收 `request_id`、`command`、`wait_ms`、`detail`、`images`,回执等待须低于 MCP 客户端超时。running 启动回执或异步 `instant_submit` 确认不是完成。待定时按返回 `next`,用**相同**外层 request ID 读取 `instant_result`:", + "+", + "+```json", + "+{\"request_id\":\"launch-001\",\"detail\":\"full\",\"images\":\"both\"}", + "+```", + "+", + "+For `agent_command.v1`, retain command_id. Read its state under a new outer", + "+request ID; this read-only status request is not a replay. For a review packet,", + "+its `execution_request_id` is the command_id to query. The example value must", + "+be replaced by the real original identity:", + "+", + "+对于 `agent_command.v1`,保留 command_id;用新外层 request ID 读状态,这是只读状态请求,不是重放。审核 packet 的 `execution_request_id` 就是要查询的 command_id;示例值须替换为真实原身份:", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"command\":{\"kind\":\"agent_command_status\",\"request\":{\"command_id\":\"original-execution-request-id\"}},\"wait_ms\":10000,\"images\":\"none\"}", + "+```", + "+", + "+Inspect `instant_status.task_plan_run` and original start/result receipts until", + "+a terminal outcome or explicit wait. Report completed steps, pending/review/", + "+failure and bound evidence, not merely tool success. `result_unknown`, timeout,", + "+`action_executed=true`, interrupted typing or a missing after image never prove", + "+input did not happen. Preserve original request/run/command IDs; do not resend", + "+input to extend a wait, start a competing plan or use another input route to", + "+hide uncertainty. Cancellation must reach its real terminal state.", + "+", + "+检查 `instant_status.task_plan_run` 及原启动/结果回执,直到终态或明确等待。报告完成步骤、待定/审核/失败与绑定证据,不能只报工具成功。`result_unknown`、超时、`action_executed=true`、输入中断或缺少后图不能证明未输入。保留原 request/run/command ID,不重交输入延长等待、不另起竞争计划、不用其他输入路线掩盖未知。取消须到真实终态。", + "+", + "+## Main review / 原 Agent 审核", + "+", + "+Use the actual packet returned by the active service. A candidate before input", + "+and an already-entered field are different scopes. A handoff/version marker is", + "+not a ticket; do not fabricate hashes, wait IDs, verdicts or recipes.", + "+", + "+只使用活动服务实际返回的 packet。输入前候选与已输入字段属于不同作用域,交接/版本标记不是票据;不伪造哈希、wait ID、结论或 recipe。", + "+", + "+### Candidate before input / 输入前候选", + "+", + "+A genuine `pre_action_review_packet.v1` parks the original job after", + "+authenticated Decision and ordinary-model nonpasses, without claiming native", + "+input. Read `packet.execution_request_id` through `agent_command_status` as", + "+above and wait for that status receipt. Retrieve that successful status", + "+request's bound original **before** image, using its actual request ID:", + "+", + "+真实 `pre_action_review_packet.v1` 在已认证 Decision 和普通模型均未通过后暂停原 job,不声称已派发原生输入。按上例通过 `agent_command_status` 读取 `packet.execution_request_id` 并等到状态回执,再以该成功状态请求的实际 request ID 取绑定原 **before** 图:", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"before\"}", + "+```", + "+", + "+Inspect the original task target, candidate point/box and exact bound image.", + "+Do not replace it with a new capture or treat the locator description as proof.", + "+Copy `caller_controls.review.request` and add only the actual verdict/reason:", + "+success requires a specific visual reason that the candidate satisfies the", + "+task; otherwise record the genuine failure or cancel. Do not ask models again", + "+and again to obtain a pass.", + "+", + "+检查原任务目标、候选点/框与确切绑定图像,不能改用新 capture,也不能把定位描述当证明。复制 `caller_controls.review.request`,只添加真实 verdict/reason:success 必须有候选满足任务的具体可见依据,否则记录真实失败或取消。不反复问模型来凑通过。", + "+", + "+Submit review through the actual `task_plan` recipe. Review records Main's", + "+judgment and performs no click. Then use the **separately returned**", + "+`caller_controls.continue.request`, retaining the original run/wait. It resumes", + "+the original job/candidate after a fresh target-region check and existing", + "+input, identity, geometry, visibility and cancellation gates. A changed/expired", + "+candidate stops. Do not restart, replan or synthesize approval to repeat it.", + "+Original model nonpasses remain separate from Main's one-use approval.", + "+", + "+按真实 `task_plan` recipe 提交审核,审核仅记录 Main 判断,不点击。之后使用**单独返回**的 `caller_controls.continue.request`,保留原 run/wait。原 job/候选须通过新截图的目标区域核对及既有输入、身份、几何、可见性、取消门禁后才继续。候选变化/过期就停止,不重启、重规划或合成批准来重做;原模型未通过结果与 Main 一次性批准分别保留。", + "+", + "+### Entered field value / 已输入文字", + "+", + "+A genuine `field_review_packet.v1` reviews text already entered after an", + "+authenticated dual-model rejection; the original execution is still pending.", + "+Read `packet.execution_request_id` through a new `agent_command_status` as", + "+above. After that status receipt, use its real request ID with", + "+`instant_image(view=\"after\")`:", + "+", + "+真实 `field_review_packet.v1` 在已认证双模型拒绝后审核已经输入的文字,原执行仍待定。按上例用新 `agent_command_status` 读取 `packet.execution_request_id`,状态回执完成后,用其真实 request ID 调用 `instant_image(view=\"after\")`:", + "+", + "+```json", + "+{\"request_id\":\"status-001\",\"view\":\"after\"}", + "+```", + "+", + "+Do not request an image directly on the unfinished execution, replace the bound", + "+after image with a new capture or replay text. Inspect the evidence bound to", + "+`caller_controls.review.request`, copy it and add only actual verdict/reason;", + "+do not add wait_id to review. Review only records Main's judgment. Separately", + "+submit the returned continue recipe for the original run/wait; the live thread", + "+resumes without retyping. Parameter recipes are not action authorization.", + "+", + "+不能直接向未完成执行取图、用新 capture 替换绑定后图或重输文字。检查 `caller_controls.review.request` 绑定证据,复制并仅添加真实 verdict/reason,不在 review 添加 wait_id。审核只记录 Main 判断;再单独提交返回的 continue recipe 续原 run/wait,活动线程不重输。参数 recipe 不是动作授权。", + "+", + "+Field review only confirms entered text. A submit suffix still needs its fresh", + "+target/candidate, normal input gates and result verification; field review does", + "+not prove search/submission success or bypass final-submit restrictions. If", + "+there is no genuine resumable review/continue recipe, retain the original", + "+failure and stop/report. Do not invent a ticket, restart/replay, relabel success", + "+or create a successor to repeat input. This package does not repair Runtime or", + "+claim new installed acceptance of its review behavior.", + "+", + "+文字结果审核只确认已输入内容。submit 后缀仍须新目标/候选、普通输入门禁及结果核验;文字审核不证明搜索/提交成功,也不绕过最终提交限制。没有真实可续审核/继续 recipe 时保留原失败并停报,不伪造票据、重启/重放、改标成功或另造后继来重输。本包不修复 Runtime,也不声称新安装态审核行为验收。", + "+", + "+## Recovery / 恢复", + "+", + "+If HTTP is unreachable, check the independently started service console,", + "+loopback port and `/mcp` path. For 401, compare the private local tokens; do not", + "+substitute a provider key or expose secrets in logs. Host/Origin rejection", + "+requires a direct native MCP connection to `127.0.0.1`, not a proxy/browser.", + "+Missing tools/contracts require manual version/schema review before new input,", + "+not an invented fallback. Do not change running configuration until original", + "+input and cleanup have settled.", + "+", + "+HTTP 不可达时核对独立服务控制台、本机端口及 `/mcp` 路径。401 时核对私下保存的本机密钥,不用模型密钥替代,也不在日志暴露密钥。Host/Origin 拒绝时须原生 MCP 直连 `127.0.0.1`,不用代理/浏览器。工具/合同缺失时先人工核对版本/schema,再考虑新输入,不能虚构后备路线。原输入与清理未结算前,不更改运行配置。", + "+", + "+A timeout/disconnect is not cancellation. If the original connection is still", + "+usable, inspect original receipts and use its actual cancel/status recipe,", + "+then wait for terminal settlement. An owner conflict or cleanup gate must be", + "+resolved through the original live Work. Inspect `cleanup_pending` diagnostics,", + "+resolve its specific blocker, then retry `instant_stop` for cleanup only and", + "+poll. If the original connection is unavailable, retain evidence and stop for", + "+operator/maintainer recovery; a new Work is not the old owner. Never steal", + "+ownership, repeatedly reconnect/restart, delete queues/locks/session records or", + "+replay unknown input to bypass a gate.", + "+", + "+超时/断线不等于取消。原连接仍可用时,检查原回执,使用其真实 cancel/status recipe 并等到终态。owner 冲突或清理门禁须经原活动 Work 处理。读取 `cleanup_pending` 诊断,解除具体阻塞后调用 `instant_stop` 只重试清理,再查询状态。原连接不可用时保留证据,停止并交操作员/维护者恢复;新 Work 不是旧 owner。不抢占、不反复重连/重启、不删除队列/锁/会话记录、不重放未知输入来绕过门禁。", + "+", + "+After Pi disconnects or encounters an owner conflict,", + "+`instant_recovery_preview` and `instant_recover_session` are both", + "+**operator-only**. Pi must not call either tool to take over the old session or", + "+resume its workflow. Main's bound-image review and continuation of the original", + "+job in the same live session remain supported under the contracts above.", + "+Runtime 0.1.10 adds settlement for proven rejected `task_plan` controls and", + "+successful `observe` requests. A rejection needs its original durable", + "+before-dispatch proof; an error string alone cannot prove zero input.", + "+Successful observation needs its bound original capture and ledger evidence.", + "+Settlement of `recover` and `resume_pre_dispatch` remains unqualified; no", + "+support for those paths is claimed here. For retained evidence, follow the", + "+[settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)", + "+and its maintained operator entry point. Keep original receipts and diagnostics;", + "+unknown settlement does not prove that no input occurred or authorize replay.", + "+", + "+Pi 断线或遇到 owner 冲突后,`instant_recovery_preview` 和 `instant_recover_session` 两个工具均**仅限操作员使用**。Pi 不得调用任一工具接管旧会话或续跑其工作流。同一活动会话中 Main 对绑定图像审核并继续原 job 的路径仍按上文合同保留。Runtime 0.1.10 新增证据完整的拒绝 `task_plan` 控制及成功 `observe` 请求的结算;拒绝须有原始持久化派发前证明,错误字符串本身不能证明零输入,成功观察须有绑定的原截图及账本证据。`recover`、`resume_pre_dispatch` 的结算仍未具备资格,此处不声称支持。保留证据须按[结算恢复指南](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md)及其正式维护的操作员入口处理。保留原回执和诊断;未知结算既不能证明没有执行输入,也不授权重放。", + "+", + "+## Owned-window and host cleanup / 自有窗口与宿主收尾", + "+", + "+After input settles, close only a task-launched window using the exact", + "+handle/process_id from its launch receipt. Example numbers are placeholders:", + "+", + "+输入结算后,仅按启动回执的确切 handle/process_id 关闭本任务启动的窗口;示例数字只是占位符:", + "+", + "+```json", + "+{\"request_id\":\"close-001\",\"command\":{\"kind\":\"close_launched_window\",\"handle\":123,\"process_id\":456},\"wait_ms\":10000,\"images\":\"after\"}", + "+```", + "+", + "+No `request.ownership` field is required. Preserve the original launch identity.", + "+If `window_close_pending` exposes an owned modal, inspect the current dialog", + "+through select/capture; closing does not authorize Save/Discard/Confirm. Act", + "+only on a choice explicitly in scope. Missing after evidence can mean the", + "+window closed: inspect the original receipt and verify disappearance rather", + "+than repeating a click. Verify `window_closed` for each owned window. Do not", + "+close unrelated/operator-prepared windows unless explicitly authorized.", + "+", + "+不需要 `request.ownership` 字段,保留原启动身份。`window_close_pending` 显示自有模态框时,通过 select/capture 查看当前对话框;关闭请求不授权保存/丢弃/确认,只执行明确在范围内的选择。缺后图可能因为窗口已关,应读原回执并核对消失,不能重复点击。逐一核实自有窗口 `window_closed`;没有明确授权就不关闭无关/操作员预备窗口。", + "+", + "+Call `instant_stop`, then poll `instant_status` until `host_alive=false`,", + "+`pending_ids=[]`, `cleanup_verified=true` and no unresolved cleanup error.", + "+`cleanup_pending`/stop acknowledgement is not terminal cleanup. Host cleanup", + "+does not prove application closure. Only after these conditions release the", + "+native HTTP owner so another Work can initialize. A transport disconnect is", + "+not task success, cancellation or cleanup; reopening a Pi conversation does", + "+not resume the old live MCP connection.", + "+", + "+调用 `instant_stop`,查询 `instant_status` 至 `host_alive=false`、`pending_ids=[]`、`cleanup_verified=true` 且没有未解决清理错误。`cleanup_pending`/stop 确认不是清理终态,宿主清理不证明应用已关。满足这些条件后才释放原生 HTTP owner,使其他 Work 初始化。传输断线不是任务成功、取消或清理;重开 Pi 对话不会恢复旧活动 MCP 连接。", + "+", + "+Report task success/failure/unknown, original IDs and evidence, assistance or", + "+recovery, owned-window closure and host cleanup separately. Disabling/removing", + "+the connector releases the Host connection only; it does not shut down or", + "+uninstall the external Runtime or delete its data. Finish cleanup first; stop", + "+the independent daemon deliberately afterward if desired. Do not delete", + "+browser profiles, cookies, history, sessions or retained extension data.", + "+", + "+分别报告任务成功/失败/未知、原 ID 与证据、协助/恢复、自有窗口关闭及宿主清理。禁用/移除连接器只释放 Host 连接,不停止/卸载外部 Runtime,也不删除它的数据。先完成清理,如需停用独立 daemon 再明确关闭。不要删除浏览器 profile、cookie、历史、会话或保留的扩展数据。", + "+", + "+## Evidence boundary / 证据边界", + "+", + "+Connector 0.0.8 updates installation/recovery guidance and metadata; Runtime", + "+fixes are delivered separately. Existing 0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 connection settings", + "+need no migration, and permissions/input gates do not change.", + "+[Controlled installed Pi evidence](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+belongs to connector 0.0.4/Runtime 0.1.6; it does not validate the", + "+0.0.8/0.1.11 combination. Read the separate [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+for its exact scope of packaging/protocol checks. Publication, author checks,", + "+installed GUI execution and independent approval are separate results; these", + "+records do not establish unattended accuracy or performance.", + "+", + "+连接器 0.0.8 更新安装/恢复指引与元数据,Runtime 修复单独交付;既有 0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 连接设置无需迁移,权限/输入门禁不变。[受控安装态 Pi 证据](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)属于连接器 0.0.4/Runtime 0.1.6,不验证 0.0.8/0.1.11 组合。打包/协议检查的确切范围见单独的 [0.0.5 历史作者验证记录](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)。作者发布、作者检查、安装态 GUI 执行及独立批准分别记录;这些记录不证明无人准确率或性能。" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/METADATA", + "status": "added", + "before": null, + "after": "b604e37baca86e244faff43b2473ca187b393c62ce6345b362b7e96a14d8236c", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,261 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.8", + "+Summary: Connector to a separately installed Windows GUI Runtime using authenticated HTTP MCP and a Skill", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/README.md", + "+Project-URL: Repository, https://github.com/Desolate-Jix/agent-gui-runtime", + "+Requires-Python: <3.13,>=3.12", + "+Description-Content-Type: text/markdown", + "+License-File: LICENSE", + "+Dynamic: license-file", + "+", + "+# Amadeus Windows GUI Runtime Connector 0.0.8", + "+", + "+[简体中文](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/README.zh-CN.md)", + "+", + "+This connector connects Pi to a **separately installed and", + "+operator-started Windows GUI Runtime** over native Streamable HTTP MCP. It", + "+contains a connection declaration and execution Skill, not the Runtime. Use", + "+this guide to install and connect it; publication and independent store", + "+approval are separate results.", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.8 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.8)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.8-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.8/amadeus_agent_gui_runtime-0.0.8-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.8.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.8/extension-source-0.0.8.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.8/preflight.json)", + "+- [Recommended Runtime 0.1.11 Windows installer](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/instant-v0.1.11/AgentGUIRuntimeExecution-Setup.exe)", + "+ and [Runtime release/checksums](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/instant-v0.1.11)", + "+", + "+Install the Runtime yourself on the Windows computer running Amadeus, then", + "+import the connector wheel. See the [Runtime installation guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/README.md#quick-start).", + "+The connector and Runtime have independent version numbers and release tags;", + "+connector 0.0.8 does not update Runtime 0.1.11.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.11 + connector 0.0.8 | Recommended Runtime and this connector. Inspect the actual running service and the scope of its validation evidence before input; a version pair alone does not prove installed GUI execution. |", + "+| Runtime 0.1.6 + connector 0.0.4 | Historical controlled installed Pi evidence covers four navigation steps, explicit TEST double refusal, Main review/continue and cleanup. It does not validate the 0.0.8/0.1.11 combination. |", + "+| Minimum protocol contract | 0.1.6 introduced the authenticated HTTP MCP entry point and pre-action review needed by this connector route; the running service must also supply field-review/continue. This protocol floor does not qualify every later Runtime, including all future 0.1.x releases. |", + "+| Runtime 0.1.5 or earlier | Not usable by this HTTP connector: 0.1.5 has no HTTP MCP entry point, even though field-result review existed there. |", + "+| Runtime 0.1.7 current-Agent mode | Not qualified through Amadeus by this connector. This Skill supports the existing **external API route** only. |", + "+| Later Runtime or Amadeus versions | Compatibility is not assumed. A maintainer must manually check the actual version, native HTTP/Skill support, required tools and command schemas, authentication and cleanup/review contracts. No automatic compatibility probe is supplied. |", + "+", + "+The recorded Amadeus baseline is upstream `9547f39` / `0.17.1-alpha.1` with native", + "+Pi 1.2.0. The [historical evidence and its limits](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.6/docs/verification/MAIN_PRE_ACTION_REVIEW_20261023.md)", + "+are separate from the [historical 0.0.5 author validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.5/docs/verification/AMADEUS_CONNECTOR_005_20261026.md)", + "+and independent store review. Do not treat a release number or preflight success", + "+as proof of desktop execution.", + "+", + "+## What runs where", + "+", + "+| Component | Responsibility |", + "+| --- | --- |", + "+| Amadeus / Pi | Plans the task, owns its approval UI and uses its native HTTP MCP client. |", + "+| Connector 0.0.8 | Resource-only connection declaration and Skill; no launcher, executable selector, model weights or Runtime dependencies. |", + "+| Local Runtime | Provides the authenticated loopback service, vision/Decision configuration, input gates, receipts and host cleanup. It is installed and started independently. |", + "+", + "+The Host uses Python 3.12. The Runtime API setup defaults new environments to", + "+Python 3.12, retains supported Python 3.11 environments and requires **no local", + "+GPU or model-weight download**. Optional local-model setup has its separate", + "+Python 3.11 contract and is outside this connector's supported route. A shared", + "+Python minor version does not mean sharing a virtual environment; each", + "+component keeps its locked dependencies.", + "+", + "+## Start the local Runtime", + "+", + "+Install the Runtime first. Install `uv` if setup requests it. Copy", + "+`configs/vision-api-openai-luna.example.json` and", + "+`configs/decision-profile.visual-execution.example.json` to private profile", + "+files, then configure endpoints, models and task conditions according to the", + "+Runtime guide. Keep Decision thresholds and ordinary-review policy explicit.", + "+Screenshots and task information used for recognition/review are sent to the", + "+selected model services. Those services may charge for calls; this wheel", + "+includes no model service or API credit. Set each profile's `api_key_env` only", + "+in the Runtime process environment. The examples use `OPENAI_API_KEY`; never", + "+put a provider key in connector settings.", + "+", + "+Generate and privately store a strong random URL-safe **local connection", + "+token** of 32–256 characters (for example, using `secrets.token_urlsafe(32)` in", + "+your trusted Python environment). It is distinct from every model-provider API", + "+key. Prompt for secrets without echoing them, then start the service in a", + "+dedicated console:", + "+", + "+```powershell", + "+$RuntimeRoot = 'C:\\Path\\To\\Runtime'", + "+$RuntimeData = 'C:\\Path\\To\\GuiRuntimeData'", + "+$VisionProfile = 'C:\\Path\\To\\Config\\vision-api.json'", + "+$DecisionProfile = 'C:\\Path\\To\\Config\\decision.json'", + "+$env:OPENAI_API_KEY = [System.Net.NetworkCredential]::new('', (Read-Host 'Provider API key' -AsSecureString)).Password", + "+$env:AGENT_GUI_MCP_TOKEN = [System.Net.NetworkCredential]::new('', (Read-Host 'Local MCP connection token' -AsSecureString)).Password", + "+Set-Location -LiteralPath $RuntimeRoot", + "+& '.\\scripts\\setup_instant.ps1' -RecognitionSource external_api -ApiProfile $VisionProfile -DataDirectory $RuntimeData", + "+& '.\\.venv-agent\\Scripts\\python.exe' -I -B -X utf8 scripts/start_instant_mcp_http.py `", + "+ --data-dir $RuntimeData --port 17665 --recognition-source external_api `", + "+ --api-profile $VisionProfile --decision-profile $DecisionProfile", + "+```", + "+", + "+Run setup once; it may download locked dependencies. Its generated standalone", + "+stdio MCP configuration is not needed for this connector. Omit `-PythonVersion`", + "+to retain an existing supported API environment. An explicit different minor", + "+version requires a separate environment rather than an in-place replacement.", + "+Keep this console open while Amadeus uses the service.", + "+", + "+Input is disabled by default. For an explicitly authorized desktop task, append", + "+the existing `--allow-local-input` option to the final startup command. **This", + "+option also turns automatic risk interception off.** A token authenticates the", + "+connection; it does not authorize arbitrary clicks, submissions, payments or", + "+unrelated file changes. The service binds only `127.0.0.1`, validates Host and", + "+rejects browser Origin headers before MCP processing. Do not expose it through", + "+a public bind, tunnel or reverse proxy.", + "+", + "+## Install and connect", + "+", + "+1. Use an Amadeus build with native Streamable HTTP MCP and Skill contributions;", + "+ check its actual installed version against the recorded baseline above.", + "+2. Download and install the **0.0.8 wheel** in Settings → Extensions. Inspect its", + "+ identity and disclosure; installation starts disabled.", + "+3. Set `runtime_url` to `http://127.0.0.1:17665/mcp`, or the port you selected.", + "+ Use only your trusted local Runtime. Set secret `connection_token` to the", + "+ same local token supplied to the Runtime console, not a model API key.", + "+4. Bind both MCP and Skill to Pi, explicitly enable, apply the backend restart,", + "+ and open a new Work session. Saved configuration does not prove it is loaded.", + "+5. Inspect the MCP initialization version and discovered tools, then read", + "+ `instant_status` before requesting input. Required tools are `instant_start`,", + "+ `instant_status`, `instant_run`, `instant_result`, `instant_image` and", + "+ `instant_stop`; their schemas must support the task-plan, original-command", + "+ status and review/continue operations described in the packaged Skill.", + "+ Check actual returned review recipes when that state occurs. This is a", + "+ manual check, not automatic compatibility certification.", + "+", + "+The connector cannot start, install, upgrade or reconfigure the external", + "+Runtime and does not receive provider API keys. `network: [\"*\"]` discloses", + "+configurable HTTP access; it is not an OS sandbox or desktop authorization.", + "+", + "+## A small reproducible task", + "+", + "+Use a synthetic temporary fixture; do not open personal files. Install 7-Zip", + "+yourself. Before connecting Pi, manually prepare two empty folders in a new", + "+temporary root, for example:", + "+", + "+```powershell", + "+$FixtureRoot = Join-Path $env:TEMP ('amadeus-gui-demo-' + [guid]::NewGuid().ToString('N'))", + "+New-Item -ItemType Directory -Path (Join-Path $FixtureRoot 'Documents\\Reports'), (Join-Path $FixtureRoot 'Documents\\Receipts')", + "+$FixtureRoot", + "+```", + "+", + "+Manually open a fresh 7-Zip File Manager window at that exact root. Record its", + "+actual path, and tell Pi to select that observed window. The prepared window is", + "+operator-owned; selecting it does not make it task-owned. Authorize only this", + "+task, with local input explicitly enabled:", + "+", + "+> In the prepared 7-Zip window at ``, use folder navigation", + "+> only: open Documents, open Reports, go Up once, then open Receipts. Verify the", + "+> displayed path is `\\Documents\\Receipts`. Do not create,", + "+> rename, delete, edit, compress or extract anything, enter credentials, open", + "+> another location or close the operator-prepared window. Stop and report any", + "+> uncertain input or review without a valid ticket. After the task, settle the", + "+> original receipts and verify Runtime host cleanup.", + "+", + "+Acceptance requires four successful original navigation steps, bound image", + "+evidence of the final path, an unchanged fixture tree and verified host cleanup.", + "+Report any Main review or assistance. Do not count launch acknowledgements,", + "+pending receipts or an uninspected screenshot as success. No external data write", + "+is authorized; the fixture is created manually beforehand. It is a", + "+navigation example, not compression/extraction or a performance benchmark.", + "+", + "+## Task, review and cleanup", + "+", + "+Use the packaged [Skill](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/SKILL.md)", + "+and [reference](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/src/amadeus_agent_gui/skills/gui-execution/references/runtime.md).", + "+Keep one MCP connection and one input owner for the whole Work. Pending,", + "+unknown or interrupted input keeps its original request/run/command IDs; never", + "+replay it with a new ID to extend a wait.", + "+", + "+At a genuine `pre_action_review_packet.v1`, read the original job through a new", + "+status request, inspect that status request's bound **before** image, then copy", + "+the returned review recipe and use its separately returned continue recipe.", + "+Review itself does not click. Continuation retains the original job/candidate", + "+and must pass a fresh target-region check and existing input gates before one", + "+dispatch. At `field_review_packet.v1`, inspect the bound **after** image of the", + "+already-entered text; continuation does not retype. A field review does not", + "+approve a candidate or prove a later submission succeeded. Without a genuine", + "+resumable ticket, or with stale evidence, stop and report the original state.", + "+", + "+Historical Pi evidence used a natively resized complete bound frame, not", + "+byte-identical original PNG delivery. The controlled, assisted 0.0.4/0.1.6", + "+tests establish their stated recovery scope, not unattended accuracy, speed or", + "+new-combination acceptance.", + "+", + "+Close only task-launched windows using their returned identities, and verify", + "+`window_closed`; retain an operator-prepared window as in the example above.", + "+Then call `instant_stop` and poll until `host_alive=false`, `pending_ids=[]` and", + "+`cleanup_verified=true`. Only then release the HTTP MCP owner so another Work", + "+can connect. A disconnect is not cancellation or cleanup. Disabling/removing", + "+the connector changes its Host-side connection configuration; backend changes", + "+follow the Host's restart requirements. It does not stop or uninstall the external", + "+Runtime or delete its data. Finish cleanup before disabling/removing;", + "+stop the independent service deliberately afterward if desired.", + "+", + "+## Troubleshooting and recovery", + "+", + "+| Symptom | What to check and do |", + "+| --- | --- |", + "+| Connection refused, timeout or no tools | Confirm the Runtime console is still running, setup succeeded, and `runtime_url` uses the actual loopback port and `/mcp`. Start the service with the command above if it was never started. Do not launch a second copy while another owner/input is unresolved. |", + "+| HTTP 401 / `authentication_required` | The two local tokens must match. Enter the local token in secret `connection_token`; a provider API key is wrong here. Do not paste secrets into logs. If the daemon token must change, first settle the old task and cleanup, then restart deliberately and reconnect. |", + "+| HTTP 404, 421 or 403 | Use `http://127.0.0.1:/mcp` directly through Amadeus's native MCP client. Check the endpoint/port; remove any proxy or browser route. The server rejects invalid Host or browser Origin headers. |", + "+| Missing HTTP, tools, schema or review/continue recipe | Manually check the installed and MCP-reported Runtime version and actual schemas. 0.1.5 cannot serve this connector. For an unsupported contract, stop before new input; after settling any old owner, install/configure the recommended Runtime separately and recheck. Never invent a ticket or assume a later version is compatible. |", + "+| Input disabled or model/profile error | Confirm the private API/Decision profiles and their environment-variable names in the Runtime console. Enable `--allow-local-input` only for an authorized task, remembering that it turns automatic risk interception off. Do not change thresholds/prompts to force a pass; settle the current task before restarting configuration. |", + "+| Cancel requested, timeout or disconnect during input | Preserve original IDs and inspect original status/results. Cancellation is not terminal until confirmed. If the original live connection remains usable, follow its actual cancel/status recipe and wait for settlement, then clean up. If it is lost, preserve diagnostics and stop for operator recovery; a new Work is not the old MCP owner. Never replay unknown input. |", + "+| `input_owner_conflict`, `runtime_cleanup_required` or old owner not released | Return to the original live Work, settle pending receipts, close its owned windows, call `instant_stop`, verify all cleanup conditions and release that native session. Inspect `cleanup_pending` diagnostics and resolve the specific blocker before retrying cleanup only. If the original owner is unavailable, retain evidence and obtain Runtime maintenance help. Do not steal ownership, delete queues/locks/session records or repeatedly reconnect/restart to bypass the gate. |", + "+", + "+After Pi disconnects or reports an owner conflict, both", + "+`instant_recovery_preview` and `instant_recover_session` remain **operator-only**;", + "+Pi must not call them to take over the old session or continue its workflow.", + "+This restriction does not remove Main's bound-image review/continue path in", + "+the original live session: that path retains the original job and existing", + "+input gates. For settlement diagnostics and migration from Runtime 0.1.8, see", + "+the [Runtime settlement recovery guide](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/RUNTIME_018_SETTLEMENT_RECOVERY.md).", + "+Runtime 0.1.11 also fixes release of an initialized HTTP owner before any", + "+Runtime start attempt. DELETE can accept `cleanup_verified=false` only when the", + "+server's lifecycle evidence proves no start attempt, attached resources or", + "+pending work. Initial phase or `host_alive=false` alone is insufficient. Any", + "+attempted/failed start, active or unknown work, or unverified cleanup must follow", + "+the existing cleanup gate; the `cleanup_verified=true` path is unchanged. This", + "+exception releases an unused transport owner, not a task or recovery workflow.", + "+Do not start/stop a host or invoke recovery merely to make an unused owner", + "+releasable.", + "+", + "+Runtime 0.1.10 extends `task_plan` input-settlement validation to proven rejected", + "+control requests and successful `observe` requests. A rejection must have its", + "+original durable before-dispatch proof; an error string alone does not prove", + "+zero input. Successful observation must bind the original capture and ledger", + "+evidence. `recover` and `resume_pre_dispatch` settlement remain unqualified;", + "+this release does not claim support for them. Follow the guide to verify", + "+retained evidence through the maintained settlement entry point.", + "+Keep original evidence; an unknown settlement is not proof that no input ran.", + "+", + "+## Version changes and installation scope", + "+", + "+0.0.8 updates package metadata and bilingual installation/recovery guidance,", + "+and recommends Runtime 0.1.11 for the never-started-owner release fix. Exact", + "+checks and remaining qualification are recorded in the [Runtime release validation record](https://github.com/Desolate-Jix/agent-gui-runtime/blob/instant-v0.1.11/docs/releases/EXECUTION_0111_20261028.md).", + "+Runtime fixes are delivered separately; this wheel", + "+does not change connection configuration, permissions or input execution.", + "+Existing 0.0.3/0.0.4/0.0.5/0.0.6/0.0.7 `runtime_url` and `connection_token` settings need no", + "+migration. The historical 0.0.2 stdio launcher and earlier release artifacts", + "+remain intact.", + "+When migrating from 0.0.2, configure Runtime paths, profiles, provider keys and", + "+local-input settings at the independent service; explicitly fill the two", + "+connector settings. Never reinterpret an old provider key as a connection token.", + "+", + "+Author publication, wheel/preflight checks, protocol checks, installed GUI", + "+execution and independent catalog approval are separate results. Read the exact", + "+scope and version of each linked result. Installing this connector does not", + "+establish acceptance of a particular Runtime/Amadeus combination.", + "+", + "+The connector code is ISC. Runtime and third-party licensing remain separate.", + "+The wheel embeds no user data, real profiles, secrets, model weights or Runtime", + "+payload." + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/RECORD", + "status": "added", + "before": null, + "after": "c63c3fc429b2adf6df2564da040796fa2c09bcb9835bd52e67eb6b8a5fcaf86d", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=oB9HQC_nHfZhQyacOyuyBGX2L1uE0YdrQEY4I_eglQU,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=u2WP7tL4rnHMFW2S_zhCvV5EBNEph57XvejRHBJjXOo,2689", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=8P4Sgi9_eV-g4Zm2mzLOIAiW00iOQ-1qJH-IhStgN_o,11222", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=qtDPy8UwU89K_xSPGkbovGIUM3Bduh-pa38gxvwUbLY,24383", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/METADATA,sha256=tgTje6yobiRPr_Q7JHPKGHs5PGLOY0WzYrfpahTYI2w,19672", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.8.dist-info/RECORD,," + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/WHEEL", + "status": "added", + "before": null, + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,5 @@", + "+Wheel-Version: 1.0", + "+Generator: setuptools (83.0.0)", + "+Root-Is-Purelib: true", + "+Tag: py3-none-any", + "+" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/entry_points.txt", + "status": "added", + "before": null, + "after": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,2 @@", + "+[amadeus.extensions]", + "+io.github.desolate-jix.gui-runtime = amadeus_agent_gui" + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/licenses/LICENSE", + "status": "added", + "before": null, + "after": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,15 @@", + "+ISC License", + "+", + "+Copyright (c) 2026 Desolate-Jix", + "+", + "+Permission to use, copy, modify, and/or distribute this software for any", + "+purpose with or without fee is hereby granted, provided that the above", + "+copyright notice and this permission notice appear in all copies.", + "+", + "+THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES", + "+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF", + "+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR", + "+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES", + "+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN", + "+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF", + "+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." + ] + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/top_level.txt", + "status": "added", + "before": null, + "after": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a", + "diff_truncated": false, + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1 @@", + "+amadeus_agent_gui" + ] + } + ], + "next_step": "Attach this report to the submission PR; ownership, rights, runtime and independent review remain required.", + "not_checked": [ + "runtime", + "native_theme", + "remote_services", + "catalog_review" + ], + "ok": true, + "review_status": "not_reviewed" +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/wheel-inventory.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/wheel-inventory.json new file mode 100644 index 0000000..0be4395 --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.8/wheel-inventory.json @@ -0,0 +1,52 @@ +[ + { + "path": "amadeus_agent_gui/__init__.py", + "bytes": 106, + "sha256": "a01f47402fe71df66143269c3b2bb20465f62f5b84d1876b40463823f7a09505" + }, + { + "path": "amadeus_agent_gui/amadeus-extension.json", + "bytes": 2689, + "sha256": "bb658feed2f8ae71cc156d92ff3842bd5e4404d129879ed7bde8d11c12635cea" + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "bytes": 11222, + "sha256": "f0fe12822f7f795fa0e199b69b32ce200896d3488e43ed6a247f88852b6037fa" + }, + { + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "bytes": 24383, + "sha256": "aad0cfcbc53053cf4aff148f1a46e8bc621433705dba1fa96b7f20c6fc146cb6" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/licenses/LICENSE", + "bytes": 743, + "sha256": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/METADATA", + "bytes": 19672, + "sha256": "b604e37baca86e244faff43b2473ca187b393c62ce6345b362b7e96a14d8236c" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/WHEEL", + "bytes": 91, + "sha256": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/entry_points.txt", + "bytes": 76, + "sha256": "0283eb1d7d60e05afa7ae39816dc50817462b5672a5448e650efeb3752aed226" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/top_level.txt", + "bytes": 18, + "sha256": "16ed263ba3dc6c8a139e749f9c89687f20d5d849e8ee579e405d3c995a23c58a" + }, + { + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/RECORD", + "bytes": 1003, + "sha256": "c63c3fc429b2adf6df2564da040796fa2c09bcb9835bd52e67eb6b8a5fcaf86d" + } +]