oacp-cli 0.3.2__tar.gz → 0.3.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 (208) hide show
  1. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/CHANGELOG.md +36 -0
  2. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/PKG-INFO +2 -2
  3. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/QUICKSTART.md +5 -2
  4. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/README.md +1 -1
  5. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/from-claude-p.md +5 -5
  6. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/guides/prompt_caching.md +8 -6
  7. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/guides/runtime_capability_matrix.md +34 -21
  8. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/agent_safety_defaults.md +1 -1
  9. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/autonomy.md +11 -7
  10. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/task_negotiation.md +4 -1
  11. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/pyproject.toml +1 -1
  12. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/autonomy_gate.py +165 -34
  13. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/oacp_inbox.py +8 -4
  14. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/oacp_watch.py +24 -1
  15. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/send_inbox_message.py +28 -5
  16. oacp_cli-0.3.4/tests/conformance/autonomy/expected/expired_message_pauses.yaml +8 -0
  17. oacp_cli-0.3.4/tests/conformance/autonomy/expected/hard_stop_sensitive_commercial_pauses.yaml +9 -0
  18. oacp_cli-0.3.4/tests/conformance/autonomy/expected/hard_stop_sensitive_config_pauses.yaml +9 -0
  19. oacp_cli-0.3.4/tests/conformance/autonomy/expected/hard_stop_sensitive_credentials_pauses.yaml +9 -0
  20. oacp_cli-0.3.4/tests/conformance/autonomy/expected/hard_stop_sensitive_memory_ssot_pauses.yaml +9 -0
  21. oacp_cli-0.3.4/tests/conformance/autonomy/expected/hard_stop_sensitive_pricing_pauses.yaml +9 -0
  22. oacp_cli-0.3.4/tests/conformance/autonomy/expected/hard_stop_sensitive_public_repo_pauses.yaml +9 -0
  23. oacp_cli-0.3.4/tests/conformance/autonomy/expected/hard_stop_sensitive_secret_pauses.yaml +9 -0
  24. oacp_cli-0.3.4/tests/conformance/autonomy/expected/hard_stop_side_effect_before_sensitive_pauses.yaml +9 -0
  25. oacp_cli-0.3.4/tests/conformance/autonomy/expected/invalid_message_pauses.yaml +8 -0
  26. oacp_cli-0.3.4/tests/conformance/autonomy/messages/expired_message.yaml +21 -0
  27. oacp_cli-0.3.4/tests/conformance/autonomy/messages/invalid_message.yaml +19 -0
  28. oacp_cli-0.3.4/tests/conformance/autonomy/messages/sensitive_commercial.yaml +20 -0
  29. oacp_cli-0.3.4/tests/conformance/autonomy/messages/sensitive_config.yaml +20 -0
  30. oacp_cli-0.3.4/tests/conformance/autonomy/messages/sensitive_credentials.yaml +20 -0
  31. oacp_cli-0.3.4/tests/conformance/autonomy/messages/sensitive_memory_ssot.yaml +20 -0
  32. oacp_cli-0.3.4/tests/conformance/autonomy/messages/sensitive_pricing.yaml +20 -0
  33. oacp_cli-0.3.4/tests/conformance/autonomy/messages/sensitive_public_repo.yaml +20 -0
  34. oacp_cli-0.3.4/tests/conformance/autonomy/messages/sensitive_secret.yaml +20 -0
  35. oacp_cli-0.3.4/tests/conformance/autonomy/messages/side_effect_before_sensitive.yaml +20 -0
  36. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_autonomy_conformance_fixtures.py +7 -0
  37. oacp_cli-0.3.4/tests/test_autonomy_gate.py +177 -0
  38. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_memory_archive.py +2 -0
  39. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_oacp_inbox.py +37 -0
  40. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_oacp_watch.py +63 -0
  41. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_send_inbox_message.py +129 -0
  42. oacp_cli-0.3.2/tests/test_autonomy_gate.py +0 -83
  43. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/.github/workflows/ci.yml +0 -0
  44. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/.github/workflows/release.yml +0 -0
  45. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/.gitignore +0 -0
  46. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/CONTRIBUTING.md +0 -0
  47. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/LICENSE +0 -0
  48. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/Makefile +0 -0
  49. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/SECURITY.md +0 -0
  50. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/SPEC.md +0 -0
  51. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/guides/adoption.md +0 -0
  52. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/guides/doctor.md +0 -0
  53. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/guides/setup.md +0 -0
  54. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/guides/unified_skill_spec.md +0 -0
  55. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/guides/versioning.md +0 -0
  56. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/img/oacp-cli-demo.png +0 -0
  57. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/img/oacp-filesystem-tree.png +0 -0
  58. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/img/oacp-fleet-thread.png +0 -0
  59. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/agent_profiles.md +0 -0
  60. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/credential_scoping.md +0 -0
  61. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/cross_runtime_sync.md +0 -0
  62. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/dispatch_states.yaml +0 -0
  63. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/inbox_outbox.md +0 -0
  64. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/mcp_integration.md +0 -0
  65. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/multi_agent_shared_workspace.md +0 -0
  66. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/org_memory.md +0 -0
  67. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/packet_states.yaml +0 -0
  68. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/review_loop.md +0 -0
  69. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/runtime_capabilities.md +0 -0
  70. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/session_init.md +0 -0
  71. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/docs/protocol/skills_manifest.yaml +0 -0
  72. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/examples/quickstart/README.md +0 -0
  73. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/mcp_servers/oacp_coordinator.py +0 -0
  74. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/oacp/__init__.py +0 -0
  75. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/oacp/cli.py +0 -0
  76. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/_oacp_constants.py +0 -0
  77. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/_oacp_env.py +0 -0
  78. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/add_agent.py +0 -0
  79. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/agent_profile.py +0 -0
  80. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/check_quality_gate.py +0 -0
  81. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/codex_session_init.py +0 -0
  82. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/create_handoff_packet.py +0 -0
  83. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/handoff_schema.py +0 -0
  84. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/init_org_memory.py +0 -0
  85. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/init_packet.sh +0 -0
  86. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/init_project_workspace.py +0 -0
  87. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/init_project_workspace.sh +0 -0
  88. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/memory_archive_common.py +0 -0
  89. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/memory_cli.py +0 -0
  90. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/memory_sync.py +0 -0
  91. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/normalize_findings.py +0 -0
  92. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/oacp_doctor.py +0 -0
  93. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/preflight.py +0 -0
  94. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/promote_to_archive.py +0 -0
  95. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/restore_from_archive.py +0 -0
  96. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/session_lifecycle_hooks.py +0 -0
  97. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/setup_runtime.py +0 -0
  98. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/update_workspace.sh +0 -0
  99. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/validate_agent_card.py +0 -0
  100. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/validate_message.py +0 -0
  101. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/scripts/write_event.py +0 -0
  102. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/agent_card.template.yaml +0 -0
  103. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/agent_profile.template.yaml +0 -0
  104. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/agent_status.template.yaml +0 -0
  105. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/checkpoint.template.md +0 -0
  106. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/claude/agents/role_agent.template.md +0 -0
  107. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/claude/rules/guardrail.template.md +0 -0
  108. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/findings_packet.template.yaml +0 -0
  109. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/github_actions_quality_gate.yaml +0 -0
  110. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/guardrails/coding_standards.template.md +0 -0
  111. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/guardrails/safe_commands.template.md +0 -0
  112. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/guardrails/secrets_rules.template.md +0 -0
  113. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/handoff_packet.template.yaml +0 -0
  114. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/inbox_message.template.yaml +0 -0
  115. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/manual_validation.template.md +0 -0
  116. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/merge_decision.template.md +0 -0
  117. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/org-memory/decisions.md +0 -0
  118. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/org-memory/events/.gitkeep +0 -0
  119. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/org-memory/events/20260317-170120-example-api-convention.md +0 -0
  120. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/org-memory/recent.md +0 -0
  121. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/org-memory/rules.md +0 -0
  122. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/receiver_config.template.yaml +0 -0
  123. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/review_packet.template.md +0 -0
  124. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/roles/role_baseline.template.md +0 -0
  125. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/roles/role_definition.template.yaml +0 -0
  126. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/runtime_capabilities.yaml +0 -0
  127. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/skills_manifest.template.yaml +0 -0
  128. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/templates/test_packet.template.md +0 -0
  129. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/README.md +0 -0
  130. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/actuals/checkpoint_breach.yaml +0 -0
  131. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/actuals/continuation_drift.yaml +0 -0
  132. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/actuals/continuation_within.yaml +0 -0
  133. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/actuals/top_level_side_effect_keys.yaml +0 -0
  134. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/configs/always_pause.yaml +0 -0
  135. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/configs/auto_review_continuation_enabled.yaml +0 -0
  136. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/configs/auto_review_standard.yaml +0 -0
  137. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/configs/auto_review_tight.yaml +0 -0
  138. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/configs/malformed_config.yaml +0 -0
  139. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/always_pause_task.yaml +0 -0
  140. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/ambiguous_scope_pauses.yaml +0 -0
  141. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/brainstorm_destructive_pauses.yaml +0 -0
  142. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/brainstorm_side_effect_verbs_auto_accepts.yaml +0 -0
  143. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/brainstorm_without_profile_auto_accepts.yaml +0 -0
  144. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/checkpoint_breach_pauses.yaml +0 -0
  145. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/clean_auto_review_task.yaml +0 -0
  146. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/continuation_grant_destructive_pauses.yaml +0 -0
  147. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/continuation_grant_disabled_pauses.yaml +0 -0
  148. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/continuation_grant_drift_pauses.yaml +0 -0
  149. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/continuation_grant_enabled_auto_accepts.yaml +0 -0
  150. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/continuation_grant_external_uncovered_pauses.yaml +0 -0
  151. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/hard_stop_dangerously_skip_permissions_pauses.yaml +0 -0
  152. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/hard_stop_external_side_effects_pauses.yaml +0 -0
  153. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/hard_stop_force_pauses.yaml +0 -0
  154. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/hard_stop_no_verify_pauses.yaml +0 -0
  155. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/hard_stop_no_verify_upper_pauses.yaml +0 -0
  156. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/hard_stop_rm_rf_pauses.yaml +0 -0
  157. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_scope_pauses.yaml +0 -0
  158. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/malformed_config_pauses.yaml +0 -0
  159. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/missing_task_profile_pauses.yaml +0 -0
  160. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/path_like_deploy_auto_accepts.yaml +0 -0
  161. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/risk_obvious_no_profile_pauses.yaml +0 -0
  162. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/side_effect_booleans_pause.yaml +0 -0
  163. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/threshold_breach_pauses.yaml +0 -0
  164. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/tight_threshold_pauses.yaml +0 -0
  165. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/top_level_side_effect_actuals_ignored.yaml +0 -0
  166. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/expected/unparsable_task_profile_pauses.yaml +0 -0
  167. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/ambiguous_scope.yaml +0 -0
  168. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/brainstorm_destructive.yaml +0 -0
  169. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/brainstorm_side_effect_verbs.yaml +0 -0
  170. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/brainstorm_without_profile.yaml +0 -0
  171. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/clean_task.yaml +0 -0
  172. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/continuation_grant.yaml +0 -0
  173. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/continuation_grant_destructive.yaml +0 -0
  174. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/continuation_grant_external_uncovered.yaml +0 -0
  175. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/hard_stop_dangerously_skip_permissions.yaml +0 -0
  176. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/hard_stop_external_side_effects.yaml +0 -0
  177. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/hard_stop_force.yaml +0 -0
  178. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/hard_stop_no_verify.yaml +0 -0
  179. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/hard_stop_no_verify_upper.yaml +0 -0
  180. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/hard_stop_rm_rf.yaml +0 -0
  181. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/hard_stop_sensitive_scope.yaml +0 -0
  182. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/missing_task_profile.yaml +0 -0
  183. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/path_like_deploy.yaml +0 -0
  184. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/risk_obvious_no_profile.yaml +0 -0
  185. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/side_effect_booleans.yaml +0 -0
  186. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/threshold_breach.yaml +0 -0
  187. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/conformance/autonomy/messages/unparsable_task_profile.yaml +0 -0
  188. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_add_agent.py +0 -0
  189. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_agent_profile.py +0 -0
  190. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_codex_session_init.py +0 -0
  191. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_create_handoff_packet.py +0 -0
  192. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_github_workflows.py +0 -0
  193. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_handoff_schema.py +0 -0
  194. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_init_project_workspace.py +0 -0
  195. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_oacp_cli.py +0 -0
  196. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_oacp_constants.py +0 -0
  197. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_oacp_coordinator.py +0 -0
  198. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_oacp_doctor.py +0 -0
  199. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_oacp_env.py +0 -0
  200. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_preflight.py +0 -0
  201. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_review_loop.py +0 -0
  202. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_session_lifecycle_hooks.py +0 -0
  203. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_setup_runtime.py +0 -0
  204. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_update_workspace.py +0 -0
  205. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_validate_agent_card.py +0 -0
  206. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_validate_message.py +0 -0
  207. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_workspace_discovery.py +0 -0
  208. {oacp_cli-0.3.2 → oacp_cli-0.3.4}/tests/test_write_event.py +0 -0
