codex-a2a 0.7.1__tar.gz → 0.7.3__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.
- {codex_a2a-0.7.1/src/codex_a2a.egg-info → codex_a2a-0.7.3}/PKG-INFO +21 -6
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/README.md +20 -5
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/docs/guide.md +2 -2
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/agent_card.py +0 -7
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/payload_text.py +0 -3
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/request_context.py +0 -3
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/config.py +1 -1
- codex_a2a-0.7.3/src/codex_a2a/contracts/extension_specs.py +985 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/contracts/extensions.py +8 -982
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/contracts/runtime_output.py +2 -21
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/cancellation.py +1 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/executor.py +1 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/output_mapping.py +0 -23
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/response_emitter.py +6 -4
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/stream_chunks.py +16 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/stream_processor.py +4 -4
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/thread_lifecycle_runtime.py +2 -2
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/discovery_control.py +2 -4
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/discovery_query.py +1 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/errors.py +1 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/exec_control.py +2 -2
- codex_a2a-0.7.3/src/codex_a2a/jsonrpc/exec_control_params.py +216 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/interrupt_recovery.py +1 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/interrupts.py +2 -2
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/params.py +19 -18
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/review_control.py +2 -2
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/session_control.py +6 -6
- codex_a2a-0.7.1/src/codex_a2a/jsonrpc/control_params.py → codex_a2a-0.7.3/src/codex_a2a/jsonrpc/session_control_params.py +2 -212
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/session_query.py +5 -5
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/thread_lifecycle_control.py +18 -36
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/turn_control.py +2 -2
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/turn_control_params.py +1 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/agent_card.py +2 -267
- codex_a2a-0.7.3/src/codex_a2a/server/agent_card_extensions.py +272 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/application.py +12 -17
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/http_middlewares.py +2 -2
- codex_a2a-0.7.3/src/codex_a2a/server/openapi.py +132 -0
- codex_a2a-0.7.1/src/codex_a2a/server/openapi.py → codex_a2a-0.7.3/src/codex_a2a/server/openapi_contract_fragments.py +46 -191
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/request_handler.py +2 -2
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/runtime_state.py +75 -188
- codex_a2a-0.7.3/src/codex_a2a/server/runtime_state_schema.py +151 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/task_store.py +0 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/conversation_facade.py +4 -2
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/request_mapping.py +0 -7
- {codex_a2a-0.7.1 → codex_a2a-0.7.3/src/codex_a2a.egg-info}/PKG-INFO +21 -6
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a.egg-info/SOURCES.txt +6 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/config/test_settings.py +1 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_codex_agent_session_binding.py +2 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_stream_chunks.py +18 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_streaming_output_contract.py +4 -2
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_cli.py +6 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_migrations.py +1 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_request_handler.py +77 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_runtime_state.py +2 -1
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_task_store.py +11 -11
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/uv.lock +136 -131
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/.github/dependabot.yml +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/.github/workflows/ci.yml +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/.github/workflows/dependency-health.yml +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/.github/workflows/publish.yml +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/.gitignore +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/.pre-commit-config.yaml +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/.secrets.baseline +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/AGENTS.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/CONTRIBUTING.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/LICENSE +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/SECURITY.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/docs/architecture.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/docs/compatibility.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/docs/conformance-triage.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/docs/conformance.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/docs/extension-specifications.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/docs/maintainer-architecture.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/mypy.ini +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/pyproject.toml +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/README.md +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/conformance.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/dependency_health.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/doctor.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/health_common.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/publish_github_release.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/smoke_test_built_cli.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/sync_codex_docs.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/validate_baseline.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/scripts/validate_runtime_matrix.sh +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/setup.cfg +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/auth.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/cli.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/auth.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/client.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/config.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/errors.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/manager.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/client/types.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/contracts/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/directory_policy.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/discovery_runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/exec_runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/request_metadata.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/request_overrides.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/review_runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/session_runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/stream_interrupts.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/stream_state.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/streaming.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/tool_call_payloads.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/execution/watch_events.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/input_mapping.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/application.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/discovery_params.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/discovery_payload_mapping.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/dispatch.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/hooks.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/interrupt_lifecycle.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/interrupt_params.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/interrupt_recovery_params.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/owner_guard.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/params_common.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/payload_mapping.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/query_params.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/review_control_params.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/jsonrpc/thread_lifecycle_params.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/logging_context.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/media_modes.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/metrics.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/parts/text.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/payload_helpers.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/profile/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/profile/runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/protocol_versions.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/py.typed +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/call_context.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/database.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/migrations.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/server/output_negotiation.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/client.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/discovery_payloads.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/exec_facade.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/interrupt_bridge.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/interrupts.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/models.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/notification_mapping.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/startup.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/stream_bridge.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a/upstream/transport.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a.egg-info/dependency_links.txt +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a.egg-info/entry_points.txt +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a.egg-info/requires.txt +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/src/codex_a2a.egg-info/top_level.txt +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_agent_card.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_cli.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_client_flow.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_client_manager.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_errors.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_lifecycle.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_payload_text.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_request_context.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/client/test_types.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/config/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/contracts/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/contracts/test_extension_contract_consistency.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_agent_errors.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_cancellation.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_directory_validation.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_discovery_exec_runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_metrics.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_review_runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_session_ownership.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_session_persistence.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_session_runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_stream_interrupts.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_thread_lifecycle_runtime.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/execution/test_tool_call_payloads.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/fixtures/codex_app_server/command_execution_output_delta.json +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/fixtures/codex_app_server/file_change_output_delta.json +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/test_codex_discovery_extension.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/test_codex_exec_extension.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/test_codex_session_extension.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/test_codex_thread_lifecycle_extension.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/test_codex_turn_review_extension.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/test_dispatch.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/test_guard_hooks.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/jsonrpc/test_jsonrpc_models.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/package/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/package/test_logging.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/package/test_publish_github_release_script.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/package/test_release_distribution_contract.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/package/test_typing_contract.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/package/test_version.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/parts/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/parts/test_text.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/profile/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/profile/test_profile.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/scripts/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/scripts/test_script_health_contract.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_agent_card.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_auth.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_call_context_builder.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_database.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_database_app_persistence.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/server/test_transport_contract.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/support/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/support/context.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/support/dummy_clients.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/support/fixtures.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/support/settings.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/test_input_mapping.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/test_protocol_versions.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/upstream/__init__.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/upstream/test_codex_client_params.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/upstream/test_interrupt_persistence.py +0 -0
- {codex_a2a-0.7.1 → codex_a2a-0.7.3}/tests/upstream/test_modular_upstream_components.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-a2a
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.3
|
|
4
4
|
Summary: Codex A2A runtime adapter
|
|
5
5
|
Author: liujuanjuan1984@Intelligent-Internet
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -157,11 +157,7 @@ Use this project when:
|
|
|
157
157
|
- you want a thin service boundary instead of building your own adapter
|
|
158
158
|
- you want inbound serving and outbound peer access in one deployable unit
|
|
159
159
|
|
|
160
|
-
Prefer [a2a-client-hub](https://github.com/liujuanjuan1984/a2a-client-hub) when
|
|
161
|
-
|
|
162
|
-
- you need a broader application-facing client integration layer
|
|
163
|
-
- you want higher-level A2A consumption and upstream adapter normalization
|
|
164
|
-
- you want client-side integration concerns separated from the Codex runtime boundary
|
|
160
|
+
Prefer **[a2a-client-hub](https://github.com/liujuanjuan1984/a2a-client-hub)** when you need a broader application-facing integration layer or higher-level A2A consumption (see [Ecosystem](#ecosystem) for details).
|
|
165
161
|
|
|
166
162
|
Look elsewhere if:
|
|
167
163
|
|
|
@@ -201,6 +197,25 @@ The normative compatibility split and deployment model live in [Compatibility Gu
|
|
|
201
197
|
- [External Conformance Experiments](docs/conformance.md) Manual A2A TCK experiment entrypoint and triage workflow.
|
|
202
198
|
- [Security Policy](SECURITY.md) Threat model, deployment caveats, and vulnerability disclosure guidance.
|
|
203
199
|
|
|
200
|
+
## Ecosystem
|
|
201
|
+
|
|
202
|
+
`codex-a2a` is part of a growing landscape of A2A-compliant projects. Depending on your architecture, you may find these related projects useful:
|
|
203
|
+
|
|
204
|
+
### Foundations (Upstream)
|
|
205
|
+
|
|
206
|
+
- **[Intelligent-Internet/a2a-python](https://github.com/Intelligent-Internet/a2a-python)**: The core protocol implementation and SDK used by this adapter.
|
|
207
|
+
- **Codex**: The underlying local agent runtime (Proprietary).
|
|
208
|
+
|
|
209
|
+
### Gateways & Hubs (Vertical Integration)
|
|
210
|
+
|
|
211
|
+
- **[liujuanjuan1984/a2a-client-hub](https://github.com/liujuanjuan1984/a2a-client-hub)**: An application-facing integration layer that consumes A2A-compliant instances (like `codex-a2a`) and provides higher-level normalization.
|
|
212
|
+
- **[jinyitao123/a2a-gateway](https://github.com/jinyitao123/a2a-gateway)**: Operates at the protocol-bridging layer, sitting between agent platforms and the A2A/MCP ecosystem to handle discovery and routing.
|
|
213
|
+
|
|
214
|
+
### Alternative Implementations & Runtimes (Horizontal Differences)
|
|
215
|
+
|
|
216
|
+
- **[Intelligent-Internet/opencode-a2a](https://github.com/Intelligent-Internet/opencode-a2a)**: A complementary Python runtime implementation that shares similar protocol patterns and output negotiation practices.
|
|
217
|
+
- **[MyPrototypeWhat/codex-a2a](https://github.com/MyPrototypeWhat/codex-a2a)**: A lightweight **TypeScript** Express middleware implementation. Ideal for developers looking for in-process SDK integration within a Node.js environment.
|
|
218
|
+
|
|
204
219
|
## Development
|
|
205
220
|
|
|
206
221
|
For contributor workflow, validation, release handling, and helper scripts, see [Contributing Guide](CONTRIBUTING.md) and [Scripts Reference](scripts/README.md). Use that workflow to create a PR from the working branch and merge into `main` after human review.
|
|
@@ -110,11 +110,7 @@ Use this project when:
|
|
|
110
110
|
- you want a thin service boundary instead of building your own adapter
|
|
111
111
|
- you want inbound serving and outbound peer access in one deployable unit
|
|
112
112
|
|
|
113
|
-
Prefer [a2a-client-hub](https://github.com/liujuanjuan1984/a2a-client-hub) when
|
|
114
|
-
|
|
115
|
-
- you need a broader application-facing client integration layer
|
|
116
|
-
- you want higher-level A2A consumption and upstream adapter normalization
|
|
117
|
-
- you want client-side integration concerns separated from the Codex runtime boundary
|
|
113
|
+
Prefer **[a2a-client-hub](https://github.com/liujuanjuan1984/a2a-client-hub)** when you need a broader application-facing integration layer or higher-level A2A consumption (see [Ecosystem](#ecosystem) for details).
|
|
118
114
|
|
|
119
115
|
Look elsewhere if:
|
|
120
116
|
|
|
@@ -154,6 +150,25 @@ The normative compatibility split and deployment model live in [Compatibility Gu
|
|
|
154
150
|
- [External Conformance Experiments](docs/conformance.md) Manual A2A TCK experiment entrypoint and triage workflow.
|
|
155
151
|
- [Security Policy](SECURITY.md) Threat model, deployment caveats, and vulnerability disclosure guidance.
|
|
156
152
|
|
|
153
|
+
## Ecosystem
|
|
154
|
+
|
|
155
|
+
`codex-a2a` is part of a growing landscape of A2A-compliant projects. Depending on your architecture, you may find these related projects useful:
|
|
156
|
+
|
|
157
|
+
### Foundations (Upstream)
|
|
158
|
+
|
|
159
|
+
- **[Intelligent-Internet/a2a-python](https://github.com/Intelligent-Internet/a2a-python)**: The core protocol implementation and SDK used by this adapter.
|
|
160
|
+
- **Codex**: The underlying local agent runtime (Proprietary).
|
|
161
|
+
|
|
162
|
+
### Gateways & Hubs (Vertical Integration)
|
|
163
|
+
|
|
164
|
+
- **[liujuanjuan1984/a2a-client-hub](https://github.com/liujuanjuan1984/a2a-client-hub)**: An application-facing integration layer that consumes A2A-compliant instances (like `codex-a2a`) and provides higher-level normalization.
|
|
165
|
+
- **[jinyitao123/a2a-gateway](https://github.com/jinyitao123/a2a-gateway)**: Operates at the protocol-bridging layer, sitting between agent platforms and the A2A/MCP ecosystem to handle discovery and routing.
|
|
166
|
+
|
|
167
|
+
### Alternative Implementations & Runtimes (Horizontal Differences)
|
|
168
|
+
|
|
169
|
+
- **[Intelligent-Internet/opencode-a2a](https://github.com/Intelligent-Internet/opencode-a2a)**: A complementary Python runtime implementation that shares similar protocol patterns and output negotiation practices.
|
|
170
|
+
- **[MyPrototypeWhat/codex-a2a](https://github.com/MyPrototypeWhat/codex-a2a)**: A lightweight **TypeScript** Express middleware implementation. Ideal for developers looking for in-process SDK integration within a Node.js environment.
|
|
171
|
+
|
|
157
172
|
## Development
|
|
158
173
|
|
|
159
174
|
For contributor workflow, validation, release handling, and helper scripts, see [Contributing Guide](CONTRIBUTING.md) and [Scripts Reference](scripts/README.md). Use that workflow to create a PR from the working branch and merge into `main` after human review.
|
|
@@ -191,7 +191,7 @@ Use the grouped sections below as the deployment-first reading order:
|
|
|
191
191
|
- `A2A_DATABASE_URL` also owns the adapter-managed runtime-state schema lifecycle. On startup, `codex-a2a` auto-creates the runtime-state tables, records a schema version for the `runtime_state` scope, and applies in-place migrations for those tables only.
|
|
192
192
|
- The adapter-managed runtime-state schema is limited to `a2a_session_bindings`, `a2a_session_owners`, `a2a_pending_session_claims`, `a2a_pending_interrupt_requests`, and `a2a_schema_version`. It does not own the A2A SDK task-store tables or any upstream Codex/provider-local state.
|
|
193
193
|
- For deployment-specific durability constraints and migration-scope boundaries, see [compatibility.md](./compatibility.md).
|
|
194
|
-
- `A2A_LOG_LEVEL`: `DEBUG/INFO/WARNING/ERROR`, default `
|
|
194
|
+
- `A2A_LOG_LEVEL`: `DEBUG/INFO/WARNING/ERROR`, default `WARNING`
|
|
195
195
|
- `A2A_LOG_PAYLOADS`: log A2A/Codex payload bodies, default `false`
|
|
196
196
|
- `A2A_LOG_BODY_LIMIT`: payload log body size limit, default `0` (no truncation)
|
|
197
197
|
- `A2A_TITLE`: agent name, default `Codex A2A`
|
|
@@ -438,7 +438,7 @@ This path is for contributors. End users should prefer the released CLI path des
|
|
|
438
438
|
- `mention.path` and `skill.path` are forwarded verbatim. The service does not guess app or plugin identifiers from display names.
|
|
439
439
|
- `local_image` is not part of the current declared stable rich-input contract.
|
|
440
440
|
- Session query projections currently use the upstream Codex `session_id` as the A2A `contextId`. This is intentional for the current deployment model: `contextId` and `metadata.shared.session.id` refer to the same upstream session identity, and the contract declares that equality explicitly.
|
|
441
|
-
-
|
|
441
|
+
- Completed chat turns are persisted as `completed`; `input-required` is reserved for active interrupt asks that still need a reply.
|
|
442
442
|
- Non-streaming requests return a `Task` directly.
|
|
443
443
|
- Non-streaming `message:send` responses may include normalized token usage at `Task.metadata.shared.usage` with the same field schema.
|
|
444
444
|
- `tasks/resubscribe` remains part of the core A2A method baseline, but this deployment's terminal-task replay-once policy is a declared service-level behavior rather than a generic A2A guarantee.
|
|
@@ -64,10 +64,3 @@ def build_agent_card_request_kwargs(config: A2AClientConfig) -> dict[str, Any]:
|
|
|
64
64
|
key: str(value) for key, value in config.default_headers.items() if value is not None
|
|
65
65
|
}
|
|
66
66
|
return http_kwargs
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
__all__ = [
|
|
70
|
-
"AgentCardEndpoint",
|
|
71
|
-
"build_agent_card_request_kwargs",
|
|
72
|
-
"resolve_agent_card_endpoint",
|
|
73
|
-
]
|
|
@@ -330,7 +330,7 @@ class Settings(BaseSettings):
|
|
|
330
330
|
a2a_enable_turn_control: bool = Field(default=True, alias="A2A_ENABLE_TURN_CONTROL")
|
|
331
331
|
a2a_enable_review_control: bool = Field(default=False, alias="A2A_ENABLE_REVIEW_CONTROL")
|
|
332
332
|
a2a_enable_exec_control: bool = Field(default=False, alias="A2A_ENABLE_EXEC_CONTROL")
|
|
333
|
-
a2a_log_level: str = Field(default="
|
|
333
|
+
a2a_log_level: str = Field(default="WARNING", alias="A2A_LOG_LEVEL")
|
|
334
334
|
a2a_log_payloads: bool = Field(default=False, alias="A2A_LOG_PAYLOADS")
|
|
335
335
|
a2a_log_body_limit: int = Field(default=0, alias="A2A_LOG_BODY_LIMIT")
|
|
336
336
|
a2a_documentation_url: str | None = Field(default=None, alias="A2A_DOCUMENTATION_URL")
|