diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/BUILD_VERIFICATION.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/BUILD_VERIFICATION.json new file mode 100644 index 0000000..007ac3b --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/BUILD_VERIFICATION.json @@ -0,0 +1,103 @@ +{ + "schema": "connector_build_verification.v1", + "version": "0.0.9", + "source_base_commit": "94edaf68e8bf1901e2af0640de1001f4a7e91338", + "scope": "Customer-facing copy and version metadata only; no Runtime code", + "build": { + "python": "3.12.10", + "setuptools": "83.0.0", + "wheel": "0.47.0", + "source_date_epoch": 1793923200, + "reproducible_two_builds": true + }, + "checks": { + "wheel_record": "passed", + "packaged_resources_match_source": "passed", + "manifest_connection_and_permission_contract_unchanged_from_008": true, + "skill_changes_are_version_references_only": true, + "effective_dependencies": [], + "host_contract_tests_passed": 2 + }, + "not_run": [ + "installed 0.0.9 GUI task", + "paid model API benchmark" + ], + "review_status": "not_reviewed", + "previous_wheel_sha256": "2f532faf152faf2e1e3ab3140e1097487689be34d638e4ee86539e06886cbcaf", + "wheel_members": [ + "amadeus_agent_gui/__init__.py", + "amadeus_agent_gui/amadeus-extension.json", + "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "amadeus_agent_gui_runtime-0.0.9.dist-info/licenses/LICENSE", + "amadeus_agent_gui_runtime-0.0.9.dist-info/METADATA", + "amadeus_agent_gui_runtime-0.0.9.dist-info/WHEEL", + "amadeus_agent_gui_runtime-0.0.9.dist-info/entry_points.txt", + "amadeus_agent_gui_runtime-0.0.9.dist-info/top_level.txt", + "amadeus_agent_gui_runtime-0.0.9.dist-info/RECORD" + ], + "source_files": [ + { + "path": ".gitignore", + "sha256": "f7b25451197ebb6397c8ec7ca1bd69369152419579a831a67009dea277edc9a9" + }, + { + "path": "LICENSE", + "sha256": "0f8e85cb17827a6e987074fe13521ac62d736264ed62ab2331122305fb963608" + }, + { + "path": "README.md", + "sha256": "95a3ce93f41e073b1118d79292838ec4ec491ee464fabe6559fab6dfb5eebce8" + }, + { + "path": "README.stdio-0.0.2.md", + "sha256": "5567cdaa83e9205fa567c72375fd0147ab981cc4e3df1f6c9997907205f9a483" + }, + { + "path": "README.stdio-0.0.2.zh-CN.md", + "sha256": "a06e622a6e42b578bb43cef2f77356f142b97f1fe98cf0b78439b3a81cdaf195" + }, + { + "path": "README.zh-CN.md", + "sha256": "6b40a6ca9e0d2a70f7429de3198e5f601c9d3c21a056de5298c23b3070605111" + }, + { + "path": "pyproject.toml", + "sha256": "b048815918b2815386b8bbe16718215c197299208e12bbaec3e8d00ffb1862b7" + }, + { + "path": "src/amadeus_agent_gui/__init__.py", + "sha256": "a7709f98c9c8bd6a3263e0bb50c076634b0099a621b1b7b6da93ad7f98c4f250" + }, + { + "path": "src/amadeus_agent_gui/amadeus-extension.json", + "sha256": "a8e7e5332b4265e8a73219a5aa8ab930b6b813ceefb5b0efec70501b5d0361b3" + }, + { + "path": "src/amadeus_agent_gui/skills/gui-execution/SKILL.md", + "sha256": "78afa9469a853b662926ad07bc0de3596746b1bcec25e805d5825616a1e33ea3" + }, + { + "path": "src/amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "sha256": "eaeec99deaa36a2db60d8b7c389d6dc5f0590951ef2c9504ee6cdccb529cf539" + }, + { + "path": "tests/test_host_contract.py", + "sha256": "3ba500ab6453da2659201fdd1c99e4895268ec0e0c32ade658e02d7709b4600e" + } + ], + "artifacts": [ + { + "name": "amadeus_agent_gui_runtime-0.0.9-py3-none-any.whl", + "bytes": 28977, + "sha256": "e612dff39d5650e9235eb9a36eb1918b00cc0724fd725aac88bda7f4da5e5a3b" + }, + { + "name": "extension-source-0.0.9.zip", + "bytes": 54649, + "sha256": "a6d5b91b4496aab73aa90154e24c6a9c751ba8dbfde919766daac790ecdf6814" + } + ], + "release_source_commit": "beebb9de51dd5494a376647e3f216836ab8294a3", + "source_files_match_release_commit": true +} diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/README.md b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/README.md new file mode 100644 index 0000000..6a80c8d --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/README.md @@ -0,0 +1,31 @@ +# Author submission: Windows Desktop Automation 0.0.9 + +This update replaces technical-first store copy with a customer-facing English/Chinese title and introduction: what GUI Runtime does, why to install it, desktop task examples, and setup requirements. The proposed display names are **Windows Desktop Automation (GUI Runtime)** / **Windows 桌面操作(GUI Runtime)**. This remains a connector to a separately installed and started Runtime, not a complete bundled desktop automation service. + +- [Release and versioned assets](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.9) +- [Exact wheel](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.9/amadeus_agent_gui_runtime-0.0.9-py3-none-any.whl): 28,977 bytes; SHA-256 `e612dff39d5650e9235eb9a36eb1918b00cc0724fd725aac88bda7f4da5e5a3b`. +- [Source ZIP](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.9/extension-source-0.0.9.zip) and [exact source commit](https://github.com/Desolate-Jix/agent-gui-runtime/commit/beebb9de51dd5494a376647e3f216836ab8294a3). +- [English features/setup](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.9/integrations/amadeus/agent-review-instant/README.md) / [中文功能与安装说明](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.9/integrations/amadeus/agent-review-instant/README.zh-CN.md). +- [Release scope and rebuild command](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.9/docs/releases/AMADEUS_CONNECTOR_009_20261106.md). + +## Checks and scope + +[Fixed preflight](preflight.json) passes package format, target Host and curated policy. It uses Host `1840c8e4f646992ddaebea3139c8895f29743a8f` and Windows CPython 3.12.10. Independent human/runtime review remains pending (`not_reviewed`). [Build verification](BUILD_VERIFICATION.json) records two identical offline wheel builds, wheel RECORD and packaged source correspondence, final commit binding, no effective dependencies, and two passing Host contract checks. All six published assets were anonymously downloaded and matched their frozen hashes. + +[Actual wheel diff from approved 0.0.8](candidate-diff-from-0.0.8.json) covers the new display name/description, bilingual README in metadata, homepage/version references, version-only Skill/reference edits and wheel metadata. The package ID, transport, connection fields, permissions, Host engines and contribution declarations are unchanged. Execution/review policy is unchanged. Runtime stays 0.1.11; this submission publishes no Runtime code. + +Existing 0.0.8 configuration needs no migration. Runtime must still be installed/configured/started/stopped independently. The supported model API route sends screenshots/task information to the chosen providers and can incur fees. Local connection tokens are separate from model credentials. Local input authorization and operator-only disconnected recovery remain required. + +No new installed 0.0.9 GUI flow or paid model API benchmark was run for this wording-only release. Existing Runtime examples and historical Amadeus/Pi evidence remain labeled by their actual versions and scope in the linked guide; none is claimed as a new 0.0.9 acceptance result. + +## Ownership and rights + +Reuse the established publisher/maintainer and ISC code-rights evidence from [review #11](https://github.com/Code-Amadeus/Amadeus-Extensions/pull/11) and [the approved 0.0.8 record](../../../packages/io.github.desolate-jix.gui-runtime/0.0.8.json). Publisher control and bundled assets have not changed; no new images, sound, fonts, native binaries or dependencies are included. [Versioned license](https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.9/integrations/amadeus/agent-review-instant/LICENSE). + +This PR supplies author evidence only. It does not modify formal catalog package records, invent reviewer/approval facts or publish an index. Please review these exact bytes and prepare the maintainer-owned catalog/publication change. + +## 中文摘要 + +本次把插件名称和说明改为面向用户的双语文案,先讲能做什么、为什么安装、适用场景,再说明独立 Runtime 和模型 API 等准备条件。仅更新文案及版本引用,不改变执行能力、权限、连接配置或恢复边界,已有 0.0.8 配置无需迁移。 + +固定预检、两次一致构建、包体与源码核对、两项 Host 合同检查及六项公开资产下载校验通过。本次未重跑安装态 GUI 流程或付费 API benchmark。0.0.8 的历史批准不作为 0.0.9 的批准;正式目录记录和商店发布仍由维护者独立审核后处理。 diff --git a/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/candidate-diff-from-0.0.8.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/candidate-diff-from-0.0.8.json new file mode 100644 index 0000000..a171a7f --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/candidate-diff-from-0.0.8.json @@ -0,0 +1,886 @@ +{ + "changes": [ + { + "after": "a7709f98c9c8bd6a3263e0bb50c076634b0099a621b1b7b6da93ad7f98c4f250", + "before": "a01f47402fe71df66143269c3b2bb20465f62f5b84d1876b40463823f7a09505", + "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.8\"", + "+__version__ = \"0.0.9\"" + ] + }, + { + "after": "a8e7e5332b4265e8a73219a5aa8ab930b6b813ceefb5b0efec70501b5d0361b3", + "before": "bb658feed2f8ae71cc156d92ff3842bd5e4404d129879ed7bde8d11c12635cea", + "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.8\",", + "+ \"version\": \"0.0.9\",", + " \"display_name\": {", + "- \"en\": \"Windows GUI Runtime Connector\",", + "- \"zh-CN\": \"Windows GUI Runtime \u8fde\u63a5\u5668\"", + "+ \"en\": \"Windows Desktop Automation (GUI Runtime)\",", + "+ \"zh-CN\": \"Windows \u684c\u9762\u64cd\u4f5c\uff08GUI Runtime\uff09\"", + " },", + " \"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\": \"\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.11\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\"", + "+ \"en\": \"Let Amadeus handle repetitive tasks in Windows apps: web searches, text editing and saving, and folder navigation. GUI Runtime clicks and types using screenshots, checks results, and can return uncertain steps to Amadeus for review. This extension connects Amadeus to Runtime; install and start Runtime separately and configure model APIs. No local GPU needed. Screenshots and task information go to your chosen model services; API fees may apply.\",", + "+ \"zh-CN\": \"\u8ba9 Amadeus \u5e2e\u4f60\u5b8c\u6210 Windows \u8f6f\u4ef6\u4e2d\u7684\u91cd\u590d\u64cd\u4f5c\uff1a\u7f51\u9875\u641c\u7d22\u3001\u6587\u672c\u7f16\u8f91\u4e0e\u4fdd\u5b58\u3001\u6587\u4ef6\u5939\u5bfc\u822a\u3002GUI Runtime \u6839\u636e\u622a\u56fe\u70b9\u51fb\u548c\u8f93\u5165\u3001\u68c0\u67e5\u7ed3\u679c\uff1b\u9047\u5230\u65e0\u6cd5\u786e\u8ba4\u7684\u6b65\u9aa4\uff0c\u53ef\u4ea4\u56de Amadeus \u5ba1\u6838\u3002\u672c\u6269\u5c55\u8d1f\u8d23\u8fde\u63a5 Amadeus \u4e0e Runtime\uff1b\u4f7f\u7528\u524d\u9700\u5355\u72ec\u5b89\u88c5\u5e76\u542f\u52a8 Runtime\u3001\u914d\u7f6e\u6a21\u578b API\u3002\u65e0\u9700\u672c\u5730 GPU\uff1b\u622a\u56fe\u548c\u4efb\u52a1\u4fe1\u606f\u4f1a\u53d1\u9001\u7ed9\u4f60\u9009\u62e9\u7684\u6a21\u578b\u670d\u52a1\uff0cAPI \u53ef\u80fd\u6536\u8d39\u3002\"", + " },", + "- \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.8/integrations/amadeus/agent-review-instant/README.md\",", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.9/integrations/amadeus/agent-review-instant/README.md\",", + " \"repository\": \"https://github.com/Desolate-Jix/agent-gui-runtime\",", + " \"author\": {", + " \"name\": \"Desolate-Jix\"" + ] + }, + { + "after": "78afa9469a853b662926ad07bc0de3596746b1bcec25e805d5825616a1e33ea3", + "before": "f0fe12822f7f795fa0e199b69b32ce200896d3488e43ed6a247f88852b6037fa", + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -8,7 +8,7 @@", + " 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;", + "+shell route. Connector 0.0.9 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.", + " ", + "@@ -85,13 +85,13 @@", + " ", + " 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;", + "+cleanup before disabling/removing. Connector 0.0.9 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.", + " ", + " ## \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.8 \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.9 \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.11\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", + " ", + "@@ -103,4 +103,4 @@", + " ", + " \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.11/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.8 \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\uff0f0.0.7 \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.9 \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\uff0f0.0.7 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002" + ] + }, + { + "after": "eaeec99deaa36a2db60d8b7c389d6dc5f0590951ef2c9504ee6cdccb529cf539", + "before": "aad0cfcbc53053cf4aff148f1a46e8bc621433705dba1fa96b7f20c6fc146cb6", + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "modified", + "text_diff": [ + "--- ", + "+++ ", + "@@ -277,14 +277,14 @@", + " ", + " ## Evidence boundary / \u8bc1\u636e\u8fb9\u754c", + " ", + "-Connector 0.0.8 updates installation/recovery guidance and metadata; Runtime", + "+Connector 0.0.9 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)", + "+0.0.9/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.", + " ", + "-\u8fde\u63a5\u5668 0.0.8 \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\uff0f0.0.7 \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.8\uff0f0.1.11 \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.9 \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\uff0f0.0.7 \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.9\uff0f0.1.11 \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": "b604e37baca86e244faff43b2473ca187b393c62ce6345b362b7e96a14d8236c", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/METADATA", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,261 +0,0 @@", + "-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", + "-", + "-[\u7b80\u4f53\u4e2d\u6587](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\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.8 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.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." + ] + }, + { + "after": null, + "before": "c63c3fc429b2adf6df2564da040796fa2c09bcb9835bd52e67eb6b8a5fcaf86d", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.8.dist-info/RECORD", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1,10 +0,0 @@", + "-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,," + ] + }, + { + "after": null, + "before": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.8.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.8.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.8.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.8.dist-info/top_level.txt", + "status": "removed", + "text_diff": [ + "--- ", + "+++ ", + "@@ -1 +0,0 @@", + "-amadeus_agent_gui" + ] + }, + { + "after": "6a683e9bf5e4eb6fbde390d460166bc6822e0e595a2d5c41653e8b016774df55", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.9.dist-info/METADATA", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,287 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.9", + "+Summary: Connect Amadeus to GUI Runtime for Windows desktop tasks with visual checks and agent review", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.9/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", + "+", + "+# Windows Desktop Automation (GUI Runtime)", + "+", + "+[\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md)", + "+", + "+**Let Amadeus handle repetitive clicks, typing and copy-paste.**", + "+", + "+Once installed and configured, this extension lets you describe a desktop task to Amadeus and have it operate Windows apps through GUI Runtime. Runtime is the local program that captures screenshots, locates targets, clicks, types and checks results. This extension connects those capabilities to Amadeus.", + "+", + "+## Why install it", + "+", + "+- **Complete tasks across multiple steps.** Chain actions such as opening a page, entering content and moving to the next step, reducing repetitive manual work.", + "+- **Work through the app's interface.** Locate buttons and input fields from screenshots for tasks performed on the desktop, without writing a separate integration for every target app.", + "+- **Return uncertain steps for review.** Amadeus's execution agent can inspect the relevant screenshot when a step needs review. If the original task can still continue, an approved review lets it resume without starting over.", + "+", + "+## What can you use it for?", + "+", + "+These task examples come from existing controlled Runtime tests:", + "+", + "+- **Browser:** enter a search term, inspect the results and open the target page.", + "+- **Notepad:** enter or edit text, then save it to a specified file.", + "+- **7-Zip:** open a folder, enter a subfolder and return to its parent.", + "+", + "+It is intended for people who repeatedly click, enter text, or inspect pages and folders in Windows apps. Different apps and interfaces still need validation; these Runtime examples do not mean every scenario has been verified with the current Amadeus extension. Direct Amadeus/Pi evidence includes 7-Zip folder navigation and review/continue in historical versions. See the compatibility section below for exact versions and scope.", + "+", + "+## What do you need?", + "+", + "+- **A Windows computer and a compatible Amadeus build.** This extension connects to the Pi execution agent.", + "+- **GUI Runtime, installed and started separately.** The extension does not include Runtime or start it for you.", + "+- **Model API and local connection configuration.** This extension uses external model APIs, so no local GPU or model-weight download is needed. Screenshots and task information go to your chosen model services, which may charge API fees. Configure the local connection token separately from model API keys.", + "+", + "+Configure the connection and explicitly authorize desktop input before starting a task. Disabling or uninstalling the extension does not stop or uninstall Runtime, or delete its data. Installation, configuration and version compatibility details follow.", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.9 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.9)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.9-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.9/amadeus_agent_gui_runtime-0.0.9-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.9.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.9/extension-source-0.0.9.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.9/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.9 does not update Runtime 0.1.11.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.11 + connector 0.0.9 | 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.9/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.9 | 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.9 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.9/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.9/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.9** makes the store title, description and bilingual introduction easier to understand: what desktop tasks Runtime can help with, why to install it, and what setup is needed. Connection fields, permissions, HTTP transport and execution/review behavior are unchanged from 0.0.8. Existing 0.0.8 settings need no migration. Runtime remains a separate installation; 0.1.11 is still recommended. This is a documentation/metadata update, with no new GUI performance or compatibility claim.", + "+", + "+Previous release:", + "+", + "+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." + ] + }, + { + "after": "22adabe160ae5d3b8713a13c44c87220556259dae52b0aec1f1d3e5624a33d48", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.9.dist-info/RECORD", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=p3CfmMnIvWoyY-C7UMB2Y0sAmaYhsbe22pOtf5jE8lA,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=qOflMytCZeinMhmlqoq5MLa4E87vtbDv7HBQG10DYbM,2621", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=eK-pRpqFO2YpJq0HvA3jWWdGsbzsJegF1YJWFqHjPqM,11222", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=6u7Jneqjai22DYt8OJ1txfBZCVHvLJUE7mzcy1Kc9Tk,24383", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/METADATA,sha256=amg-m_Xk62-945DUYBZrxoIuDllaLVxBZT6LAWd031U,22292", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/RECORD,," + ] + }, + { + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.9.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.9.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.9.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.9.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.9/preflight.json b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/preflight.json new file mode 100644 index 0000000..649208c --- /dev/null +++ b/catalog/review-candidates/io.github.desolate-jix.gui-runtime/0.0.9/preflight.json @@ -0,0 +1,946 @@ +{ + "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": "e612dff39d5650e9235eb9a36eb1918b00cc0724fd725aac88bda7f4da5e5a3b", + "version": "0.0.9" + }, + "inventory": [ + { + "after": "a7709f98c9c8bd6a3263e0bb50c076634b0099a621b1b7b6da93ad7f98c4f250", + "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.9\"" + ] + }, + { + "after": "a8e7e5332b4265e8a73219a5aa8ab930b6b813ceefb5b0efec70501b5d0361b3", + "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.9\",", + "+ \"display_name\": {", + "+ \"en\": \"Windows Desktop Automation (GUI Runtime)\",", + "+ \"zh-CN\": \"Windows \u684c\u9762\u64cd\u4f5c\uff08GUI Runtime\uff09\"", + "+ },", + "+ \"description\": {", + "+ \"en\": \"Let Amadeus handle repetitive tasks in Windows apps: web searches, text editing and saving, and folder navigation. GUI Runtime clicks and types using screenshots, checks results, and can return uncertain steps to Amadeus for review. This extension connects Amadeus to Runtime; install and start Runtime separately and configure model APIs. No local GPU needed. Screenshots and task information go to your chosen model services; API fees may apply.\",", + "+ \"zh-CN\": \"\u8ba9 Amadeus \u5e2e\u4f60\u5b8c\u6210 Windows \u8f6f\u4ef6\u4e2d\u7684\u91cd\u590d\u64cd\u4f5c\uff1a\u7f51\u9875\u641c\u7d22\u3001\u6587\u672c\u7f16\u8f91\u4e0e\u4fdd\u5b58\u3001\u6587\u4ef6\u5939\u5bfc\u822a\u3002GUI Runtime \u6839\u636e\u622a\u56fe\u70b9\u51fb\u548c\u8f93\u5165\u3001\u68c0\u67e5\u7ed3\u679c\uff1b\u9047\u5230\u65e0\u6cd5\u786e\u8ba4\u7684\u6b65\u9aa4\uff0c\u53ef\u4ea4\u56de Amadeus \u5ba1\u6838\u3002\u672c\u6269\u5c55\u8d1f\u8d23\u8fde\u63a5 Amadeus \u4e0e Runtime\uff1b\u4f7f\u7528\u524d\u9700\u5355\u72ec\u5b89\u88c5\u5e76\u542f\u52a8 Runtime\u3001\u914d\u7f6e\u6a21\u578b API\u3002\u65e0\u9700\u672c\u5730 GPU\uff1b\u622a\u56fe\u548c\u4efb\u52a1\u4fe1\u606f\u4f1a\u53d1\u9001\u7ed9\u4f60\u9009\u62e9\u7684\u6a21\u578b\u670d\u52a1\uff0cAPI \u53ef\u80fd\u6536\u8d39\u3002\"", + "+ },", + "+ \"homepage\": \"https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.9/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": "78afa9469a853b662926ad07bc0de3596746b1bcec25e805d5825616a1e33ea3", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/SKILL.md", + "status": "added", + "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.9 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.9 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.", + "+", + "+## \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.9 \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.11\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", + "+", + "+Runtime 0.1.11 \u53e6\u4fee\u590d\u4ece\u672a\u5c1d\u8bd5\u542f\u52a8 Runtime \u7684\u5df2\u521d\u59cb\u5316 HTTP \u6240\u6709\u8005\u65e0\u6cd5\u91ca\u653e\u7684\u95ee\u9898\u3002\u4ec5\u5f53\u670d\u52a1\u7aef\u751f\u547d\u5468\u671f\u8bc1\u636e\u8bc1\u660e\u4ece\u672a\u5c1d\u8bd5 start\u3001\u672a\u9644\u7740\u8d44\u6e90\u4e14\u65e0 pending \u65f6\uff0cDELETE \u624d\u5141\u8bb8 `cleanup_verified=false`\uff1b\u4ec5\u6709\u521d\u59cb phase \u6216 `host_alive=false` \u4e0d\u8db3\u4ee5\u653e\u884c\u3002\u5df2\u5c1d\u8bd5\uff0f\u5931\u8d25\u7684\u542f\u52a8\u3001\u6d3b\u52a8\u6216\u672a\u77e5\u5de5\u4f5c\u3001\u672a\u6838\u9a8c\u6e05\u7406\u4ecd\u8d70\u539f\u95e8\u7981\uff0c`cleanup_verified=true` \u8def\u7ebf\u4e0d\u53d8\u3002\u8fd9\u53ea\u91ca\u653e\u672a\u4f7f\u7528\u7684\u4f20\u8f93\u6240\u6709\u8005\uff0c\u4e0d\u7ed3\u7b97\u4efb\u52a1\u6216\u6062\u590d\u5de5\u4f5c\u6d41\uff1b\u4e0d\u8981\u4ec5\u4e3a\u91ca\u653e\u672a\u4f7f\u7528 owner \u800c\u542f\u52a8\uff0f\u505c\u6b62\u5bbf\u4e3b\u6216\u8c03\u7528\u6062\u590d\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.11/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.9 \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\uff0f0.0.7 \u8fde\u63a5\u8bbe\u7f6e\u65e0\u9700\u8fc1\u79fb\uff0c\u8f93\u5165\u95e8\u7981\u53ca\u6743\u9650\u4e0d\u53d8\u3002" + ] + }, + { + "after": "eaeec99deaa36a2db60d8b7c389d6dc5f0590951ef2c9504ee6cdccb529cf539", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui/skills/gui-execution/references/runtime.md", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,290 @@", + "+# 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.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.", + "+", + "+\u63a8\u8350 Runtime 0.1.11\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", + "+", + "+## Never-started HTTP owner / \u672a\u542f\u52a8 HTTP \u6240\u6709\u8005", + "+", + "+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 \u53e6\u4fee\u590d\u4ece\u672a\u5c1d\u8bd5\u542f\u52a8 Runtime \u7684\u5df2\u521d\u59cb\u5316 HTTP \u6240\u6709\u8005\u65e0\u6cd5\u91ca\u653e\u7684\u95ee\u9898\u3002\u4ec5\u5f53\u670d\u52a1\u7aef\u751f\u547d\u5468\u671f\u8bc1\u636e\u8bc1\u660e\u4ece\u672a\u5c1d\u8bd5 start\u3001\u672a\u9644\u7740\u8d44\u6e90\u4e14\u65e0 pending \u65f6\uff0cDELETE \u624d\u5141\u8bb8 `cleanup_verified=false`\uff1b\u4ec5\u6709\u521d\u59cb phase \u6216 `host_alive=false` \u4e0d\u8db3\u4ee5\u653e\u884c\u3002\u5df2\u5c1d\u8bd5\uff0f\u5931\u8d25\u7684\u542f\u52a8\u3001\u6d3b\u52a8\u6216\u672a\u77e5\u5de5\u4f5c\u3001\u672a\u6838\u9a8c\u6e05\u7406\u4ecd\u8d70\u539f\u95e8\u7981\uff0c`cleanup_verified=true` \u8def\u7ebf\u4e0d\u53d8\u3002\u8fd9\u53ea\u91ca\u653e\u672a\u4f7f\u7528\u7684\u4f20\u8f93\u6240\u6709\u8005\uff0c\u4e0d\u7ed3\u7b97\u4efb\u52a1\u6216\u6062\u590d\u5de5\u4f5c\u6d41\uff1b\u4e0d\u8981\u4ec5\u4e3a\u91ca\u653e\u672a\u4f7f\u7528 owner \u800c\u542f\u52a8\uff0f\u505c\u6b62\u5bbf\u4e3b\u6216\u8c03\u7528\u6062\u590d\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.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 \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.11/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.9 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.9/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.", + "+", + "+\u8fde\u63a5\u5668 0.0.9 \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\uff0f0.0.7 \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.9\uff0f0.1.11 \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": "6a683e9bf5e4eb6fbde390d460166bc6822e0e595a2d5c41653e8b016774df55", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.9.dist-info/METADATA", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,287 @@", + "+Metadata-Version: 2.4", + "+Name: amadeus-agent-gui-runtime", + "+Version: 0.0.9", + "+Summary: Connect Amadeus to GUI Runtime for Windows desktop tasks with visual checks and agent review", + "+License-Expression: ISC", + "+Project-URL: Homepage, https://github.com/Desolate-Jix/agent-gui-runtime/blob/amadeus-extension-v0.0.9/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", + "+", + "+# Windows Desktop Automation (GUI Runtime)", + "+", + "+[\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md)", + "+", + "+**Let Amadeus handle repetitive clicks, typing and copy-paste.**", + "+", + "+Once installed and configured, this extension lets you describe a desktop task to Amadeus and have it operate Windows apps through GUI Runtime. Runtime is the local program that captures screenshots, locates targets, clicks, types and checks results. This extension connects those capabilities to Amadeus.", + "+", + "+## Why install it", + "+", + "+- **Complete tasks across multiple steps.** Chain actions such as opening a page, entering content and moving to the next step, reducing repetitive manual work.", + "+- **Work through the app's interface.** Locate buttons and input fields from screenshots for tasks performed on the desktop, without writing a separate integration for every target app.", + "+- **Return uncertain steps for review.** Amadeus's execution agent can inspect the relevant screenshot when a step needs review. If the original task can still continue, an approved review lets it resume without starting over.", + "+", + "+## What can you use it for?", + "+", + "+These task examples come from existing controlled Runtime tests:", + "+", + "+- **Browser:** enter a search term, inspect the results and open the target page.", + "+- **Notepad:** enter or edit text, then save it to a specified file.", + "+- **7-Zip:** open a folder, enter a subfolder and return to its parent.", + "+", + "+It is intended for people who repeatedly click, enter text, or inspect pages and folders in Windows apps. Different apps and interfaces still need validation; these Runtime examples do not mean every scenario has been verified with the current Amadeus extension. Direct Amadeus/Pi evidence includes 7-Zip folder navigation and review/continue in historical versions. See the compatibility section below for exact versions and scope.", + "+", + "+## What do you need?", + "+", + "+- **A Windows computer and a compatible Amadeus build.** This extension connects to the Pi execution agent.", + "+- **GUI Runtime, installed and started separately.** The extension does not include Runtime or start it for you.", + "+- **Model API and local connection configuration.** This extension uses external model APIs, so no local GPU or model-weight download is needed. Screenshots and task information go to your chosen model services, which may charge API fees. Configure the local connection token separately from model API keys.", + "+", + "+Configure the connection and explicitly authorize desktop input before starting a task. Disabling or uninstalling the extension does not stop or uninstall Runtime, or delete its data. Installation, configuration and version compatibility details follow.", + "+", + "+## Downloads and compatibility", + "+", + "+- [Connector 0.0.9 release](https://github.com/Desolate-Jix/agent-gui-runtime/releases/tag/amadeus-extension-v0.0.9)", + "+- [Connector wheel: amadeus_agent_gui_runtime-0.0.9-py3-none-any.whl](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.9/amadeus_agent_gui_runtime-0.0.9-py3-none-any.whl)", + "+- [Connector source: extension-source-0.0.9.zip](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.9/extension-source-0.0.9.zip)", + "+- [Author preflight: preflight.json](https://github.com/Desolate-Jix/agent-gui-runtime/releases/download/amadeus-extension-v0.0.9/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.9 does not update Runtime 0.1.11.", + "+", + "+| Combination or capability | Supported scope and evidence |", + "+| --- | --- |", + "+| Runtime 0.1.11 + connector 0.0.9 | 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.9/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.9 | 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.9 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.9/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.9/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.9** makes the store title, description and bilingual introduction easier to understand: what desktop tasks Runtime can help with, why to install it, and what setup is needed. Connection fields, permissions, HTTP transport and execution/review behavior are unchanged from 0.0.8. Existing 0.0.8 settings need no migration. Runtime remains a separate installation; 0.1.11 is still recommended. This is a documentation/metadata update, with no new GUI performance or compatibility claim.", + "+", + "+Previous release:", + "+", + "+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." + ] + }, + { + "after": "22adabe160ae5d3b8713a13c44c87220556259dae52b0aec1f1d3e5624a33d48", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.9.dist-info/RECORD", + "status": "added", + "text_diff": [ + "--- ", + "+++ ", + "@@ -0,0 +1,10 @@", + "+amadeus_agent_gui/__init__.py,sha256=p3CfmMnIvWoyY-C7UMB2Y0sAmaYhsbe22pOtf5jE8lA,106", + "+amadeus_agent_gui/amadeus-extension.json,sha256=qOflMytCZeinMhmlqoq5MLa4E87vtbDv7HBQG10DYbM,2621", + "+amadeus_agent_gui/skills/gui-execution/SKILL.md,sha256=eK-pRpqFO2YpJq0HvA3jWWdGsbzsJegF1YJWFqHjPqM,11222", + "+amadeus_agent_gui/skills/gui-execution/references/runtime.md,sha256=6u7Jneqjai22DYt8OJ1txfBZCVHvLJUE7mzcy1Kc9Tk,24383", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/licenses/LICENSE,sha256=D46FyxeCem6YcHT-E1Iaxi1zYmTtYqsjMRIjBfuWNgg,743", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/METADATA,sha256=amg-m_Xk62-945DUYBZrxoIuDllaLVxBZT6LAWd031U,22292", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/entry_points.txt,sha256=AoPrHX1g4Fr6euOYFtxQgXRitWcqVEjmUO_rN1Ku0iY,76", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/top_level.txt,sha256=Fu0mO6PcbIoTnnSfnIlofyDV2Eno7leeQF08mVojxYo,18", + "+amadeus_agent_gui_runtime-0.0.9.dist-info/RECORD,," + ] + }, + { + "after": "2b6eb4118ce7cd7b09601406aa623c553c4476265836f0d9c16f5c061f7efcc0", + "before": null, + "diff_truncated": false, + "path": "amadeus_agent_gui_runtime-0.0.9.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.9.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.9.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.9.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" +}