oacp-cli 0.5.2__tar.gz → 0.5.4__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 (510) hide show
  1. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/.gitattributes +3 -0
  2. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/CHANGELOG.md +78 -0
  3. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/Makefile +3 -8
  4. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/PKG-INFO +16 -19
  5. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/README.md +15 -18
  6. oacp_cli-0.5.4/SECURITY.md +72 -0
  7. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/from-claude-p.md +0 -2
  8. oacp_cli-0.5.4/docs/guides/batch-verification.md +25 -0
  9. oacp_cli-0.5.4/docs/guides/command-migration.md +70 -0
  10. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/guides/doctor.md +2 -2
  11. oacp_cli-0.5.4/docs/guides/memory-cli-migration.md +43 -0
  12. oacp_cli-0.5.4/docs/guides/setup.md +148 -0
  13. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/guides/unified_skill_spec.md +21 -13
  14. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/guides/versioning.md +38 -1
  15. oacp_cli-0.5.4/docs/guides/workspace-initialization.md +47 -0
  16. oacp_cli-0.5.4/docs/img/oacp-fleet-thread.png +0 -0
  17. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/agent_profiles.md +1 -1
  18. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/agent_safety_defaults.md +1 -1
  19. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/autonomy.md +388 -96
  20. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/inbox_outbox.md +15 -21
  21. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/mcp_integration.md +6 -4
  22. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/message_signing.md +45 -6
  23. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/multi_agent_shared_workspace.md +3 -2
  24. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/packet_states.yaml +1 -1
  25. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/review_loop.md +69 -9
  26. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/session_init.md +1 -1
  27. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/README.md +1 -1
  28. oacp_cli-0.5.4/oacp/cli.py +199 -0
  29. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/pyproject.toml +6 -7
  30. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/_oacp_constants.py +72 -1
  31. oacp_cli-0.5.4/scripts/_oacp_yaml.py +53 -0
  32. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/add_agent.py +12 -23
  33. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/agent_profile.py +5 -6
  34. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/autonomy_gate.py +267 -33
  35. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/claude_envelope_hook.py +2187 -96
  36. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/codex_session_init.py +1 -1
  37. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/envelope_compiler.py +101 -0
  38. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/finalize_autonomy_record.py +434 -17
  39. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/init_project_workspace.py +118 -63
  40. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/message_signing.py +1 -1
  41. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/message_verify.py +82 -8
  42. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/oacp_doctor.py +130 -7
  43. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/oacp_inbox.py +28 -18
  44. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/oacp_watch.py +24 -23
  45. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/policy_signing.py +101 -23
  46. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/record_autonomy_outcome.py +1 -1
  47. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/send_inbox_message.py +4 -22
  48. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/setup_runtime.py +9 -0
  49. oacp_cli-0.5.4/scripts/trust_cli.py +748 -0
  50. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/trust_root.py +1 -1
  51. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/update_workspace.sh +47 -119
  52. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/validate_agent_card.py +7 -13
  53. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/validate_message.py +13 -43
  54. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/claude/agents/role_agent.template.md +4 -3
  55. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/findings_packet.template.yaml +3 -1
  56. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/runtime_capabilities.yaml +1 -1
  57. oacp_cli-0.5.4/tests/conformance/autonomy/expected/declared_reply_task_auto_accepts.yaml +24 -0
  58. oacp_cli-0.5.4/tests/conformance/autonomy/messages/declared_reply_task.yaml +21 -0
  59. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/README.md +3 -1
  60. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/expected_findings.yaml +3 -0
  61. oacp_cli-0.5.4/tests/conformance/autonomy/records/terminal_time_clear_precedes_pause.yaml +100 -0
  62. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/README.md +12 -12
  63. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/body_schema/handoff__enforce.yaml +7 -7
  64. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/body_schema/handoff__off.yaml +7 -7
  65. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/body_schema/handoff__warn.yaml +7 -7
  66. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/body_schema/handoff_complete__enforce.yaml +7 -7
  67. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/body_schema/handoff_complete__off.yaml +7 -7
  68. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/body_schema/handoff_complete__warn.yaml +7 -7
  69. oacp_cli-0.5.4/tests/test_audit_directory_warning.py +42 -0
  70. oacp_cli-0.5.4/tests/test_audit_example.py +122 -0
  71. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_autonomy_gate.py +414 -9
  72. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_claude_envelope_hook.py +913 -3
  73. oacp_cli-0.5.4/tests/test_command_groups.py +158 -0
  74. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_envelope_compiler.py +126 -0
  75. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_finalize_autonomy_record.py +979 -0
  76. oacp_cli-0.5.4/tests/test_init_plan.py +119 -0
  77. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_intake_conformance.py +5 -8
  78. oacp_cli-0.5.4/tests/test_memory_shim.py +62 -0
  79. oacp_cli-0.5.4/tests/test_message_supersession.py +286 -0
  80. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_message_verify.py +25 -0
  81. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_oacp_cli.py +53 -117
  82. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_oacp_constants.py +44 -0
  83. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_oacp_doctor.py +153 -0
  84. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_oacp_watch.py +85 -0
  85. oacp_cli-0.5.4/tests/test_oacp_yaml.py +151 -0
  86. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_package_content.py +17 -0
  87. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_policy_signing.py +28 -0
  88. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_readme_commands.py +2 -2
  89. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_record_autonomy_outcome.py +1 -1
  90. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_send_inbox_message.py +9 -9
  91. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_setup_runtime.py +26 -0
  92. oacp_cli-0.5.4/tests/test_trust_pin_script.py +478 -0
  93. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_trust_root.py +1 -1
  94. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_update_workspace.py +117 -7
  95. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_validate_message.py +7 -12
  96. oacp_cli-0.5.4/tests/test_verify_batch.py +152 -0
  97. oacp_cli-0.5.4/tests/test_version_convention.py +71 -0
  98. oacp_cli-0.5.4/tools/generate_audit_example.py +205 -0
  99. oacp_cli-0.5.2/SECURITY.md +0 -49
  100. oacp_cli-0.5.2/docs/guides/setup.md +0 -114
  101. oacp_cli-0.5.2/docs/img/oacp-fleet-thread.png +0 -0
  102. oacp_cli-0.5.2/oacp/cli.py +0 -264
  103. oacp_cli-0.5.2/scripts/check_quality_gate.py +0 -222
  104. oacp_cli-0.5.2/scripts/handoff_schema.py +0 -178
  105. oacp_cli-0.5.2/scripts/init_packet.sh +0 -82
  106. oacp_cli-0.5.2/scripts/trust_cli.py +0 -372
  107. oacp_cli-0.5.2/scripts/write_event.py +0 -275
  108. oacp_cli-0.5.2/templates/github_actions_quality_gate.yaml +0 -219
  109. oacp_cli-0.5.2/templates/handoff_packet.template.yaml +0 -27
  110. oacp_cli-0.5.2/templates/merge_decision.template.md +0 -32
  111. oacp_cli-0.5.2/templates/review_packet.template.md +0 -44
  112. oacp_cli-0.5.2/tests/test_handoff_schema.py +0 -134
  113. oacp_cli-0.5.2/tests/test_memory_shim.py +0 -135
  114. oacp_cli-0.5.2/tests/test_write_event.py +0 -146
  115. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/.github/workflows/auto-estimate.yml +0 -0
  116. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/.github/workflows/ci.yml +0 -0
  117. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/.github/workflows/release.yml +0 -0
  118. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/.gitignore +0 -0
  119. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/CONTRIBUTING.md +0 -0
  120. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/LICENSE +0 -0
  121. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/QUICKSTART.md +0 -0
  122. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/SPEC.md +0 -0
  123. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/guides/adoption.md +0 -0
  124. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/guides/memory-context.md +0 -0
  125. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/guides/prompt_caching.md +0 -0
  126. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/img/oacp-cli-demo.png +0 -0
  127. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/img/oacp-filesystem-tree.png +0 -0
  128. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/credential_scoping.md +0 -0
  129. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/dispatch_states.yaml +0 -0
  130. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/org_memory.md +0 -0
  131. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/runtime_capabilities.md +0 -0
  132. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/skills_manifest.yaml +0 -0
  133. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/docs/protocol/task_negotiation.md +0 -0
  134. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/decisions.md +0 -0
  135. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/events/20260504-093015-postgres-over-dynamodb.md +0 -0
  136. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/events/20260508-141220-utc-timestamps-pr-review.md +0 -0
  137. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/events/20260515-102045-utc-timestamps-webhooks.md +0 -0
  138. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/events/20260521-163330-utc-timestamps-rule-proposal.md +0 -0
  139. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/events/20260527-110500-idempotency-keys-merged.md +0 -0
  140. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/events/20260602-090210-parcel-api-v020-released.md +0 -0
  141. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/recent.md +0 -0
  142. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/org-memory/rules.md +0 -0
  143. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/projects/parcel-api/memory/archive/2026-05-21-csv-export-timeouts.md +0 -0
  144. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/projects/parcel-api/memory/decision_log.md +0 -0
  145. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/projects/parcel-api/memory/known_debt.md +0 -0
  146. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/projects/parcel-api/memory/open_threads.md +0 -0
  147. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/demo-workspace/projects/parcel-api/memory/project_facts.md +0 -0
  148. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/examples/quickstart/README.md +0 -0
  149. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/oacp/__init__.py +0 -0
  150. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/oacp/envelope_hook.py +0 -0
  151. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/_oacp_env.py +0 -0
  152. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/gen_readme_commands.py +0 -0
  153. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/key_cli.py +0 -0
  154. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/scripts/preflight.py +0 -0
  155. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/agent_card.template.yaml +0 -0
  156. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/agent_profile.template.yaml +0 -0
  157. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/agent_status.template.yaml +0 -0
  158. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/checkpoint.template.md +0 -0
  159. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/claude/rules/guardrail.template.md +0 -0
  160. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/guardrails/coding_standards.template.md +0 -0
  161. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/guardrails/safe_commands.template.md +0 -0
  162. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/guardrails/secrets_rules.template.md +0 -0
  163. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/inbox_message.template.yaml +0 -0
  164. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/manual_validation.template.md +0 -0
  165. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/receiver_config.template.yaml +0 -0
  166. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/roles/role_baseline.template.md +0 -0
  167. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/roles/role_definition.template.yaml +0 -0
  168. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/skills_manifest.template.yaml +0 -0
  169. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/templates/test_packet.template.md +0 -0
  170. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/README.md +0 -0
  171. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/checkpoint_breach.yaml +0 -0
  172. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/continuation_drift.yaml +0 -0
  173. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/continuation_within.yaml +0 -0
  174. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/declaration_error.yaml +0 -0
  175. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/declaration_intent.yaml +0 -0
  176. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/reauth_boundary_action.yaml +0 -0
  177. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/reauth_conflict.yaml +0 -0
  178. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/reauth_cross_channel.yaml +0 -0
  179. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/reauth_reuse.yaml +0 -0
  180. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/reauth_same_channel.yaml +0 -0
  181. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/reauth_scopeless_boundary.yaml +0 -0
  182. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/actuals/top_level_side_effect_keys.yaml +0 -0
  183. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/audits/prior_generic_grant_addressed_types.yaml +0 -0
  184. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/audits/prior_generic_grant_approved.yaml +0 -0
  185. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/audits/prior_generic_grant_denied_later.yaml +0 -0
  186. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/audits/prior_generic_grant_denied_postmessage.yaml +0 -0
  187. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/audits/prior_thread_grant_approved.yaml +0 -0
  188. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/audits/prior_thread_invocation.yaml +0 -0
  189. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/configs/always_pause.yaml +0 -0
  190. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/configs/auto_review_continuation_enabled.yaml +0 -0
  191. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/configs/auto_review_external_pause.yaml +0 -0
  192. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/configs/auto_review_standard.yaml +0 -0
  193. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/configs/auto_review_tight.yaml +0 -0
  194. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/configs/malformed_config.yaml +0 -0
  195. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/always_pause_task.yaml +0 -0
  196. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/ambiguous_scope_pauses.yaml +0 -0
  197. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/brainstorm_destructive_pauses.yaml +0 -0
  198. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/brainstorm_side_effect_verbs_auto_accepts.yaml +0 -0
  199. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/brainstorm_without_profile_auto_accepts.yaml +0 -0
  200. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/checkpoint_breach_pauses.yaml +0 -0
  201. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/checkpoint_reauth_boundary_action_resumes.yaml +0 -0
  202. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/checkpoint_reauth_conflict_declines.yaml +0 -0
  203. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/checkpoint_reauth_cross_channel_resumes.yaml +0 -0
  204. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/checkpoint_reauth_reuse_stays_paused.yaml +0 -0
  205. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/checkpoint_reauth_same_channel_resumes.yaml +0 -0
  206. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/checkpoint_reauth_scopeless_boundary_resumes.yaml +0 -0
  207. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/clean_auto_review_task.yaml +0 -0
  208. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/continuation_grant_destructive_pauses.yaml +0 -0
  209. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/continuation_grant_disabled_pauses.yaml +0 -0
  210. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/continuation_grant_drift_pauses.yaml +0 -0
  211. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/continuation_grant_enabled_auto_accepts.yaml +0 -0
  212. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/continuation_grant_external_uncovered_pauses.yaml +0 -0
  213. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/contradictory_credential_rotation_hard_stops.yaml +0 -0
  214. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/contradictory_dependency_install_hard_stops.yaml +0 -0
  215. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/contradictory_sensitive_auth_hard_stops.yaml +0 -0
  216. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/contradictory_sensitive_config_hard_stops.yaml +0 -0
  217. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/contradictory_sensitive_credentials_hard_stops.yaml +0 -0
  218. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/contradictory_sensitive_secret_hard_stops.yaml +0 -0
  219. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/declaration_error_admission_pauses.yaml +0 -0
  220. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/declaration_error_pauses.yaml +0 -0
  221. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/declaration_intent_checkpoint_pauses.yaml +0 -0
  222. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/declared_credential_rotation_granular_pauses.yaml +0 -0
  223. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/declared_dependency_install_granular_pauses.yaml +0 -0
  224. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/declared_destructive_ops_pauses.yaml +0 -0
  225. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/declared_external_default_branch_push_hard_stops.yaml +0 -0
  226. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/declared_merge_default_branch_push_hard_stops.yaml +0 -0
  227. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/default_envelope_credential_rotation_hard_stops.yaml +0 -0
  228. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/default_envelope_dependency_install_hard_stops.yaml +0 -0
  229. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/expired_message_pauses.yaml +0 -0
  230. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/guardrails_fence_auto_accepts.yaml +0 -0
  231. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_dangerously_skip_permissions_pauses.yaml +0 -0
  232. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_external_side_effects_pauses.yaml +0 -0
  233. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_force_pauses.yaml +0 -0
  234. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_masking_threshold_pauses.yaml +0 -0
  235. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_no_verify_pauses.yaml +0 -0
  236. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_no_verify_upper_pauses.yaml +0 -0
  237. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_rm_rf_pauses.yaml +0 -0
  238. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_commercial_pauses.yaml +0 -0
  239. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_config_pauses.yaml +0 -0
  240. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_credentials_pauses.yaml +0 -0
  241. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_memory_ssot_pauses.yaml +0 -0
  242. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_pricing_pauses.yaml +0 -0
  243. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_public_repo_pauses.yaml +0 -0
  244. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_scope_pauses.yaml +0 -0
  245. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_secret_pauses.yaml +0 -0
  246. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/hard_stop_side_effect_before_sensitive_pauses.yaml +0 -0
  247. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/invalid_message_pauses.yaml +0 -0
  248. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/lexical_declared_false_auto_accepts.yaml +0 -0
  249. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/malformed_config_pauses.yaml +0 -0
  250. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/minutes_45_auto_accepts.yaml +0 -0
  251. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/minutes_46_pauses.yaml +0 -0
  252. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/missing_task_profile_pauses.yaml +0 -0
  253. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/negated_guardrails_auto_accepts.yaml +0 -0
  254. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/path_like_deploy_auto_accepts.yaml +0 -0
  255. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/pause_classification_declared_capability.yaml +0 -0
  256. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/pause_classification_designed.yaml +0 -0
  257. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/pause_classification_mixed.yaml +0 -0
  258. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/pause_classification_undeclared.yaml +0 -0
  259. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/pause_classification_unplanned.yaml +0 -0
  260. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/private_issue_artifacts_auto_accepts.yaml +0 -0
  261. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/private_pr_artifacts_auto_accepts.yaml +0 -0
  262. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/private_pr_with_merge_pauses.yaml +0 -0
  263. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/profileless_credential_rotation_pauses.yaml +0 -0
  264. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/profileless_dependency_install_pauses.yaml +0 -0
  265. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/public_pr_artifacts_pause.yaml +0 -0
  266. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/risk_obvious_no_profile_pauses.yaml +0 -0
  267. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/sensitive_content_reply_only_advisory.yaml +0 -0
  268. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/side_effect_booleans_pause.yaml +0 -0
  269. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_accepted_auto_continues.yaml +0 -0
  270. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_disabled_pauses.yaml +0 -0
  271. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_drift_pauses.yaml +0 -0
  272. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_expired_pauses.yaml +0 -0
  273. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_later_round_pauses.yaml +0 -0
  274. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_missing_approval_pauses.yaml +0 -0
  275. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_repeated_addressed_round_exceeded.yaml +0 -0
  276. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_revoke_before_processing_pauses.yaml +0 -0
  277. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/thread_grant_revoked_pauses.yaml +0 -0
  278. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/threshold_breach_pauses.yaml +0 -0
  279. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/tight_threshold_pauses.yaml +0 -0
  280. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/top_level_side_effect_actuals_ignored.yaml +0 -0
  281. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/undeclared_credential_rotation_hard_stops.yaml +0 -0
  282. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/undeclared_dependency_install_hard_stops.yaml +0 -0
  283. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/expected/unparsable_task_profile_pauses.yaml +0 -0
  284. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/ledger_replay/corpus.yaml +0 -0
  285. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/ambiguous_scope.yaml +0 -0
  286. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/brainstorm_destructive.yaml +0 -0
  287. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/brainstorm_side_effect_verbs.yaml +0 -0
  288. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/brainstorm_without_profile.yaml +0 -0
  289. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/clean_task.yaml +0 -0
  290. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/continuation_grant.yaml +0 -0
  291. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/continuation_grant_destructive.yaml +0 -0
  292. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/continuation_grant_external_uncovered.yaml +0 -0
  293. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/contradictory_credential_rotation.yaml +0 -0
  294. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/contradictory_dependency_install.yaml +0 -0
  295. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/contradictory_sensitive_auth.yaml +0 -0
  296. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/contradictory_sensitive_config.yaml +0 -0
  297. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/contradictory_sensitive_credentials.yaml +0 -0
  298. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/contradictory_sensitive_secret.yaml +0 -0
  299. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/declaration_error_admission.yaml +0 -0
  300. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/declared_credential_rotation.yaml +0 -0
  301. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/declared_dependency_install.yaml +0 -0
  302. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/declared_destructive_ops.yaml +0 -0
  303. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/declared_external_default_branch_push.yaml +0 -0
  304. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/declared_merge_default_branch_push.yaml +0 -0
  305. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/default_envelope_credential_rotation.yaml +0 -0
  306. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/default_envelope_dependency_install.yaml +0 -0
  307. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/expired_message.yaml +0 -0
  308. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/guardrails_fence.yaml +0 -0
  309. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/hard_stop_dangerously_skip_permissions.yaml +0 -0
  310. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/hard_stop_external_side_effects.yaml +0 -0
  311. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/hard_stop_force.yaml +0 -0
  312. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/hard_stop_masking_threshold.yaml +0 -0
  313. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/hard_stop_no_verify.yaml +0 -0
  314. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/hard_stop_no_verify_upper.yaml +0 -0
  315. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/hard_stop_rm_rf.yaml +0 -0
  316. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/hard_stop_sensitive_scope.yaml +0 -0
  317. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/invalid_message.yaml +0 -0
  318. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/lexical_declared_false.yaml +0 -0
  319. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/minutes_45.yaml +0 -0
  320. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/minutes_46.yaml +0 -0
  321. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/missing_task_profile.yaml +0 -0
  322. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/negated_guardrails.yaml +0 -0
  323. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/path_like_deploy.yaml +0 -0
  324. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/pause_classification_declared_capability.yaml +0 -0
  325. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/pause_classification_designed.yaml +0 -0
  326. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/pause_classification_mixed.yaml +0 -0
  327. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/pause_classification_undeclared.yaml +0 -0
  328. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/pause_classification_unplanned.yaml +0 -0
  329. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/private_issue_artifacts.yaml +0 -0
  330. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/private_pr_artifacts.yaml +0 -0
  331. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/private_pr_with_merge.yaml +0 -0
  332. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/profileless_credential_rotation.yaml +0 -0
  333. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/profileless_dependency_install.yaml +0 -0
  334. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/public_pr_artifacts.yaml +0 -0
  335. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/risk_obvious_no_profile.yaml +0 -0
  336. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/sensitive_commercial.yaml +0 -0
  337. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/sensitive_config.yaml +0 -0
  338. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/sensitive_content_reply_only.yaml +0 -0
  339. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/sensitive_credentials.yaml +0 -0
  340. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/sensitive_memory_ssot.yaml +0 -0
  341. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/sensitive_pricing.yaml +0 -0
  342. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/sensitive_public_repo.yaml +0 -0
  343. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/sensitive_secret.yaml +0 -0
  344. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/side_effect_before_sensitive.yaml +0 -0
  345. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/side_effect_booleans.yaml +0 -0
  346. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/thread_grant_addressed_round3.yaml +0 -0
  347. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/thread_grant_effect_expansion.yaml +0 -0
  348. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/thread_grant_request.yaml +0 -0
  349. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/thread_grant_round4.yaml +0 -0
  350. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/thread_grant_unapproved.yaml +0 -0
  351. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/threshold_breach.yaml +0 -0
  352. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/undeclared_credential_rotation.yaml +0 -0
  353. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/undeclared_dependency_install.yaml +0 -0
  354. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/messages/unparsable_task_profile.yaml +0 -0
  355. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/admission_outcome_replaced_by_clear.yaml +0 -0
  356. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/breach_basis_source_mismatch.yaml +0 -0
  357. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/breached_empty_fields.yaml +0 -0
  358. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/cancelled_missing_actor.yaml +0 -0
  359. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/clean_terminal_cancelled.yaml +0 -0
  360. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/clean_terminal_done.yaml +0 -0
  361. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/declined_checkpoint_marked_done.yaml +0 -0
  362. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/duplicate_live_a.yaml +0 -0
  363. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/duplicate_live_b.yaml +0 -0
  364. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/duplicate_yaml_key_logged_notes.yaml +0 -0
  365. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/final_state_superseded_valid.yaml +0 -0
  366. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/inconsistent_work_clock.yaml +0 -0
  367. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/invalid_live_clock_adjustment.yaml +0 -0
  368. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/invalid_pause_intervals.yaml +0 -0
  369. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/legacy_born_done_unfinalized.yaml +0 -0
  370. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/noncanonical_axis_names.yaml +0 -0
  371. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/off_enum_final_state_completed.yaml +0 -0
  372. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/off_enum_kind_completed_after_human_approval.yaml +0 -0
  373. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/off_enum_kind_executed.yaml +0 -0
  374. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/off_enum_kind_human_approved_completed.yaml +0 -0
  375. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/off_enum_kind_review_round_delivered.yaml +0 -0
  376. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/pause_and_clock_adjustment.yaml +0 -0
  377. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/paused_terminal_action_unreconciled.yaml +0 -0
  378. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/paused_terminal_completed_stamp.yaml +0 -0
  379. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/serialized_wave_item.yaml +0 -0
  380. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/superseded_legacy_kind_repaired.yaml +0 -0
  381. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/superseded_legacy_successor_live.yaml +0 -0
  382. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/superseded_missing_successor.yaml +0 -0
  383. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/superseded_successor_live.yaml +0 -0
  384. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/superseded_unrelated_successor.yaml +0 -0
  385. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/terminal_time_pause_after_completion.yaml +0 -0
  386. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/terminal_time_pause_cleared.yaml +0 -0
  387. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/two_cleared_pauses.yaml +0 -0
  388. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/two_clock_adjustments.yaml +0 -0
  389. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/two_pauses_first_answer_human_outcome.yaml +0 -0
  390. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/records/unrelated_identity_holder_live.yaml +0 -0
  391. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/autonomy/thread_grants/corpus.yaml +0 -0
  392. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/README.md +0 -0
  393. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/configs/auto_review_standard.yaml +0 -0
  394. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/configs/malformed.yaml +0 -0
  395. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/adapter_detection_failed.yaml +0 -0
  396. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/adapter_expected_missing.yaml +0 -0
  397. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/clean_pr_task_compiles.yaml +0 -0
  398. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/docs_only_task_compiles.yaml +0 -0
  399. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/granular_capabilities_compile.yaml +0 -0
  400. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/invalid_numeric_fails.yaml +0 -0
  401. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/malformed_config_fails.yaml +0 -0
  402. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/missing_profile_fails.yaml +0 -0
  403. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/unparsable_profile_fails.yaml +0 -0
  404. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/expected/unsupported_runtime_codex.yaml +0 -0
  405. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/messages/clean_pr_task.yaml +0 -0
  406. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/messages/docs_only_task.yaml +0 -0
  407. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/messages/granular_capabilities_task.yaml +0 -0
  408. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/messages/invalid_numeric.yaml +0 -0
  409. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/messages/missing_profile.yaml +0 -0
  410. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/envelope/messages/unparsable_profile.yaml +0 -0
  411. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/body_schema.yaml +0 -0
  412. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/configs/enforce.yaml +0 -0
  413. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/configs/off.yaml +0 -0
  414. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/configs/warn.yaml +0 -0
  415. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/signed_basic__enforce.yaml +0 -0
  416. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/signed_revoked__enforce.yaml +0 -0
  417. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/signed_revoked__off.yaml +0 -0
  418. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/signed_revoked__warn.yaml +0 -0
  419. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/tamper_body_flip__enforce.yaml +0 -0
  420. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/tamper_body_flip__off.yaml +0 -0
  421. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/tamper_body_flip__warn.yaml +0 -0
  422. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/tamper_kid_unknown__enforce.yaml +0 -0
  423. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/tamper_kid_unknown__off.yaml +0 -0
  424. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/tamper_kid_unknown__warn.yaml +0 -0
  425. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/unsigned_notification__enforce.yaml +0 -0
  426. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/unsigned_notification__off.yaml +0 -0
  427. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/intake/expected/unsigned_notification__warn.yaml +0 -0
  428. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/memory_layout/README.md +0 -0
  429. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/memory_layout/canonical_memory_gitignore.txt +0 -0
  430. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/memory_layout/layout.yaml +0 -0
  431. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/README.md +0 -0
  432. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/signed_basic.yaml +0 -0
  433. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/signed_lookalike.yaml +0 -0
  434. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/signed_multisig.yaml +0 -0
  435. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/signed_revoked.yaml +0 -0
  436. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_auth_alias.yaml +0 -0
  437. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_body_flip.yaml +0 -0
  438. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_container_reformat.yaml +0 -0
  439. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_crlf_trailer.yaml +0 -0
  440. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_header_reencode.yaml +0 -0
  441. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_identity_mismatch.yaml +0 -0
  442. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_indented_trailer.yaml +0 -0
  443. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_kid_alias.yaml +0 -0
  444. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_kid_cross_agent.yaml +0 -0
  445. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_kid_unknown.yaml +0 -0
  446. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_missing_final_lf.yaml +0 -0
  447. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_padded_b64.yaml +0 -0
  448. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_sig_alias.yaml +0 -0
  449. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_sig_corrupt.yaml +0 -0
  450. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_trailer_transplant.yaml +0 -0
  451. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_trailing_blank_line.yaml +0 -0
  452. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/tamper_trailing_space.yaml +0 -0
  453. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/expected/unsigned_notification.yaml +0 -0
  454. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/keys/alice.json +0 -0
  455. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/keys/bob.json +0 -0
  456. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/keys/carol.json +0 -0
  457. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/signed_basic.prefix.yaml +0 -0
  458. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/signed_basic.yaml +0 -0
  459. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/signed_lookalike.prefix.yaml +0 -0
  460. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/signed_lookalike.yaml +0 -0
  461. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/signed_multisig.prefix.yaml +0 -0
  462. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/signed_multisig.yaml +0 -0
  463. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/signed_revoked.prefix.yaml +0 -0
  464. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/signed_revoked.yaml +0 -0
  465. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_auth_alias.yaml +0 -0
  466. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_body_flip.yaml +0 -0
  467. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_container_reformat.yaml +0 -0
  468. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_crlf_trailer.yaml +0 -0
  469. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_header_reencode.yaml +0 -0
  470. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_identity_mismatch.prefix.yaml +0 -0
  471. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_identity_mismatch.yaml +0 -0
  472. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_indented_trailer.yaml +0 -0
  473. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_kid_alias.yaml +0 -0
  474. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_kid_cross_agent.yaml +0 -0
  475. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_kid_unknown.yaml +0 -0
  476. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_missing_final_lf.yaml +0 -0
  477. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_padded_b64.yaml +0 -0
  478. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_sig_alias.yaml +0 -0
  479. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_sig_corrupt.yaml +0 -0
  480. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_trailer_transplant.yaml +0 -0
  481. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_trailing_blank_line.yaml +0 -0
  482. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/tamper_trailing_space.yaml +0 -0
  483. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/messages/unsigned_notification.yaml +0 -0
  484. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/pins/allowed_signers.yaml +0 -0
  485. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/conformance/signing/regen_fixtures.py +0 -0
  486. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_add_agent.py +0 -0
  487. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_agent_profile.py +0 -0
  488. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_audit_corpus_boundary.py +0 -0
  489. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_audit_record_conformance.py +0 -0
  490. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_autonomy_conformance_fixtures.py +0 -0
  491. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_autonomy_ledger_replay.py +0 -0
  492. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_codex_session_init.py +0 -0
  493. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_default_envelope.py +0 -0
  494. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_envelope_conformance_fixtures.py +0 -0
  495. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_envelope_public_admission.py +0 -0
  496. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_expected_pauses.py +0 -0
  497. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_github_workflows.py +0 -0
  498. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_inbox_verify.py +0 -0
  499. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_init_project_workspace.py +0 -0
  500. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_memory_layout_fixture.py +0 -0
  501. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_message_signing.py +0 -0
  502. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_oacp_env.py +0 -0
  503. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_oacp_inbox.py +0 -0
  504. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_packaged_status_template.py +0 -0
  505. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_preflight.py +0 -0
  506. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_review_loop.py +0 -0
  507. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_signing_conformance.py +0 -0
  508. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_spec_version.py +0 -0
  509. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_validate_agent_card.py +0 -0
  510. {oacp_cli-0.5.2 → oacp_cli-0.5.4}/tests/test_workspace_discovery.py +0 -0
