oacp-cli 0.4.3__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.3 → oacp_cli-0.4.4}/.github/workflows/ci.yml +3 -3
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/.github/workflows/release.yml +7 -7
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/CHANGELOG.md +46 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/CONTRIBUTING.md +15 -2
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/Makefile +4 -10
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/PKG-INFO +25 -15
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/QUICKSTART.md +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/README.md +22 -12
- oacp_cli-0.4.4/SPEC.md +60 -0
- {oacp_cli-0.4.3 → 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.3 → oacp_cli-0.4.4}/docs/guides/setup.md +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/agent_profiles.md +26 -10
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/autonomy.md +376 -39
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/inbox_outbox.md +1 -1
- oacp_cli-0.4.4/docs/protocol/org_memory.md +298 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/runtime_capabilities.md +3 -3
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/quickstart/README.md +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/oacp/cli.py +4 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/pyproject.toml +19 -5
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/_oacp_constants.py +72 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/add_agent.py +31 -12
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/agent_profile.py +314 -15
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/autonomy_gate.py +1145 -86
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/claude_envelope_hook.py +446 -40
- 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.3 → oacp_cli-0.4.4}/scripts/init_org_memory.py +11 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/init_packet.sh +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/init_project_workspace.py +15 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/oacp_doctor.py +408 -4
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/preflight.py +121 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/record_autonomy_outcome.py +2 -28
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/send_inbox_message.py +11 -2
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/update_workspace.sh +3 -3
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/agent_profile.template.yaml +1 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/handoff_packet.template.yaml +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/inbox_message.template.yaml +2 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/README.md +25 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/brainstorm_without_profile_auto_accepts.yaml +10 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/checkpoint_reauth_boundary_action_resumes.yaml +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/checkpoint_reauth_cross_channel_resumes.yaml +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/checkpoint_reauth_same_channel_resumes.yaml +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/checkpoint_reauth_scopeless_boundary_resumes.yaml +1 -1
- oacp_cli-0.4.4/tests/conformance/autonomy/expected/declaration_error_admission_pauses.yaml +29 -0
- {oacp_cli-0.4.3 → 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/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/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.3 → oacp_cli-0.4.4}/tests/test_add_agent.py +71 -1
- {oacp_cli-0.4.3 → 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.3 → oacp_cli-0.4.4}/tests/test_autonomy_gate.py +1293 -2
- oacp_cli-0.4.4/tests/test_autonomy_ledger_replay.py +229 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_claude_envelope_hook.py +854 -7
- 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.3 → oacp_cli-0.4.4}/tests/test_memory_sync.py +29 -0
- {oacp_cli-0.4.3 → 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.3 → 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.3 → oacp_cli-0.4.4}/tests/test_record_autonomy_outcome.py +2 -2
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_send_inbox_message.py +84 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_update_workspace.py +1 -1
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_workspace_discovery.py +0 -117
- oacp_cli-0.4.3/SPEC.md +0 -748
- oacp_cli-0.4.3/docs/guides/prompt_caching.md +0 -149
- oacp_cli-0.4.3/docs/guides/runtime_capability_matrix.md +0 -162
- oacp_cli-0.4.3/docs/protocol/org_memory.md +0 -131
- oacp_cli-0.4.3/scripts/create_handoff_packet.py +0 -182
- oacp_cli-0.4.3/scripts/init_project_workspace.sh +0 -7
- oacp_cli-0.4.3/scripts/normalize_findings.py +0 -635
- oacp_cli-0.4.3/tests/test_create_handoff_packet.py +0 -155
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/.gitattributes +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/.gitignore +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/LICENSE +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/SECURITY.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/from-claude-p.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/guides/adoption.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/guides/unified_skill_spec.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/guides/versioning.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/img/oacp-cli-demo.png +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/img/oacp-filesystem-tree.png +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/img/oacp-fleet-thread.png +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/agent_safety_defaults.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/credential_scoping.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/cross_runtime_sync.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/dispatch_states.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/mcp_integration.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/message_signing.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/multi_agent_shared_workspace.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/packet_states.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/review_loop.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/session_init.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/skills_manifest.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/docs/protocol/task_negotiation.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/README.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/decisions.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260504-093015-postgres-over-dynamodb.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260508-141220-utc-timestamps-pr-review.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260515-102045-utc-timestamps-webhooks.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260521-163330-utc-timestamps-rule-proposal.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260527-110500-idempotency-keys-merged.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/events/20260602-090210-parcel-api-v020-released.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/recent.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/org-memory/rules.md +0 -0
- {oacp_cli-0.4.3 → 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.3 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/decision_log.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/known_debt.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/open_threads.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/examples/demo-workspace/projects/parcel-api/memory/project_facts.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/mcp_servers/README.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/mcp_servers/oacp_coordinator.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/oacp/__init__.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/oacp/envelope_hook.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/_oacp_env.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/check_quality_gate.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/codex_session_init.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/envelope_compiler.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/handoff_schema.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/key_cli.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/memory_archive_common.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/memory_cli.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/memory_sync.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/message_signing.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/message_verify.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/oacp_inbox.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/oacp_watch.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/policy_signing.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/promote_to_archive.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/restore_from_archive.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/retention.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/session_lifecycle_hooks.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/setup_runtime.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/trust_cli.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/trust_root.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/validate_agent_card.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/validate_message.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/scripts/write_event.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/agent_card.template.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/agent_status.template.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/checkpoint.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/claude/agents/role_agent.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/claude/rules/guardrail.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/findings_packet.template.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/github_actions_quality_gate.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/guardrails/coding_standards.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/guardrails/safe_commands.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/guardrails/secrets_rules.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/manual_validation.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/merge_decision.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/org-memory/decisions.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/org-memory/events/.gitkeep +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/org-memory/events/20260317-170120-example-api-convention.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/org-memory/recent.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/org-memory/rules.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/receiver_config.template.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/review_packet.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/roles/role_baseline.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/roles/role_definition.template.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/runtime_capabilities.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/skills_manifest.template.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/templates/test_packet.template.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/checkpoint_breach.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/continuation_drift.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/continuation_within.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/declaration_error.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/declaration_intent.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/reauth_boundary_action.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/reauth_conflict.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/reauth_cross_channel.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/reauth_reuse.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/reauth_same_channel.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/reauth_scopeless_boundary.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/review_live_head_mismatch.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/review_live_head_prefix.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/actuals/top_level_side_effect_keys.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/audits/prior_review_addressed_accepted.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/audits/prior_review_grant_addressed_types.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/audits/prior_review_grant_approved.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/audits/prior_review_grant_denied_later.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/audits/prior_review_grant_denied_postmessage.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/audits/prior_thread_grant_approved.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/always_pause.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/auto_review_continuation_enabled.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/auto_review_external_pause.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/auto_review_standard.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/auto_review_tight.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/configs/malformed_config.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/always_pause_task.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/ambiguous_scope_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/brainstorm_destructive_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/brainstorm_side_effect_verbs_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/checkpoint_breach_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/checkpoint_reauth_conflict_declines.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/checkpoint_reauth_reuse_stays_paused.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/clean_auto_review_task.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_destructive_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_disabled_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_drift_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_enabled_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/continuation_grant_external_uncovered_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/declaration_error_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/declaration_intent_checkpoint_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/declared_destructive_ops_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/expired_message_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/guardrails_fence_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_dangerously_skip_permissions_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_external_side_effects_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_force_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_no_verify_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_no_verify_upper_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_rm_rf_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_commercial_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_config_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_credentials_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_memory_ssot_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_pricing_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_public_repo_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_scope_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_sensitive_secret_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/hard_stop_side_effect_before_sensitive_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/invalid_message_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/lexical_declared_false_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/malformed_config_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/minutes_45_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/minutes_46_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/missing_task_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/negated_guardrails_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/path_like_deploy_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/private_issue_artifacts_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/private_pr_artifacts_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/private_pr_with_merge_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/public_pr_artifacts_pause.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_accepted_auto_continues.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_disabled_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_drift_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_expired_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_head_mismatch_records.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_later_round_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_missing_approval_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_prefix_head_records.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_repeated_addressed_round_exceeded.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_revoke_before_processing_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/review_continuation_revoked_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/risk_obvious_no_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/side_effect_booleans_pause.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/threshold_breach_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/tight_threshold_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/top_level_side_effect_actuals_ignored.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/expected/unparsable_task_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/ambiguous_scope.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/brainstorm_destructive.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/brainstorm_side_effect_verbs.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/brainstorm_without_profile.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/clean_task.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/continuation_grant.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/continuation_grant_destructive.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/continuation_grant_external_uncovered.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/declared_destructive_ops.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/expired_message.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/guardrails_fence.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_dangerously_skip_permissions.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_external_side_effects.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_force.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_masking_threshold.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_no_verify.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_no_verify_upper.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_rm_rf.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/hard_stop_sensitive_scope.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/invalid_message.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/lexical_declared_false.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/minutes_45.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/minutes_46.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/missing_task_profile.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/negated_guardrails.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/path_like_deploy.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/private_issue_artifacts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/private_pr_artifacts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/private_pr_with_merge.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/public_pr_artifacts.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/review_continuation_addressed_round3.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/review_continuation_cross_pr.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/review_continuation_head_mismatch.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/review_continuation_prefix_head.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/review_continuation_request.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/review_continuation_round4.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/review_continuation_unapproved.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/risk_obvious_no_profile.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_commercial.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_config.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_credentials.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_memory_ssot.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_pricing.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_public_repo.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/sensitive_secret.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/side_effect_before_sensitive.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/side_effect_booleans.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/threshold_breach.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/autonomy/messages/unparsable_task_profile.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/README.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/configs/auto_review_standard.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/configs/malformed.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/clean_pr_task_compiles.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/docs_only_task_compiles.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/granular_capabilities_compile.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/invalid_numeric_fails.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/malformed_config_fails.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/missing_profile_fails.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/expected/unparsable_profile_fails.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/clean_pr_task.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/docs_only_task.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/granular_capabilities_task.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/invalid_numeric.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/missing_profile.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/envelope/messages/unparsable_profile.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/README.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/configs/enforce.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/configs/off.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/configs/warn.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/signed_basic__enforce.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/signed_revoked__enforce.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/signed_revoked__off.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/signed_revoked__warn.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_body_flip__enforce.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_body_flip__off.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_body_flip__warn.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_kid_unknown__enforce.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_kid_unknown__off.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/tamper_kid_unknown__warn.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/unsigned_notification__enforce.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/unsigned_notification__off.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/intake/expected/unsigned_notification__warn.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/README.md +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/signed_basic.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/signed_lookalike.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/signed_multisig.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/signed_revoked.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_auth_alias.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_body_flip.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_container_reformat.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_crlf_trailer.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_header_reencode.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_identity_mismatch.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_indented_trailer.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_kid_alias.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_kid_cross_agent.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_kid_unknown.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_missing_final_lf.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_padded_b64.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_sig_alias.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_sig_corrupt.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_trailer_transplant.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_trailing_blank_line.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/tamper_trailing_space.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/expected/unsigned_notification.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/keys/alice.json +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/keys/bob.json +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/keys/carol.json +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_basic.prefix.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_basic.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_lookalike.prefix.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_lookalike.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_multisig.prefix.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_multisig.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_revoked.prefix.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/signed_revoked.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_auth_alias.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_body_flip.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_container_reformat.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_crlf_trailer.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_header_reencode.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_identity_mismatch.prefix.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_identity_mismatch.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_indented_trailer.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_kid_alias.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_kid_cross_agent.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_kid_unknown.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_missing_final_lf.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_padded_b64.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_sig_alias.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_sig_corrupt.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_trailer_transplant.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_trailing_blank_line.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/tamper_trailing_space.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/messages/unsigned_notification.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/pins/allowed_signers.yaml +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/conformance/signing/regen_fixtures.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_autonomy_conformance_fixtures.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_codex_session_init.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_default_envelope.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_envelope_compiler.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_envelope_conformance_fixtures.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_envelope_public_admission.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_github_workflows.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_handoff_schema.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_inbox_verify.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_init_project_workspace.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_intake_conformance.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_memory_archive.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_message_signing.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_message_verify.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_oacp_cli.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_oacp_constants.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_oacp_coordinator.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_oacp_env.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_oacp_inbox.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_oacp_watch.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_policy_signing.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_retention.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_review_loop.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_session_lifecycle_hooks.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_setup_runtime.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_signing_conformance.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_trust_root.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_validate_agent_card.py +0 -0
- {oacp_cli-0.4.3 → oacp_cli-0.4.4}/tests/test_validate_message.py +0 -0
- {oacp_cli-0.4.3 → 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/
|
|
@@ -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,51 @@ 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
|
+
|
|
8
53
|
## [0.4.3] - 2026-08-12
|
|
9
54
|
|
|
10
55
|
### Added
|
|
@@ -762,6 +807,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
762
807
|
- Checkout step in github-release workflow job (#19)
|
|
763
808
|
- Pre-release audit fixes: SHA-pinned actions, dangling doc refs (#15, #16)
|
|
764
809
|
|
|
810
|
+
[0.4.4]: https://github.com/kiloloop/oacp/compare/v0.4.3...v0.4.4
|
|
765
811
|
[0.4.3]: https://github.com/kiloloop/oacp/compare/v0.4.2...v0.4.3
|
|
766
812
|
[0.4.2]: https://github.com/kiloloop/oacp/compare/v0.4.1...v0.4.2
|
|
767
813
|
[0.4.1]: https://github.com/kiloloop/oacp/compare/v0.4.0...v0.4.1
|
|
@@ -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
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,22 +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 session-init` | Verify Codex startup inputs
|
|
266
|
-
| `oacp
|
|
267
|
-
| `oacp
|
|
268
|
-
| `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 |
|
|
269
276
|
| `oacp doctor` | Check environment and workspace health |
|
|
270
277
|
| `oacp validate` | Validate an inbox/outbox YAML message |
|
|
271
|
-
| `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.
|
|
272
282
|
|
|
273
283
|
<details>
|
|
274
284
|
<summary>Key flags</summary>
|
|
@@ -319,7 +329,7 @@ it is not part of the OACP product surface.
|
|
|
319
329
|
|
|
320
330
|
## Prerequisites
|
|
321
331
|
|
|
322
|
-
- Python 3.9+
|
|
332
|
+
- Python 3.9.2+
|
|
323
333
|
- Bash 3.2+ (macOS default is fine)
|
|
324
334
|
- `gh` CLI (optional, for GitHub operations)
|
|
325
335
|
|
|
@@ -225,22 +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 session-init` | Verify Codex startup inputs
|
|
238
|
-
| `oacp
|
|
239
|
-
| `oacp
|
|
240
|
-
| `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 |
|
|
241
248
|
| `oacp doctor` | Check environment and workspace health |
|
|
242
249
|
| `oacp validate` | Validate an inbox/outbox YAML message |
|
|
243
|
-
| `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.
|
|
244
254
|
|
|
245
255
|
<details>
|
|
246
256
|
<summary>Key flags</summary>
|
|
@@ -291,7 +301,7 @@ it is not part of the OACP product surface.
|
|
|
291
301
|
|
|
292
302
|
## Prerequisites
|
|
293
303
|
|
|
294
|
-
- Python 3.9+
|
|
304
|
+
- Python 3.9.2+
|
|
295
305
|
- Bash 3.2+ (macOS default is fine)
|
|
296
306
|
- `gh` CLI (optional, for GitHub operations)
|
|
297
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
|
|
|
@@ -24,7 +24,9 @@ $OACP_HOME/
|
|
|
24
24
|
└── outbox/
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
- **Global profiles** (`agents/<name>/profile.yaml`)
|
|
27
|
+
- **Global profiles** (`agents/<name>/profile.yaml`) form the instance registry.
|
|
28
|
+
`oacp add-agent` and `oacp init --agents` create them and append project
|
|
29
|
+
memberships without replacing existing identity fields.
|
|
28
30
|
- **Project cards** (`projects/<project>/agents/<name>/agent_card.yaml`) carry project-specific overrides — permissions, skills, routing rules — and are the authoritative resolved identity for that project.
|
|
29
31
|
- **Status files** (`status.yaml`) remain separate; they track dynamic session state, not static identity.
|
|
30
32
|
|
|
@@ -80,9 +82,10 @@ Global profiles use `agent_profile.template.yaml`. Fields:
|
|
|
80
82
|
|-------|------|----------|-------------|
|
|
81
83
|
| `version` | string | yes | Schema version (semver, currently `0.2.0`) |
|
|
82
84
|
| `name` | string | yes | Agent identifier (matches directory name) |
|
|
83
|
-
| `runtime` | string | yes | One of: `claude`, `codex`, `gemini`, `human` |
|
|
84
|
-
| `model` | string | no |
|
|
85
|
+
| `runtime` | string | yes | One of: `claude`, `codex`, `cursor`, `gemini`, `human`, `unknown` |
|
|
86
|
+
| `model` | string | no | Configured model identifier; a runtime alias may select that runtime's environment default |
|
|
85
87
|
| `description` | string | no | One-line role summary |
|
|
88
|
+
| `projects` | list | yes | Project workspaces where this agent is initialized |
|
|
86
89
|
| `routing_rules` | dict | no | `primary` (preferred targets) and `avoid` (agents to skip) |
|
|
87
90
|
| `trust_level` | string | no | `untrusted`, `standard`, `elevated`, or `admin` |
|
|
88
91
|
| `quota` | dict | no | `max_cost_usd_per_month`, `reset_day`, `warn_threshold` |
|
|
@@ -123,17 +126,30 @@ oacp agent show claude --project my-app
|
|
|
123
126
|
|
|
124
127
|
### `oacp agent list`
|
|
125
128
|
|
|
126
|
-
List
|
|
129
|
+
List the instance registry with each agent's runtime and project memberships.
|
|
130
|
+
`--project` preserves the merged global/project view for one workspace.
|
|
127
131
|
|
|
128
132
|
```bash
|
|
129
133
|
oacp agent list
|
|
130
|
-
# claude (global)
|
|
131
|
-
# codex (global)
|
|
134
|
+
# claude runtime=claude memberships=my-app,other-app (global)
|
|
135
|
+
# codex runtime=codex memberships=my-app (global)
|
|
132
136
|
|
|
133
137
|
oacp agent list --project my-app
|
|
134
|
-
# claude (global, project)
|
|
135
|
-
# codex (global)
|
|
136
|
-
|
|
138
|
+
# claude runtime=claude memberships=my-app,other-app (global, project)
|
|
139
|
+
# codex runtime=codex memberships=my-app (global, project)
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### `oacp agent sync`
|
|
143
|
+
|
|
144
|
+
Backfill the instance registry once from existing project agent directories.
|
|
145
|
+
The command infers defaults from agent cards and status files, preserves every
|
|
146
|
+
existing identity value, and only appends missing memberships. It is safe to
|
|
147
|
+
repeat. `oacp doctor` reports missing profiles or memberships and points to
|
|
148
|
+
this command.
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
oacp agent sync
|
|
152
|
+
# Agent registry synchronized: 3 agent(s), 8 project membership(s); ...
|
|
137
153
|
```
|
|
138
154
|
|
|
139
155
|
## Relationship to Existing Agent Cards
|
|
@@ -144,7 +160,7 @@ Agent cards predate global profiles and remain the authoritative per-project ide
|
|
|
144
160
|
|---------|---------------|--------------------|
|
|
145
161
|
| **Location** | `$OACP_HOME/agents/<name>/profile.yaml` | `$OACP_HOME/projects/<project>/agents/<name>/agent_card.yaml` |
|
|
146
162
|
| **Scope** | All projects | Single project |
|
|
147
|
-
| **Updates** |
|
|
163
|
+
| **Updates** | Identity changes plus append-only project membership | Per project as needed |
|
|
148
164
|
| **Authority** | Defaults only | Authoritative for the project |
|
|
149
165
|
| **Extra sections** | None | `permissions`, `availability`, `protocol` |
|
|
150
166
|
|