openworkproof 1.1.1__tar.gz → 1.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. {openworkproof-1.1.1/src/openworkproof.egg-info → openworkproof-1.2.0}/PKG-INFO +241 -30
  2. {openworkproof-1.1.1 → openworkproof-1.2.0}/README.md +239 -27
  3. {openworkproof-1.1.1 → openworkproof-1.2.0}/pyproject.toml +3 -4
  4. openworkproof-1.2.0/src/openworkproof/__init__.py +40 -0
  5. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/acceptance.py +674 -0
  6. openworkproof-1.2.0/src/openworkproof/adapters/__init__.py +29 -0
  7. openworkproof-1.2.0/src/openworkproof/adapters/code_delivery_github.py +458 -0
  8. openworkproof-1.2.0/src/openworkproof/agentteams_controller_client.py +130 -0
  9. openworkproof-1.2.0/src/openworkproof/agentteams_matrix_client.py +222 -0
  10. openworkproof-1.2.0/src/openworkproof/authority.py +140 -0
  11. openworkproof-1.2.0/src/openworkproof/binding.py +911 -0
  12. openworkproof-1.2.0/src/openworkproof/binding_transactions.py +1476 -0
  13. openworkproof-1.2.0/src/openworkproof/cli.py +653 -0
  14. openworkproof-1.2.0/src/openworkproof/delivery_package.py +3317 -0
  15. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/evidence.py +506 -26
  16. openworkproof-1.2.0/src/openworkproof/integrity.py +1431 -0
  17. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/mcp_server.py +237 -48
  18. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/mcp_transport.py +293 -1
  19. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/models.py +2551 -73
  20. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/policy.py +282 -4
  21. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/schema_registry.py +326 -49
  22. openworkproof-1.2.0/src/openworkproof/schemas/v0.2/acceptance-transition.schema.json +1 -0
  23. openworkproof-1.2.0/src/openworkproof/schemas/v0.2/commitment-anchor.schema.json +1 -0
  24. openworkproof-1.2.0/src/openworkproof/schemas/v0.2/policy-anchor.schema.json +1 -0
  25. openworkproof-1.2.0/src/openworkproof/schemas/v0.2/schema-registry.json +1 -0
  26. openworkproof-1.2.0/src/openworkproof/schemas/v0.2/subject-claim.schema.json +1 -0
  27. openworkproof-1.2.0/src/openworkproof/schemas/v0.2/verification-arm-result.schema.json +1 -0
  28. openworkproof-1.2.0/src/openworkproof/schemas/v0.2/verification-decision.schema.json +1 -0
  29. openworkproof-1.2.0/src/openworkproof/schemas/v0.2/verification-profile.schema.json +1 -0
  30. openworkproof-1.2.0/src/openworkproof/schemas/v0.3/evaluation-scope.schema.json +1 -0
  31. openworkproof-1.2.0/src/openworkproof/schemas/v0.3/schema-registry.json +1 -0
  32. openworkproof-1.2.0/src/openworkproof/schemas/v0.3/verification-arm-result.schema.json +1 -0
  33. openworkproof-1.2.0/src/openworkproof/schemas/v0.3/verification-decision.schema.json +1 -0
  34. openworkproof-1.2.0/src/openworkproof/schemas/v0.3/verification-profile.schema.json +1 -0
  35. openworkproof-1.2.0/src/openworkproof/schemas/v0.4/action-binding-manifest.schema.json +1 -0
  36. openworkproof-1.2.0/src/openworkproof/schemas/v0.4/action-receipt.schema.json +1 -0
  37. openworkproof-1.2.0/src/openworkproof/schemas/v0.4/authority-checkpoint.schema.json +1 -0
  38. openworkproof-1.2.0/src/openworkproof/schemas/v0.4/binding-decision.schema.json +1 -0
  39. openworkproof-1.2.0/src/openworkproof/schemas/v0.4/judgment-commitment.schema.json +1 -0
  40. openworkproof-1.2.0/src/openworkproof/schemas/v0.4/schema-registry.json +1 -0
  41. openworkproof-1.2.0/src/openworkproof/schemas/v0.5/schema-registry.json +1 -0
  42. openworkproof-1.2.0/src/openworkproof/schemas/v0.5/verification-arm-result.schema.json +1 -0
  43. openworkproof-1.2.0/src/openworkproof/schemas/v0.5/verification-decision.schema.json +1 -0
  44. openworkproof-1.2.0/src/openworkproof/schemas/v0.5/verification-profile.schema.json +1 -0
  45. openworkproof-1.2.0/src/openworkproof/scope.py +1512 -0
  46. openworkproof-1.2.0/src/openworkproof/services.py +565 -0
  47. openworkproof-1.2.0/src/openworkproof/settlement.py +368 -0
  48. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/signing.py +221 -16
  49. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/state.py +32 -22
  50. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/team_network_client.py +88 -15
  51. openworkproof-1.2.0/src/openworkproof/verification.py +3673 -0
  52. {openworkproof-1.1.1 → openworkproof-1.2.0/src/openworkproof.egg-info}/PKG-INFO +241 -30
  53. openworkproof-1.2.0/src/openworkproof.egg-info/SOURCES.txt +152 -0
  54. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_acceptance.py +161 -0
  55. openworkproof-1.2.0/tests/test_acceptance_binding_v04.py +320 -0
  56. openworkproof-1.2.0/tests/test_acceptance_v03.py +367 -0
  57. openworkproof-1.2.0/tests/test_acceptance_v05.py +539 -0
  58. openworkproof-1.2.0/tests/test_agentteams_adapters.py +275 -0
  59. openworkproof-1.2.0/tests/test_authority_checkpoint_v04.py +477 -0
  60. openworkproof-1.2.0/tests/test_binding_adversarial_v04.py +624 -0
  61. openworkproof-1.2.0/tests/test_binding_decision_v04.py +524 -0
  62. openworkproof-1.2.0/tests/test_binding_demo_v04.py +145 -0
  63. openworkproof-1.2.0/tests/test_binding_gateway_v04.py +1469 -0
  64. openworkproof-1.2.0/tests/test_binding_holdout_v04.py +108 -0
  65. openworkproof-1.2.0/tests/test_binding_interfaces_v04.py +339 -0
  66. openworkproof-1.2.0/tests/test_binding_manifest_transactions_v04.py +1735 -0
  67. openworkproof-1.2.0/tests/test_binding_models_v04.py +1002 -0
  68. openworkproof-1.2.0/tests/test_binding_schema_v04.py +258 -0
  69. openworkproof-1.2.0/tests/test_binding_transactions_v04.py +490 -0
  70. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_candidate_supplychain_integration.py +17 -0
  71. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_cli_transport.py +106 -0
  72. openworkproof-1.2.0/tests/test_code_delivery_binding_v04.py +251 -0
  73. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_contract.py +9 -2
  74. openworkproof-1.2.0/tests/test_control_integrity_v05.py +663 -0
  75. openworkproof-1.2.0/tests/test_convert_docker_archive.py +179 -0
  76. openworkproof-1.2.0/tests/test_delivery_m4_agentscope.py +168 -0
  77. openworkproof-1.2.0/tests/test_delivery_package_v02.py +904 -0
  78. openworkproof-1.2.0/tests/test_delivery_package_v03.py +181 -0
  79. openworkproof-1.2.0/tests/test_delivery_package_v04.py +369 -0
  80. openworkproof-1.2.0/tests/test_delivery_package_v05.py +367 -0
  81. openworkproof-1.2.0/tests/test_documentation_boundaries.py +95 -0
  82. openworkproof-1.2.0/tests/test_export_evidence_bundles.py +963 -0
  83. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_image_supply_chain.py +47 -0
  84. openworkproof-1.2.0/tests/test_judgment_transactions_v04.py +677 -0
  85. openworkproof-1.2.0/tests/test_package.py +34 -0
  86. openworkproof-1.2.0/tests/test_population_integrity_v05.py +1621 -0
  87. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_run_tests_runner.py +25 -7
  88. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_schema_registry.py +379 -22
  89. openworkproof-1.2.0/tests/test_scope_adversarial_v03.py +601 -0
  90. openworkproof-1.2.0/tests/test_scope_building_v03.py +562 -0
  91. openworkproof-1.2.0/tests/test_scope_demo_v03.py +396 -0
  92. openworkproof-1.2.0/tests/test_scope_interfaces_v03.py +342 -0
  93. openworkproof-1.2.0/tests/test_scope_models_v03.py +407 -0
  94. openworkproof-1.2.0/tests/test_scope_transactions_v03.py +410 -0
  95. openworkproof-1.2.0/tests/test_settlement_readiness.py +539 -0
  96. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_signing.py +18 -1
  97. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_state.py +15 -0
  98. openworkproof-1.2.0/tests/test_team_network_client.py +640 -0
  99. openworkproof-1.2.0/tests/test_v02_adversarial.py +290 -0
  100. openworkproof-1.2.0/tests/test_v02_bundles.py +134 -0
  101. openworkproof-1.2.0/tests/test_v02_interfaces.py +287 -0
  102. openworkproof-1.2.0/tests/test_verification_integrity_adapters_v05.py +2151 -0
  103. openworkproof-1.2.0/tests/test_verification_integrity_adversarial_v05.py +1714 -0
  104. openworkproof-1.2.0/tests/test_verification_integrity_demo_v05.py +632 -0
  105. openworkproof-1.2.0/tests/test_verification_integrity_interfaces_v05.py +585 -0
  106. openworkproof-1.2.0/tests/test_verification_integrity_models_v05.py +1666 -0
  107. openworkproof-1.2.0/tests/test_verification_integrity_transactions_v05.py +2171 -0
  108. openworkproof-1.2.0/tests/test_verification_models_v02.py +910 -0
  109. openworkproof-1.2.0/tests/test_verification_transactions_v02.py +570 -0
  110. openworkproof-1.2.0/tests/test_verification_transactions_v03.py +872 -0
  111. openworkproof-1.1.1/src/openworkproof/__init__.py +0 -1
  112. openworkproof-1.1.1/src/openworkproof/cli.py +0 -164
  113. openworkproof-1.1.1/src/openworkproof.egg-info/SOURCES.txt +0 -70
  114. openworkproof-1.1.1/tests/test_package.py +0 -7
  115. openworkproof-1.1.1/tests/test_team_network_client.py +0 -235
  116. {openworkproof-1.1.1 → openworkproof-1.2.0}/LICENSE +0 -0
  117. {openworkproof-1.1.1 → openworkproof-1.2.0}/setup.cfg +0 -0
  118. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/composition.py +0 -0
  119. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/execution_adapter.py +0 -0
  120. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/external_acceptor.py +0 -0
  121. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/predicates.py +0 -0
  122. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_pipeline/__init__.py +0 -0
  123. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_pipeline/analysis.py +0 -0
  124. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_pipeline/errors.py +0 -0
  125. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_pipeline/models.py +0 -0
  126. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_pipeline/output.py +0 -0
  127. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_pipeline/reader.py +0 -0
  128. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_pipeline/sources.py +0 -0
  129. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_pipeline/traversal.py +0 -0
  130. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/repo_tools.py +0 -0
  131. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/runtime_context.py +0 -0
  132. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/schemas/v0.1/acceptance-receipt.schema.json +0 -0
  133. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/schemas/v0.1/acceptance-rejection-receipt.schema.json +0 -0
  134. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/schemas/v0.1/action-receipt.schema.json +0 -0
  135. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/schemas/v0.1/capability-grant.schema.json +0 -0
  136. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/schemas/v0.1/schema-registry.json +0 -0
  137. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/schemas/v0.1/work-order.schema.json +0 -0
  138. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof/trusted_helper.py +0 -0
  139. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof.egg-info/dependency_links.txt +0 -0
  140. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof.egg-info/entry_points.txt +0 -0
  141. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof.egg-info/requires.txt +0 -0
  142. {openworkproof-1.1.1 → openworkproof-1.2.0}/src/openworkproof.egg-info/top_level.txt +0 -0
  143. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_acceptor_rejection.py +0 -0
  144. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_delivery_m1.py +0 -0
  145. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_delivery_m2.py +0 -0
  146. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_delivery_m3_dify.py +0 -0
  147. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_execution_adapter.py +0 -0
  148. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_independent_recomposition.py +0 -0
  149. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_mcp_server.py +0 -0
  150. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_policy.py +0 -0
  151. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_predicates.py +0 -0
  152. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_prepare_image_context.py +0 -0
  153. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_proof_composition.py +0 -0
  154. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_receipt_chain.py +0 -0
  155. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_replay.py +0 -0
  156. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_repo_pipeline.py +0 -0
  157. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_repo_read_transaction.py +0 -0
  158. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_sandbox.py +0 -0
  159. {openworkproof-1.1.1 → openworkproof-1.2.0}/tests/test_trusted_helper.py +0 -0
