opencode-a2a 0.5.1__tar.gz → 0.6.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.
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/.gitignore +1 -0
- opencode_a2a-0.6.0/CODE_OF_CONDUCT.md +29 -0
- {opencode_a2a-0.5.1/src/opencode_a2a.egg-info → opencode_a2a-0.6.0}/PKG-INFO +6 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/README.md +5 -0
- opencode_a2a-0.6.0/SUPPORT.md +26 -0
- opencode_a2a-0.6.0/docs/extension-specifications.md +122 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/docs/guide.md +387 -28
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/client.py +78 -3
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/config.py +81 -0
- opencode_a2a-0.6.0/src/opencode_a2a/client/polling.py +68 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/config.py +11 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/contracts/extensions.py +549 -47
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/executor.py +93 -24
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/request_context.py +8 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/session_manager.py +12 -2
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/stream_runtime.py +6 -1
- opencode_a2a-0.6.0/src/opencode_a2a/invocation.py +30 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/application.py +238 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/dispatch.py +211 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/jsonrpc/error_responses.py +23 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/__init__.py +1 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/common.py +351 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/interrupt_callbacks.py +223 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/interrupt_queries.py +64 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/provider_discovery.py +154 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/session_control.py +272 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/session_lifecycle.py +572 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/session_queries.py +176 -0
- opencode_a2a-0.6.0/src/opencode_a2a/jsonrpc/handlers/workspace_control.py +239 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/jsonrpc/methods.py +141 -5
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/jsonrpc/params.py +132 -2
- opencode_a2a-0.6.0/src/opencode_a2a/opencode_upstream_client.py +893 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/parts/mapping.py +1 -9
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/profile/runtime.py +22 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/runtime_state.py +2 -0
- opencode_a2a-0.6.0/src/opencode_a2a/server/agent_card.py +568 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/server/application.py +116 -3
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/server/openapi.py +254 -4
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/server/request_parsing.py +11 -3
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/server/state_store.py +96 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0/src/opencode_a2a.egg-info}/PKG-INFO +6 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a.egg-info/SOURCES.txt +20 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/client/test_client_config.py +20 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/client/test_client_facade.py +126 -1
- opencode_a2a-0.6.0/tests/client/test_polling.py +33 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/config/test_settings.py +6 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/contracts/test_extension_contract_consistency.py +80 -3
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_agent_errors.py +98 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_metrics.py +2 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_opencode_agent_session_binding.py +147 -2
- opencode_a2a-0.6.0/tests/execution/test_session_lock_lifecycle.py +33 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_streaming_output_contract_interrupts.py +13 -0
- opencode_a2a-0.6.0/tests/jsonrpc/test_dispatch_registry.py +126 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/test_error_responses.py +23 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/test_jsonrpc_params.py +55 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/test_opencode_session_extension_commands.py +34 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/test_opencode_session_extension_interrupts.py +81 -6
- opencode_a2a-0.6.0/tests/jsonrpc/test_opencode_session_extension_lifecycle.py +373 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/test_opencode_session_extension_prompt_async.py +83 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/test_opencode_session_extension_queries.py +388 -1
- opencode_a2a-0.6.0/tests/jsonrpc/test_opencode_workspace_control_extension.py +199 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/profile/test_profile_runtime.py +6 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_a2a_client_manager.py +7 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_agent_card.py +320 -16
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_app_behaviors.py +30 -5
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_database_app_persistence.py +42 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_state_store.py +63 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_transport_contract.py +98 -0
- opencode_a2a-0.6.0/tests/support/helpers.py +832 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/support/streaming_output.py +12 -1
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/upstream/test_opencode_upstream_client_params.py +327 -3
- opencode_a2a-0.5.1/src/opencode_a2a/jsonrpc/application.py +0 -924
- opencode_a2a-0.5.1/src/opencode_a2a/opencode_upstream_client.py +0 -497
- opencode_a2a-0.5.1/src/opencode_a2a/server/agent_card.py +0 -288
- opencode_a2a-0.5.1/tests/support/helpers.py +0 -397
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/.github/workflows/ci.yml +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/.github/workflows/dependency-health.yml +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/.github/workflows/publish.yml +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/.pre-commit-config.yaml +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/.secrets.baseline +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/AGENTS.md +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/CONTRIBUTING.md +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/LICENSE +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/SECURITY.md +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/pyproject.toml +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/scripts/README.md +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/scripts/check_coverage.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/scripts/dependency_health.sh +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/scripts/doctor.sh +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/scripts/health_common.sh +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/scripts/lint.sh +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/scripts/smoke_test_built_cli.sh +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/setup.cfg +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/cli.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/agent_card.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/auth.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/error_mapping.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/errors.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/payload_text.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/client/request_context.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/contracts/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/event_helpers.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/stream_events.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/stream_state.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/tool_error_mapping.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/execution/upstream_error_translator.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/jsonrpc/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/parts/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/parts/text.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/profile/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/sandbox_policy.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/server/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/server/task_store.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a/upstream_taxonomy.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a.egg-info/dependency_links.txt +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a.egg-info/entry_points.txt +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a.egg-info/requires.txt +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/src/opencode_a2a.egg-info/top_level.txt +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/client/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/client/test_agent_card.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/client/test_error_mapping.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/client/test_payload_text.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/client/test_request_context.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/config/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/conftest.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/contracts/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_agent_helpers.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_cancellation.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_directory_validation.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_multipart_input.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_session_ownership.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_streaming_output_contract_blocks.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_streaming_output_contract_core.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/execution/test_streaming_output_contract_logging.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/test_jsonrpc_methods.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/jsonrpc/test_jsonrpc_unsupported_method.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/package/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/package/test_version.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/parts/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/parts/test_parts_text.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/profile/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/scripts/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/scripts/test_script_health_contract.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_call_context_builder.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_cancel_contract.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_cli.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/server/test_task_store_factory.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/support/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/support/session_extensions.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/tests/upstream/__init__.py +0 -0
- {opencode_a2a-0.5.1 → opencode_a2a-0.6.0}/uv.lock +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
This project expects respectful, technically focused collaboration.
|
|
4
|
+
|
|
5
|
+
## Expected Behavior
|
|
6
|
+
|
|
7
|
+
- Assume good intent and communicate directly.
|
|
8
|
+
- Keep discussions specific, evidence-based, and relevant to the repository.
|
|
9
|
+
- Use welcoming language in public issues, pull requests, and review comments.
|
|
10
|
+
- Respect maintainers' time by providing reproducible reports and clear context.
|
|
11
|
+
|
|
12
|
+
## Unacceptable Behavior
|
|
13
|
+
|
|
14
|
+
- Harassment, discrimination, or personal attacks.
|
|
15
|
+
- Doxxing, threats, or sustained hostile behavior.
|
|
16
|
+
- Repeated spam, bad-faith disruption, or intentionally misleading reports.
|
|
17
|
+
- Sharing secrets, tokens, or private data in public threads.
|
|
18
|
+
|
|
19
|
+
## Reporting
|
|
20
|
+
|
|
21
|
+
For normal collaboration problems, open an issue or discussion with enough
|
|
22
|
+
context to review the situation. For security-sensitive or private concerns,
|
|
23
|
+
follow the disclosure path in [SECURITY.md](SECURITY.md).
|
|
24
|
+
|
|
25
|
+
## Enforcement
|
|
26
|
+
|
|
27
|
+
Repository maintainers may edit, hide, lock, or remove content that violates
|
|
28
|
+
this policy, and may restrict participation when needed to keep collaboration
|
|
29
|
+
safe and productive.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opencode-a2a
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: OpenCode A2A runtime
|
|
5
5
|
Author: liujuanjuan1984@Intelligent-Internet
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -114,6 +114,7 @@ Then start `opencode-a2a` against that upstream:
|
|
|
114
114
|
```bash
|
|
115
115
|
A2A_BEARER_TOKEN=dev-token \
|
|
116
116
|
OPENCODE_BASE_URL=http://127.0.0.1:4096 \
|
|
117
|
+
A2A_TASK_STORE_DATABASE_URL=sqlite+aiosqlite:///./opencode-a2a.db \
|
|
117
118
|
A2A_HOST=127.0.0.1 \
|
|
118
119
|
A2A_PORT=8000 \
|
|
119
120
|
A2A_PUBLIC_URL=http://127.0.0.1:8000 \
|
|
@@ -132,6 +133,8 @@ curl http://127.0.0.1:8000/.well-known/agent-card.json
|
|
|
132
133
|
- A2A HTTP+JSON endpoints such as `/v1/message:send` and
|
|
133
134
|
`/v1/message:stream`
|
|
134
135
|
- A2A JSON-RPC support on `POST /`
|
|
136
|
+
- SDK-owned A2A task surfaces such as `GET /v1/tasks`, task push notification
|
|
137
|
+
config routes, and JSON-RPC `agent/getAuthenticatedExtendedCard`
|
|
135
138
|
- Peering capabilities: can act as a client via `opencode-a2a call`
|
|
136
139
|
- Autonomous tool execution: supports `a2a_call` tool for outbound agent-to-agent communication
|
|
137
140
|
- SSE streaming with normalized `text`, `reasoning`, and `tool_call` blocks
|
|
@@ -213,6 +216,8 @@ Read before deployment:
|
|
|
213
216
|
|
|
214
217
|
- [SECURITY.md](SECURITY.md)
|
|
215
218
|
- [docs/guide.md](docs/guide.md)
|
|
219
|
+
- [SUPPORT.md](SUPPORT.md)
|
|
220
|
+
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
|
|
216
221
|
|
|
217
222
|
## Further Reading
|
|
218
223
|
|
|
@@ -73,6 +73,7 @@ Then start `opencode-a2a` against that upstream:
|
|
|
73
73
|
```bash
|
|
74
74
|
A2A_BEARER_TOKEN=dev-token \
|
|
75
75
|
OPENCODE_BASE_URL=http://127.0.0.1:4096 \
|
|
76
|
+
A2A_TASK_STORE_DATABASE_URL=sqlite+aiosqlite:///./opencode-a2a.db \
|
|
76
77
|
A2A_HOST=127.0.0.1 \
|
|
77
78
|
A2A_PORT=8000 \
|
|
78
79
|
A2A_PUBLIC_URL=http://127.0.0.1:8000 \
|
|
@@ -91,6 +92,8 @@ curl http://127.0.0.1:8000/.well-known/agent-card.json
|
|
|
91
92
|
- A2A HTTP+JSON endpoints such as `/v1/message:send` and
|
|
92
93
|
`/v1/message:stream`
|
|
93
94
|
- A2A JSON-RPC support on `POST /`
|
|
95
|
+
- SDK-owned A2A task surfaces such as `GET /v1/tasks`, task push notification
|
|
96
|
+
config routes, and JSON-RPC `agent/getAuthenticatedExtendedCard`
|
|
94
97
|
- Peering capabilities: can act as a client via `opencode-a2a call`
|
|
95
98
|
- Autonomous tool execution: supports `a2a_call` tool for outbound agent-to-agent communication
|
|
96
99
|
- SSE streaming with normalized `text`, `reasoning`, and `tool_call` blocks
|
|
@@ -172,6 +175,8 @@ Read before deployment:
|
|
|
172
175
|
|
|
173
176
|
- [SECURITY.md](SECURITY.md)
|
|
174
177
|
- [docs/guide.md](docs/guide.md)
|
|
178
|
+
- [SUPPORT.md](SUPPORT.md)
|
|
179
|
+
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
|
|
175
180
|
|
|
176
181
|
## Further Reading
|
|
177
182
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Support
|
|
2
|
+
|
|
3
|
+
## When To Open An Issue
|
|
4
|
+
|
|
5
|
+
Open a GitHub issue when you can provide:
|
|
6
|
+
|
|
7
|
+
- a clear problem statement
|
|
8
|
+
- the command, request, or configuration involved
|
|
9
|
+
- expected behavior versus actual behavior
|
|
10
|
+
- relevant logs or payload snippets with secrets removed
|
|
11
|
+
|
|
12
|
+
## Before You Ask
|
|
13
|
+
|
|
14
|
+
- Read [README.md](README.md) for scope and deployment expectations.
|
|
15
|
+
- Read [docs/guide.md](docs/guide.md) for protocol contracts and examples.
|
|
16
|
+
- Read [SECURITY.md](SECURITY.md) before reporting auth, deployment, or secret-related concerns.
|
|
17
|
+
|
|
18
|
+
## Security Concerns
|
|
19
|
+
|
|
20
|
+
Do not post active secrets, bearer tokens, or sensitive workspace data in a
|
|
21
|
+
public issue. Use the disclosure guidance in [SECURITY.md](SECURITY.md).
|
|
22
|
+
|
|
23
|
+
## Commercial Or SLA Support
|
|
24
|
+
|
|
25
|
+
This repository does not currently advertise a separate SLA or managed support
|
|
26
|
+
channel. GitHub issues are the default public support path.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Extension Specifications
|
|
2
|
+
|
|
3
|
+
This document is the stable specification surface referenced by the extension
|
|
4
|
+
URIs published in the Agent Card.
|
|
5
|
+
It is intentionally a compact URI/spec index, not the main consumer guide. For
|
|
6
|
+
runtime behavior, request/response examples, and client integration guidance,
|
|
7
|
+
see [`guide.md`](./guide.md).
|
|
8
|
+
|
|
9
|
+
## SDK Compatibility Note
|
|
10
|
+
|
|
11
|
+
The current A2A prose specification references an extended-card availability
|
|
12
|
+
flag as `AgentCard.capabilities.extendedAgentCard` in some sections.
|
|
13
|
+
|
|
14
|
+
The current official JSON schema and SDK types expose the supported field as
|
|
15
|
+
top-level `supportsAuthenticatedExtendedCard`.
|
|
16
|
+
|
|
17
|
+
`opencode-a2a` follows the shipped JSON schema and SDK surface, so Agent Card
|
|
18
|
+
payloads emitted by this project use `supportsAuthenticatedExtendedCard`.
|
|
19
|
+
|
|
20
|
+
## Shared Session Binding v1
|
|
21
|
+
|
|
22
|
+
URI:
|
|
23
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#shared-session-binding-v1`
|
|
24
|
+
|
|
25
|
+
- Scope: shared A2A request metadata for rebinding to an existing upstream session
|
|
26
|
+
- Public Agent Card: capability declaration plus minimal routing metadata
|
|
27
|
+
- Authenticated extended card: full profile, notes, and detailed contract metadata
|
|
28
|
+
- Runtime field: `metadata.shared.session.id`
|
|
29
|
+
|
|
30
|
+
## Shared Model Selection v1
|
|
31
|
+
|
|
32
|
+
URI:
|
|
33
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#shared-model-selection-v1`
|
|
34
|
+
|
|
35
|
+
- Scope: shared request-scoped model override on the main chat path
|
|
36
|
+
- Public Agent Card: capability declaration plus required metadata fields
|
|
37
|
+
- Authenticated extended card: full profile, notes, and detailed contract metadata
|
|
38
|
+
- Runtime field: `metadata.shared.model`
|
|
39
|
+
|
|
40
|
+
## Shared Stream Hints v1
|
|
41
|
+
|
|
42
|
+
URI:
|
|
43
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#shared-stream-hints-v1`
|
|
44
|
+
|
|
45
|
+
- Scope: shared canonical metadata for block, usage, interrupt, and session hints
|
|
46
|
+
- Public Agent Card: metadata roots plus the minimum discoverability fields for
|
|
47
|
+
block identity, progress status, interrupt lifecycle, session identity, and
|
|
48
|
+
basic token usage
|
|
49
|
+
- Authenticated extended card: full shared stream contract including detailed
|
|
50
|
+
block payload mappings and extended usage metadata
|
|
51
|
+
- Runtime fields: `metadata.shared.stream`, `metadata.shared.usage`,
|
|
52
|
+
`metadata.shared.interrupt`, `metadata.shared.session`
|
|
53
|
+
|
|
54
|
+
## OpenCode Session Query v1
|
|
55
|
+
|
|
56
|
+
URI:
|
|
57
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#opencode-session-query-v1`
|
|
58
|
+
|
|
59
|
+
- Scope: provider-private OpenCode session lifecycle, history, and low-risk control methods
|
|
60
|
+
- Public Agent Card: capability declaration only
|
|
61
|
+
- Authenticated extended card: full method matrix, pagination rules, errors, and context semantics
|
|
62
|
+
- Transport: A2A JSON-RPC extension methods
|
|
63
|
+
|
|
64
|
+
## OpenCode Provider Discovery v1
|
|
65
|
+
|
|
66
|
+
URI:
|
|
67
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#opencode-provider-discovery-v1`
|
|
68
|
+
|
|
69
|
+
- Scope: provider-private provider and model discovery methods
|
|
70
|
+
- Public Agent Card: capability declaration only
|
|
71
|
+
- Authenticated extended card: full method contracts, error surface, and routing metadata
|
|
72
|
+
- Transport: A2A JSON-RPC extension methods
|
|
73
|
+
|
|
74
|
+
## Shared Interactive Interrupt v1
|
|
75
|
+
|
|
76
|
+
URI:
|
|
77
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#shared-interactive-interrupt-v1`
|
|
78
|
+
|
|
79
|
+
- Scope: shared interrupt callback reply methods
|
|
80
|
+
- Public Agent Card: capability declaration, supported interrupt events, and request ID field
|
|
81
|
+
- Authenticated extended card: full callback contract, errors, and routing metadata
|
|
82
|
+
- Transport: A2A JSON-RPC extension methods
|
|
83
|
+
|
|
84
|
+
## OpenCode Interrupt Recovery v1
|
|
85
|
+
|
|
86
|
+
URI:
|
|
87
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#opencode-interrupt-recovery-v1`
|
|
88
|
+
|
|
89
|
+
- Scope: provider-private recovery methods for pending local interrupt bindings
|
|
90
|
+
- Public Agent Card: capability declaration only
|
|
91
|
+
- Authenticated extended card: full method contracts, error surface, and local-registry notes
|
|
92
|
+
- Transport: A2A JSON-RPC extension methods
|
|
93
|
+
|
|
94
|
+
## OpenCode Workspace Control v1
|
|
95
|
+
|
|
96
|
+
URI:
|
|
97
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#opencode-workspace-control-v1`
|
|
98
|
+
|
|
99
|
+
- Scope: provider-private project, workspace, and worktree control-plane methods
|
|
100
|
+
- Public Agent Card: capability declaration only
|
|
101
|
+
- Authenticated extended card: full method contracts, error surface, and routing notes
|
|
102
|
+
- Transport: A2A JSON-RPC extension methods
|
|
103
|
+
|
|
104
|
+
## A2A Compatibility Profile v1
|
|
105
|
+
|
|
106
|
+
URI:
|
|
107
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#a2a-compatibility-profile-v1`
|
|
108
|
+
|
|
109
|
+
- Scope: compatibility profile describing core baselines, extension retention, and service behaviors
|
|
110
|
+
- Public Agent Card: capability declaration only
|
|
111
|
+
- Authenticated extended card: full compatibility profile payload
|
|
112
|
+
- Transport: Agent Card extension params
|
|
113
|
+
|
|
114
|
+
## A2A Wire Contract v1
|
|
115
|
+
|
|
116
|
+
URI:
|
|
117
|
+
`https://github.com/Intelligent-Internet/opencode-a2a/blob/main/docs/extension-specifications.md#a2a-wire-contract-v1`
|
|
118
|
+
|
|
119
|
+
- Scope: wire-level contract for supported methods, endpoints, and error semantics
|
|
120
|
+
- Public Agent Card: capability declaration only
|
|
121
|
+
- Authenticated extended card: full wire contract payload
|
|
122
|
+
- Transport: Agent Card extension params
|