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