@@ -1,15 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openworkproof
3
- Version: 1.1.1
3
+ Version: 1.2.0
4
4
  Summary: Agent work contracts and verifiable execution protocol — Ed25519-signed, offline-verifiable proof-carrying work for AI agents.
5
- License: MIT
5
+ License-Expression: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/dengyier/OpenWorkProof
7
7
  Project-URL: Repository, https://github.com/dengyier/OpenWorkProof
8
8
  Project-URL: Issues, https://github.com/dengyier/OpenWorkProof/issues
9
9
  Keywords: agent,verifiable,ai,work-contract,mcp,audit,sign,ed25519,proof-carrying,mcp-server
10
10
  Classifier: Development Status :: 5 - Production/Stable
11
11
  Classifier: Intended Audience :: Developers
12
- Classifier: License :: OSI Approved :: MIT License
13
12
  Classifier: Programming Language :: Python :: 3.10
14
13
  Classifier: Programming Language :: Python :: 3.11
15
14
  Classifier: Programming Language :: Python :: 3.12
@@ -40,9 +39,17 @@ Dynamic: license-file
40
39
  > Agent 可以生成结果,但凭什么交付?
41
40
  > Agent Work Contracts and Verifiable Execution Protocol
42
41
 
42
+ <div align="center">
43
+ <a href="README_en.md">English</a> | <strong>中文</strong>
44
+ </div>
45
+
46
+ ---
47
+
43
48
  项目地址:https://github.com/dengyier/OpenWorkProof
