oacp-cli 0.4.5__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/CHANGELOG.md +39 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/PKG-INFO +15 -14
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/QUICKSTART.md +17 -6
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/README.md +14 -13
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/SPEC.md +2 -3
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/guides/doctor.md +5 -1
- oacp_cli-0.5.0/docs/guides/memory-context.md +72 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/agent_safety_defaults.md +1 -1
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/autonomy.md +55 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/dispatch_states.yaml +2 -2
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/message_signing.md +2 -2
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/org_memory.md +219 -55
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/runtime_capabilities.md +9 -3
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/session_init.md +34 -16
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/README.md +8 -7
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/recent.md +2 -1
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/oacp/cli.py +58 -9
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/pyproject.toml +3 -10
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/autonomy_gate.py +73 -1
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/codex_session_init.py +55 -19
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/oacp_doctor.py +22 -646
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/preflight.py +118 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/record_autonomy_outcome.py +43 -16
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/send_inbox_message.py +2 -2
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/setup_runtime.py +255 -59
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/write_event.py +1 -1
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/claude/agents/role_agent.template.md +4 -1
- oacp_cli-0.5.0/tests/conformance/autonomy/expected/pause_classification_designed.yaml +13 -0
- oacp_cli-0.5.0/tests/conformance/autonomy/expected/pause_classification_mixed.yaml +13 -0
- oacp_cli-0.5.0/tests/conformance/autonomy/expected/pause_classification_undeclared.yaml +13 -0
- oacp_cli-0.5.0/tests/conformance/autonomy/expected/pause_classification_unplanned.yaml +13 -0
- oacp_cli-0.5.0/tests/conformance/autonomy/messages/pause_classification_designed.yaml +20 -0
- oacp_cli-0.5.0/tests/conformance/autonomy/messages/pause_classification_mixed.yaml +20 -0
- oacp_cli-0.5.0/tests/conformance/autonomy/messages/pause_classification_undeclared.yaml +19 -0
- oacp_cli-0.5.0/tests/conformance/autonomy/messages/pause_classification_unplanned.yaml +20 -0
- oacp_cli-0.5.0/tests/conformance/memory_layout/README.md +23 -0
- oacp_cli-0.5.0/tests/conformance/memory_layout/canonical_memory_gitignore.txt +9 -0
- oacp_cli-0.5.0/tests/conformance/memory_layout/layout.yaml +71 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_autonomy_gate.py +6 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_codex_session_init.py +134 -2
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_envelope_compiler.py +17 -0
- oacp_cli-0.5.0/tests/test_expected_pauses.py +259 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_finalize_autonomy_record.py +23 -0
- oacp_cli-0.5.0/tests/test_memory_layout_fixture.py +198 -0
- oacp_cli-0.5.0/tests/test_memory_shim.py +135 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_oacp_cli.py +31 -4
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_oacp_doctor.py +20 -140
- oacp_cli-0.5.0/tests/test_package_content.py +258 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_preflight.py +80 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_readme_commands.py +2 -2
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_record_autonomy_outcome.py +149 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_setup_runtime.py +524 -16
- oacp_cli-0.4.5/docs/protocol/cross_runtime_sync.md +0 -115
- oacp_cli-0.4.5/scripts/init_org_memory.py +0 -150
- oacp_cli-0.4.5/scripts/memory_archive_common.py +0 -67
- oacp_cli-0.4.5/scripts/memory_cli.py +0 -193
- oacp_cli-0.4.5/scripts/memory_sync.py +0 -584
- oacp_cli-0.4.5/scripts/promote_to_archive.py +0 -106
- oacp_cli-0.4.5/scripts/restore_from_archive.py +0 -96
- oacp_cli-0.4.5/templates/org-memory/decisions.md +0 -5
- oacp_cli-0.4.5/templates/org-memory/events/.gitkeep +0 -0
- oacp_cli-0.4.5/templates/org-memory/events/20260317-170120-example-api-convention.md +0 -11
- oacp_cli-0.4.5/templates/org-memory/recent.md +0 -16
- oacp_cli-0.4.5/templates/org-memory/rules.md +0 -5
- oacp_cli-0.4.5/tests/conformance/org_memory/README.md +0 -22
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/bad_layout/expected.yaml +0 -5
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/.hidden/2026/08/20260825-alice-abc12345.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/2026/08/20260825-alice-1f3a9c2b.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/2026/08/20260825-alice-ABCD.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/2026/08/20260825_alice_abc12345.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/2026/09/20260825-alice-def12345.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/bad_layout/org-memory/debriefs/demo-project/20260825-alice-abc12345.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/empty_store/expected.yaml +0 -2
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/empty_store/org-memory/debriefs/.gitkeep +0 -0
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/missing_debriefs_dir/expected.yaml +0 -5
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/missing_debriefs_dir/org-memory/recent.md +0 -1
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/staging_artifact/expected.yaml +0 -5
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/staging_artifact/org-memory/debriefs/demo-project/2026/08/.stage.20260825-alice-77xx88yy.md.a1b2c3 +0 -1
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/staging_artifact/org-memory/debriefs/demo-project/2026/08/20260825-alice-1f3a9c2b.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/valid_store/expected.yaml +0 -2
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/.gitkeep +0 -0
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/Demo_Project/2026/08/20260825-bob-ops-9f00aa11.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/demo-project/2026/08/20260825-alice-1f3a9c2b.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/demo.project/2026/07/20260701-Alice_2.dev-00aa11bb.md +0 -14
- oacp_cli-0.4.5/tests/conformance/org_memory/cases/valid_store/org-memory/debriefs/other-project/2026/12/20261203-bob-9e0d44aa.md +0 -14
- oacp_cli-0.4.5/tests/test_init_org_memory.py +0 -46
- oacp_cli-0.4.5/tests/test_memory_archive.py +0 -445
- oacp_cli-0.4.5/tests/test_memory_sync.py +0 -331
- oacp_cli-0.4.5/tests/test_org_memory_doctor.py +0 -195
- oacp_cli-0.4.5/tests/test_package_content.py +0 -143
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/.gitattributes +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/.github/workflows/auto-estimate.yml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/.github/workflows/ci.yml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/.github/workflows/release.yml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/.gitignore +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/CONTRIBUTING.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/LICENSE +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/Makefile +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/SECURITY.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/from-claude-p.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/guides/adoption.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/guides/prompt_caching.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/guides/setup.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/guides/unified_skill_spec.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/guides/versioning.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/img/oacp-cli-demo.png +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/img/oacp-filesystem-tree.png +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/img/oacp-fleet-thread.png +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/agent_profiles.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/credential_scoping.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/inbox_outbox.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/mcp_integration.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/multi_agent_shared_workspace.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/packet_states.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/review_loop.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/skills_manifest.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/docs/protocol/task_negotiation.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/decisions.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/events/20260504-093015-postgres-over-dynamodb.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/events/20260508-141220-utc-timestamps-pr-review.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/events/20260515-102045-utc-timestamps-webhooks.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/events/20260521-163330-utc-timestamps-rule-proposal.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/events/20260527-110500-idempotency-keys-merged.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/events/20260602-090210-parcel-api-v020-released.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/org-memory/rules.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/projects/parcel-api/memory/archive/2026-05-21-csv-export-timeouts.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/projects/parcel-api/memory/decision_log.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/projects/parcel-api/memory/known_debt.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/projects/parcel-api/memory/open_threads.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/demo-workspace/projects/parcel-api/memory/project_facts.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/examples/quickstart/README.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/oacp/__init__.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/oacp/envelope_hook.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/_oacp_constants.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/_oacp_env.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/add_agent.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/agent_profile.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/check_quality_gate.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/claude_envelope_hook.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/envelope_compiler.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/finalize_autonomy_record.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/gen_readme_commands.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/handoff_schema.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/init_packet.sh +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/init_project_workspace.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/key_cli.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/message_signing.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/message_verify.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/oacp_inbox.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/oacp_watch.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/policy_signing.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/retention.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/trust_cli.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/trust_root.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/update_workspace.sh +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/validate_agent_card.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/scripts/validate_message.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/agent_card.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/agent_profile.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/agent_status.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/checkpoint.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/claude/rules/guardrail.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/findings_packet.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/github_actions_quality_gate.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/guardrails/coding_standards.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/guardrails/safe_commands.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/guardrails/secrets_rules.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/handoff_packet.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/inbox_message.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/manual_validation.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/merge_decision.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/receiver_config.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/review_packet.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/roles/role_baseline.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/roles/role_definition.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/runtime_capabilities.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/skills_manifest.template.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/templates/test_packet.template.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/README.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/checkpoint_breach.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/continuation_drift.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/continuation_within.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/declaration_error.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/declaration_intent.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/reauth_boundary_action.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/reauth_conflict.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/reauth_cross_channel.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/reauth_reuse.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/reauth_same_channel.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/reauth_scopeless_boundary.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/review_live_head_mismatch.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/review_live_head_prefix.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/actuals/top_level_side_effect_keys.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/audits/prior_review_addressed_accepted.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/audits/prior_review_grant_addressed_types.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/audits/prior_review_grant_approved.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/audits/prior_review_grant_denied_later.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/audits/prior_review_grant_denied_postmessage.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/audits/prior_thread_grant_approved.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/configs/always_pause.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/configs/auto_review_continuation_enabled.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/configs/auto_review_external_pause.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/configs/auto_review_standard.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/configs/auto_review_tight.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/configs/malformed_config.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/always_pause_task.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/ambiguous_scope_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/brainstorm_destructive_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/brainstorm_side_effect_verbs_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/brainstorm_without_profile_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/checkpoint_breach_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/checkpoint_reauth_boundary_action_resumes.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/checkpoint_reauth_conflict_declines.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/checkpoint_reauth_cross_channel_resumes.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/checkpoint_reauth_reuse_stays_paused.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/checkpoint_reauth_same_channel_resumes.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/checkpoint_reauth_scopeless_boundary_resumes.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/clean_auto_review_task.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/continuation_grant_destructive_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/continuation_grant_disabled_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/continuation_grant_drift_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/continuation_grant_enabled_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/continuation_grant_external_uncovered_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/declaration_error_admission_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/declaration_error_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/declaration_intent_checkpoint_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/declared_destructive_ops_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/expired_message_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/guardrails_fence_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_dangerously_skip_permissions_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_external_side_effects_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_force_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_masking_threshold_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_no_verify_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_no_verify_upper_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_rm_rf_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_sensitive_commercial_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_sensitive_config_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_sensitive_credentials_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_sensitive_memory_ssot_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_sensitive_pricing_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_sensitive_public_repo_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_sensitive_scope_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_sensitive_secret_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/hard_stop_side_effect_before_sensitive_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/invalid_message_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/lexical_declared_false_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/malformed_config_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/minutes_45_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/minutes_46_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/missing_task_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/negated_guardrails_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/path_like_deploy_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/private_issue_artifacts_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/private_pr_artifacts_auto_accepts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/private_pr_with_merge_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/public_pr_artifacts_pause.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_accepted_auto_continues.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_disabled_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_drift_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_expired_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_head_mismatch_records.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_later_round_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_missing_approval_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_prefix_head_records.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_repeated_addressed_round_exceeded.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_revoke_before_processing_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/review_continuation_revoked_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/risk_obvious_no_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/sensitive_content_reply_only_advisory.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/side_effect_booleans_pause.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/threshold_breach_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/tight_threshold_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/top_level_side_effect_actuals_ignored.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/expected/unparsable_task_profile_pauses.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/ledger_replay/corpus.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/ambiguous_scope.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/brainstorm_destructive.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/brainstorm_side_effect_verbs.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/brainstorm_without_profile.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/clean_task.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/continuation_grant.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/continuation_grant_destructive.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/continuation_grant_external_uncovered.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/declaration_error_admission.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/declared_destructive_ops.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/expired_message.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/guardrails_fence.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/hard_stop_dangerously_skip_permissions.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/hard_stop_external_side_effects.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/hard_stop_force.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/hard_stop_masking_threshold.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/hard_stop_no_verify.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/hard_stop_no_verify_upper.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/hard_stop_rm_rf.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/hard_stop_sensitive_scope.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/invalid_message.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/lexical_declared_false.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/minutes_45.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/minutes_46.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/missing_task_profile.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/negated_guardrails.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/path_like_deploy.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/private_issue_artifacts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/private_pr_artifacts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/private_pr_with_merge.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/public_pr_artifacts.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/review_continuation_addressed_round3.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/review_continuation_cross_pr.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/review_continuation_head_mismatch.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/review_continuation_prefix_head.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/review_continuation_request.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/review_continuation_round4.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/review_continuation_unapproved.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/risk_obvious_no_profile.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/sensitive_commercial.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/sensitive_config.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/sensitive_content_reply_only.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/sensitive_credentials.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/sensitive_memory_ssot.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/sensitive_pricing.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/sensitive_public_repo.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/sensitive_secret.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/side_effect_before_sensitive.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/side_effect_booleans.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/threshold_breach.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/messages/unparsable_task_profile.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/README.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/admission_outcome_replaced_by_clear.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/breach_basis_source_mismatch.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/breached_empty_fields.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/clean_terminal_done.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/duplicate_live_a.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/duplicate_live_b.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/duplicate_yaml_key_logged_notes.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/expected_findings.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/final_state_superseded_valid.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/inconsistent_work_clock.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/noncanonical_axis_names.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/off_enum_final_state_completed.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/off_enum_kind_completed_after_human_approval.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/off_enum_kind_executed.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/off_enum_kind_human_approved_completed.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/off_enum_kind_review_round_delivered.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/paused_terminal_action_unreconciled.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/paused_terminal_completed_stamp.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/serialized_wave_item.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/superseded_legacy_kind_repaired.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/superseded_legacy_successor_live.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/superseded_missing_successor.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/superseded_successor_live.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/superseded_unrelated_successor.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/autonomy/records/unrelated_identity_holder_live.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/README.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/configs/auto_review_standard.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/configs/malformed.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/expected/clean_pr_task_compiles.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/expected/docs_only_task_compiles.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/expected/granular_capabilities_compile.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/expected/invalid_numeric_fails.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/expected/malformed_config_fails.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/expected/missing_profile_fails.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/expected/unparsable_profile_fails.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/messages/clean_pr_task.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/messages/docs_only_task.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/messages/granular_capabilities_task.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/messages/invalid_numeric.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/messages/missing_profile.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/envelope/messages/unparsable_profile.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/README.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/configs/enforce.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/configs/off.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/configs/warn.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/signed_basic__enforce.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/signed_revoked__enforce.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/signed_revoked__off.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/signed_revoked__warn.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/tamper_body_flip__enforce.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/tamper_body_flip__off.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/tamper_body_flip__warn.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/tamper_kid_unknown__enforce.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/tamper_kid_unknown__off.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/tamper_kid_unknown__warn.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/unsigned_notification__enforce.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/unsigned_notification__off.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/intake/expected/unsigned_notification__warn.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/README.md +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/signed_basic.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/signed_lookalike.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/signed_multisig.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/signed_revoked.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_auth_alias.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_body_flip.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_container_reformat.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_crlf_trailer.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_header_reencode.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_identity_mismatch.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_indented_trailer.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_kid_alias.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_kid_cross_agent.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_kid_unknown.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_missing_final_lf.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_padded_b64.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_sig_alias.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_sig_corrupt.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_trailer_transplant.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_trailing_blank_line.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/tamper_trailing_space.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/expected/unsigned_notification.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/keys/alice.json +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/keys/bob.json +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/keys/carol.json +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/signed_basic.prefix.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/signed_basic.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/signed_lookalike.prefix.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/signed_lookalike.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/signed_multisig.prefix.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/signed_multisig.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/signed_revoked.prefix.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/signed_revoked.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_auth_alias.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_body_flip.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_container_reformat.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_crlf_trailer.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_header_reencode.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_identity_mismatch.prefix.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_identity_mismatch.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_indented_trailer.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_kid_alias.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_kid_cross_agent.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_kid_unknown.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_missing_final_lf.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_padded_b64.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_sig_alias.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_sig_corrupt.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_trailer_transplant.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_trailing_blank_line.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/tamper_trailing_space.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/messages/unsigned_notification.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/pins/allowed_signers.yaml +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/conformance/signing/regen_fixtures.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_add_agent.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_agent_profile.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_audit_corpus_boundary.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_audit_record_conformance.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_autonomy_conformance_fixtures.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_autonomy_ledger_replay.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_claude_envelope_hook.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_default_envelope.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_envelope_conformance_fixtures.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_envelope_public_admission.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_github_workflows.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_handoff_schema.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_inbox_verify.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_init_project_workspace.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_intake_conformance.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_message_signing.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_message_verify.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_oacp_constants.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_oacp_env.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_oacp_inbox.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_oacp_watch.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_packaged_status_template.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_policy_signing.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_retention.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_review_loop.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_send_inbox_message.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_signing_conformance.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_spec_version.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_trust_root.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_update_workspace.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_validate_agent_card.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_validate_message.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_workspace_discovery.py +0 -0
- {oacp_cli-0.4.5 → oacp_cli-0.5.0}/tests/test_write_event.py +0 -0
|
@@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.5.0] - 2026-09-09
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Memory-layout conformance fixture pinning the layout grammar and sync allowlist ([fixture](tests/conformance/memory_layout/README.md)).
|
|
15
|
+
- `oacp doctor` reports the installed `agent-memory` version and defers memory-home checks to it ([doctor guide](docs/guides/doctor.md)).
|
|
16
|
+
- Preflight and wheel guards fail when a kernel module or the wheel ships the memory engine ([lean kernel](docs/protocol/org_memory.md#conformance)).
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- The org-memory doc becomes the three-tier memory layout spec the kernel scaffolds against ([memory layout](docs/protocol/org_memory.md#layout)).
|
|
21
|
+
- `oacp memory` and `oacp org-memory` delegate to the `agent-memory` CLI until their removal in 0.5.2 ([README](README.md#commands)).
|
|
22
|
+
- `oacp setup` no longer installs memory hooks and retires the ones it generated; `agent-memory setup` replaces them ([quickstart](QUICKSTART.md)).
|
|
23
|
+
- `oacp session-init --pull-memory` delegates to `agent-memory`, reporting `disabled` when absent ([codex](docs/protocol/session_init.md#codex)).
|
|
24
|
+
|
|
25
|
+
### Removed
|
|
26
|
+
|
|
27
|
+
- `docs/protocol/cross_runtime_sync.md`; its durable-memory half moved to the layout spec ([layout](docs/protocol/org_memory.md#per-project-tier)).
|
|
28
|
+
- The bundled memory engine and org-memory doctor category, shipped as `agent-memory-cli` ([agent-memory](https://github.com/kiloloop/agent-memory)).
|
|
29
|
+
- `oacp doctor --memory`; the memory home is checked by `agent-memory doctor` ([doctor guide](docs/guides/doctor.md)).
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- `oacp setup codex` regenerates its managed `SessionStart` hook but never creates one ([codex startup](docs/protocol/session_init.md#codex)).
|
|
34
|
+
|
|
35
|
+
## [0.4.6] - 2026-09-05
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- Autonomy audits distinguish expected pauses from unplanned pauses ([pause classification](docs/protocol/autonomy.md#pause-classification)).
|
|
40
|
+
- Human outcome records can retain the changes made when approving a modified task ([human outcomes](docs/protocol/autonomy.md#human-approval-and-decline-outcomes)).
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
|
|
44
|
+
- Startup safety and dispatch guidance follow the current exact-file archive lifecycle ([inbox lifecycle](docs/protocol/inbox_outbox.md#lifecycle)).
|
|
45
|
+
- Startup guidance preserves project memory reads and retrieves org memory on demand ([memory context](docs/guides/memory-context.md)).
|
|
46
|
+
|
|
10
47
|
## [0.4.5] - 2026-09-02
|
|
11
48
|
|
|
12
49
|
### Changed
|
|
@@ -831,6 +868,8 @@ The central debrief store is the headline change: every agent's full end-of-sess
|
|
|
831
868
|
- Checkout step in github-release workflow job (#19)
|
|
832
869
|
- Pre-release audit fixes: SHA-pinned actions, dangling doc refs (#15, #16)
|
|
833
870
|
|
|
871
|
+
[0.5.0]: https://github.com/kiloloop/oacp/compare/v0.4.6...v0.5.0
|
|
872
|
+
[0.4.6]: https://github.com/kiloloop/oacp/compare/v0.4.5...v0.4.6
|
|
834
873
|
[0.4.5]: https://github.com/kiloloop/oacp/compare/v0.4.4...v0.4.5
|
|
835
874
|
[0.4.4]: https://github.com/kiloloop/oacp/compare/v0.4.3...v0.4.4
|
|
836
875
|
[0.4.3]: https://github.com/kiloloop/oacp/compare/v0.4.2...v0.4.3
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: oacp-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
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
|
|
@@ -115,7 +115,7 @@ $OACP_HOME/projects/my-app/ ● writing
|
|
|
115
115
|
workspace.json metadata [json]
|
|
116
116
|
|
|
117
117
|
$OACP_HOME/org-memory/ org-wide
|
|
118
|
-
recent.md
|
|
118
|
+
recent.md on demand [⌘]
|
|
119
119
|
rules.md 12 rules [⌘]
|
|
120
120
|
decisions.md org decisions [⌘]
|
|
121
121
|
```
|
|
@@ -262,13 +262,13 @@ uv tool install .
|
|
|
262
262
|
| `oacp inbox` | List pending inbox messages |
|
|
263
263
|
| `oacp watch` | Emit inbox delta events for Monitor-friendly polling |
|
|
264
264
|
| `oacp retention` | Prune project message history by age and count |
|
|
265
|
-
| `oacp memory` |
|
|
265
|
+
| `oacp memory` | Run agent-memory (sync, archive, restore); shim until 0.5.2 |
|
|
266
266
|
| `oacp session-init` | Verify Codex startup inputs and emit SessionStart context |
|
|
267
267
|
| `oacp setup` | Generate runtime-specific config files in a repo |
|
|
268
268
|
| `oacp send` | Send a protocol-compliant inbox message |
|
|
269
269
|
| `oacp key` | Generate and inspect message-signing keys |
|
|
270
270
|
| `oacp trust` | Import, inspect, and revoke trust-root entries (catalog + pins) |
|
|
271
|
-
| `oacp org-memory` |
|
|
271
|
+
| `oacp org-memory` | Run agent-memory org (init); shim until 0.5.2 |
|
|
272
272
|
| `oacp write-event` | Write an event to org-memory/events/ |
|
|
273
273
|
| `oacp autonomy-outcome` | Record a human approval/decline in an autonomy audit |
|
|
274
274
|
| `oacp autonomy-finalize` | Record checkpoints and terminal states in an autonomy audit |
|
|
@@ -287,9 +287,9 @@ uv tool install .
|
|
|
287
287
|
|
|
288
288
|
**`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`, `--since` (default `now`), `--state-id <id>` for per-subscriber cursors, `--show-archived`
|
|
289
289
|
|
|
290
|
-
**`oacp doctor`**: `--fix` (auto-fix safe issues), `--
|
|
290
|
+
**`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
|
|
291
291
|
|
|
292
|
-
**`oacp memory`**:
|
|
292
|
+
**`oacp memory`** / **`oacp org-memory`**: exec shims for [agent-memory](https://github.com/kiloloop/agent-memory) (`pip install agent-memory-cli`): argv passes through, `--oacp-dir` becomes `--home`, `oacp memory init` runs `agent-memory enable`. Kept through 0.5.1, removed in 0.5.2; call `agent-memory` directly.
|
|
293
293
|
|
|
294
294
|
</details>
|
|
295
295
|
|
|
@@ -369,15 +369,16 @@ $OACP_HOME/projects/<project>/
|
|
|
369
369
|
└── workspace.json # Project metadata
|
|
370
370
|
```
|
|
371
371
|
|
|
372
|
-
|
|
372
|
+
Org-level shared memory and cross-machine sync are the memory tool's:
|
|
373
|
+
[agent-memory](https://github.com/kiloloop/agent-memory) (`pip install
|
|
374
|
+
agent-memory-cli`) scaffolds `$OACP_HOME/org-memory/` (`agent-memory org init`),
|
|
375
|
+
syncs the home (`enable`, `pull`, `push`), checks it (`agent-memory doctor`), and
|
|
376
|
+
installs the runtime startup hook (`agent-memory setup <runtime>`). The layout it
|
|
377
|
+
implements is the kernel's [memory layout spec](docs/protocol/org_memory.md).
|
|
373
378
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
├── decisions.md # Org-wide decisions
|
|
378
|
-
├── rules.md # Standing conventions
|
|
379
|
-
└── events/ # Timestamped event entries
|
|
380
|
-
```
|
|
379
|
+
Init loads the four active project memory files. Org memory is retrieved on
|
|
380
|
+
demand; syncing it to disk does not load it into context. See
|
|
381
|
+
[project context and org-memory retrieval](docs/guides/memory-context.md).
|
|
381
382
|
|
|
382
383
|
## Development
|
|
383
384
|
|
|
@@ -89,9 +89,14 @@ This creates or updates:
|
|
|
89
89
|
|
|
90
90
|
- `.claude/agents/my-first-project.md`
|
|
91
91
|
- `.claude/skills/`
|
|
92
|
-
- `.claude/hooks/oacp-memory-pull.sh`
|
|
93
92
|
- `.claude/settings.json`
|
|
94
93
|
|
|
94
|
+
Memory sync and its startup hook are the memory tool's: install
|
|
95
|
+
[agent-memory](https://github.com/kiloloop/agent-memory) (`pip install
|
|
96
|
+
agent-memory-cli`) and run `agent-memory setup claude`. A regeneration of
|
|
97
|
+
`oacp setup` retires the memory hooks earlier kernels wrote, by exact command
|
|
98
|
+
and digest, and leaves anything you edited in place.
|
|
99
|
+
|
|
95
100
|
For other supported runtimes, use the same shape:
|
|
96
101
|
|
|
97
102
|
```bash
|
|
@@ -101,15 +106,21 @@ oacp setup gemini --project my-first-project
|
|
|
101
106
|
```
|
|
102
107
|
|
|
103
108
|
Codex setup creates or merges `.codex/hooks.json` with one startup-only hook.
|
|
104
|
-
Review and trust it with `/hooks`; it runs
|
|
105
|
-
|
|
109
|
+
Review and trust it with `/hooks`; it runs the startup verification. If hooks
|
|
110
|
+
are unavailable, run the manual fallback:
|
|
106
111
|
|
|
107
112
|
```bash
|
|
108
|
-
oacp session-init --
|
|
113
|
+
oacp session-init --project my-first-project
|
|
109
114
|
```
|
|
110
115
|
|
|
116
|
+
The init manifest names the protocol files and four project memory files to
|
|
117
|
+
read into context; org memory is retrieved on demand. Syncing the home is
|
|
118
|
+
`agent-memory pull` (its `setup codex` hook runs it at startup). See
|
|
119
|
+
[memory context](docs/guides/memory-context.md) for retrieval and
|
|
120
|
+
existing-installation guidance.
|
|
121
|
+
|
|
111
122
|
Runtime setup does not install an automatic memory push. Publish durable memory
|
|
112
|
-
explicitly during wrap-up with `
|
|
123
|
+
explicitly during wrap-up with `agent-memory push`.
|
|
113
124
|
|
|
114
125
|
Cursor support is scaffold-only until Cursor-owned rules land. Cursor sessions
|
|
115
126
|
must set `OACP_RUNTIME=cursor` or pass `--from` explicitly when sending messages.
|
|
@@ -221,7 +232,7 @@ checks the project workspace, inboxes, schemas, and agent status files.
|
|
|
221
232
|
## What's Next?
|
|
222
233
|
|
|
223
234
|
- **Review loop** — Set up structured code review between agents. See [docs/protocol/review_loop.md](docs/protocol/review_loop.md).
|
|
224
|
-
- **Durable memory** — Learn how agents share knowledge across sessions. See [docs/protocol/
|
|
235
|
+
- **Durable memory** — Learn how agents share knowledge across sessions and machines. See [docs/protocol/org_memory.md](docs/protocol/org_memory.md).
|
|
225
236
|
- **Safety defaults** — Understand the baseline safety rules. See [docs/protocol/agent_safety_defaults.md](docs/protocol/agent_safety_defaults.md).
|
|
226
237
|
- **Full protocol** — Read the complete specification in [SPEC.md](SPEC.md).
|
|
227
238
|
- **Adoption guide** — Minimum, recommended, and full adoption paths. See [docs/guides/adoption.md](docs/guides/adoption.md).
|
|
@@ -87,7 +87,7 @@ $OACP_HOME/projects/my-app/ ● writing
|
|
|
87
87
|
workspace.json metadata [json]
|
|
88
88
|
|
|
89
89
|
$OACP_HOME/org-memory/ org-wide
|
|
90
|
-
recent.md
|
|
90
|
+
recent.md on demand [⌘]
|
|
91
91
|
rules.md 12 rules [⌘]
|
|
92
92
|
decisions.md org decisions [⌘]
|
|
93
93
|
```
|
|
@@ -234,13 +234,13 @@ uv tool install .
|
|
|
234
234
|
| `oacp inbox` | List pending inbox messages |
|
|
235
235
|
| `oacp watch` | Emit inbox delta events for Monitor-friendly polling |
|
|
236
236
|
| `oacp retention` | Prune project message history by age and count |
|
|
237
|
-
| `oacp memory` |
|
|
237
|
+
| `oacp memory` | Run agent-memory (sync, archive, restore); shim until 0.5.2 |
|
|
238
238
|
| `oacp session-init` | Verify Codex startup inputs and emit SessionStart context |
|
|
239
239
|
| `oacp setup` | Generate runtime-specific config files in a repo |
|
|
240
240
|
| `oacp send` | Send a protocol-compliant inbox message |
|
|
241
241
|
| `oacp key` | Generate and inspect message-signing keys |
|
|
242
242
|
| `oacp trust` | Import, inspect, and revoke trust-root entries (catalog + pins) |
|
|
243
|
-
| `oacp org-memory` |
|
|
243
|
+
| `oacp org-memory` | Run agent-memory org (init); shim until 0.5.2 |
|
|
244
244
|
| `oacp write-event` | Write an event to org-memory/events/ |
|
|
245
245
|
| `oacp autonomy-outcome` | Record a human approval/decline in an autonomy audit |
|
|
246
246
|
| `oacp autonomy-finalize` | Record checkpoints and terminal states in an autonomy audit |
|
|
@@ -259,9 +259,9 @@ uv tool install .
|
|
|
259
259
|
|
|
260
260
|
**`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`, `--since` (default `now`), `--state-id <id>` for per-subscriber cursors, `--show-archived`
|
|
261
261
|
|
|
262
|
-
**`oacp doctor`**: `--fix` (auto-fix safe issues), `--
|
|
262
|
+
**`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
|
|
263
263
|
|
|
264
|
-
**`oacp memory`**:
|
|
264
|
+
**`oacp memory`** / **`oacp org-memory`**: exec shims for [agent-memory](https://github.com/kiloloop/agent-memory) (`pip install agent-memory-cli`): argv passes through, `--oacp-dir` becomes `--home`, `oacp memory init` runs `agent-memory enable`. Kept through 0.5.1, removed in 0.5.2; call `agent-memory` directly.
|
|
265
265
|
|
|
266
266
|
</details>
|
|
267
267
|
|
|
@@ -341,15 +341,16 @@ $OACP_HOME/projects/<project>/
|
|
|
341
341
|
└── workspace.json # Project metadata
|
|
342
342
|
```
|
|
343
343
|
|
|
344
|
-
|
|
344
|
+
Org-level shared memory and cross-machine sync are the memory tool's:
|
|
345
|
+
[agent-memory](https://github.com/kiloloop/agent-memory) (`pip install
|
|
346
|
+
agent-memory-cli`) scaffolds `$OACP_HOME/org-memory/` (`agent-memory org init`),
|
|
347
|
+
syncs the home (`enable`, `pull`, `push`), checks it (`agent-memory doctor`), and
|
|
348
|
+
installs the runtime startup hook (`agent-memory setup <runtime>`). The layout it
|
|
349
|
+
implements is the kernel's [memory layout spec](docs/protocol/org_memory.md).
|
|
345
350
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
├── decisions.md # Org-wide decisions
|
|
350
|
-
├── rules.md # Standing conventions
|
|
351
|
-
└── events/ # Timestamped event entries
|
|
352
|
-
```
|
|
351
|
+
Init loads the four active project memory files. Org memory is retrieved on
|
|
352
|
+
demand; syncing it to disk does not load it into context. See
|
|
353
|
+
[project context and org-memory retrieval](docs/guides/memory-context.md).
|
|
353
354
|
|
|
354
355
|
## Development
|
|
355
356
|
|
|
@@ -23,7 +23,7 @@ documents ship inside the `oacp-cli` wheel.
|
|
|
23
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
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
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) |
|
|
26
|
+
| [`docs/protocol/org_memory.md`](docs/protocol/org_memory.md) | Memory layout: the per-project, org, and cross-machine tiers — paths, files, who writes what, the event and debrief schemas, the sync marker and allowlist. |
|
|
27
27
|
|
|
28
28
|
## Userland documents
|
|
29
29
|
|
|
@@ -36,7 +36,6 @@ receiver must verify.
|
|
|
36
36
|
| [`docs/protocol/task_negotiation.md`](docs/protocol/task_negotiation.md) | Propose / accept / counter-propose handshake for splitting work between agents. |
|
|
37
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
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
39
|
| [`docs/protocol/runtime_capabilities.md`](docs/protocol/runtime_capabilities.md) | Static capability declarations, dynamic `status.yaml`, health-check contract, agent cards. |
|
|
41
40
|
| [`docs/protocol/agent_profiles.md`](docs/protocol/agent_profiles.md) | Two-tier identity: global agent profiles and project-level agent cards. |
|
|
42
41
|
| [`docs/protocol/agent_safety_defaults.md`](docs/protocol/agent_safety_defaults.md) | Baseline git, staging, inbox, credential, and scope rules every agent follows. |
|
|
@@ -49,7 +48,7 @@ Guides — [`docs/guides/setup.md`](docs/guides/setup.md),
|
|
|
49
48
|
[`versioning.md`](docs/guides/versioning.md),
|
|
50
49
|
[`unified_skill_spec.md`](docs/guides/unified_skill_spec.md) — and the
|
|
51
50
|
executable conformance fixtures under [`tests/conformance/`](tests/conformance/)
|
|
52
|
-
(autonomy, signing, intake, envelope) round out the set. Runtime-specific skills
|
|
51
|
+
(autonomy, signing, intake, envelope, memory layout) round out the set. Runtime-specific skills
|
|
53
52
|
that operate the protocol live in the companion
|
|
54
53
|
[oacp-skills](https://github.com/kiloloop/oacp-skills) repository.
|
|
55
54
|
|
|
@@ -27,6 +27,7 @@ Verifies that required and optional CLI tools are installed and reachable on `PA
|
|
|
27
27
|
| `ruff` | No | Python linter (optional, used in preflight) |
|
|
28
28
|
| `shellcheck` | No | Shell script linter (optional) |
|
|
29
29
|
| `pyyaml` | No | PyYAML library (needed for YAML validation) |
|
|
30
|
+
| `agent-memory` | No | Memory tool (`agent-memory-cli`); the row reports its version and hands memory-home checks to `agent-memory doctor` |
|
|
30
31
|
|
|
31
32
|
### 2. Workspace
|
|
32
33
|
|
|
@@ -103,6 +104,8 @@ $ oacp doctor
|
|
|
103
104
|
[+] ruff — ruff 0.8.1
|
|
104
105
|
[-] shellcheck — not installed (optional)
|
|
105
106
|
Install: brew install shellcheck
|
|
107
|
+
[-] agent-memory — not installed
|
|
108
|
+
Install: pip install agent-memory-cli
|
|
106
109
|
[+] pyyaml — available
|
|
107
110
|
|
|
108
111
|
No issues found.
|
|
@@ -120,6 +123,7 @@ $ oacp doctor --project my-project
|
|
|
120
123
|
[+] ruff — ruff 0.8.1
|
|
121
124
|
[-] shellcheck — not installed (optional)
|
|
122
125
|
Install: brew install shellcheck
|
|
126
|
+
[+] agent-memory — agent-memory 0.1.0 (run agent-memory doctor)
|
|
123
127
|
[+] pyyaml — available
|
|
124
128
|
|
|
125
129
|
[+] Workspace
|
|
@@ -181,6 +185,7 @@ The exit code reflects the overall result:
|
|
|
181
185
|
| `pyyaml — not importable` | `pip install pyyaml` |
|
|
182
186
|
| `ruff — not installed` | `pip install ruff` (optional, for linting) |
|
|
183
187
|
| `shellcheck — not installed` | `brew install shellcheck` (optional, for shell script linting) |
|
|
188
|
+
| `agent-memory — not installed` | `pip install agent-memory-cli` (optional; `agent-memory doctor` then checks the memory home) |
|
|
184
189
|
|
|
185
190
|
### Workspace
|
|
186
191
|
|
|
@@ -220,7 +225,6 @@ oacp doctor --project <name> # full workspace + agent checks
|
|
|
220
225
|
oacp doctor --json # machine-readable JSON output
|
|
221
226
|
oacp doctor --project <name> --json # full checks in JSON format
|
|
222
227
|
oacp doctor --project <name> --fix # auto-fix safe issues (missing inbox dirs, missing/stale status.yaml)
|
|
223
|
-
oacp doctor --memory # advisory checks for OACP_HOME memory git sync
|
|
224
228
|
oacp doctor -o report.txt # save report to file
|
|
225
229
|
```
|
|
226
230
|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Project context and org-memory retrieval
|
|
2
|
+
|
|
3
|
+
Load the active project memory at init. Retrieve org memory when a task needs
|
|
4
|
+
shared rules, decisions, or recent cross-project context. Org-wide history can
|
|
5
|
+
grow independently of the small project working set.
|
|
6
|
+
|
|
7
|
+
| Store | Context policy |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `projects/<project>/memory/` | Read `project_facts.md`, `decision_log.md`, `open_threads.md`, and `known_debt.md` in order at init. |
|
|
10
|
+
| `projects/<project>/memory/archive/` | Historical detail; follow a relevant reference when needed. |
|
|
11
|
+
| `org-memory/` | Search relevant topical files and read matching sections on demand. |
|
|
12
|
+
|
|
13
|
+
## Initialization and synchronization
|
|
14
|
+
|
|
15
|
+
Step 3 of the session-init protocol requires the four project files. In
|
|
16
|
+
Codex, the init command verifies three
|
|
17
|
+
protocol files and those four project files, then emits a manifest. The agent
|
|
18
|
+
still performs the ordered reads; verification does not inject their contents.
|
|
19
|
+
Missing project files are reported under the existing degraded-init behavior.
|
|
20
|
+
|
|
21
|
+
`agent-memory pull` synchronizes the memory repository on disk, including org
|
|
22
|
+
memory and its history. A successful pull does not add those files to model
|
|
23
|
+
context. Keep any configured pull before project-memory reads so those reads
|
|
24
|
+
use the refreshed files. Sync selection and context selection are independent;
|
|
25
|
+
there is no need to remove org memory from sync to avoid eager loading.
|
|
26
|
+
|
|
27
|
+
Hook enablement remains an adopter choice. This retrieval policy works with a
|
|
28
|
+
trusted startup hook or a manual init invocation. It does not require enabling
|
|
29
|
+
a hook that the project has disabled.
|
|
30
|
+
|
|
31
|
+
## Retrieve org context for a task
|
|
32
|
+
|
|
33
|
+
1. Resolve the configured OACP root and the org's topical filenames. Common
|
|
34
|
+
choices are `rules.md`, `decisions.md`, and `recent.md`; adopters can use
|
|
35
|
+
others. Read applicable standing rules and decisions before the actions
|
|
36
|
+
they govern, such as release, review authority, or architecture work.
|
|
37
|
+
2. If cross-machine sync is configured, the task needs current shared facts,
|
|
38
|
+
and local freshness is unknown, run `agent-memory pull`. A failed pull leaves
|
|
39
|
+
freshness unknown; report that limitation before relying on affected facts.
|
|
40
|
+
3. Search the relevant explicit files with task identifiers and topic terms.
|
|
41
|
+
For example, after confirming that `rules.md` exists:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
OACP_ROOT="${OACP_HOME:-$HOME/oacp}"
|
|
45
|
+
rg -n -- 'release|version' "$OACP_ROOT/org-memory/rules.md"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
4. Read the full matching sections, including qualifications and provenance.
|
|
49
|
+
Follow relevant source links when needed; avoid loading unrelated history
|
|
50
|
+
or recursively reading `events/` and `debriefs/`. Read `recent.md` sections
|
|
51
|
+
when recent org-wide changes matter to the task.
|
|
52
|
+
5. A search miss does not establish that no rule applies. Inspect relevant
|
|
53
|
+
headings or linked topic files when needed. Missing or unreadable files
|
|
54
|
+
are evidence gaps, not permission to bypass a known requirement. Verify
|
|
55
|
+
stale or conflicting claims against their authoritative sources.
|
|
56
|
+
|
|
57
|
+
Runtime/project guidance may explicitly opt into a bounded startup summary.
|
|
58
|
+
The `recent.md` curation budget is a storage-maintenance guideline, not a
|
|
59
|
+
startup context budget. Keep required project reads intact even when org
|
|
60
|
+
retrieval is deferred.
|
|
61
|
+
|
|
62
|
+
## Update an existing installation
|
|
63
|
+
|
|
64
|
+
Updated scaffolds apply to newly created files. Runtime setup and org-memory
|
|
65
|
+
initialization preserve existing guidance and curated content; upgrading does
|
|
66
|
+
not rewrite an old `Always-loaded` comment or a local mandatory-org-read rule.
|
|
67
|
+
|
|
68
|
+
Review existing runtime instructions and summary comments explicitly. Keep the
|
|
69
|
+
four project reads, replace blanket org-memory startup reads with the task-based
|
|
70
|
+
policy above, and retain the underlying rules, decisions, history, and sync
|
|
71
|
+
configuration. Avoid rerunning runtime setup solely to change prose: setup can
|
|
72
|
+
register hooks, including ones an adopter intentionally disabled.
|
|
@@ -18,7 +18,7 @@ Cross-agent baseline safety rules. All agents (Claude, Codex, Cursor, Gemini) fo
|
|
|
18
18
|
|
|
19
19
|
## Inbox Safety
|
|
20
20
|
|
|
21
|
-
- **
|
|
21
|
+
- **Follow the canonical [inbox lifecycle](inbox_outbox.md#lifecycle).** Complete required replies and terminal audit before atomically archiving the exact processed file without overwriting an archive entry. Changed bytes or failed archival leave input pending; a successful reply alone is not permission to delete it.
|
|
22
22
|
- **Never silently consume a message that expects a response** — `task_request`, `question`, and `review_request` always require a reply. `notification` is no-response by default, but requires ack/reply when it reports findings or issues.
|
|
23
23
|
- **Always reply** using `oacp send` with `--parent-message-id` to maintain threading.
|
|
24
24
|
- **Idempotent sends** — before sending a response message (e.g., `review_feedback`, `review_addressed`, `review_request`), check the recipient's inbox and your own outbox for an already-sent message matching the same PR + round + type. Skip the send if a duplicate exists. This prevents retry storms when an agent crashes after sending a message but before completing the full workflow, and is re-invoked.
|
|
@@ -106,6 +106,10 @@ schema-invalid profile pauses with `task_profile_unparsable`; it is not a fatal
|
|
|
106
106
|
message-schema error. Message types listed in `allow_without_task_profile`, such
|
|
107
107
|
as `brainstorm_request`, may auto-accept without the block.
|
|
108
108
|
|
|
109
|
+
| Optional profile field | Meaning |
|
|
110
|
+
| --- | --- |
|
|
111
|
+
| `expected_pauses` | List of pause reason codes the sender expects to fire, for example `[estimated_minutes_exceeds_threshold, merges_pr_pause]`. Advisory only: unknown codes or malformed values produce declaration warnings, not new admission reasons. Existing safety checks still apply to the whole message. See [pause classification](#pause-classification). |
|
|
112
|
+
|
|
109
113
|
`expected_files_touched` counts distinct deliverable files only: files created
|
|
110
114
|
or modified as part of the requested outcome or a review-required correction.
|
|
111
115
|
Exclude receiver-local inbox, outbox, audit, memory, cache, and scratch writes
|
|
@@ -433,6 +437,11 @@ Audit `schema_version: 2` adds thread identity and the structured
|
|
|
433
437
|
`result.human_outcome` block. Recorders may upgrade a v1 audit to v2 when the
|
|
434
438
|
first human outcome is written; standing grants trust only v2 records.
|
|
435
439
|
|
|
440
|
+
| Optional audit evidence | Meaning |
|
|
441
|
+
| --- | --- |
|
|
442
|
+
| `pause_classification`, `expected_pause_codes`, `unplanned_pause_codes` | The paused decision's comparison against the sender's expected reasons; see [pause classification](#pause-classification). Older v2 records may omit all three. |
|
|
443
|
+
| `result.human_outcome.modification` | Free-form YAML mapping recording what the human changed, such as `task_profile: {estimated_minutes: 60}` and `note: "Allow the larger task"`. Written by `--modification-file`; evidence only, with no effect on the scope envelope, standing grants, or checkpoint enforcement. |
|
|
444
|
+
|
|
436
445
|
### Contract version
|
|
437
446
|
|
|
438
447
|
`spec_version` names the protocol contract an artifact was produced under.
|
|
@@ -510,6 +519,40 @@ deduplicated against `reason_codes`, and empty on auto-accepted decisions.
|
|
|
510
519
|
Threshold-calibration analytics should read `reason_codes` and
|
|
511
520
|
`co_occurring_reason_codes` together.
|
|
512
521
|
|
|
522
|
+
### Pause classification
|
|
523
|
+
|
|
524
|
+
Every new paused evaluation records `pause_classification`,
|
|
525
|
+
`expected_pause_codes`, and `unplanned_pause_codes` as additive audit evidence.
|
|
526
|
+
The fired set contains only pause reasons in that decision's `reason_codes`.
|
|
527
|
+
Evidence codes such as `message_valid` and `schema_valid`, co-occurring reasons,
|
|
528
|
+
and lexical notes never enter this set.
|
|
529
|
+
|
|
530
|
+
| Declaration and fired reasons | Classification |
|
|
531
|
+
| --- | --- |
|
|
532
|
+
| `expected_pauses` absent | `undeclared` |
|
|
533
|
+
| Every fired pause reason is expected | `designed` |
|
|
534
|
+
| No fired pause reason is expected | `unplanned` |
|
|
535
|
+
| Some, but not all, fired pause reasons are expected | `mixed` |
|
|
536
|
+
|
|
537
|
+
`expected_pause_codes` preserves declared string entries, including unknown
|
|
538
|
+
codes; unknown codes are ignored for comparison and recorded as declaration
|
|
539
|
+
warnings in `logged_notes`.
|
|
540
|
+
An absent or malformed declaration contributes no expected reasons.
|
|
541
|
+
`unplanned_pause_codes` lists the fired reasons minus the recognized expected
|
|
542
|
+
reasons.
|
|
543
|
+
All message text, including the advisory value, remains subject to existing
|
|
544
|
+
lexical safety checks.
|
|
545
|
+
An unknown declaration adds no admission reason of its own, but a destructive
|
|
546
|
+
token inside it still fires the same hard stop as that token elsewhere.
|
|
547
|
+
The declaration cannot authorize work or suppress a fired pause.
|
|
548
|
+
|
|
549
|
+
These fields and `human_outcome.modification` are additive and ignorable within
|
|
550
|
+
audit schema v2: existing records validate unchanged, and readers may ignore the
|
|
551
|
+
fields without changing an admission, finalization, doctor, or enforcement
|
|
552
|
+
decision.
|
|
553
|
+
There is no contract change under the [version rule](#contract-version).
|
|
554
|
+
Historical records are not backfilled.
|
|
555
|
+
|
|
513
556
|
### Lexical provenance
|
|
514
557
|
|
|
515
558
|
`matched_patterns` is a source-ordered list of every autonomy lexical match,
|
|
@@ -638,6 +681,18 @@ pause moment, and locks the full read-modify-write sequence before an atomic
|
|
|
638
681
|
replacement. It refuses to overwrite a recorded outcome unless `--replace` is
|
|
639
682
|
explicit. `decision` is `approved`, `modified`, or `declined`.
|
|
640
683
|
|
|
684
|
+
| Flag | Meaning |
|
|
685
|
+
| --- | --- |
|
|
686
|
+
| `--modification-file <yaml>` | With `--decision modified`, read a free-form YAML mapping into `result.human_outcome.modification`. Without the file, the modified decision still records and prints a one-line `modification unrecorded` warning. |
|
|
687
|
+
|
|
688
|
+
An empty mapping is valid.
|
|
689
|
+
A missing, unreadable, invalid-YAML, or non-mapping file leaves the audit
|
|
690
|
+
unchanged, as does using the flag with a decision other than `modified`.
|
|
691
|
+
The payload records the human's delta without applying it to the original
|
|
692
|
+
scope envelope or creating a standing grant.
|
|
693
|
+
It cannot replace the earlier outcome when the command routes to a checkpoint
|
|
694
|
+
clear; scoped checkpoint changes still use the re-authorization path below.
|
|
695
|
+
|
|
641
696
|
The recorder is state-aware about where the pause moment lives:
|
|
642
697
|
|
|
643
698
|
- **Admission pauses** (`completion_kind: admission_paused`): the record was
|
|
@@ -349,5 +349,5 @@ constraints:
|
|
|
349
349
|
- "rejected — agent rejected the task"
|
|
350
350
|
inbox_file_lifecycle:
|
|
351
351
|
- "Dispatch state is tracked via message replies (parent_message_id threading), NOT by retaining the original inbox file"
|
|
352
|
-
- "Agents
|
|
353
|
-
- "Long-lived states (blocked, in_review) persist in dispatcher tracking (dispatches.md)
|
|
352
|
+
- "Agents follow inbox_outbox.md Lifecycle for terminal processing and exact-file, no-overwrite archival; changed bytes or failed archival leave input pending"
|
|
353
|
+
- "Long-lived states (blocked, in_review) persist in dispatcher tracking (dispatches.md); pending-file retention still follows inbox_outbox.md Lifecycle"
|
|
@@ -333,8 +333,8 @@ can never authenticate a message.
|
|
|
333
333
|
- **Keys are per-machine and never leave `$OACP_HOME/keys/`.** They are
|
|
334
334
|
never synced and never committed. The memory-sync allowlist structurally
|
|
335
335
|
excludes `keys/` on the push side, and the canonical workspace
|
|
336
|
-
`.gitignore` carries an explicit `keys/` deny line that
|
|
337
|
-
|
|
336
|
+
`.gitignore` carries an explicit `keys/` deny line that the memory tool
|
|
337
|
+
(`agent-memory enable`, and its doctor's drift check) propagates fleet-wide.
|
|
338
338
|
- **The 0600 file keystore is the v0.4.0 floor, not the design.** Private
|
|
339
339
|
key files are created `0600` under `0700` directories and loaded only
|
|
340
340
|
after a mode check. The backend is pluggable by design: messages
|