oacp-cli 0.4.2__tar.gz → 0.4.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.
- oacp_cli-0.4.4/.github/workflows/auto-estimate.yml +24 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/.github/workflows/ci.yml +3 -3
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/.github/workflows/release.yml +8 -8
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/.gitignore +2 -1
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/CHANGELOG.md +107 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/CONTRIBUTING.md +15 -2
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/Makefile +4 -10
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/PKG-INFO +29 -15
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/QUICKSTART.md +12 -2
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/README.md +25 -11
- oacp_cli-0.4.4/SPEC.md +60 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/guides/doctor.md +2 -2
- oacp_cli-0.4.4/docs/guides/prompt_caching.md +3 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/guides/setup.md +1 -1
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/agent_profiles.md +26 -10
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/autonomy.md +676 -38
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/inbox_outbox.md +68 -9
- oacp_cli-0.4.4/docs/protocol/org_memory.md +298 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/review_loop.md +52 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/runtime_capabilities.md +15 -8
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/session_init.md +27 -17
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/quickstart/README.md +1 -1
- oacp_cli-0.4.4/mcp_servers/README.md +8 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/oacp/cli.py +10 -1
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/pyproject.toml +29 -5
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/_oacp_constants.py +74 -1
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/add_agent.py +39 -14
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/agent_profile.py +314 -15
- oacp_cli-0.4.4/scripts/autonomy_gate.py +4087 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/claude_envelope_hook.py +446 -40
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/codex_session_init.py +214 -45
- oacp_cli-0.4.4/scripts/finalize_autonomy_record.py +1279 -0
- oacp_cli-0.4.4/scripts/gen_readme_commands.py +155 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/init_org_memory.py +11 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/init_packet.sh +1 -1
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/init_project_workspace.py +22 -2
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/oacp_doctor.py +408 -4
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/preflight.py +121 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/record_autonomy_outcome.py +2 -28
- oacp_cli-0.4.4/scripts/retention.py +407 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/send_inbox_message.py +11 -2
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/session_lifecycle_hooks.py +2 -2
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/setup_runtime.py +223 -35
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/update_workspace.sh +37 -3
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/agent_profile.template.yaml +1 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/handoff_packet.template.yaml +1 -1
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/inbox_message.template.yaml +2 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/receiver_config.template.yaml +4 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/README.md +75 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/actuals/reauth_boundary_action.yaml +12 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/actuals/reauth_conflict.yaml +21 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/actuals/reauth_cross_channel.yaml +14 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/actuals/reauth_reuse.yaml +14 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/actuals/reauth_same_channel.yaml +14 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/actuals/reauth_scopeless_boundary.yaml +10 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/actuals/review_live_head_mismatch.yaml +2 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/actuals/review_live_head_prefix.yaml +2 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/audits/prior_review_addressed_accepted.yaml +18 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/audits/prior_review_grant_addressed_types.yaml +49 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/audits/prior_review_grant_approved.yaml +48 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/audits/prior_review_grant_denied_later.yaml +29 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/audits/prior_review_grant_denied_postmessage.yaml +29 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/brainstorm_without_profile_auto_accepts.yaml +10 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/checkpoint_reauth_boundary_action_resumes.yaml +41 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/checkpoint_reauth_conflict_declines.yaml +36 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/checkpoint_reauth_cross_channel_resumes.yaml +37 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/checkpoint_reauth_reuse_stays_paused.yaml +31 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/checkpoint_reauth_same_channel_resumes.yaml +37 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/checkpoint_reauth_scopeless_boundary_resumes.yaml +42 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/declaration_error_admission_pauses.yaml +29 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_masking_threshold_pauses.yaml +11 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_accepted_auto_continues.yaml +31 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_disabled_pauses.yaml +16 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_drift_pauses.yaml +18 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_expired_pauses.yaml +17 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_head_mismatch_records.yaml +26 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_later_round_pauses.yaml +17 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_missing_approval_pauses.yaml +14 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_prefix_head_records.yaml +26 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_repeated_addressed_round_exceeded.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_revoke_before_processing_pauses.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/review_continuation_revoked_pauses.yaml +18 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/sensitive_content_reply_only_advisory.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/ledger_replay/corpus.yaml +913 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/declaration_error_admission.yaml +25 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/review_continuation_addressed_round3.yaml +17 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/review_continuation_cross_pr.yaml +17 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/review_continuation_head_mismatch.yaml +18 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/review_continuation_prefix_head.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/review_continuation_request.yaml +17 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/review_continuation_round4.yaml +17 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/review_continuation_unapproved.yaml +27 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/messages/sensitive_content_reply_only.yaml +28 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/README.md +18 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/breach_basis_source_mismatch.yaml +42 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/breached_empty_fields.yaml +30 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/clean_terminal_done.yaml +37 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/duplicate_live_a.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/duplicate_live_b.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/duplicate_yaml_key_logged_notes.yaml +23 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/expected_findings.yaml +46 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/final_state_superseded_valid.yaml +21 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/inconsistent_work_clock.yaml +21 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/noncanonical_axis_names.yaml +32 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/off_enum_final_state_completed.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/off_enum_kind_completed_after_human_approval.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/off_enum_kind_executed.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/off_enum_kind_human_approved_completed.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/off_enum_kind_review_round_delivered.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/paused_terminal_action_unreconciled.yaml +39 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/paused_terminal_completed_stamp.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/serialized_wave_item.yaml +52 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/superseded_legacy_kind_repaired.yaml +22 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/superseded_legacy_successor_live.yaml +21 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/superseded_missing_successor.yaml +19 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/superseded_successor_live.yaml +21 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/superseded_unrelated_successor.yaml +21 -0
- oacp_cli-0.4.4/tests/conformance/autonomy/records/unrelated_identity_holder_live.yaml +20 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/README.md +22 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/bad_layout/expected.yaml +5 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/.hidden/2026/08/20260825-alice-abc12345.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/2026/08/20260825-alice-1f3a9c2b.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/2026/08/20260825-alice-ABCD.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/2026/08/20260825_alice_abc12345.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/2026/09/20260825-alice-def12345.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/20260825-alice-abc12345.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/empty_store/expected.yaml +2 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/empty_store/org-memory/debriefs/.gitkeep +0 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/missing_debriefs_dir/expected.yaml +5 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/missing_debriefs_dir/org-memory/recent.md +1 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/staging_artifact/expected.yaml +5 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/staging_artifact/org-memory/debriefs/demo-project/2026/08/.stage.20260825-alice-77xx88yy.md.a1b2c3 +1 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/staging_artifact/org-memory/debriefs/demo-project/2026/08/20260825-alice-1f3a9c2b.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/valid_store/expected.yaml +2 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/.gitkeep +0 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/Demo_Project/2026/08/20260825-bob-ops-9f00aa11.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/demo-project/2026/08/20260825-alice-1f3a9c2b.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/demo.project/2026/07/20260701-Alice_2.dev-00aa11bb.md +14 -0
- oacp_cli-0.4.4/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/other-project/2026/12/20261203-bob-9e0d44aa.md +14 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_add_agent.py +79 -7
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_agent_profile.py +142 -3
- oacp_cli-0.4.4/tests/test_audit_record_conformance.py +89 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_autonomy_conformance_fixtures.py +7 -0
- oacp_cli-0.4.4/tests/test_autonomy_gate.py +3644 -0
- oacp_cli-0.4.4/tests/test_autonomy_ledger_replay.py +229 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_claude_envelope_hook.py +854 -7
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_codex_session_init.py +178 -10
- oacp_cli-0.4.4/tests/test_finalize_autonomy_record.py +1362 -0
- oacp_cli-0.4.4/tests/test_init_org_memory.py +46 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_init_project_workspace.py +13 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_memory_sync.py +29 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_oacp_cli.py +13 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_oacp_doctor.py +130 -3
- oacp_cli-0.4.4/tests/test_org_memory_doctor.py +195 -0
- oacp_cli-0.4.4/tests/test_package_content.py +139 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_preflight.py +137 -0
- oacp_cli-0.4.4/tests/test_readme_commands.py +86 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_record_autonomy_outcome.py +34 -2
- oacp_cli-0.4.4/tests/test_retention.py +268 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_send_inbox_message.py +84 -1
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_setup_runtime.py +230 -11
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_update_workspace.py +31 -4
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_workspace_discovery.py +0 -117
- oacp_cli-0.4.2/SPEC.md +0 -748
- oacp_cli-0.4.2/docs/guides/prompt_caching.md +0 -149
- oacp_cli-0.4.2/docs/guides/runtime_capability_matrix.md +0 -161
- oacp_cli-0.4.2/docs/protocol/org_memory.md +0 -125
- oacp_cli-0.4.2/scripts/autonomy_gate.py +0 -1995
- oacp_cli-0.4.2/scripts/create_handoff_packet.py +0 -182
- oacp_cli-0.4.2/scripts/init_project_workspace.sh +0 -7
- oacp_cli-0.4.2/scripts/normalize_findings.py +0 -635
- oacp_cli-0.4.2/tests/conformance/autonomy/README.md +0 -38
- oacp_cli-0.4.2/tests/test_autonomy_gate.py +0 -1206
- oacp_cli-0.4.2/tests/test_create_handoff_packet.py +0 -155
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/.gitattributes +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/LICENSE +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/SECURITY.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/from-claude-p.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/guides/adoption.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/guides/unified_skill_spec.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/guides/versioning.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/img/oacp-cli-demo.png +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/img/oacp-filesystem-tree.png +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/img/oacp-fleet-thread.png +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/agent_safety_defaults.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/credential_scoping.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/cross_runtime_sync.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/dispatch_states.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/mcp_integration.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/message_signing.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/multi_agent_shared_workspace.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/packet_states.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/skills_manifest.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/docs/protocol/task_negotiation.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/README.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/decisions.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260504-093015-postgres-over-dynamodb.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260508-141220-utc-timestamps-pr-review.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260515-102045-utc-timestamps-webhooks.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260521-163330-utc-timestamps-rule-proposal.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260527-110500-idempotency-keys-merged.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260602-090210-parcel-api-v020-released.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/recent.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/rules.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/archive/2026-05-21-csv-export-timeouts.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/decision_log.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/known_debt.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/open_threads.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/project_facts.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/mcp_servers/oacp_coordinator.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/oacp/__init__.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/oacp/envelope_hook.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/_oacp_env.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/check_quality_gate.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/envelope_compiler.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/handoff_schema.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/key_cli.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/memory_archive_common.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/memory_cli.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/memory_sync.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/message_signing.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/message_verify.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/oacp_inbox.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/oacp_watch.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/policy_signing.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/promote_to_archive.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/restore_from_archive.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/trust_cli.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/trust_root.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/validate_agent_card.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/validate_message.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/scripts/write_event.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/agent_card.template.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/agent_status.template.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/checkpoint.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/claude/agents/role_agent.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/claude/rules/guardrail.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/findings_packet.template.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/github_actions_quality_gate.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/guardrails/coding_standards.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/guardrails/safe_commands.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/guardrails/secrets_rules.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/manual_validation.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/merge_decision.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/org-memory/decisions.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/org-memory/events/.gitkeep +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/org-memory/events/20260317-170120-example-api-convention.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/org-memory/recent.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/org-memory/rules.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/review_packet.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/roles/role_baseline.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/roles/role_definition.template.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/runtime_capabilities.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/skills_manifest.template.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/templates/test_packet.template.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/checkpoint_breach.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/continuation_drift.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/continuation_within.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/declaration_error.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/declaration_intent.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/top_level_side_effect_keys.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/audits/prior_thread_grant_approved.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/always_pause.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/auto_review_continuation_enabled.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/auto_review_external_pause.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/auto_review_standard.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/auto_review_tight.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/malformed_config.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/always_pause_task.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/ambiguous_scope_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/brainstorm_destructive_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/brainstorm_side_effect_verbs_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/checkpoint_breach_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/clean_auto_review_task.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_destructive_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_disabled_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_drift_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_enabled_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_external_uncovered_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/declaration_error_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/declaration_intent_checkpoint_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/declared_destructive_ops_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/expired_message_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/guardrails_fence_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_dangerously_skip_permissions_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_external_side_effects_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_force_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_no_verify_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_no_verify_upper_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_rm_rf_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_commercial_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_config_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_credentials_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_memory_ssot_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_pricing_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_public_repo_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_scope_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_secret_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_side_effect_before_sensitive_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/invalid_message_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/lexical_declared_false_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/malformed_config_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/minutes_45_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/minutes_46_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/missing_task_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/negated_guardrails_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/path_like_deploy_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/private_issue_artifacts_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/private_pr_artifacts_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/private_pr_with_merge_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/public_pr_artifacts_pause.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/risk_obvious_no_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/side_effect_booleans_pause.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/threshold_breach_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/tight_threshold_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/top_level_side_effect_actuals_ignored.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/unparsable_task_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/ambiguous_scope.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/brainstorm_destructive.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/brainstorm_side_effect_verbs.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/brainstorm_without_profile.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/clean_task.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/continuation_grant.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/continuation_grant_destructive.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/continuation_grant_external_uncovered.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/declared_destructive_ops.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/expired_message.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/guardrails_fence.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_dangerously_skip_permissions.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_external_side_effects.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_force.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_masking_threshold.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_no_verify.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_no_verify_upper.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_rm_rf.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_sensitive_scope.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/invalid_message.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/lexical_declared_false.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/minutes_45.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/minutes_46.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/missing_task_profile.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/negated_guardrails.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/path_like_deploy.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/private_issue_artifacts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/private_pr_artifacts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/private_pr_with_merge.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/public_pr_artifacts.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/risk_obvious_no_profile.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_commercial.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_config.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_credentials.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_memory_ssot.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_pricing.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_public_repo.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_secret.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/side_effect_before_sensitive.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/side_effect_booleans.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/threshold_breach.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/unparsable_task_profile.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/README.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/configs/auto_review_standard.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/configs/malformed.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/clean_pr_task_compiles.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/docs_only_task_compiles.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/granular_capabilities_compile.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/invalid_numeric_fails.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/malformed_config_fails.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/missing_profile_fails.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/unparsable_profile_fails.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/clean_pr_task.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/docs_only_task.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/granular_capabilities_task.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/invalid_numeric.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/missing_profile.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/unparsable_profile.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/README.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/configs/enforce.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/configs/off.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/configs/warn.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/signed_basic__enforce.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/signed_revoked__enforce.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/signed_revoked__off.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/signed_revoked__warn.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_body_flip__enforce.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_body_flip__off.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_body_flip__warn.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_kid_unknown__enforce.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_kid_unknown__off.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_kid_unknown__warn.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/unsigned_notification__enforce.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/unsigned_notification__off.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/intake/expected/unsigned_notification__warn.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/README.md +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/signed_basic.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/signed_lookalike.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/signed_multisig.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/signed_revoked.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_auth_alias.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_body_flip.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_container_reformat.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_crlf_trailer.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_header_reencode.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_identity_mismatch.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_indented_trailer.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_kid_alias.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_kid_cross_agent.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_kid_unknown.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_missing_final_lf.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_padded_b64.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_sig_alias.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_sig_corrupt.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_trailer_transplant.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_trailing_blank_line.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_trailing_space.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/expected/unsigned_notification.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/keys/alice.json +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/keys/bob.json +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/keys/carol.json +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_basic.prefix.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_basic.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_lookalike.prefix.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_lookalike.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_multisig.prefix.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_multisig.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_revoked.prefix.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_revoked.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_auth_alias.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_body_flip.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_container_reformat.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_crlf_trailer.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_header_reencode.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_identity_mismatch.prefix.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_identity_mismatch.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_indented_trailer.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_kid_alias.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_kid_cross_agent.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_kid_unknown.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_missing_final_lf.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_padded_b64.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_sig_alias.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_sig_corrupt.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_trailer_transplant.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_trailing_blank_line.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_trailing_space.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/messages/unsigned_notification.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/pins/allowed_signers.yaml +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/conformance/signing/regen_fixtures.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_default_envelope.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_envelope_compiler.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_envelope_conformance_fixtures.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_envelope_public_admission.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_github_workflows.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_handoff_schema.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_inbox_verify.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_intake_conformance.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_memory_archive.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_message_signing.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_message_verify.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_oacp_constants.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_oacp_coordinator.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_oacp_env.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_oacp_inbox.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_oacp_watch.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_policy_signing.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_review_loop.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_session_lifecycle_hooks.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_signing_conformance.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_trust_root.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_validate_agent_card.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_validate_message.py +0 -0
- {oacp_cli-0.4.2 → oacp_cli-0.4.4}/tests/test_write_event.py +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Auto-estimate
|
|
2
|
+
|
|
3
|
+
# Label an issue `estimate` and agent-estimate posts an estimate comment
|
|
4
|
+
# on it. Recipe from kiloloop/agent-estimate README ("Auto-estimate on
|
|
5
|
+
# label") — consumes the published Action via the v0 tag.
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
issues:
|
|
9
|
+
types: [labeled]
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
issues: write
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
estimate:
|
|
17
|
+
if: github.event.label.name == 'estimate'
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- uses: kiloloop/agent-estimate@7b30943bac5648cf183f3d050baa6fea5485b8a9 # v0.7.4
|
|
21
|
+
with:
|
|
22
|
+
issues: ${{ github.event.issue.number }}
|
|
23
|
+
output-mode: issue-comment
|
|
24
|
+
title: 'Agent Estimate — issue #${{ github.event.issue.number }}'
|
|
@@ -14,10 +14,10 @@ jobs:
|
|
|
14
14
|
|
|
15
15
|
steps:
|
|
16
16
|
- name: Check out repository
|
|
17
|
-
uses: actions/checkout@
|
|
17
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
18
18
|
|
|
19
19
|
- name: Set up Python
|
|
20
|
-
uses: actions/setup-python@
|
|
20
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
21
21
|
with:
|
|
22
22
|
python-version: "3.12"
|
|
23
23
|
cache: pip
|
|
@@ -30,7 +30,7 @@ jobs:
|
|
|
30
30
|
- name: Install Python dependencies
|
|
31
31
|
run: |
|
|
32
32
|
python -m pip install --upgrade pip
|
|
33
|
-
python -m pip install -e ".[crypto]"
|
|
33
|
+
python -m pip install --group dev -e ".[crypto]"
|
|
34
34
|
|
|
35
35
|
- name: Run quality gate
|
|
36
36
|
run: make preflight ARGS="--full"
|
|
@@ -16,10 +16,10 @@ jobs:
|
|
|
16
16
|
|
|
17
17
|
steps:
|
|
18
18
|
- name: Check out repository
|
|
19
|
-
uses: actions/checkout@
|
|
19
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
20
20
|
|
|
21
21
|
- name: Set up Python
|
|
22
|
-
uses: actions/setup-python@
|
|
22
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
23
23
|
with:
|
|
24
24
|
python-version: "3.12"
|
|
25
25
|
cache: pip
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
- name: Install Python dependencies
|
|
33
33
|
run: |
|
|
34
34
|
python -m pip install --upgrade pip
|
|
35
|
-
python -m pip install -e ".[crypto]"
|
|
35
|
+
python -m pip install --group dev -e ".[crypto]"
|
|
36
36
|
|
|
37
37
|
- name: Run quality gate
|
|
38
38
|
run: make preflight ARGS="--full"
|
|
@@ -42,7 +42,7 @@ jobs:
|
|
|
42
42
|
|
|
43
43
|
# upload-artifact is still on v6; download-artifact moved to v7 for Node 24.
|
|
44
44
|
- name: Upload release artifacts
|
|
45
|
-
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
|
45
|
+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
|
46
46
|
with:
|
|
47
47
|
name: python-package-distributions
|
|
48
48
|
path: dist/
|
|
@@ -59,7 +59,7 @@ jobs:
|
|
|
59
59
|
|
|
60
60
|
steps:
|
|
61
61
|
- name: Download release artifacts
|
|
62
|
-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
|
|
62
|
+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
|
63
63
|
with:
|
|
64
64
|
name: python-package-distributions
|
|
65
65
|
path: dist/
|
|
@@ -102,7 +102,7 @@ jobs:
|
|
|
102
102
|
|
|
103
103
|
- name: Publish to PyPI
|
|
104
104
|
if: steps.check-pypi-version.outputs.version_exists != 'true'
|
|
105
|
-
uses: pypa/gh-action-pypi-publish@
|
|
105
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
106
106
|
|
|
107
107
|
- name: Skip duplicate PyPI publish
|
|
108
108
|
if: steps.check-pypi-version.outputs.version_exists == 'true'
|
|
@@ -116,11 +116,11 @@ jobs:
|
|
|
116
116
|
|
|
117
117
|
steps:
|
|
118
118
|
- name: Check out repository
|
|
119
|
-
uses: actions/checkout@
|
|
119
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
120
120
|
|
|
121
121
|
# download-artifact v7 is the current Node 24-compatible major.
|
|
122
122
|
- name: Download release artifacts
|
|
123
|
-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
|
|
123
|
+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
|
124
124
|
with:
|
|
125
125
|
name: python-package-distributions
|
|
126
126
|
path: dist/
|
|
@@ -5,6 +5,111 @@ 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
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.4.4] - 2026-08-28
|
|
11
|
+
|
|
12
|
+
The central debrief store is the headline change: every agent's full end-of-session debrief now lands in the kernel-owned, append-only `org-memory/debriefs/<project>/<YYYY>/<MM>/` layout — one immutable file per session — instead of per-project trees, with `oacp org-memory init` creating the store and `oacp doctor` checking its setup ([org memory](docs/protocol/org_memory.md#debrief-store)).
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Central session-debrief store under org-memory `debriefs/`, created by `oacp org-memory init` and setup-checked by `oacp doctor` ([org memory](docs/protocol/org_memory.md#debrief-store)).
|
|
17
|
+
- `oacp add-agent` and `oacp init --agents` populate the instance agent registry; `oacp agent sync` backfills existing workspaces ([agent profiles](docs/protocol/agent_profiles.md)).
|
|
18
|
+
- `oacp autonomy-finalize` writes and validates checkpoint and terminal autonomy audit updates under lock; `oacp doctor` sweeps audit directories with the same checks ([autonomy](docs/protocol/autonomy.md#terminal-finalization-and-audit-integrity)).
|
|
19
|
+
- Every persisted autonomy evaluation carries an `evaluation_id`; re-evaluations supersede the prior record through a locked transaction ([autonomy](docs/protocol/autonomy.md#terminal-finalization-and-audit-integrity)).
|
|
20
|
+
- The wheel ships the four kernel protocol docs, the wire message template, and five previously unpackaged scripts under `oacp/_protocol/`, `oacp/_templates/`, and `oacp/_scripts/`.
|
|
21
|
+
- Preflight and CI fail when `scripts/` and the wheel's force-include table drift apart.
|
|
22
|
+
- `waiting_on_peer` checkpoint sub-basis separates peer-reply latency from working time in a realized time breach ([threshold checkpoint](docs/protocol/autonomy.md#threshold-exceeded-checkpoint)).
|
|
23
|
+
- Conformance fixture pinning the default scope envelope stamped on profileless admits.
|
|
24
|
+
|
|
25
|
+
### Removed
|
|
26
|
+
|
|
27
|
+
- Zero-consumer scripts `normalize_findings.py`, `create_handoff_packet.py`, and `init_project_workspace.sh` with their Makefile targets; `oacp init` replaces `make init`.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- `actual_minutes` is active wall-clock from receiver-stamped `work_started_at_utc`, excluding admission idle and re-authorization pauses ([threshold checkpoint](docs/protocol/autonomy.md#threshold-exceeded-checkpoint)).
|
|
32
|
+
- `expected_files_touched` counts distinct deliverable files only, not receiver bookkeeping, memory, cache, or scratch writes ([autonomy policy](docs/protocol/autonomy.md#message-fields)).
|
|
33
|
+
- Parent-less `oacp send` messages get an automatic thread identifier ([conversation threading](docs/protocol/inbox_outbox.md#conversation-threading)).
|
|
34
|
+
- The README `## Commands` table is generated from `oacp --help` via `make docs`, with a drift test.
|
|
35
|
+
- Moved the runtime capability matrix to the public [Kiloloop research repository](https://github.com/kiloloop/research/blob/main/runtime-comparison/runtime_capability_matrix.md).
|
|
36
|
+
- Moved the prompt-caching guide to the public [Kiloloop research repository](https://github.com/kiloloop/research/blob/main/runtime-comparison/prompt-caching-patterns.md), leaving a redirect at its former path.
|
|
37
|
+
- Raised the optional `cryptography` floor to 50.0.0 and the Python floor to 3.9.2 to exclude known-vulnerable crypto releases.
|
|
38
|
+
- Pinned the development and release toolchain through a shared dependency group and refreshed workflow actions to immutable commits.
|
|
39
|
+
- Folded [`SPEC.md`](SPEC.md) into a thin index over `docs/protocol/`; the package `Documentation` URL is unchanged.
|
|
40
|
+
- Pricing/commercial content sensitivity is an advisory instead of a hard stop for reply-only task profiles ([autonomy](docs/protocol/autonomy.md#four-gate-evaluator)).
|
|
41
|
+
- Enveloped sessions can no longer write the receiver's `audit/autonomy_decisions/` directly; only the canonical `oacp` audit writers can ([autonomy](docs/protocol/autonomy.md#envelope-compilation-phase-2)).
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
|
|
45
|
+
- Autonomy lexical classification records every match with its source span and demotion basis ([autonomy](docs/protocol/autonomy.md#lexical-provenance)).
|
|
46
|
+
- Negated or descriptive public-repository, dependency-install, and merge-method language no longer trips lexical hard stops; stacked negations and later unaccounted occurrences still cannot demote an affirmative match ([autonomy](docs/protocol/autonomy.md#lexical-provenance)).
|
|
47
|
+
- `SPEC.md` describes the archive-never-delete inbox lifecycle instead of saying recipients delete processed messages ([inbox/outbox](docs/protocol/inbox_outbox.md)).
|
|
48
|
+
- The envelope hook no longer counts phantom `files_touched` from heredoc bodies or unexpanded shell variables; variable-spelled write targets escalate to `ask` ([autonomy](docs/protocol/autonomy.md#envelope-compilation-phase-2)).
|
|
49
|
+
- Autonomy audit records carry a complete admission ledger (`admission_axes`), so a hard stop no longer masks the threshold, side-effect, or declaration axes ([autonomy](docs/protocol/autonomy.md#admission-ledger)).
|
|
50
|
+
- `declaration_error` pauses record which profile field failed and why.
|
|
51
|
+
- A granted checkpoint re-authorization widens the live file budget, so extra files no longer stay blocked after a valid grant ([autonomy](docs/protocol/autonomy.md#envelope-drift)).
|
|
52
|
+
|
|
53
|
+
## [0.4.3] - 2026-08-12
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
|
|
57
|
+
- Review-loop continuation grants: a human-approved
|
|
58
|
+
`approved_thread_continuation` may carry a `review_loop` scope (one
|
|
59
|
+
repository, PR, and sender thread; allowed lifecycle types; a round
|
|
60
|
+
ceiling; wall-clock expiry; permitted review side effects) so in-scope
|
|
61
|
+
same-thread follow-up review rounds auto-invoke the reviewer. A grant
|
|
62
|
+
authorizes running a round, never its verdict — the live PR head stays
|
|
63
|
+
authoritative, with declared heads compared by exact full-SHA equality.
|
|
64
|
+
Expiry and revocation bind at evaluation time, approvals never authorize
|
|
65
|
+
retroactively, only rounds that actually ran consume the round budget,
|
|
66
|
+
the accepted side-effect set binds the invocation, and out-of-scope
|
|
67
|
+
requests pause. Receiver config enables recognition only; authority
|
|
68
|
+
exists solely in prior human-approved grant audits. Adds the
|
|
69
|
+
`review_continuation` audit block, pinned `review_continuation_*` and
|
|
70
|
+
`review_loop_invalid` reason codes, and a conformance fixture set; full
|
|
71
|
+
semantics in `docs/protocol/autonomy.md` and
|
|
72
|
+
`docs/protocol/review_loop.md`.
|
|
73
|
+
- Checkpoint re-authorization is now specified end to end: three pinned
|
|
74
|
+
answer channels — receiver-side human, signature-verified sender reply
|
|
75
|
+
bounded by the receiver's own admission policy, GitHub comments as
|
|
76
|
+
advisory-only — with rank, never arrival order, deciding conflicts. A
|
|
77
|
+
consumption rule binds each answer to the pause it clears: scope-less
|
|
78
|
+
approvals clear one checkpoint, scoped numeric budgets stand for the
|
|
79
|
+
rest of the task up to the granted value, and boundary-action grants
|
|
80
|
+
durably authorize one granular capability until task completion. The
|
|
81
|
+
audit surface separates the requested scope from the effective
|
|
82
|
+
policy-capped grant, with pinned reason codes `checkpoint_reauthorized`
|
|
83
|
+
and `checkpoint_reauthorization_stale` and a conformance fixture set.
|
|
84
|
+
- `oacp session-init` now supports Codex `SessionStart` JSON, a bounded and
|
|
85
|
+
truthful ordered-read manifest, optional pull-before-verify memory sync, and
|
|
86
|
+
active-model/cwd input from the hook payload. `oacp setup codex` safely
|
|
87
|
+
merges one startup-only handler into `.codex/hooks.json`; users review and
|
|
88
|
+
trust the definition with `/hooks`.
|
|
89
|
+
- Project-wide message-history retention through `oacp retention`: outbox,
|
|
90
|
+
dead-letter, and processed inbox-archive files are pruned when they exceed
|
|
91
|
+
either an age or count bound (defaults 30 days and 1,000 files per target),
|
|
92
|
+
with validated partial overrides in `workspace.json`, deterministic dry-run
|
|
93
|
+
JSON, and file-identity rechecks before deletion.
|
|
94
|
+
- Processed inbound messages now have one cross-runtime destination,
|
|
95
|
+
`inbox/archive/`, preserving the original filename and bytes. Quarantine
|
|
96
|
+
evidence is excluded from automatic pruning by its durable filename format;
|
|
97
|
+
manually managed fixtures can use adjacent `.retain` markers. Protocol spec
|
|
98
|
+
version advances to 0.4.3.
|
|
99
|
+
|
|
100
|
+
### Changed
|
|
101
|
+
|
|
102
|
+
- Codex startup file states now say `verified` instead of `loaded`: the command
|
|
103
|
+
confirms readability and updates `status.yaml`, while its hook context tells
|
|
104
|
+
Codex which files still require ordered reads. Legacy `.agent-hub` project
|
|
105
|
+
detection has been removed from this Codex path.
|
|
106
|
+
- `oacp setup claude` keeps automatic startup memory pull but no longer creates
|
|
107
|
+
or registers an automatic `SessionEnd` push. Rerunning setup removes only the
|
|
108
|
+
exact historical generated registration and leaves any existing script or
|
|
109
|
+
custom hooks untouched; explicit wrap-up remains the single push path.
|
|
110
|
+
- Session lifecycle documentation now distinguishes coordinator telemetry in
|
|
111
|
+
`session_lifecycle_state.json` from runtime startup and `status.yaml`.
|
|
112
|
+
|
|
8
113
|
## [0.4.2] - 2026-08-07
|
|
9
114
|
|
|
10
115
|
### Added
|
|
@@ -702,6 +807,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
702
807
|
- Checkout step in github-release workflow job (#19)
|
|
703
808
|
- Pre-release audit fixes: SHA-pinned actions, dangling doc refs (#15, #16)
|
|
704
809
|
|
|
810
|
+
[0.4.4]: https://github.com/kiloloop/oacp/compare/v0.4.3...v0.4.4
|
|
811
|
+
[0.4.3]: https://github.com/kiloloop/oacp/compare/v0.4.2...v0.4.3
|
|
705
812
|
[0.4.2]: https://github.com/kiloloop/oacp/compare/v0.4.1...v0.4.2
|
|
706
813
|
[0.4.1]: https://github.com/kiloloop/oacp/compare/v0.4.0...v0.4.1
|
|
707
814
|
[0.4.0]: https://github.com/kiloloop/oacp/compare/v0.3.5...v0.4.0
|
|
@@ -34,13 +34,16 @@ Please read and follow our [Code of Conduct](https://github.com/kiloloop/.github
|
|
|
34
34
|
|
|
35
35
|
## Development Setup
|
|
36
36
|
|
|
37
|
+
Development and test tooling requires Python 3.10 or newer. The installed CLI
|
|
38
|
+
continues to support Python 3.9.2 and newer.
|
|
39
|
+
|
|
37
40
|
```bash
|
|
38
41
|
# Clone
|
|
39
42
|
git clone https://github.com/kiloloop/oacp.git
|
|
40
43
|
cd oacp
|
|
41
44
|
|
|
42
|
-
# Install
|
|
43
|
-
pip install
|
|
45
|
+
# Install the package, crypto extra, and pinned development tools
|
|
46
|
+
python -m pip install --group dev -e ".[crypto]"
|
|
44
47
|
|
|
45
48
|
# Verify setup
|
|
46
49
|
make preflight
|
|
@@ -81,6 +84,16 @@ make preflight ARGS="--full"
|
|
|
81
84
|
- Keep the first line under 72 characters
|
|
82
85
|
- Reference issue numbers where applicable: "Fix message validation (#42)"
|
|
83
86
|
|
|
87
|
+
## Changelog Entries
|
|
88
|
+
|
|
89
|
+
Entries in `CHANGELOG.md` follow [Common Changelog](https://common-changelog.org) discipline: a changelog answers "does this affect me, and how", not "how does it work".
|
|
90
|
+
|
|
91
|
+
- One line, one change — split a multi-facet feature into two or three scoped bullets rather than one long bullet.
|
|
92
|
+
- State the user-visible delta, not the implementation path.
|
|
93
|
+
- Do not inline flag enums or sub-mechanism walkthroughs — link the protocol spec or doc section that carries the detail.
|
|
94
|
+
- One link per bullet, pointing at the best entry point.
|
|
95
|
+
- Each bullet must read as self-describing without its `### Added`/`### Changed` heading.
|
|
96
|
+
|
|
84
97
|
## License
|
|
85
98
|
|
|
86
99
|
By contributing, you agree that your contributions will be licensed under the [Apache 2.0 License](LICENSE).
|
|
@@ -16,7 +16,7 @@ endif
|
|
|
16
16
|
|
|
17
17
|
# ── Targets ──────────────────────────────────────────────────────────────
|
|
18
18
|
|
|
19
|
-
.PHONY: help
|
|
19
|
+
.PHONY: help update test docs validate validate-msg validate-card send quality packet preflight doctor
|
|
20
20
|
|
|
21
21
|
help: ## Show available targets (default)
|
|
22
22
|
@echo "OACP — task runner"
|
|
@@ -26,15 +26,15 @@ help: ## Show available targets (default)
|
|
|
26
26
|
@grep -E '^[a-z][-a-z]+:.*## ' $(MAKEFILE_LIST) | \
|
|
27
27
|
awk -F ':.*## ' '{ printf " %-14s %s\n", $$1, $$2 }'
|
|
28
28
|
|
|
29
|
-
init: _require-project ## Create a new project workspace
|
|
30
|
-
bash $(SCRIPTS_DIR)/init_project_workspace.sh $(PROJECT) $(ARGS)
|
|
31
|
-
|
|
32
29
|
update: _require-project ## Sync existing workspace with latest structure
|
|
33
30
|
bash $(SCRIPTS_DIR)/update_workspace.sh $(PROJECT) $(ARGS)
|
|
34
31
|
|
|
35
32
|
test: ## Run all tests
|
|
36
33
|
python3 -m pytest $(SCRIPTS_DIR)/../tests -v $(ARGS)
|
|
37
34
|
|
|
35
|
+
docs: ## Regenerate the README command table from oacp --help
|
|
36
|
+
python3 $(SCRIPTS_DIR)/gen_readme_commands.py --write
|
|
37
|
+
|
|
38
38
|
validate-msg: ## Validate inbox messages
|
|
39
39
|
python3 $(SCRIPTS_DIR)/validate_message.py $(ARGS)
|
|
40
40
|
|
|
@@ -57,9 +57,3 @@ quality: ## Run quality gate check
|
|
|
57
57
|
|
|
58
58
|
packet: _require-project ## Create a review/findings/merge packet
|
|
59
59
|
bash $(SCRIPTS_DIR)/init_packet.sh $(PROJECT) $(ARGS)
|
|
60
|
-
|
|
61
|
-
handoff: _require-project ## Create a structured handoff packet
|
|
62
|
-
python3 $(SCRIPTS_DIR)/create_handoff_packet.py $(PROJECT) $(ARGS)
|
|
63
|
-
|
|
64
|
-
normalize: ## Normalize raw findings into canonical YAML
|
|
65
|
-
python3 $(SCRIPTS_DIR)/normalize_findings.py $(ARGS)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: oacp-cli
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.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
|
|
@@ -20,10 +20,10 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
21
|
Classifier: Topic :: Software Development
|
|
22
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
-
Requires-Python: >=3.9
|
|
23
|
+
Requires-Python: >=3.9.2
|
|
24
24
|
Requires-Dist: pyyaml>=6.0
|
|
25
25
|
Provides-Extra: crypto
|
|
26
|
-
Requires-Dist: cryptography>=
|
|
26
|
+
Requires-Dist: cryptography>=50.0.0; extra == 'crypto'
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
28
28
|
|
|
29
29
|
# OACP
|
|
@@ -253,21 +253,32 @@ uv tool install .
|
|
|
253
253
|
|
|
254
254
|
## Commands
|
|
255
255
|
|
|
256
|
+
<!-- BEGIN GENERATED: oacp commands — do not edit by hand; run `make docs` -->
|
|
256
257
|
| Command | Description |
|
|
257
258
|
|---------|-------------|
|
|
258
|
-
| `oacp init` | Create a project workspace under
|
|
259
|
+
| `oacp init` | Create a project workspace under $OACP_HOME/projects/ |
|
|
259
260
|
| `oacp add-agent` | Add an agent to an existing project workspace |
|
|
260
|
-
| `oacp
|
|
261
|
-
| `oacp
|
|
262
|
-
| `oacp
|
|
263
|
-
| `oacp
|
|
264
|
-
| `oacp memory` | Archive, restore, or
|
|
265
|
-
| `oacp
|
|
266
|
-
| `oacp
|
|
267
|
-
| `oacp
|
|
261
|
+
| `oacp agent` | Manage global agent profiles (init, sync, show, list) |
|
|
262
|
+
| `oacp inbox` | List pending inbox messages |
|
|
263
|
+
| `oacp watch` | Emit inbox delta events for Monitor-friendly polling |
|
|
264
|
+
| `oacp retention` | Prune project message history by age and count |
|
|
265
|
+
| `oacp memory` | Archive, restore, or sync memory files |
|
|
266
|
+
| `oacp session-init` | Verify Codex startup inputs and emit SessionStart context |
|
|
267
|
+
| `oacp setup` | Generate runtime-specific config files in a repo |
|
|
268
|
+
| `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` | Initialize org-level memory at $OACP_HOME/org-memory/ |
|
|
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 |
|
|
275
|
+
| `oacp envelope` | Compile, show, or clear the runtime envelope for a task |
|
|
268
276
|
| `oacp doctor` | Check environment and workspace health |
|
|
269
277
|
| `oacp validate` | Validate an inbox/outbox YAML message |
|
|
270
|
-
| `oacp
|
|
278
|
+
| `oacp verify` | Verify a message's auth trailer against receiver-local pins |
|
|
279
|
+
<!-- END GENERATED: oacp commands -->
|
|
280
|
+
|
|
281
|
+
`oacp --version` prints the installed version.
|
|
271
282
|
|
|
272
283
|
<details>
|
|
273
284
|
<summary>Key flags</summary>
|
|
@@ -309,13 +320,16 @@ oacp/
|
|
|
309
320
|
└── SPEC.md # Full protocol specification
|
|
310
321
|
```
|
|
311
322
|
|
|
323
|
+
[`mcp_servers/`](mcp_servers/) contains experimental, unsupported prototypes;
|
|
324
|
+
it is not part of the OACP product surface.
|
|
325
|
+
|
|
312
326
|
## Related
|
|
313
327
|
|
|
314
328
|
- **[agent-estimate](https://github.com/kiloloop/agent-estimate)** — Estimate how long agent tasks take. Pairs with OACP dispatch for task sizing.
|
|
315
329
|
|
|
316
330
|
## Prerequisites
|
|
317
331
|
|
|
318
|
-
- Python 3.9+
|
|
332
|
+
- Python 3.9.2+
|
|
319
333
|
- Bash 3.2+ (macOS default is fine)
|
|
320
334
|
- `gh` CLI (optional, for GitHub operations)
|
|
321
335
|
|
|
@@ -4,7 +4,7 @@ Get from zero to your first agent-to-agent message in 5 minutes.
|
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
7
|
-
- Python 3.9+ and Bash 3.2+
|
|
7
|
+
- Python 3.9.2+ and Bash 3.2+
|
|
8
8
|
|
|
9
9
|
## 1. Set Up OACP Home
|
|
10
10
|
|
|
@@ -90,7 +90,6 @@ This creates or updates:
|
|
|
90
90
|
- `.claude/agents/my-first-project.md`
|
|
91
91
|
- `.claude/skills/`
|
|
92
92
|
- `.claude/hooks/oacp-memory-pull.sh`
|
|
93
|
-
- `.claude/hooks/oacp-memory-push.sh`
|
|
94
93
|
- `.claude/settings.json`
|
|
95
94
|
|
|
96
95
|
For other supported runtimes, use the same shape:
|
|
@@ -101,6 +100,17 @@ oacp setup cursor --project my-first-project
|
|
|
101
100
|
oacp setup gemini --project my-first-project
|
|
102
101
|
```
|
|
103
102
|
|
|
103
|
+
Codex setup creates or merges `.codex/hooks.json` with one startup-only hook.
|
|
104
|
+
Review and trust it with `/hooks`; it runs memory pull and startup verification
|
|
105
|
+
sequentially. If hooks are unavailable, run the manual fallback:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
oacp session-init --pull-memory --project my-first-project
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Runtime setup does not install an automatic memory push. Publish durable memory
|
|
112
|
+
explicitly during wrap-up with `oacp memory push`.
|
|
113
|
+
|
|
104
114
|
Cursor support is scaffold-only until Cursor-owned rules land. Cursor sessions
|
|
105
115
|
must set `OACP_RUNTIME=cursor` or pass `--from` explicitly when sending messages.
|
|
106
116
|
|
|
@@ -225,21 +225,32 @@ uv tool install .
|
|
|
225
225
|
|
|
226
226
|
## Commands
|
|
227
227
|
|
|
228
|
+
<!-- BEGIN GENERATED: oacp commands — do not edit by hand; run `make docs` -->
|
|
228
229
|
| Command | Description |
|
|
229
230
|
|---------|-------------|
|
|
230
|
-
| `oacp init` | Create a project workspace under
|
|
231
|
+
| `oacp init` | Create a project workspace under $OACP_HOME/projects/ |
|
|
231
232
|
| `oacp add-agent` | Add an agent to an existing project workspace |
|
|
232
|
-
| `oacp
|
|
233
|
-
| `oacp
|
|
234
|
-
| `oacp
|
|
235
|
-
| `oacp
|
|
236
|
-
| `oacp memory` | Archive, restore, or
|
|
237
|
-
| `oacp
|
|
238
|
-
| `oacp
|
|
239
|
-
| `oacp
|
|
233
|
+
| `oacp agent` | Manage global agent profiles (init, sync, show, list) |
|
|
234
|
+
| `oacp inbox` | List pending inbox messages |
|
|
235
|
+
| `oacp watch` | Emit inbox delta events for Monitor-friendly polling |
|
|
236
|
+
| `oacp retention` | Prune project message history by age and count |
|
|
237
|
+
| `oacp memory` | Archive, restore, or sync memory files |
|
|
238
|
+
| `oacp session-init` | Verify Codex startup inputs and emit SessionStart context |
|
|
239
|
+
| `oacp setup` | Generate runtime-specific config files in a repo |
|
|
240
|
+
| `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` | Initialize org-level memory at $OACP_HOME/org-memory/ |
|
|
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 |
|
|
247
|
+
| `oacp envelope` | Compile, show, or clear the runtime envelope for a task |
|
|
240
248
|
| `oacp doctor` | Check environment and workspace health |
|
|
241
249
|
| `oacp validate` | Validate an inbox/outbox YAML message |
|
|
242
|
-
| `oacp
|
|
250
|
+
| `oacp verify` | Verify a message's auth trailer against receiver-local pins |
|
|
251
|
+
<!-- END GENERATED: oacp commands -->
|
|
252
|
+
|
|
253
|
+
`oacp --version` prints the installed version.
|
|
243
254
|
|
|
244
255
|
<details>
|
|
245
256
|
<summary>Key flags</summary>
|
|
@@ -281,13 +292,16 @@ oacp/
|
|
|
281
292
|
└── SPEC.md # Full protocol specification
|
|
282
293
|
```
|
|
283
294
|
|
|
295
|
+
[`mcp_servers/`](mcp_servers/) contains experimental, unsupported prototypes;
|
|
296
|
+
it is not part of the OACP product surface.
|
|
297
|
+
|
|
284
298
|
## Related
|
|
285
299
|
|
|
286
300
|
- **[agent-estimate](https://github.com/kiloloop/agent-estimate)** — Estimate how long agent tasks take. Pairs with OACP dispatch for task sizing.
|
|
287
301
|
|
|
288
302
|
## Prerequisites
|
|
289
303
|
|
|
290
|
-
- Python 3.9+
|
|
304
|
+
- Python 3.9.2+
|
|
291
305
|
- Bash 3.2+ (macOS default is fine)
|
|
292
306
|
- `gh` CLI (optional, for GitHub operations)
|
|
293
307
|
|
oacp_cli-0.4.4/SPEC.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# OACP — Protocol Specification
|
|
2
|
+
|
|
3
|
+
**License**: Apache-2.0
|
|
4
|
+
|
|
5
|
+
OACP (Open Agent Coordination Protocol) is a file-based coordination layer for
|
|
6
|
+
multi-agent engineering workflows: agents on different runtimes (Claude, Codex,
|
|
7
|
+
Cursor, Gemini, or any future runtime) collaborate asynchronously through YAML
|
|
8
|
+
messages in a shared filesystem — no server, no daemon. The protocol is a small
|
|
9
|
+
kernel — the message envelope and its lifecycle, message signing and
|
|
10
|
+
verification, receiver autonomy with audit receipts, and the org-memory layout —
|
|
11
|
+
plus userland conventions (review loops, task negotiation, session init, safety
|
|
12
|
+
defaults) that build on it. This file is the index: the normative text lives in
|
|
13
|
+
the documents below and is versioned with the `oacp-cli` package (see
|
|
14
|
+
[`CHANGELOG.md`](CHANGELOG.md)).
|
|
15
|
+
|
|
16
|
+
## Kernel documents
|
|
17
|
+
|
|
18
|
+
What every receiver must understand or verify to exchange a message. These four
|
|
19
|
+
documents ship inside the `oacp-cli` wheel.
|
|
20
|
+
|
|
21
|
+
| Document | Governs |
|
|
22
|
+
|---|---|
|
|
23
|
+
| [`docs/protocol/inbox_outbox.md`](docs/protocol/inbox_outbox.md) | Wire format including the signed `auth` trailer; directory layout; message types; lifecycle — a processed inbound message is archived to `inbox/archive/` by digest-checked, no-clobber move (never deleted), and an intake rejection is quarantined to `dead_letter/`; threading, broadcast, expiry, retention. |
|
|
24
|
+
| [`docs/protocol/message_signing.md`](docs/protocol/message_signing.md) | Trust root and receiver pins, verify modes (`off` / `warn` / `enforce`), receiver audit stamping, policy-file signing, key management, rotation and revocation, signing conformance. |
|
|
25
|
+
| [`docs/protocol/autonomy.md`](docs/protocol/autonomy.md) | Receiver autonomy: config and task profiles, the four-gate admission evaluator and hard stops, audit records (admission ledger, human outcomes, terminal finalization), threshold checkpoints and re-authorization, scope-envelope enforcement, continuation grants. |
|
|
26
|
+
| [`docs/protocol/org_memory.md`](docs/protocol/org_memory.md) | Org-level memory: directory structure, event file schema, the debrief store, permission model and lifecycle. |
|
|
27
|
+
|
|
28
|
+
## Userland documents
|
|
29
|
+
|
|
30
|
+
Conventions layered on the kernel. Adopt what fits; none of them change what a
|
|
31
|
+
receiver must verify.
|
|
32
|
+
|
|
33
|
+
| Document | Covers |
|
|
34
|
+
|---|---|
|
|
35
|
+
| [`docs/protocol/review_loop.md`](docs/protocol/review_loop.md) | Inbox-driven code review: stateless reviewer rounds, findings packets, quality gate, round budgets, post-LGTM nits. |
|
|
36
|
+
| [`docs/protocol/task_negotiation.md`](docs/protocol/task_negotiation.md) | Propose / accept / counter-propose handshake for splitting work between agents. |
|
|
37
|
+
| [`docs/protocol/multi_agent_shared_workspace.md`](docs/protocol/multi_agent_shared_workspace.md) | Shared-folder implementation → QA → deployment handoff with batched findings and signoff. |
|
|
38
|
+
| [`docs/protocol/session_init.md`](docs/protocol/session_init.md) | Runtime-agnostic session-start sequence and failure handling. |
|
|
39
|
+
| [`docs/protocol/cross_runtime_sync.md`](docs/protocol/cross_runtime_sync.md) | Keeping context consistent across runtimes: durable memory, handoff messages, review artifacts. |
|
|
40
|
+
| [`docs/protocol/runtime_capabilities.md`](docs/protocol/runtime_capabilities.md) | Static capability declarations, dynamic `status.yaml`, health-check contract, agent cards. |
|
|
41
|
+
| [`docs/protocol/agent_profiles.md`](docs/protocol/agent_profiles.md) | Two-tier identity: global agent profiles and project-level agent cards. |
|
|
42
|
+
| [`docs/protocol/agent_safety_defaults.md`](docs/protocol/agent_safety_defaults.md) | Baseline git, staging, inbox, credential, and scope rules every agent follows. |
|
|
43
|
+
| [`docs/protocol/credential_scoping.md`](docs/protocol/credential_scoping.md) | Per-agent, per-project least-privilege credentials and rotation. |
|
|
44
|
+
| [`docs/protocol/mcp_integration.md`](docs/protocol/mcp_integration.md) | Attaching MCP tool outputs to findings as structured evidence. |
|
|
45
|
+
| [`docs/protocol/dispatch_states.yaml`](docs/protocol/dispatch_states.yaml) · [`packet_states.yaml`](docs/protocol/packet_states.yaml) · [`skills_manifest.yaml`](docs/protocol/skills_manifest.yaml) | Machine-readable dispatch and review-packet state machines, and the skills manifest. |
|
|
46
|
+
|
|
47
|
+
Guides — [`docs/guides/setup.md`](docs/guides/setup.md),
|
|
48
|
+
[`adoption.md`](docs/guides/adoption.md), [`doctor.md`](docs/guides/doctor.md),
|
|
49
|
+
[`versioning.md`](docs/guides/versioning.md),
|
|
50
|
+
[`unified_skill_spec.md`](docs/guides/unified_skill_spec.md) — and the
|
|
51
|
+
executable conformance fixtures under [`tests/conformance/`](tests/conformance/)
|
|
52
|
+
(autonomy, signing, intake, envelope) round out the set. Runtime-specific skills
|
|
53
|
+
that operate the protocol live in the companion
|
|
54
|
+
[oacp-skills](https://github.com/kiloloop/oacp-skills) repository.
|
|
55
|
+
|
|
56
|
+
## Getting started
|
|
57
|
+
|
|
58
|
+
[`QUICKSTART.md`](QUICKSTART.md) sends a first message in five minutes;
|
|
59
|
+
[`README.md`](README.md) carries the command reference (`oacp --help` is
|
|
60
|
+
authoritative).
|
|
@@ -22,7 +22,7 @@ Verifies that required and optional CLI tools are installed and reachable on `PA
|
|
|
22
22
|
| Check | Required? | What it looks for |
|
|
23
23
|
|-------|-----------|-------------------|
|
|
24
24
|
| `git` | Yes | Git CLI |
|
|
25
|
-
| `python3` | Yes | Python 3.9+ interpreter |
|
|
25
|
+
| `python3` | Yes | Python 3.9.2+ interpreter |
|
|
26
26
|
| `gh` | Yes | GitHub CLI (for PR and issue workflows) |
|
|
27
27
|
| `ruff` | No | Python linter (optional, used in preflight) |
|
|
28
28
|
| `shellcheck` | No | Shell script linter (optional) |
|
|
@@ -176,7 +176,7 @@ The exit code reflects the overall result:
|
|
|
176
176
|
| Issue | Fix |
|
|
177
177
|
|-------|-----|
|
|
178
178
|
| `git — not found` | Install Git: https://git-scm.com/downloads |
|
|
179
|
-
| `python3 — not found` | Install Python 3.9+: https://www.python.org/downloads/ |
|
|
179
|
+
| `python3 — not found` | Install Python 3.9.2+: https://www.python.org/downloads/ |
|
|
180
180
|
| `gh — not found` | Install GitHub CLI: `brew install gh` or https://cli.github.com/ |
|
|
181
181
|
| `pyyaml — not importable` | `pip install pyyaml` |
|
|
182
182
|
| `ruff — not installed` | `pip install ruff` (optional, for linting) |
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## Prerequisites
|
|
4
4
|
|
|
5
5
|
- `bash` 3.2+ (macOS default) or 4+ (recommended)
|
|
6
|
-
- `python3` 3.9+ (for JSON state management, quality gate scripts, and inbox messaging)
|
|
6
|
+
- `python3` 3.9.2+ (for JSON state management, quality gate scripts, and inbox messaging)
|
|
7
7
|
- `gh` CLI (optional, for GitHub operations — `gh auth login`)
|
|
8
8
|
- Agent runtime CLI: `claude`, `codex`, `cursor`, or `gemini` (depending on your agents)
|
|
9
9
|
|