44
- 当前版本:1.1.0
45
- 许可证:MIT
49
+ 当前版本:1.2.0
50
+ 许可证:Apache-2.0
51
+ PyPI:[openworkproof](https://pypi.org/project/openworkproof/)
52
+ MCP Registry:[io.github.dengyier/OpenWorkProof](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.dengyier%2FOpenWorkProof/versions/1.2.0)
46
53
 
47
54
  ---
48
55
 
@@ -146,7 +153,7 @@ running → locally_verified → proof_ready → awaiting_human → accepted
146
153
  ↘ rejected
147
154
  ```
148
155
 
149
- 详细协议 Schema 见 [specs/v0.1](specs/v0.1/)。
156
+ 详细协议 Schema 见 [specs](specs/)(当前覆盖 v0.1–v0.5)。
150
157
 
151
158
  ---
152
159
 
@@ -154,7 +161,7 @@ running → locally_verified → proof_ready → awaiting_human → accepted
154
161
 
155
162
  ### 环境要求
156
163
 
157
- - Python 3.12(`>=3.12, <3.13`)
164
+ - Python ≥ 3.10(支持 3.10 / 3.11 / 3.12 / 3.13)
158
165
  - Git
159
166
  - macOS 或 Linux
160
167
 
@@ -166,14 +173,14 @@ running → locally_verified → proof_ready → awaiting_human → accepted
166
173
  pip install openworkproof
167
174
  ```
168
175
 
169
- 安装后即获得 `owp` CLI 命令和完整的 Python API。
176
+ 安装后即获得 `owp` CLI 命令、`owp-mcp` MCP Server 命令和完整的 Python API。
170
177
 
171
178
  **本地开发环境:**
172
179
 
173
180
  ```bash
174
181
  git clone https://github.com/dengyier/OpenWorkProof.git
175
182
  cd OpenWorkProof
176
- python3.12 -m venv .venv
183
+ python3 -m venv .venv
177
184
  ./.venv/bin/python -m pip install -r requirements-lock.txt
178
185
  ./.venv/bin/python -m pip install -e . # 可编辑安装,同步代码修改
179
186
  ```
@@ -187,9 +194,106 @@ owp status
187
194
  # 运行全量测试(约 5 分钟,需本地开发环境)
188
195
  ./.venv/bin/python -m pytest -q
189
196
 
190
- # 预期结果:2283 passed, 7 skipped, 0 failed
197
+ # 精确数量以当前命令输出为准;下方记录最终发布候选的 fresh 验证快照
198
+ ```
199
+
200
+ ### Scope-Bound Verification v0.3 与 21 天付费试点
201
+
202
+ v0.3 把“到底验证了哪些文件、测试与交付对象”纳入签名协议。Manager 冻结
203
+ `EvaluationScopeManifest`,Verifier 分别提交正臂和负臂的 Observed Scope,
204
+ Decision composer 只有在两臂人口一致、必选目标完整、注册负控被捕获时,
205
+ 才会形成限定范围的 `VERIFIED`。范围遗漏、选择器漂移或证据不足只能得到
206
+ `UNKNOWN`,不能用局部绿灯冒充完整交付。
207
+
208
+ ```bash
209
+ owp scope-build --claim claim.json --source-revision COMMIT_SHA --rules rules.json
210
+ owp scope-validate scope.json
211
+ owp scope-commit pilot.sqlite3 signed-scope-envelope.json
212
+ owp scope-compare scope.json observed-scope.json
213
+ owp delivery-build --privacy-view customer_private pilot.sqlite3 delivery-package/
214
+ owp audit-replay delivery-package/
215
+ ```
216
+
217
+ v0.3 证明的是代码交付中“声明范围与观察范围精确一致”。它不证明未编码的
218
+ 业务意图、客户已经接受、已经付款、资金已释放、自动结算、普遍正确性或
219
+ 法规合规。MCP/A2A 继续负责互操作、身份、安全、任务和消息能力;
220
+ OpenWorkProof 作为补充层,把一次工作的授权、范围证据和验收依据冻结下来。
221
+
222
+ 商业验证材料见 [21 天范围可验证交付试点](docs/pilot/scope-bound-verification-offer.md),
223
+ 买方交付样例见 [Scope Coverage Report](docs/pilot/scope-coverage-report.example.md)。
224
+ 当前外部付费、客户验收、上游采用与正式部署均为 `not evidenced`。
225
+
226
+ ### 验证完整性 Verification Integrity v0.5
227
+
228
+ v0.5 在 v0.3 的“声明范围与观察范围一致”之上,把**选择前的合格人口**与
229
+ **负控失败原因**一并冻结进签名协议。v0.3 只能证明“被选中的部分被验证了”;
230
+ v0.5 额外证明“选择之前存在哪些合格人口、选择器实际选中了什么,以及负向
231
+ 控制失败是否来自注册的原因”,从而堵住两类此前测不到的盲区:
232
+
233
+ - **人口盲区**:执行引擎能看到多个合格测试,但选择器选出了零个。运行本身
234
+ 正常结束,v0.5 得出 `UNKNOWN / POPULATION_CAPTURE_FAILED`,不会把局部
235
+ 绿灯当成完整交付。
236
+ - **负控腐化**:注册的变异体仍然失败,但失败原因(错误码 / predicate 签名)
237
+ 与注册签名不一致。v0.5 得出 `UNKNOWN / CONTROL_FAILURE_SIGNATURE_MISMATCH`,
238
+ 不会把“碰巧失败”当成“按预期失败”。
239
+
240
+ 三态边界保持单调:`VERIFIED`(人口 matched + 负控 proven + 正臂满足)、
241
+ `REFUTED`(负控 survived)、`UNKNOWN`(人口 empty/capture_failed/drifted/
242
+ unavailable 或负控 mismatched/unavailable)。`UNKNOWN` 是安全结论,不是系统
243
+ 崩溃,也不是失败。
244
+
245
+ ```bash
246
+ owp integrity-observation validate population.json
247
+ owp control-observation validate control.json
248
+ owp delivery-build --privacy-view customer_private pilot.sqlite3 delivery-package/
249
+ owp audit-replay delivery-package/
191
250
  ```
192
251
 
252
+ 退出码:人口 `matched` 为 `0`,其余人口状态为 `3`;负控 `proven` 为 `0`、
253
+ `survived` 为 `4`、`mismatched/unavailable` 为 `3`;输入不合法为 `1`。
254
+
255
+ 离线验证、原因码表与恢复边界见
256
+ [离线验签说明](docs/offline-verification.md)。真实 Issue 演示见
257
+ `tests/integrity-demo/rich-4196/README.md`(Rich #4196)。该演示由
258
+ OpenWorkProof 自建,`upstream_adoption`、`customer_case`、
259
+ `commercial_validation` 均为 `not_evidenced`;它不证明任何客户采用、已经
260
+ 付款、资金已释放、自动结算、普遍正确性或法规合规。
261
+
262
+ ### Evidence Lifecycle v0.2 兼容入口
263
+
264
+ 当前 1.2.0 版本保留 v0.2 的 Profile 校验、正负证据提交、验证决定、Delivery
265
+ Package、离线审计和结算就绪度接口:
266
+
267
+ ```bash
268
+ owp profile-validate signed-profile.json
269
+ owp verify-positive pilot.sqlite3 signed-positive-result.json
270
+ owp verify-negative pilot.sqlite3 signed-negative-result.json
271
+ owp verify-compose --mode prepare pilot.sqlite3 decision-request.json
272
+ owp verify-compose --mode commit pilot.sqlite3 signed-decision.json
273
+ owp delivery-build --privacy-view public pilot.sqlite3 delivery-package/
274
+ owp audit-replay delivery-package/
275
+ owp settlement-status pilot.sqlite3
276
+ ```
277
+
278
+ 既有运营步骤、信任等级成本和商业证据计分卡见
279
+ [v0.2 可验证交付试点](docs/pilot/README.md)。示例对象只用于本地解析和
280
+ 接入演练,不代表真实客户、客户验收、付款、资金释放或正式部署。
281
+
282
+ 1.2.0 本地待发布候选在 source revision
283
+ `d0bec9d2f2c3cf12568fa866d16be1a56de4aa9c` 上完成发布门,并新增不可变
284
+ [候选库存](supply-chain/images/candidates/d0bec9d2f2c3cf12568fa866d16be1a56de4aa9c.json):
285
+
286
+ - v0.5 focused:`401 passed、0 failed`;
287
+ - candidate live:`176 passed、0 failed`;
288
+ - required-live 全量:`3494 passed、0 failed、0 skipped`;
289
+ - 冻结执行镜像:
290
+ `docker.io/openworkproof/execution-test@sha256:6d0dadec750eb498ed4d2260b4de65f33ed1c146adda6e64ec8ba588f7a88097`;
291
+ - Rich #4196 v0.5 交付包离线重放为
292
+ `VERIFICATION PASSED / VERIFIED / READY_FOR_ACCEPTANCE`。
293
+
294
+ `READY_FOR_ACCEPTANCE` 表示证据包满足进入验收的协议条件,不等于客户已经
295
+ 验收、付款或部署。详细环境、耗时与边界见 [docs/status.md](docs/status.md)。
296
+
193
297
  ### 运行端到端演示
194
298
 
195
299
  OpenWorkProof 提供两个独立的端到端验证演示,覆盖不同的项目类型和协议场景:
@@ -202,7 +306,7 @@ OpenWorkProof 提供两个独立的端到端验证演示,覆盖不同的项目
202
306
  ```bash
203
307
  ./.venv/bin/python -m pytest tests/test_delivery_m2.py -q
204
308
 
205
- # 预期结果:5 passed
309
+ # 预期:退出码 0;精确数量以当前命令输出为准
206
310
  ```
207
311
 
208
312
  该演示完整覆盖 9 步证据链:
@@ -229,7 +333,7 @@ OpenWorkProof 提供两个独立的端到端验证演示,覆盖不同的项目
229
333
  ```bash
230
334
  ./.venv/bin/python -m pytest tests/test_delivery_m3_dify.py -q
231
335
 
232
- # 预期结果:7 passed
336
+ # 预期:退出码 0;精确数量以当前命令输出为准
233
337
  ```
234
338
 
235
339
  该 Bug 发生在 Dify 的 QuestionClassifierNode 节点中——用户在工作流中
@@ -312,17 +416,35 @@ payload.json 示例(run-tests):
312
416
  }
313
417
  ```
314
418
 
315
- ### 2. MCP 传输层(stdio)
419
+ ### 2. MCP Server(stdio)
316
420
 
317
- OpenWorkProof 协调器已封装为 MCP 工具,可被任何 MCP 客户端(如 Claude Desktop、
318
- Cursor 等)直接调用:
421
+ OpenWorkProof 已注册到官方 MCP Registry(`io.github.dengyier/OpenWorkProof`),
422
+ 提供 21 个 MCP 工具,可被任何 MCP 客户端(Claude Desktop、Cursor、VS Code 等)直接调用:
319
423
 
320
424
  ```bash
321
- # 启动 stdio MCP 服务器
322
- ./.venv/bin/python -m openworkproof.mcp_transport
425
+ # 启动 MCP Server(pip install 后直接可用)
426
+ owp-mcp
427
+
428
+ # 或通过 Python 模块启动
429
+ python -m openworkproof.mcp_transport
323
430
  ```
324
431
 
325
- 提供的 MCP 工具:
432
+ 提供的 MCP 工具(21 个):
433
+
434
+ **独立验证工具(无需 ledger):**
435
+
436
+ | 工具 | 功能 |
437
+ |------|------|
438
+ | `owp_generate_keypair` | 生成 Ed25519 密钥对 |
439
+ | `owp_compute_key_id` | 从公钥派生 key_id |
440
+ | `owp_sign_payload` | 对规范化载荷签名 |
441
+ | `owp_verify_signature` | 验证已签名载荷 |
442
+ | `owp_compute_digest` | 计算 JCS 规范化 SHA-256 摘要 |
443
+ | `owp_verify_work_order` | 验证 WorkOrder 身份绑定 |
444
+ | `owp_verify_nested_claim` | 验证 AgentRequest / HumanDecision 嵌套声明 |
445
+ | `owp_list_domains` | 列出所有规范域名 |
446
+
447
+ **Ledger 协调工具:**
326
448
 
327
449
  | 工具 | 功能 |
328
450
  |------|------|
@@ -330,19 +452,43 @@ Cursor 等)直接调用:
330
452
  | `owp_run_tests(ledger, payload)` | 转发 run-tests 执行 |