@@ -9,3 +9,6 @@ tests/conformance/signing/messages/** -text
9
9
  tests/conformance/signing/messages/tamper_crlf_trailer.yaml whitespace=-trailing-space
10
10
  tests/conformance/signing/messages/tamper_trailing_space.yaml whitespace=-trailing-space
11
11
  tests/conformance/signing/messages/tamper_trailing_blank_line.yaml whitespace=-blank-at-eof
12
+
13
+ # Not part of source exports; the sdist excludes it in pyproject.toml.
14
+ tests/dev_only export-ignore
@@ -7,6 +7,82 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.5.4] - 2026-10-27
11
+
12
+ Scripts run under an envelope by sha256 pin only, and the Claude envelope hook judges more shell shapes instead of asking on them or passing them unjudged.
13
+
14
+ ### Added
15
+
16
+ - Receiver config `envelope.trusted_scripts` pins the scripts the envelope hook may run ([config](docs/protocol/autonomy.md#receiver-config)).
17
+ - `oacp trust pin-script` records a script's pin and re-signs the receiver config ([signing](docs/protocol/message_signing.md#policy-file-signing)).
18
+ - `oacp doctor --project <name>` reports malformed, missing and stale script pins ([config](docs/protocol/autonomy.md#receiver-config)).
19
+ - The envelope hook logs asks and denies to `envelope_decisions.jsonl` ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
20
+
21
+ ### Changed
22
+
23
+ - The envelope hook runs a pinned script and asks on an unpinned one ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
24
+ - The envelope hook judges an App-token `gh` chain by its final command ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
25
+ - The envelope hook passes more read-only shell forms as reads ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
26
+ - The envelope hook stops denying a destructive word in a search pattern ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
27
+ - The envelope hook allows `--attach-audit` stamps on the task's record ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
28
+ - `oacp verify --attach-audit` refuses another message's record ([spec](docs/protocol/message_signing.md#receiver-audit-stamping---attach-audit)).
29
+ - The finalizer refuses an uncovered `--realized` grant-only effect ([contract](docs/protocol/autonomy.md#terminal-finalization-and-audit-integrity)).
30
+ - Audit sweeps report the legacy work-clock advisory as one line ([validation](docs/protocol/autonomy.md#terminal-finalization-and-audit-integrity)).
31
+
32
+ ### Fixed
33
+
34
+ - `oacp trust sign-policy` locks the policy and keeps it whole when a run fails ([signing](docs/protocol/message_signing.md#policy-file-signing)).
35
+ - The envelope hook judges commands nested in shell compound commands ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
36
+ - The envelope hook asks on a program name built by shell expansion ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
37
+ - The envelope hook judges `/usr/bin/env gh …` like `env gh …` ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
38
+
39
+ ## [0.5.3] - 2026-10-20
40
+
41
+ Kernel commands regroup under `agent`, `trust`, and `autonomy`, and the retired memory, packet, and findings surfaces leave the kernel.
42
+
43
+ ### Added
44
+
45
+ - Custom audit directories outside the expected layout draw a warning ([guide](docs/guides/command-migration.md#audit-directory-diagnostics)).
46
+ - Message verification streams verdicts for paths supplied on standard input ([guide](docs/guides/batch-verification.md)).
47
+ - Admission and finalization stamp the serving model and effort ([contract](docs/protocol/autonomy.md#terminal-finalization-and-audit-integrity)).
48
+ - Task profiles may declare `sends_oacp_reply` for the completion reply ([contract](docs/protocol/autonomy.md#message-fields)).
49
+
50
+ ### Changed
51
+
52
+ - **Breaking:** Agent, key, and audit-writer commands move under `agent`, `trust`, and `autonomy` ([migration](docs/guides/command-migration.md)).
53
+ - **Breaking:** Workspace initialization refuses existing roots and offers a write-free plan ([migration](docs/guides/workspace-initialization.md)).
54
+ - Protocol contract stamp `spec_version` moves to `0.5.3` ([contract version](docs/protocol/autonomy.md#contract-version)).
55
+ - Review verdicts name the head they bind to in `validated_head` ([spec](docs/protocol/review_loop.md#message-schemas)).
56
+ - Review rounds add `max_rounds`, `withheld_side_effects`, `human_direction`, supersession ([spec](docs/protocol/review_loop.md#message-schemas)).
57
+ - A review round that expects a GitHub action must declare `side_effects` ([spec](docs/protocol/review_loop.md#message-schemas)).
58
+ - `SECURITY.md` names the same-user forgery limit of message signing ([policy](SECURITY.md#local-forgery-the-same-user-threat-model)).
59
+
60
+ ### Removed
61
+
62
+ - Packet initialization and the packet and handoff templates ([migration](docs/guides/command-migration.md#packet-and-handoff-templates)).
63
+ - The findings evaluator and quality gate; workflows own their validators ([migration](docs/guides/command-migration.md#workflow-validators)).
64
+ - Handoff body-schema checks and advisories from message validation and admission ([boundary](docs/protocol/inbox_outbox.md#validation-boundary)).
65
+ - The `oacp memory` and `oacp org-memory` shims; call the memory tool directly ([migration](docs/guides/memory-cli-migration.md)).
66
+ - The `oacp write-event` shim and bundled event writer; use `agent-memory event write` ([migration](docs/guides/memory-cli-migration.md)).
67
+ - The `oacp retention` advisory command ([migration](docs/guides/memory-cli-migration.md#retention)).
68
+
69
+ ### Fixed
70
+
71
+ - Never-admitted reviews close on replacement evidence ([contract](docs/protocol/autonomy.md#closing-a-sender-superseded-never-admitted-review)).
72
+ - Workspace updates preserve the existing agent roster ([layout](scripts/_oacp_constants.py)).
73
+ - Inbox and watch text output keeps untrusted values on a bounded, terminal-safe line ([renderers](scripts/oacp_inbox.py)).
74
+ - A scoped re-authorization decided before its pause clears it at the pause stamp ([contract](docs/protocol/autonomy.md#consumption)).
75
+ - A stored clear stamped before its pause reads as unanswered ([contract](docs/protocol/autonomy.md#threshold-exceeded-checkpoint)).
76
+ - `sends_oacp_reply_only: true` covers its own reply without a checkpoint pause ([contract](docs/protocol/autonomy.md#threshold-exceeded-checkpoint)).
77
+ - A breaching `--replace` on a closed record fails closed ([contract](docs/protocol/autonomy.md#terminal-finalization-and-audit-integrity)).
78
+ - The envelope hook treats `gh search` as a read ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
79
+ - The envelope hook exempts single-pipeline sandboxed `$TMPDIR` writes ([adapter](docs/protocol/autonomy.md#delivery-static-shim-dynamic-envelope)).
80
+ - The envelope hook no longer counts quoted redirect characters as file writes ([classifier](scripts/claude_envelope_hook.py)).
81
+ - The envelope hook asks for review on unsupported quoting, shell comments, and ambiguous heredocs ([classifier](scripts/claude_envelope_hook.py)).
82
+ - The envelope hook classifies mutations after command-substitution environment assignments ([classifier](scripts/claude_envelope_hook.py)).
83
+ - The envelope hook permits read-only message verification while retaining review for write modes ([classifier](scripts/claude_envelope_hook.py)).
84
+ - `oacp setup claude` writes an agent file Claude Code loads, named after the project ([template](templates/claude/agents/role_agent.template.md)).
85
+
10
86
  ## [0.5.2] - 2026-09-15
11
87
 
12
88
  ### Added
@@ -912,6 +988,8 @@ The central debrief store is the headline change: every agent's full end-of-sess
912
988
  - Checkout step in github-release workflow job (#19)
913
989
  - Pre-release audit fixes: SHA-pinned actions, dangling doc refs (#15, #16)
914
990
 
991
+ [0.5.4]: https://github.com/kiloloop/oacp/compare/v0.5.3...v0.5.4
992
+ [0.5.3]: https://github.com/kiloloop/oacp/compare/v0.5.2...v0.5.3
915
993
  [0.5.2]: https://github.com/kiloloop/oacp/compare/v0.5.1...v0.5.2
916
994
  [0.5.1]: https://github.com/kiloloop/oacp/compare/v0.5.0...v0.5.1
917
995
  [0.5.0]: https://github.com/kiloloop/oacp/compare/v0.4.6...v0.5.0
@@ -16,7 +16,7 @@ endif
16
16
 
17
17
  # ── Targets ──────────────────────────────────────────────────────────────
18
18
 
19
- .PHONY: help update test docs validate validate-msg validate-card send quality packet preflight doctor
19
+ .PHONY: help update test docs validate validate-msg validate-card send preflight doctor
20
20
 
21
21
  help: ## Show available targets (default)
22
22
  @echo "OACP — task runner"
@@ -32,8 +32,9 @@ update: _require-project ## Sync existing workspace with latest structure
32
32
  test: ## Run all tests
33
33
  python3 -m pytest $(SCRIPTS_DIR)/../tests -v $(ARGS)
34
34
 
35
- docs: ## Regenerate the README command table from oacp --help
35
+ docs: ## Regenerate the README command table and autonomy audit example
36
36
  python3 $(SCRIPTS_DIR)/gen_readme_commands.py --write
37
+ python3 $(SCRIPTS_DIR)/../tools/generate_audit_example.py --write
37
38
 
38
39
  validate-msg: ## Validate inbox messages
39
40
  python3 $(SCRIPTS_DIR)/validate_message.py $(ARGS)
@@ -51,9 +52,3 @@ doctor: ## Check environment and workspace health
51
52
 
52
53
  send: _require-project ## Send an inbox message
53
54
  python3 $(SCRIPTS_DIR)/send_inbox_message.py $(PROJECT) $(ARGS)
54
-
55
- quality: ## Run quality gate check
56
- python3 $(SCRIPTS_DIR)/check_quality_gate.py $(ARGS)
57
-
58
- packet: _require-project ## Create a review/findings/merge packet
59
- bash $(SCRIPTS_DIR)/init_packet.sh $(PROJECT) $(ARGS)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: oacp-cli
3
- Version: 0.5.2
3
+ Version: 0.5.4
4
4
  Summary: Open Agent Coordination Protocol CLI for file-based multi-agent workflows
5
5
  Project-URL: Homepage, https://github.com/kiloloop/oacp
6
6
  Project-URL: Repository, https://github.com/kiloloop/oacp
@@ -33,7 +33,6 @@ Description-Content-Type: text/markdown
33
33
  [![Claude Code](https://img.shields.io/badge/Runtime-Claude_Code-6B4FBB.svg)](https://claude.ai/code)
34
34
  [![Codex](https://img.shields.io/badge/Runtime-Codex-74AA9C.svg)](https://openai.com/index/codex/)
35
35
  [![Cursor](https://img.shields.io/badge/Runtime-Cursor-222222.svg)](https://cursor.com/)
36
- [![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen)](https://github.com/kiloloop/oacp/pulls)
37
36
 
38
37
  > Coordinate agents *without* the chaos.
39
38
 
@@ -56,7 +55,7 @@ The CLI ships structured tasks between agents and lets you watch the conversatio
56
55
  ## Live agent fleet
57
56
 
58
57
  <p align="center">
59
- <img src="https://raw.githubusercontent.com/kiloloop/oacp/main/docs/img/oacp-fleet-thread.png" alt="claude / codex / gemini fleet with PR #42 review thread" width="650" />
58
+ <img src="https://raw.githubusercontent.com/kiloloop/oacp/main/docs/img/oacp-fleet-thread.png" alt="claude / codex fleet with PR #42 review thread" width="650" />
60
59
  </p>
61
60
 
62
61
  Every multi-agent thread is a sequence of typed messages — `review_request`, `review_feedback`, `review_addressed`, `review_lgtm` — with explicit quality gates.
@@ -69,7 +68,6 @@ PROJECT · my-app ● live
69
68
 
70
69
  C claude code drafting PR #42
71
70
  X codex cli reviewing
72
- G gemini api idle
73
71
 
74
72
  claude → review_request "auth refactor" [codex]
75
73
  codex → review_feedback 2 minor, 0 blocking [claude]
@@ -134,7 +132,7 @@ oacp send my-project --from alice --to bob --type task_request \
134
132
  ```
135
133
 
136
134
  By default, `oacp init my-project` creates `claude`, `codex`, and `cursor`
137
- agents. Pass `--agents` to include Gemini or custom agent names.
135
+ agents. Pass `--agents` to choose your own agent names.
138
136
 
139
137
  When running inside a configured agent runtime, `--from` can be omitted — OACP infers the sender from `OACP_AGENT`, `AGENT_NAME`, or the agent card. See [QUICKSTART.md](QUICKSTART.md) for a full walkthrough. Or try the [5-minute quickstart →](examples/quickstart/) to send your first message to a real AI agent.
140
138
 
@@ -256,29 +254,28 @@ uv tool install .
256
254
  <!-- BEGIN GENERATED: oacp commands — do not edit by hand; run `make docs` -->
257
255
  | Command | Description |
258
256
  |---------|-------------|
259
- | `oacp init` | Create a project workspace under $OACP_HOME/projects/ |
260
- | `oacp add-agent` | Add an agent to an existing project workspace |
261
- | `oacp agent` | Manage global agent profiles (init, sync, show, list) |
257
+ | `oacp init` | Create a new project workspace; preview with --dry-run |
258
+ | `oacp agent` | Add project agents and manage global profiles |
262
259
  | `oacp inbox` | List pending inbox messages |
263
260
  | `oacp watch` | Emit inbox delta events for Monitor-friendly polling |
264
- | `oacp retention` | Parked: engine archived outside the kernel; advisory shim until 0.5.3 |
265
- | `oacp memory` | Run agent-memory (sync, archive, restore); shim until 0.5.3 |
266
261
  | `oacp session-init` | Verify Codex startup inputs and emit SessionStart context |
267
262
  | `oacp setup` | Generate runtime-specific config files in a repo |
268
263
  | `oacp send` | Send a protocol-compliant inbox message |
269
- | `oacp key` | Generate and inspect message-signing keys |
270
- | `oacp trust` | Import, inspect, and revoke trust-root entries (catalog + pins) |
271
- | `oacp org-memory` | Run agent-memory org (init); shim until 0.5.3 |
272
- | `oacp write-event` | Write an event to org-memory/events/ |
273
- | `oacp autonomy-outcome` | Record a human approval/decline in an autonomy audit |
274
- | `oacp autonomy-finalize` | Record checkpoints and terminal states in an autonomy audit |
264
+ | `oacp trust` | Manage local keys and project trust (catalog + pins) |
265
+ | `oacp autonomy` | Record human outcomes, checkpoints, and terminal audit states |
275
266
  | `oacp envelope` | Compile, show, or clear the runtime envelope for a task |
276
267
  | `oacp doctor` | Check environment and workspace health |
277
268
  | `oacp validate` | Validate an inbox/outbox YAML message |
278
269
  | `oacp verify` | Verify a message's auth trailer against receiver-local pins |
279
270
  <!-- END GENERATED: oacp commands -->
280
271
 
281
- `oacp --version` prints the installed version.
272
+ `oacp --version` prints the installed version. Related operations now use
273
+ `agent add`, `trust keygen|keys`, and `autonomy outcome|finalize`; see the
274
+ [command migration guide](docs/guides/command-migration.md).
275
+
276
+ Memory operations use [agent-memory](https://github.com/kiloloop/agent-memory)
277
+ directly. The `memory`, `org-memory`, `write-event`, and `retention` commands
278
+ were removed in 0.5.3; see the [migration guide](docs/guides/memory-cli-migration.md).
282
279
 
283
280
  <details>
284
281
  <summary>Key flags</summary>
@@ -289,8 +286,6 @@ uv tool install .
289
286
 
290
287
  **`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
291
288
 
292
- **`oacp memory`** / **`oacp org-memory`**: exec shims for [agent-memory](https://github.com/kiloloop/agent-memory) (`pip install agent-memory-cli`): argv passes through, `--oacp-dir` becomes `--home`, `oacp memory init` runs `agent-memory enable`. Kept through 0.5.2, removed in 0.5.3; call `agent-memory` directly.
293
-
294
289
  </details>
295
290
 
296
291
  If `OACP_HOME` is unset, workspace commands default to `~/oacp`.
@@ -389,6 +384,8 @@ make preflight
389
384
 
390
385
  ## Documentation
391
386
 
387
+ - [Batch verification](docs/guides/batch-verification.md) — Stream message verdicts from stdin paths
388
+
392
389
  - [SPEC.md](SPEC.md) — Full protocol specification
393
390
  - [examples/quickstart/](examples/quickstart/) — Hands-on tutorial: send a message to an AI agent
394
391
  - [QUICKSTART.md](QUICKSTART.md) — CLI reference walkthrough
@@ -5,7 +5,6 @@
5
5
  [![Claude Code](https://img.shields.io/badge/Runtime-Claude_Code-6B4FBB.svg)](https://claude.ai/code)
6
6
  [![Codex](https://img.shields.io/badge/Runtime-Codex-74AA9C.svg)](https://openai.com/index/codex/)
7
7
  [![Cursor](https://img.shields.io/badge/Runtime-Cursor-222222.svg)](https://cursor.com/)
8
- [![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen)](https://github.com/kiloloop/oacp/pulls)
9
8
 
10
9
  > Coordinate agents *without* the chaos.
11
10
 
@@ -28,7 +27,7 @@ The CLI ships structured tasks between agents and lets you watch the conversatio
28
27
  ## Live agent fleet
29
28
 
30
29
  <p align="center">
31
- <img src="https://raw.githubusercontent.com/kiloloop/oacp/main/docs/img/oacp-fleet-thread.png" alt="claude / codex / gemini fleet with PR #42 review thread" width="650" />
30
+ <img src="https://raw.githubusercontent.com/kiloloop/oacp/main/docs/img/oacp-fleet-thread.png" alt="claude / codex fleet with PR #42 review thread" width="650" />
32
31
  </p>
33
32
 
34
33
  Every multi-agent thread is a sequence of typed messages — `review_request`, `review_feedback`, `review_addressed`, `review_lgtm` — with explicit quality gates.
@@ -41,7 +40,6 @@ PROJECT · my-app ● live
41
40
 
42
41
  C claude code drafting PR #42
43
42
  X codex cli reviewing
44
- G gemini api idle
45
43
 
46
44
  claude → review_request "auth refactor" [codex]
47
45
  codex → review_feedback 2 minor, 0 blocking [claude]
@@ -106,7 +104,7 @@ oacp send my-project --from alice --to bob --type task_request \
106
104
  ```
107
105
 
108
106
  By default, `oacp init my-project` creates `claude`, `codex`, and `cursor`
109
- agents. Pass `--agents` to include Gemini or custom agent names.
107
+ agents. Pass `--agents` to choose your own agent names.
110
108
 
111
109
  When running inside a configured agent runtime, `--from` can be omitted — OACP infers the sender from `OACP_AGENT`, `AGENT_NAME`, or the agent card. See [QUICKSTART.md](QUICKSTART.md) for a full walkthrough. Or try the [5-minute quickstart →](examples/quickstart/) to send your first message to a real AI agent.
112
110
 
@@ -228,29 +226,28 @@ uv tool install .
228
226
  <!-- BEGIN GENERATED: oacp commands — do not edit by hand; run `make docs` -->
229
227
  | Command | Description |
230
228
  |---------|-------------|
231
- | `oacp init` | Create a project workspace under $OACP_HOME/projects/ |
232
- | `oacp add-agent` | Add an agent to an existing project workspace |
233
- | `oacp agent` | Manage global agent profiles (init, sync, show, list) |
229
+ | `oacp init` | Create a new project workspace; preview with --dry-run |
230
+ | `oacp agent` | Add project agents and manage global profiles |
234
231
  | `oacp inbox` | List pending inbox messages |
235
232
  | `oacp watch` | Emit inbox delta events for Monitor-friendly polling |
236
- | `oacp retention` | Parked: engine archived outside the kernel; advisory shim until 0.5.3 |
237
- | `oacp memory` | Run agent-memory (sync, archive, restore); shim until 0.5.3 |
238
233
  | `oacp session-init` | Verify Codex startup inputs and emit SessionStart context |
239
234
  | `oacp setup` | Generate runtime-specific config files in a repo |
240
235
  | `oacp send` | Send a protocol-compliant inbox message |
241
- | `oacp key` | Generate and inspect message-signing keys |
242
- | `oacp trust` | Import, inspect, and revoke trust-root entries (catalog + pins) |
243
- | `oacp org-memory` | Run agent-memory org (init); shim until 0.5.3 |
244
- | `oacp write-event` | Write an event to org-memory/events/ |
245
- | `oacp autonomy-outcome` | Record a human approval/decline in an autonomy audit |
246
- | `oacp autonomy-finalize` | Record checkpoints and terminal states in an autonomy audit |
236
+ | `oacp trust` | Manage local keys and project trust (catalog + pins) |
237
+ | `oacp autonomy` | Record human outcomes, checkpoints, and terminal audit states |
247
238
  | `oacp envelope` | Compile, show, or clear the runtime envelope for a task |
248
239
  | `oacp doctor` | Check environment and workspace health |
249
240
  | `oacp validate` | Validate an inbox/outbox YAML message |
250
241
  | `oacp verify` | Verify a message's auth trailer against receiver-local pins |
251
242
  <!-- END GENERATED: oacp commands -->
252
243
 
253
- `oacp --version` prints the installed version.
244
+ `oacp --version` prints the installed version. Related operations now use
245
+ `agent add`, `trust keygen|keys`, and `autonomy outcome|finalize`; see the
246
+ [command migration guide](docs/guides/command-migration.md).
247
+
248
+ Memory operations use [agent-memory](https://github.com/kiloloop/agent-memory)
249
+ directly. The `memory`, `org-memory`, `write-event`, and `retention` commands
250
+ were removed in 0.5.3; see the [migration guide](docs/guides/memory-cli-migration.md).
254
251
 
255
252
  <details>
256
253
  <summary>Key flags</summary>
@@ -261,8 +258,6 @@ uv tool install .
261
258
 
262
259
  **`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
263
260
 
264
- **`oacp memory`** / **`oacp org-memory`**: exec shims for [agent-memory](https://github.com/kiloloop/agent-memory) (`pip install agent-memory-cli`): argv passes through, `--oacp-dir` becomes `--home`, `oacp memory init` runs `agent-memory enable`. Kept through 0.5.2, removed in 0.5.3; call `agent-memory` directly.
265
-
266
261
  </details>
267
262
 
268
263
  If `OACP_HOME` is unset, workspace commands default to `~/oacp`.
@@ -361,6 +356,8 @@ make preflight
361
356
 
362
357
  ## Documentation
363
358
 
359
+ - [Batch verification](docs/guides/batch-verification.md) — Stream message verdicts from stdin paths
360
+
364
361
  - [SPEC.md](SPEC.md) — Full protocol specification
365
362
  - [examples/quickstart/](examples/quickstart/) — Hands-on tutorial: send a message to an AI agent
366
363
  - [QUICKSTART.md](QUICKSTART.md) — CLI reference walkthrough
@@ -0,0 +1,72 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a Vulnerability
4
+
5
+ If you discover a security vulnerability in OACP, please report it responsibly.
6
+
7
+ **Do not open a public GitHub issue for security vulnerabilities.**
8
+
9
+ Instead, use [GitHub's private vulnerability reporting](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability) on the affected repository when it is enabled. If private reporting is unavailable, use the repository's documented private security contact or another non-public maintainer channel.
10
+
11
+ ## Response Timeline
12
+
13
+ - **Acknowledgment**: Within 48 hours of receiving your report.
14
+ - **Assessment**: We will evaluate the severity and impact within 7 days.
15
+ - **Fix**: Critical vulnerabilities will be patched within 30 days. We will coordinate disclosure timing with you.
16
+
17
+ ## Supported Versions
18
+
19
+ | Version | Supported |
20
+ |---------|-----------|
21
+ | 0.x | Yes |
22
+
23
+ ## Scope
24
+
25
+ OACP is a file-based coordination protocol. Security considerations include:
26
+
27
+ - **Message authenticity** — Messages carry an Ed25519 signature trailer (`auth:`) that receivers verify against pinned signer identities (see `docs/protocol/message_signing.md`). Message bodies are not encrypted. Report any case where a receiver in `enforce` mode processes a message that is unsigned, fails verification, or comes from a signer it has not pinned.
28
+ - **Credential scoping** — The protocol defines credential boundaries per agent (see `docs/protocol/credential_scoping.md`). Report issues where these boundaries can be bypassed.
29
+ - **Script injection** — Report any case where user-controlled input in message fields can lead to command injection via OACP scripts.
30
+ - **Path traversal** — Report any case where message fields or script arguments can read or write files outside the intended directories.
31
+
32
+ ### Local forgery: the same-user threat model
33
+
34
+ Signing keys live under `$OACP_HOME/keys/` as `0600` files in `0700`
35
+ directories, per machine, and are never synced. Every agent runtime on a
36
+ host runs as the same OS user by default, so **any process running as that
37
+ user can read every local agent's private key and produce a valid
38
+ signature as any local agent.** The same process can also write directly
39
+ into any inbox. A shell-capable local agent, a tool with filesystem access,
40
+ or a compromised session can therefore forge a message from any identity on
41
+ that host, and the receiver's verification will pass.
42
+
43
+ Signing is still worth having. It gives:
44
+
45
+ - **Tamper evidence** — a message altered after signing fails verification.
46
+ - **Cross-host attribution** — a peer on another machine can verify that a
47
+ message came from a key enrolled on this one, and a key cannot be used from
48
+ a host it was never copied to.
49
+ - **Signer control** — receivers accept only pinned keys, and a revoked or
50
+ unknown key is rejected under `enforce` mode.
51
+ - **An auditable trail** for honest agents, stamped onto each receiver's
52
+ audit record at intake.
53
+
54
+ It does not give **same-host anti-impersonation**. A verified signature
55
+ proves that the message was signed with a given key, not which local agent
56
+ held it at the time. On a shared host, treat both the `from:` field and a
57
+ verified signature as **provenance within the trust boundary of the OS
58
+ user**, not as proof of authorship by one agent over another.
59
+
60
+ Closing the gap is an isolation decision, not a protocol change: one OS user
61
+ per agent with its key directory owned by that user, containers, or separate
62
+ hosts with enforced access controls. Hardware- or keychain-backed signers are
63
+ planned behind the same key-id seam and would protect the key material from
64
+ copying, but they do not isolate a shared filesystem or process space.
65
+
66
+ Same-user forgery on a shared host is a documented limitation, not a
67
+ vulnerability; please do not report it as one. Do report any case where a
68
+ receiver accepts a message that should have failed verification.
69
+
70
+ ## Acknowledgments
71
+
72
+ We appreciate responsible disclosure and will credit reporters in release notes (unless you prefer to remain anonymous).
@@ -2,8 +2,6 @@
2
2
 
3
3
  `claude -p` is how most people first script a Claude agent. It works — but if you run agents in automation, it's worth asking a question the one-liner never forces: **why is the agent headless and synchronous in the first place?**
4
4
 
5
- (A pricing footnote, since earlier versions of this page led with it: Anthropic explored moving programmatic usage — `claude -p`, the Agent SDK, Claude Code GitHub Actions — onto a separate metered credit, but paused that change before it took effect; per the June 15 announcement no such credit exists, subscription limits are unchanged, and advance notice is promised before any future version.)
6
-
7
5
  This guide is built to be handed to your agent. Read the first half for the *why*; paste the setup block into your Claude Code session for the *how*.
8
6
 
9
7
  > **Setup is a one-time ~5 minutes. Every task after that is one `oacp send` — async, non-blocking, observable.**
@@ -0,0 +1,25 @@
1
+ # Streaming message verification
2
+
3
+ `oacp verify --batch --project <project> --receiver <receiver> --oacp-dir <home>`
4
+ reads one message path per stdin line. Each output line is the existing JSON
5
+ verification object plus `path`, emitted in input order and flushed immediately.
6
+ `--json` is optional in batch mode. Paths containing spaces are preserved; newline
7
+ characters cannot occur within a path. The final input line need not end in a newline.
8
+
9
+ One invocation loads one receiver pin-policy snapshot and uses it for the entire
10
+ stream. Start a new invocation after changing trust policy. Verification retains
11
+ the existing bounded-byte, signature, sender-binding and payload-digest rules;
12
+ batch output supplies annotations, not intake authority.
13
+
14
+ Exit status is zero when the complete stream was processed, even if individual
15
+ verdicts are invalid, untrusted, revoked or unsupported. Inspect each `status`.
16
+ Unreadable or non-regular files (including directories and FIFOs) and empty
17
+ input lines produce `invalid` with `read_error: true`, a null payload digest, and
18
+ a read-error reason. The additive `read_error` field distinguishes these rows
19
+ from invalid message content; other rows omit it. Invalid arguments or stream I/O/decoding failures
20
+ exit nonzero; output emitted before a stream failure remains valid partial output.
21
+ An empty stream succeeds without output.
22
+
23
+ Batch mode cannot combine with a positional message file, `--quarantine` or
24
+ `--attach-audit`. Those effects retain their single-message interface. Existing
25
+ single-message output and exit codes are unchanged.
@@ -0,0 +1,70 @@
1
+ # Command namespaces in 0.5.3
2
+
3
+ OACP 0.5.3 groups related operations under `agent`, `trust`, and `autonomy`.
4
+ Update callers before upgrading; the previous root commands now return an
5
+ unknown-command error with exit code 2 and have no aliases.
6
+
7
+ | Previous command | Replacement |
8
+ | --- | --- |
9
+ | `oacp add-agent <project> <agent> ...` | `oacp agent add <project> <agent> ...` |
10
+ | `oacp key gen ...` | `oacp trust keygen ...` |
11
+ | `oacp key list ...` | `oacp trust keys ...` |
12
+ | `oacp autonomy-outcome <audit> ...` | `oacp autonomy outcome <audit> ...` |
13
+ | `oacp autonomy-finalize <audit> ...` | `oacp autonomy finalize <audit> ...` |
14
+
15
+ Arguments, output, and operation exit codes stay with the existing
16
+ implementations. The global agent registry and `agent init|sync|show|list`
17
+ remain available. `trust keygen` and `trust keys` manage local keys without
18
+ requiring a project; `trust list` continues to list project catalog entries
19
+ and receiver pins.
20
+
21
+ For `agent` and `trust`, `--oacp-dir <path>` or `--oacp-dir=<path>` can appear
22
+ before or after the subcommand; the last occurrence wins. Leaf help works as
23
+ `oacp agent add --help` or `oacp help agent add` (likewise for `trust keygen`
24
+ and `autonomy finalize`).
25
+
26
+ Stored audit receipts retain the immutable
27
+ `result.finalizer.name: oacp autonomy-finalize` discriminator. It identifies
28
+ the writer format and is independent of the current command spelling.
29
+
30
+ The separate [memory command migration](memory-cli-migration.md) covers the
31
+ removed memory, event-writing, and retention shims. The root command list now
32
+ contains 13 entries, including `session-init` and `setup`.
33
+
34
+ ## Workflow validators
35
+
36
+ The bundled `scripts/check_quality_gate.py`, `make quality` target, and
37
+ `templates/github_actions_quality_gate.yaml` have been removed. Configure the owning review
38
+ workflow's versioned validator in skills or CI before upgrading copied
39
+ callers. The workflow owns its findings-status policy and must return a typed
40
+ failure before side effects when validation fails.
41
+
42
+ Handoff body schemas likewise belong to their owning workflow. The kernel no
43
+ longer emits body-schema advisories; required envelope fields, body type and
44
+ size limits, signing, and admission checks keep their existing behavior. See
45
+ the [validation boundary](../protocol/inbox_outbox.md#validation-boundary).
46
+
47
+ ## Audit directory diagnostics
48
+
49
+ The autonomy evaluator warns on stderr when `--audit-dir` does not end in
50
+ `autonomy_decisions`. The supplied location remains valid and the decision and
51
+ JSON output are unchanged. Workspace tools continue scanning the canonical
52
+ `agents/<receiver>/audit/autonomy_decisions/` directory.
53
+
54
+ For custom evaluator invocations, pass the same path to
55
+ `oacp doctor --audit-dir <path>` to include a WARN-level Audit finding. This
56
+ option diagnoses the supplied basename; it does not redirect workspace scans
57
+ or introduce a receiver configuration setting.
58
+
59
+
60
+ ## Packet and handoff templates
61
+
62
+ The packet initializer (`scripts/init_packet.sh` and `make packet`), review
63
+ packet template, merge-decision template and handoff packet template are retired.
64
+ Use formats and generators owned by your review or handoff workflow. The public
65
+ v0.5.2 tag preserves the former artifacts for historical reference; upgrading
66
+ does not migrate or delete existing runtime packets.
67
+
68
+ The findings template and review-loop documentation remain available. Envelope
69
+ validation, signing, admission, and message types are unchanged. Update source
70
+ checkout callers before upgrading; there is no replacement kernel packet verb.
@@ -191,9 +191,9 @@ The exit code reflects the overall result:
191
191
 
192
192
  | Issue | Fix |
193
193
  |-------|-----|
194
- | `workspace.json — not found` | Run `oacp init <project>` to create the workspace |
194
+ | `workspace.json — not found` | Init is create-only: inspect and repair the existing root, or move it aside before re-initializing |
195
195
  | `workspace.json — invalid` | Check for JSON syntax errors in the file |
196
- | `agents/ directory — not found` | Run `oacp init <project>` to recreate the workspace |
196
+ | `agents/ directory — not found` | Restore each intended agent with `oacp agent add <project> <agent>` |
197
197
 
198
198
  ### Inbox Health
199
199
 
@@ -0,0 +1,43 @@
1
+ # Memory command migration for 0.5.3
2
+
3
+ OACP 0.5.3 removes the `memory`, `org-memory`, `write-event`, and `retention`
4
+ commands. Calls, including `--help` and `oacp help <command>`, now return the
5
+ normal unknown-command error with exit code 2. Update scripts, skills, and
6
+ operator commands before upgrading.
7
+
8
+ ## Memory and events
9
+
10
+ Install [agent-memory-cli](https://github.com/kiloloop/agent-memory) separately
11
+ and call `agent-memory` directly. Event writing requires a version that provides
12
+ `agent-memory event write` (0.1.1 or later); OACP no longer bundles a fallback.
13
+
14
+ | Previous command | Direct replacement |
15
+ | --- | --- |
16
+ | `oacp memory init` | `agent-memory enable` |
17
+ | `oacp memory <verb> ...` | `agent-memory <verb> ...` |
18
+ | `oacp org-memory init` | `agent-memory org init` |
19
+ | `oacp write-event ...` | `agent-memory event write ...` |
20
+
21
+ Replace `--oacp-dir <path>` with `--home <path>` (including the `--flag=value`
22
+ form). Preserve the remaining arguments. For example:
23
+
24
+ ```bash
25
+ agent-memory pull --home "$OACP_HOME"
26
+ agent-memory event write --home "$OACP_HOME" --agent <agent> \
27
+ --project <project> --type decision --slug api-convention --body "Use REST"
28
+ ```
29
+
30
+ The direct event writer reports `published:` or `idempotent:` rather than the
31
+ old fallback's `OK:`; its dry-run preview goes to stderr. Update callers that
32
+ parse that output. Existing memory files and their layout do not need to move.
33
+
34
+ If a workspace still registers `.claude/hooks/oacp-memory-pull.sh` or
35
+ `oacp-memory-push.sh`, re-run `oacp setup claude` before upgrading to retire
36
+ the recognized legacy hooks; configure replacement hooks with `agent-memory`
37
+ only when automatic sync is intended.
38
+
39
+ ## Retention
40
+
41
+ `oacp retention` was an advisory command and performed no pruning. It has no
42
+ replacement inside OACP. Retention remains operator-owned; any external tool
43
+ must preserve the [protected-evidence rules](../protocol/inbox_outbox.md#message-history-retention).