@@ -5,6 +5,40 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.4] - 2026-06-11
9
+
10
+ ### Fixed
11
+
12
+ - Receiver autonomy Gate 1 now performs real message schema validation, expiry
13
+ comparison, SHA-256 hash recording, and same-receiver replay detection before
14
+ auto-accepting work.
15
+ - Receiver autonomy Gate 3 now pauses on credentials, pricing, commercial
16
+ content, and anchored config-sensitive scope, and evaluates external
17
+ side-effect hard stops before sensitive-scope hard stops to match the
18
+ protocol.
19
+
20
+ ## [0.3.3] - 2026-06-11
21
+
22
+ ### Added
23
+
24
+ - `oacp watch --state-id <id>` for per-subscriber cursor files, allowing
25
+ concurrent watchers of the same agent inbox to receive the same new-message
26
+ events without sharing a cursor.
27
+
28
+ ### Changed
29
+
30
+ - Docs: refreshed the runtime capability matrix and prompt-caching guidance
31
+ for current runtime releases.
32
+
33
+ ### Fixed
34
+
35
+ - `oacp send --oacp-dir` and `oacp inbox --oacp-dir` now expand `~` through the
36
+ shared OACP home resolver instead of treating it as a literal path component.
37
+ - Inbox and outbox delivery writes now use same-directory temp files plus
38
+ atomic replace so readers do not observe partial `.yaml` messages.
39
+ - Memory archive tests now isolate git config while preserving test identities,
40
+ so local commit-signing settings do not break the suite.
41
+
8
42
  ## [0.3.2] - 2026-05-26