331
453
  | `owp_repo_read(ledger, payload)` | 转发 repo-read 执行 |
332
454
 
455
+ **实用工具:**
456
+
457
+ | 工具 | 功能 |
458
+ |------|------|
459
+ | `owp_get_schema` | 获取权威 JSON Schema |
460
+ | `owp_get_schema_digest` | 获取 Schema 冻结摘要 |
461
+ | `owp_analyze_repo` | 分析仓库结构 |
462
+
333
463
  在 MCP 客户端配置中添加:
334
464
 
465
+ **Claude Desktop**(`~/Library/Application Support/Claude/claude_desktop_config.json`):
466
+
335
467
  ```json
336
468
  {
337
469
  "mcpServers": {
338
470
  "openworkproof": {
339
- "command": "/path/to/.venv/bin/python",
340
- "args": ["-m", "openworkproof.mcp_transport"]
471
+ "command": "owp-mcp"
341
472
  }
342
473
  }
343
474
  }
344
475
  ```
345
476
 
477
+ **Cursor / VS Code**(`.cursor/mcp.json`):
478
+
479
+ ```json
480
+ {
481
+ "mcpServers": {
482
+ "openworkproof": {
483
+ "command": "uvx",
484
+ "args": ["--from", "openworkproof", "owp-mcp"]
485
+ }
486
+ }
487
+ }
488
+ ```
489
+
490
+ 更多配置方式见 [MCP_SERVER.md](MCP_SERVER.md)。
491
+
346
492
  ### 3. Python API
347
493
 
348
494
  ```python
@@ -467,7 +613,7 @@ OpenWorkProof/
467
613
  │ ├── composition.py # 因果回放层 + 确定性 CompositionReport
468
614
  │ ├── acceptance.py # 终态验收 + 离线验签器(verify_acceptance_bundle)
469
615
  │ ├── mcp_server.py # 协调器:complete_receipt_publication / compose_proof 等
470
- │ ├── mcp_transport.py # MCP stdio 传输层
616
+ │ ├── mcp_transport.py # MCP Server(既有工具 + v0.2/v0.3 接口)
471
617
  │ ├── cli.py # CLI 传输层(owp 命令)
472
618
  │ ├── execution_adapter.py # AgentTeams 执行适配层
473
619
  │ ├── team_network_client.py # TCP 网络客户端
@@ -478,9 +624,9 @@ OpenWorkProof/
478
624
  │ ├── repo_tools.py # 仓库管道工具
479
625
  │ ├── runtime_context.py # 运行时上下文
480
626
  │ ├── trusted_helper.py # 可信助手请求分发
481
- │ └── schemas/v0.1/ # JSON Schema 文件
482
- ├── specs/v0.1/ # 协议 Schema(WorkOrder/Grant/Receipt/Acceptance)
483
- ├── tests/ # 2283 项一致性测试
627
+ │ └── schemas/v0.1..v0.5/ # 多版本 JSON Schema 文件
628
+ ├── specs/v0.1..v0.5/ # 公开协议 Schema
629
+ ├── tests/ # 协议、故障注入与端到端测试
484
630
  ├── docs/ # 文档(状态、演示日志、离线验签说明)
485
631
  ├── supply-chain/ # 可信构建镜像 + 候选清单
486
632
  ├── pyproject.toml # 打包元数据
@@ -504,13 +650,15 @@ OpenWorkProof/
504
650
  - Acceptor 拒绝路径:同权威 Acceptor 签名的 AcceptanceRejectionReceipt
505
651
  - 独立 Verifier 结果与确定性 recomposition
506
652
  - deny 收据生产入口(`produce_deny_receipt`)
507
- - CLI(`owp status` / `owp run-tests` / `owp repo-read`)
508
- - MCP stdio 传输层
653
+ - CLI(既有执行入口 + v0.2/v0.3 范围验证、交付包、审计和就绪度入口)
654
+ - MCP Server(既有工具 + 生命周期聚合接口 + 两个只读 Scope 工具;已注册到 MCP Registry
655
+ `io.github.dengyier/OpenWorkProof`)
509
656
  - AgentTeams TCP 网络客户端 + 执行适配层
510
657
  - Docker 生产执行器(STARTED_UNCONFIRMED 恢复)
511
658
  - Rich #4196 完整五角色端到端演示(Acceptor TCP 签名 + 离线验签)
512
659
  - Dify #33013 完整五角色端到端演示(AI 应用平台类,跨项目类型通用性验证)
513
- - **全量测试:2283 passed、0 failed、7 skipped**
660
+ - **v0.5 focused:401 passed、0 failed;candidate live:176 passed、0 failed**
661
+ - **1.2.0 本地待发布 required-live 门:3494 passed、0 failed、0 skipped**
514
662
 
515
663
  **尚未完成:** 其他 ToolCall handler 与 evidence publication 的调用闭包、
516
664
  正式赛事提交。
@@ -560,7 +708,8 @@ Dify 是面向终端用户的 AI 工作流平台,与 Rich 的开发者工具
560
708
  6. ~~完成 Acceptor 拒绝路径、真实外部 Acceptor 复现~~(已完成)
561
709
  7. ~~完成 deny 收据生产入口~~(已完成)
562
710
  8. ~~完成 Dify #33013 自包含演示及跨项目类型通用性验证~~(已完成)
563
- 9. 剩余:其他 ToolCall handler 与 evidence publication 的调用闭包、正式赛事提交。
711
+ 9. ~~MCP Server 注册到官方 MCP Registry~~(`io.github.dengyier/OpenWorkProof` v1.2.0 元数据已就绪;远端发布以 Registry 回读为准)
712
+ 10. 剩余:其他 ToolCall handler 与 evidence publication 的调用闭包、正式赛事提交。
564
713
 
565
714
  ---
566
715
 
@@ -575,8 +724,9 @@ Dify 是面向终端用户的 AI 工作流平台,与 Rich 的开发者工具
575
724
  - 真实开源 Issue 的任务封装
576
725
  - 安全、隐私和数据治理审查
577
726
 
578
- 仓库采用 Apache-2.0 许可证。贡献流程与贡献者协议仍在制定中,
579
- 欢迎先通过 GitHub Issue 提出建议。
727
+ 仓库采用 Apache-2.0 许可证。PyPI 包已发布至 [pypi.org/project/openworkproof](https://pypi.org/project/openworkproof/),
728
+ MCP Server 已注册至 [MCP Registry](https://registry.modelcontextprotocol.io/)。
729
+ 贡献流程与贡献者协议仍在制定中,欢迎先通过 GitHub Issue 提出建议。
580
730
 
581
731
  ## 项目主体
582
732
 
@@ -594,3 +744,64 @@ OpenWorkProof 希望让 Agent 工作从「可以生成结果」,迈向:
594
744
 
595
745
  OpenWorkProof 不提高 Agent 的智力,而是为 Agent 增加进入社会协作所需的
596
746
  责任结构。
747
+
748
+ ---
749
+
750
+ ## Judgment-to-Action Binding v0.4
751
+
752
+ v0.4 为 Agent 交付增加**判断—行动绑定**:用可验证的执行凭证回答
753
+ 「Agent 实际做的,是否仍然对应客户原先批准的业务判断」。
754
+
755
+ ### 业务语言(Business-First)
756
+
757
+ OpenWorkProof 提供的是**可验证的 Agent 执行凭证**。它:
758
+
759
+ - ✅ 证明「这次执行依据什么授权、做了什么、验证器是否真的能抓到谎言」;
760
+ - ❌ 不成为支付机构、不充当真理预言机、不做法律裁决、不替代客户验收。
761
+
762
+ ### v0.4 状态链与门
763
+
764
+ ```text
765
+ Customer Acceptor 签署 JudgmentCommitment(执行前)
766
+ ↓
767
+ Manager 提交 ActionBindingManifest(判断↔执行约束绑定)
768
+ ↓
769
+ Agent v0.4 请求 + ActionReceipt(原生绑定同一 Manifest)
770
+ ↓
771
+ 独立 Verifier 组合 BindingDecision(BOUND / UNBOUND / INDETERMINATE)
772
+ ↓
773
+ 双门:VerificationDecision=VERIFIED ∧ BindingDecision=BOUND ∧ Acceptance=ACTIVE
774
+ ↓
775
+ READY_FOR_SETTLEMENT_REVIEW(不证明付款或结算)
776
+ ```
777
+
778
+ ### 外部权威边界
779
+
780
+ 高风险场景可接入外部 **AuthorityCheckpoint**(客户控制域的独立密钥)。
781
+ OWP 只验证 checkpoint 的格式、签名、链与绑定,**不拥有外部治理与信任根**;
782
+ 权威状态只按行动发生时点(as-of)判定,解析器不可用时不伪造 checkpoint。
783
+
784
+ ### 真值边界(Truth Boundaries)
785
+
786
+ - `BOUND` 只表示「行动与记录判断一致」,**不等于**判断正确、代码无缺陷、
787
+ 客户验收、付款或结算。
788
+ - 未取得的商业状态一律标记 `not_evidenced`(上游采纳、客户使用、付款)。
789
+
790
+ ### 接口
791
+
792
+ ```text
793
+ owp judgment validate
794
+ owp binding-manifest validate
795
+ owp binding compose
796
+ owp binding verify
797
+ owp binding history
798
+ owp package replay --binding
799
+ ```
800
+
801
+ 只读 MCP 工具:`owp_validate_judgment_commitment`、
802
+ `owp_validate_action_binding_manifest`、`owp_get_binding_status`、
803
+ `owp_explain_binding_decision`。MCP 验证**拒绝任何 Acceptor/Verifier 私钥
804
+ 参数**,只读不签名不提交。
805
+
806
+ 完整实现状态见 [docs/status.md](docs/status.md),21 天付费试点材料见
807
+ [docs/pilot/](docs/pilot/)。