9
43
 
10
44
  ### Added
@@ -158,6 +192,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
158
192
  - Checkout step in github-release workflow job (#19)
159
193
  - Pre-release audit fixes: SHA-pinned actions, dangling doc refs (#15, #16)
160
194
 
195
+ [0.3.4]: https://github.com/kiloloop/oacp/compare/v0.3.3...v0.3.4
196
+ [0.3.3]: https://github.com/kiloloop/oacp/compare/v0.3.2...v0.3.3
161
197
  [0.3.2]: https://github.com/kiloloop/oacp/compare/v0.3.1...v0.3.2
162
198
  [0.3.1]: https://github.com/kiloloop/oacp/compare/v0.3.0...v0.3.1
163
199
  [0.3.0]: https://github.com/kiloloop/oacp/compare/v0.2.3...v0.3.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oacp-cli
3
- Version: 0.3.2
3
+ Version: 0.3.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
@@ -270,7 +270,7 @@ uv tool install .
270
270
 
271
271
  **`oacp send`**: `--in-reply-to`, `--expires`, `--body-file`, `--channel`, `--dry-run`, `--json`, `--quiet`
272
272
 
273
- **`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`, `--since` (default `now`), `--show-archived`
273
+ **`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`, `--since` (default `now`), `--state-id <id>` for per-subscriber cursors, `--show-archived`
274
274
 
275
275
  **`oacp doctor`**: `--fix` (auto-fix safe issues), `--memory`, `--json`, `-o/--output`
276
276
 
@@ -157,11 +157,14 @@ body: |
157
157
 
158
158
  To watch for new messages from a standing runtime or Monitor, use `oacp watch`.
159
159
  A single `oacp watch` run scans once and exits, so keep re-running it when you
160
- want a persistent worker:
160
+ want a persistent worker. If more than one watcher follows the same agent
161
+ inbox, give each watcher a stable `--state-id` so each subscriber has its own
162
+ cursor:
161
163
 
162
164
  ```bash
165
+ OACP_WATCH_STATE_ID="${OACP_WATCH_STATE_ID:-$(uuidgen 2>/dev/null || python3 -c 'import uuid; print(uuid.uuid4())')}"
163
166
  while true; do
164
- oacp watch --project my-first-project --agent codex || true
167
+ oacp watch --project my-first-project --agent codex --state-id "$OACP_WATCH_STATE_ID" || true
165
168
  sleep 120
166
169
  done
167
170
  ```
@@ -244,7 +244,7 @@ uv tool install .
244
244
 
245
245
  **`oacp send`**: `--in-reply-to`, `--expires`, `--body-file`, `--channel`, `--dry-run`, `--json`, `--quiet`
246
246
 
247
- **`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`, `--since` (default `now`), `--show-archived`
247
+ **`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`, `--since` (default `now`), `--state-id <id>` for per-subscriber cursors, `--show-archived`
248
248
 
249
249
  **`oacp doctor`**: `--fix` (auto-fix safe issues), `--memory`, `--json`, `-o/--output`
250
250
 
@@ -79,10 +79,9 @@ Set me up as an async OACP worker for this repo.
79
79
  --project form checks this workspace's inbox, schema, and status.
80
80
  6. Start a Monitor that keeps oacp watch re-running for the claude
81
81
  agent on this project. A single oacp watch does one scan and exits,
82
- so it has to run on a loop — while true; do oacp watch --project
83
- <project> --agent claude || true; sleep 120; done — otherwise you
84
- only pick up tasks that happened to be there at setup time. Then
85
- tell me the exact oacp send command I use to dispatch a task to you.
82
+ so it has to run on a loop. Use a stable --state-id for that Monitor
83
+ so concurrent watchers each keep their own cursor. Then tell me the
84
+ exact oacp send command I use to dispatch a task to you.
86
85
 
87
86
  Protocol reference: https://github.com/kiloloop/oacp/blob/main/QUICKSTART.md
88
87
  ~~~
@@ -116,8 +115,9 @@ oacp doctor --project my-project
116
115
  Then, in a Claude Code session, arm the watcher in a Monitor. `oacp watch` does one scan and exits, so it has to run on a loop:
117
116
 
118
117
  ```
118
+ OACP_WATCH_STATE_ID="${OACP_WATCH_STATE_ID:-$(uuidgen 2>/dev/null || python3 -c 'import uuid; print(uuid.uuid4())')}"
119
119
  while true; do
120
- oacp watch --project my-project --agent claude || true
120
+ oacp watch --project my-project --agent claude --state-id "$OACP_WATCH_STATE_ID" || true
121
121
  sleep 120
122
122
  done
123
123
  ```
@@ -5,8 +5,8 @@ How to maximize prompt cache hits across Claude, Codex, and Gemini to reduce cos
5
5
  ## Why It Matters
6
6
 
7
7
  Prompt caching avoids reprocessing static context (system prompts, CLAUDE.md, project facts) on every turn. In practice:
8
- - **Cache read**: 10x cheaper than uncached input ($1.50/MTok vs $15/MTok for Opus)
9
- - **Cache write**: 1.25x input price (one-time cost, amortized over subsequent reads)
8
+ - **Cache read**: 10x cheaper than uncached input ($0.50/MTok vs $5.00/MTok for Opus 4.8)
9
+ - **Cache write**: 1.25x input price for the default 5-minute TTL, 2x for the 1-hour TTL (one-time cost, amortized over subsequent reads)
10
10
  - **Observed savings**: 83-95% cost reduction on cached input in multi-turn agent sessions
11
11
 
12
12
  ## Claude
@@ -127,13 +127,14 @@ Gemini supports implicit context caching for large prompts. The API automaticall
127
127
 
128
128
  ## Cost Comparison
129
129
 
130
- Approximate pricing as of early 2026 (per million tokens). Check each provider's current pricing page for up-to-date rates:
130
+ Approximate pricing as of June 2026 (per million tokens). Cache read is 0.1x input; cache write is shown at the default 5-minute TTL (1.25x input) — the 1-hour TTL costs 2x input. Check each provider's current pricing page for up-to-date rates:
131
131
 
132
132
  | Runtime | Input | Cached Read | Cache Write | Output |
133
133
  |---------|------:|------------:|------------:|-------:|
134
- | Claude Opus | $15.00 | $1.50 | $18.75 | $75.00 |
135
- | Claude Sonnet | $3.00 | $0.30 | $3.75 | $15.00 |
136
- | Claude Haiku | $0.80 | $0.08 | $1.00 | $4.00 |
134
+ | Claude Fable 5 | $10.00 | $1.00 | $12.50 | $50.00 |
135
+ | Claude Opus (4.6/4.7/4.8) | $5.00 | $0.50 | $6.25 | $25.00 |
136
+ | Claude Sonnet 4.6 | $3.00 | $0.30 | $3.75 | $15.00 |
137
+ | Claude Haiku 4.5 | $1.00 | $0.10 | $1.25 | $5.00 |
137
138
  | Codex | varies | N/A | N/A | varies |
138
139
  | Gemini Pro | $1.25 | $0.31 | — | $10.00 |
139
140
 
@@ -146,3 +147,4 @@ Approximate pricing as of early 2026 (per million tokens). Check each provider's
146
147
  - Injecting timestamps or random IDs into system prompts
147
148
  - Reordering tool definitions between turns
148
149
  - Changing the user message prefix frequently
150
+ 5. **Mind the minimum cacheable prefix** — prefixes below the model minimum silently don't cache (no error; `cache_creation_input_tokens` stays 0). The minimum is 2,048 tokens on Fable 5 and Sonnet 4.6, and 4,096 tokens on Opus 4.8/4.7/4.6 and Haiku 4.5.
@@ -1,12 +1,12 @@
1
1
  # Cross-Runtime Parity Matrix
2
2
 
3
- **Date**: 2026-04-29
3
+ **Date**: 2026-06-09
4
4
 
5
5
  This is a capability comparison across the currently profiled agent runtimes (Claude Code, Codex, Gemini), compiled from each runtime's self-report and current runtime changelogs. Cursor support is scaffold-only until Cursor-owned onboarding lands, so Cursor is intentionally excluded from this comparison table; see `docs/protocol/runtime_capabilities.md` for its conservative scaffold defaults.
6
6
 
7
- Claude was last checked against Claude Code `v2.1.123`.
7
+ Claude was last checked against Claude Code `v2.1.170` with Claude Fable 5 (`claude-fable-5`, serving model verified in-session on the 1M-context variant). Fable 5 (released 2026-06-09, first Mythos-class model) is included at no extra cost on Pro/Max/Team/Enterprise plans Jun 9–22, 2026, with usage credits required after; Opus 4.8 remains available and serves as Fable 5's safeguard-fallback model.
8
8
 
9
- Codex was last checked against app update `26.415`, CLI `0.123.0`, and OpenAI's GPT-5.5 launch note from 2026-04-23.
9
+ Codex was last checked against app update `26.602`, CLI `0.137.0`, OpenAI's GPT-5.5 launch note from 2026-04-23, and the June 2026 Codex/API entries for Sites and Amazon Bedrock.
10
10
 
11
11
  ---
12
12
 
@@ -15,19 +15,19 @@ Codex was last checked against app update `26.415`, CLI `0.123.0`, and OpenAI's
15
15
  | Capability | Claude (Claude Code CLI) | Codex (Desktop App) | Gemini |
16
16
  | ---------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
17
17
  | Spawn background tasks | Yes — Task tool + Bash `run_in_background` | Yes — shell background processes | Yes — `run_command` async mode |
18
- | Spawn subagents | Yes — typed agents (Explore, Plan, general-purpose, code-reviewer, etc.) | Yes — native `spawn_agent` lifecycle with `default`, `explorer`, and `worker` agents | Partial — `browser_subagent` only |
18
+ | Spawn subagents | Yes — typed agents (Explore, Plan, general-purpose, code-reviewer, etc.) | Yes — native multi-agent lifecycle with runtime metadata and follow-up defaults | Partial — `browser_subagent` only |
19
19
  | Parallel agent teams | Yes — TeamCreate, task lists, SendMessage, broadcast | Partial — parallel spawned agents are supported, but there is no team/task-list primitive | No — parallel tool calls but no independent agent instances |
20
- | MCP tools | Yes — extensible via MCP servers | Yes — MCP/plugin support with `/mcp verbose` diagnostics; configuration-dependent | Yes — MCP server support |
21
- | Web search | Yes — native WebSearch tool | Yes — web search/fetch tools | Yes — native `search_web` tool |
22
- | Browser interaction | Partial — WebFetch (read-only, HTML→markdown) | Partial — web tools plus early in-app browser for local/public pages without sign-in | Yes — full browser control (click, type, navigate, screenshot, video) |
23
- | File system access | Sandboxed — configurable read/write allowlists | Policy-dependent per session; sandbox profiles can include deny-read rules | Full — unrestricted |
20
+ | MCP tools | Yes — extensible via MCP servers | Yes — MCP/plugin support with `/mcp verbose`, per-server environment targeting, read-only MCP parallelism, and scriptable plugin inventory | Yes — MCP server support |
21
+ | Web search | Yes — native WebSearch tool | Yes — web search/fetch tools; hosted web tools are expanding in code-mode flows | Yes — native `search_web` tool |
22
+ | Browser interaction | Partial — WebFetch (read-only, HTML→markdown) | Partial — in-app browser and Chrome extension can inspect local/public and approved browser contexts, with faster asset extraction and read-only JS structured-data extraction; not full browser automation | Yes — full browser control (click, type, navigate, screenshot, video) |
23
+ | File system access | Sandboxed — configurable read/write allowlists | Policy-dependent per session; named permission profiles can include deny-read rules and managed requirements | Full — unrestricted |
24
24
  | Git operations | Yes — via Bash (may need sandbox configuration) | Yes — native | Yes — via shell |
25
25
  | GitHub CLI (gh) | Yes — via Bash (may need sandbox configuration) | Yes — authenticated | Yes — native |
26
26
  | Session memory | Strong — auto-loaded MEMORY.md + optional MCP memory | Partial — app memories where available plus OACP file memory; app memories are not protocol SSOT | Partial — Knowledge Items (not directly writable), conversation logs |
27
- | Interactive mode | Yes — CLI chat with permissions, plan mode | Yes — desktop app and CLI/TUI, including Plan Mode and side conversations | Yes — chat with task UI, artifacts |
28
- | Context window | ~1M with Opus 4.7 (auto-compaction extends indefinitely) | Model-dependent; GPT-5.5 in Codex is documented at 400K, with no auto-compaction guarantee | ~1M tokens |
29
- | Cost model | Token-based, visible in statusline | Not surfaced per session; GPT-5.5 Fast mode trades 2.5x cost for 1.5x token generation speed | Token-based |
30
- | Sandbox restrictions | Yes — configurable allowlists | Session-dependent; supports deny-read policies, isolated `codex exec`, and remote sandbox requirements | None — full system access |
27
+ | Interactive mode | Yes — CLI chat with permissions, plan mode | Yes — desktop app and CLI/TUI, including Plan Mode, Goal mode, side conversations, and archive/unarchive flows | Yes — chat with task UI, artifacts |
28
+ | Context window | ~1M with Fable 5 or Opus 4.8 (auto-compaction extends indefinitely) | Model-dependent; GPT-5.5 in Codex is documented at 400K, with no auto-compaction guarantee | ~1M tokens |
29
+ | Cost model | Token-based, visible in statusline; Fable 5 API rate is $10/$50 per MTok (2× Opus 4.8's $5/$25) | Not surfaced per session; GPT-5.5 Fast mode trades 2.5x cost for 1.5x token generation speed | Token-based |
30
+ | Sandbox restrictions | Yes — configurable allowlists | Session-dependent; supports deny-read policies, isolated `codex exec`, named permission profiles, managed requirements, and explicit approval policies | None — full system access |
31
31
 
32
32
  ---
33
33
 
@@ -37,6 +37,7 @@ Codex was last checked against app update `26.415`, CLI `0.123.0`, and OpenAI's
37
37
  | -------------------------------- | ------------- | ---------------------------------------------------------------------------- |
38
38
  | Typed subagent orchestration | Claude | Multiple agent types with scoped tools and model selection |
39
39
  | Team coordination primitive | Claude | TeamCreate + task lists + assignment + broadcast + shutdown |
40
+ | Dynamic multi-agent workflows | Claude | Workflow tool orchestrates tens–hundreds of agents; `/workflows` to view |
40
41
  | Plan mode | Claude, Codex | Claude has structured explore → plan → approve → implement; Codex CLI can move from planning into fresh-context implementation |
41
42
  | Auto-compaction | Claude | Context auto-compresses, enabling unlimited session length |
42
43
  | Cross-session semantic search | Claude | MCP-based searchable memory (optional) |
@@ -48,8 +49,14 @@ Codex was last checked against app update `26.415`, CLI `0.123.0`, and OpenAI's
48
49
  | PTY / terminal stdin | Codex, Gemini | Codex: native PTY; Gemini: `send_command_input` (Claude lacks stdin support) |
49
50
  | `apply_patch` editing | Codex | Grammar-based file edits |
50
51
  | App-level computer use | Codex | macOS app, simulator, and GUI-only workflows; unavailable in EEA, UK, and Switzerland at launch |
52
+ | Windows computer use | Codex | Codex app can operate Windows desktop apps in the foreground when available |
53
+ | Remote host control | Codex | Mobile or desktop remote control can run work on connected Mac or Windows hosts with host-local files, credentials, plugins, skills, and config |
51
54
  | App-level artifact review | Codex | Sidebar preview for generated PDFs, spreadsheets, documents, and presentations |
52
55
  | App-level PR review | Codex | PR sidebar can inspect changed files, review comments, and follow-up fixes |
56
+ | App-server automation | Codex | JSON-RPC app-server, SDK, schema generation, thread APIs, and websocket/Unix-socket transports for custom clients |
57
+ | Hosted site deployment | Codex | Sites preview can create, deploy, inspect, and manage hosted websites or internal tools through the Codex app |
58
+ | Plugin marketplace inventory | Codex | Plugin directory plus `codex plugin list --json` for installed plugin inventory and marketplace-aware diagnostics |
59
+ | Goal mode | Codex | Stable long-running objective mode with dedicated state; candidate for OACP wait/review-loop experiments |
53
60
 
54
61
  ---
55
62
 
@@ -71,9 +78,9 @@ Scope: skills shipped in [`kiloloop/oacp-skills`](https://github.com/kiloloop/oa
71
78
 
72
79
  | Dimension | Claude | Codex | Gemini |
73
80
  | --------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------- |
74
- | Best at | Orchestration, multi-agent teams, persistent memory, plan-then-execute | Terminal-native execution, GPT-5.5 agentic coding, fast iterative patching, plan-to-implementation handoff, app-assisted PR/artifact review, protocol discipline | Web research, browser automation, visual verification, large context |
75
- | Ideal task type | Team coordination, complex multi-file refactors, long-running sessions | Shell-heavy workflows, long-horizon coding, targeted file edits, deterministic scripts, PR follow-up, artifact review, CLI planning passes | External research, UI testing, document review, MCP integrations |
76
- | Cost profile | Flexible (haiku subagents for cheap tasks, opus for complex) | Per-session cost not visible; GPT-5.5 is described as more token-efficient than GPT-5.4 for Codex tasks | Token-based, web search has additional costs |
81
+ | Best at | Orchestration, multi-agent teams, persistent memory, plan-then-execute | Terminal-native execution, GPT-5.5 agentic coding, fast iterative patching, plan-to-implementation handoff, app-assisted PR/artifact review, app-server automation, protocol discipline | Web research, browser automation, visual verification, large context |
82
+ | Ideal task type | Team coordination, complex multi-file refactors, long-running sessions | Shell-heavy workflows, long-horizon coding, targeted file edits, deterministic scripts, PR follow-up, artifact review, CLI planning passes, plugin/app-server automation prototypes | External research, UI testing, document review, MCP integrations |
83
+ | Cost profile | Flexible (haiku subagents for cheap tasks, opus for complex, Fable 5 at 2× Opus API rates for the hardest work) | Per-session cost not visible; GPT-5.5 is described as more token-efficient than GPT-5.4 for Codex tasks | Token-based, web search has additional costs |
77
84
 
78
85
  ---
79
86
 
@@ -82,7 +89,7 @@ Scope: skills shipped in [`kiloloop/oacp-skills`](https://github.com/kiloloop/oa
82
89
  | Limitation | Claude | Codex | Gemini |
83
90
  | ----------------------------- | ----------------------------- | -------------------------------------------------------------- | ---------------------- |
84
91
  | No subagents | — | Yes | Partial (browser only) |
85
- | No browser automation | Yes (read-only) | Partial (in-app browser is not full automation and excludes sign-in flows) | — |
92
+ | No browser automation | Yes (read-only) | Partial (in-app browser and Chrome extension are useful for review/verification, but not a general full-browser automation substitute) | — |
86
93
  | No image generation | Yes | — | — |
87
94
  | No persistent writable memory | — | Partial (app memories are not a replacement for OACP durable memory) | Yes |
88
95
  | Sandbox friction | Yes (configurable) | Session-dependent | — |
@@ -90,6 +97,7 @@ Scope: skills shipped in [`kiloloop/oacp-skills`](https://github.com/kiloloop/oa
90
97
  | Context limits | Auto-compaction mitigates | Model-dependent; GPT-5.5 in Codex is 400K, but there is no documented auto-compaction behavior | Large but finite |
91
98
  | No terminal stdin | Yes | — | — |
92
99
  | Cost not surfaced | — | Yes | — |
100
+ | Serving model can change mid-session | Yes (Fable 5 only — cyber/bio-chem/distillation classifiers fall back to Opus 4.8; default and non-configurable in Claude interfaces incl. Claude Code, with a session event emitted; <5% of sessions — system card §1.5) | — | — |
93
101
 
94
102
  ---
95
103
 
@@ -102,7 +110,7 @@ These are the highest-impact gaps where one runtime's limitation blocks effectiv
102
110
  | No team orchestration | Codex, Gemini | Cannot run parallel agent teams | Agent cards — let runtimes discover and delegate to capable peers |
103
111
  | Memory asymmetry | Codex (partial), Gemini (KIs only) | Cross-session context degrades without MEMORY.md equivalent | Standardize memory protocol; each runtime implements its own persistence layer |
104
112
  | Sandbox blocks git/gh | Claude | Every git/gh call needs sandbox configuration | Configure sandbox allowlists or disable sandbox for specific commands |
105
- | Full browser automation gap | Claude, Codex | Claude is read-only; Codex has early browser review but not full automation or sign-in flows | Delegate full browser tasks to Gemini; use Codex in-app browser for local/public page review |
113
+ | Full browser automation gap | Claude, Codex | Claude is read-only; Codex has stronger browser review and Chrome-extension support but not full autonomous browser automation | Delegate full browser tasks to Gemini; use Codex browser/Chrome workflows for local, public, or approved signed-in page review |
106
114
  | Reviewer cost | All (especially Claude) | High cost for single PR review with polling pattern | Stateless reviewer rounds — one round per invocation |
107
115
  | Public skill coverage | Gemini | `kiloloop/oacp-skills` ships `claude/` and `codex/` variants for all 5 public skills; no `gemini/` variants — Gemini users must rely on convention-based adoption | Add `gemini/` variants to each public skill, or document the convention-based pattern as a first-class install path |
108
116
 
@@ -114,25 +122,30 @@ These are the highest-impact gaps where one runtime's limitation blocks effectiv
114
122
  | ---------------------------- | -------------------------------- | ------------------------------------------ | --------------------------------------------- |
115
123
  | Max parallel tool calls | ~10+ | Yes (parallel independent calls) | ~10 (practical) |
116
124
  | Side conversations | No | Yes (`/side` in CLI/TUI) | No |
117
- | Hooks system | Yes (pre/post tool call hooks) | No | No |
118
- | Automation scheduling | Yes (`CronCreate`, `ScheduleWakeup`, `/loop`, `/schedule` skills) | Yes (desktop app thread automations wake a thread on a schedule, with user request) | No |
125
+ | Hooks system | Yes (pre/post tool call hooks) | Yes (stable hooks and extension lifecycle hooks; plugin-bundled hooks are configuration-dependent) | No |
126
+ | Automation scheduling | Yes (`CronCreate`, `ScheduleWakeup`, `/loop`, `/schedule` skills) | Yes (desktop app thread automations, Goal mode, and app-server/SDK automation surfaces) | No |
119
127
  | Notebook editing | Yes (NotebookEdit tool) | No | No |
120
128
  | PDF reading | Yes (max 20 pages/request) | No native tool | Via `read_url_content` |
121
129
  | Image reading (multimodal) | Yes | Yes (desktop app local image/view support) | Yes |
122
130
  | Artifact system | No | Yes (sidebar preview for generated files) | Yes (task.md, implementation plans) |
123
131
  | Video recording | No | No | Yes (WebP via browser) |
124
132
  | Image generation | No | Yes (enabled by default in CLI) | Yes |
125
- | MCP diagnostics | Partial | Yes (`/mcp verbose`) | Partial |
133
+ | MCP diagnostics | Partial | Yes (`/mcp verbose`, per-server environment targeting, read-only MCP parallelism, plugin JSON inventory) | Partial |
126
134
  | Multi-file editing primitive | Edit tool (one file at a time) | `apply_patch` (one file) | `multi_replace_file_content` (non-contiguous) |
127
135
  | Workflow file format | SKILL.md with YAML frontmatter | SKILL.md with YAML frontmatter | Markdown with YAML frontmatter |
128
- | Policy visibility at runtime | Partial (sandbox config visible) | Yes (session policy in system context) | Yes (`SafeToAutoRun` flags) |
136
+ | Policy visibility at runtime | Partial (sandbox config visible) | Yes (session policy, approval policy, sandbox, and named permission profiles) | Yes (`SafeToAutoRun` flags) |
129
137
  | Long-running shell sessions | Bash tool (no stdin) | Yes (PTY + stdin; multiple terminals in app) | Yes (`send_command_input`) |
138
+ | App-server / SDK | No | Yes (JSON-RPC app-server, Python SDK, archive/thread APIs, schema generation) | No |
139
+ | Hosted site deployment | No | Yes (Sites preview, app-only/cloud-hosted with separate secret management) | No |
130
140
 
131
141
  ---
132
142
 
133
143
  ## 8. Source Notes
134
144
 
135
145
  - GPT-5.5 Codex availability, 400K context, Fast mode, token-efficiency, and API timing come from OpenAI's 2026-04-23 release note: <https://openai.com/index/introducing-gpt-5-5/>.
146
+ - Codex app/CLI capability changes through app `26.602` and CLI `0.137.0` come from OpenAI's Codex changelog: <https://developers.openai.com/codex/changelog>.
147
+ - Sites, Amazon Bedrock, app-server, plugin, and permissions details come from the official Codex docs under <https://developers.openai.com/codex/>.
148
+ - Claude Fable 5 release date, pricing, and plan-inclusion window come from Anthropic's 2026-06-09 announcement: <https://www.anthropic.com/news/claude-fable-5-mythos-5>. Safeguard-fallback behavior comes from the Fable 5 / Mythos 5 system card §1.5 ("Novel safeguards"): client apps and Claude interfaces auto-fall back to Opus 4.8 (default and non-configurable in interfaces, session event emitted), while the Messages API blocks by default with a structured refusal category and offers opt-in server-side fallback. The serving model in the header was verified in-session by the Claude runtime.
136
149
 
137
150
  ---
138
151
 
@@ -40,7 +40,7 @@ Regardless of autonomy mode, receivers must pause on actual requests for:
40
40
 
41
41
  - Destructive command tokens: `rm -rf`, `--force`, `--no-verify`, `--dangerously-skip-permissions`
42
42
  - External side effects: push, deploy, merge, publish, credential rotation, dependency install
43
- - Sensitive scope: auth, config, secrets, dependencies, public repos, pricing/commercial content, memory SSOT
43
+ - Sensitive scope: auth, config, secrets, credentials, dependencies, public repos, pricing/commercial content, memory SSOT
44
44
 
45
45
  Profileless message types that are explicitly allowed for auto-review may log
46
46
  incidental side-effect verb mentions as notes instead of hard stops, but
@@ -97,8 +97,8 @@ If any required gate is missing or uncertain, the receiver pauses.
97
97
  as deploy/publish/merge are logged as notes instead of hard stops.
98
98
  Destructive tokens still pause.
99
99
  - Path-like tokens such as `packets/deploy/` are not deploy verbs.
100
- - Pause when the body touches auth, config, secrets, dependencies, public
101
- repos, pricing/commercial content, or memory SSOT.
100
+ - Pause when the body touches auth, config, secrets, credentials,
101
+ dependencies, public repos, pricing/commercial content, or memory SSOT.
102
102
  - Pause when file scope is ambiguous or broader than the declared profile.
103
103
  4. **Runtime/workspace**
104
104
  - Worktree is clean or the task can be isolated to a fresh branch.
@@ -114,11 +114,12 @@ Regardless of autonomy mode, receivers must pause on any of: destructive command
114
114
  tokens (`rm -rf`, `--force`, `--no-verify`,
115
115
  `--dangerously-skip-permissions`), external side effects
116
116
  (push/deploy/merge/publish/rotate/install), or modifications to auth, config,
117
- secrets, dependencies, public repos, pricing/commercial content, or memory SSOT,
118
- unless explicitly authorized by a separate safety-default exception.
117
+ secrets, credentials, dependencies, public repos, pricing/commercial content, or
118
+ memory SSOT, unless explicitly authorized by a separate safety-default
119
+ exception.
119
120
 
120
- Continuation grants do not override destructive tokens, auth/secrets,
121
- dependency, public-scope, pricing/commercial, or memory-SSOT hard stops.
121
+ Continuation grants do not override destructive tokens, auth/secrets/credentials,
122
+ dependency, public-scope, pricing/commercial, config, or memory-SSOT hard stops.
122
123
  When explicitly enabled, a valid continuation grant may cover declared external
123
124
  side effects only for the scoped PR, GitHub comment, or commit continuation
124
125
  fields that the grant marks true.
@@ -131,7 +132,7 @@ Every autonomy decision writes one YAML file:
131
132
 
132
133
  ```yaml
133
134
  schema_version: 1
134
- spec_version: "0.3.0"
135
+ spec_version: "0.3.1"
135
136
  created_at_utc: "2026-05-12T13:23:25Z"
136
137
  receiver: codex
137
138
  sender: iris
@@ -176,6 +177,9 @@ result:
176
177
 
177
178
  `policy_path` and `policy_sha256` may be null when the pause is caused by
178
179
  missing or malformed config. `sender` is logged only for traceability.
180
+ `spec_version: "0.3.1"` pins Gate 1 integrity enforcement: schema validation,
181
+ expiry rejection, raw YAML SHA-256 recording, and same-receiver replay
182
+ detection.
179
183
 
180
184
  ## State Transition Metadata
181
185
 
@@ -153,7 +153,10 @@ Agents that lack headless mode (e.g., Gemini in some configurations):
153
153
 
154
154
  ### Codex
155
155
 
156
- - Codex operates in `--full-auto` headless mode by default.
156
+ - Codex can run interactively, from the desktop app or CLI, or through
157
+ explicit automation flows. Do not assume legacy `--full-auto` behavior;
158
+ set the intended approval policy, sandbox, and permission profile for the
159
+ receiving environment.
157
160
  - Codex can both propose and receive proposals.
158
161
  - When Codex receives a proposal, it processes the inbox at session start per the inbox/outbox polling convention.
159
162
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "oacp-cli"
7
- version = "0.3.2"
7
+ version = "0.3.4"
8
8
  description = "Open Agent Coordination Protocol CLI for file-based multi-agent workflows"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"