asap-protocol 2.5.7__tar.gz → 2.5.9__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.
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/CHANGELOG.md +128 -6
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/PKG-INFO +20 -26
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/README.md +11 -17
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/pyproject.toml +38 -18
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/__init__.py +1 -1
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/.gitignore +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/LICENSE +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/entities/agent.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/entities/artifact.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/entities/conversation.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/entities/manifest.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/entities/message.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/entities/state_snapshot.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/entities/task.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/envelope.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/examples/shellclaw-jetson-capabilities.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/parts/data_part.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/parts/file_part.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/parts/resource_part.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/parts/template_part.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/parts/text_part.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/artifact_notify.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/mcp_resource_data.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/mcp_tool_call.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/mcp_tool_result.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/message_send.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/state_query.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/state_restore.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/task_cancel.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/task_request.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/task_response.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/payloads/task_update.schema.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/mcp/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/mcp/auth_middleware.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/mcp/capability_map.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/mcp/config.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/mcp/errors.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/mcp/jwt_extractor.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/mcp/protected_server.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/openapi/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/openapi/approval.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/openapi/capability_mapper.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/openapi/factory.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/openapi/handler.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/adapters/openapi/spec_loader.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/_scope_parse.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/agent_jwt.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/agent_jwt_session.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/approval.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/capabilities.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/identity.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/introspection.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/jti_replay_cache.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/jwks.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/middleware.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/oauth2.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/oidc.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/scopes.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/self_auth.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/webauthn.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/auth/webauthn_store.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/_compat.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/audit_export.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/compliance_check.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/delegation.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/keys.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/manifest.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/repl.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/schemas.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/cli/trace.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/client/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/client/cache.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/client/http_client.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/client/market.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/client/revocation.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/client/trust.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/crypto/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/crypto/keys.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/crypto/models.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/crypto/signing.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/crypto/trust.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/crypto/trust_levels.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/discovery/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/discovery/dnssd.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/discovery/health.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/discovery/registry.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/discovery/validation.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/discovery/wellknown.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/audit.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/delegation.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/delegation_storage.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/hooks.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/metering.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/sla.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/sla_storage.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/economics/storage.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/errors.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/README.md +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/a2h_approval.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/agent_failover.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/auth_patterns.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/coordinator.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/echo_agent.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/error_recovery.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/long_running.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/mcp_client_demo.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/mcp_integration.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/multi_step_workflow.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/orchestration.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/rate_limiting.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/run_demo.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/secure_agent.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/secure_handler.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/state_migration.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/storage_backends.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/streaming_agent.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/streaming_response.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/v1_3_0_showcase.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/examples/v1_4_0_showcase.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/handlers/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/handlers/hitl.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/_base.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/a2h.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/crewai.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/langchain.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/llamaindex.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/openclaw.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/pydanticai.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/smolagents.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/integrations/vercel_ai.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/auth/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/auth/auth_middleware.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/auth/capability_map.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/auth/config.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/auth/errors.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/auth/jwt_extractor.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/auth/protected_server.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/client.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/protocol.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/serve.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/server.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/mcp/server_runner.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/base.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/constants.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/entities.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/enums.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/envelope.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/ids.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/parts.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/payloads.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/types.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/models/validators.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/dashboards/README.md +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/dashboards/asap-detailed.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/dashboards/asap-red.json +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/logging.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/metrics.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/trace_parser.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/trace_ui.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/observability/tracing.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/registry/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/registry/anti_spam.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/registry/auto_registration.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/registry/bot_pr.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/registry/receipt_cache.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/schemas.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/machine.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/metering.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/snapshot.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/stores/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/stores/_sqlite_base.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/stores/_sync_bridge.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/stores/memory.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/state/stores/sqlite.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/testing/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/testing/asgi_factory.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/testing/assertions.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/testing/compliance.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/testing/fixtures.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/testing/mocks.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/_auth_helpers.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/_request_handler.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/_state_deps.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/agent_routes.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/cache.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/capability_routes.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/challenge.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/circuit_breaker.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/client/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/client/_core.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/client/_discovery.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/client/_helpers.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/client/_send.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/compression.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/delegation_api.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/errors.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/escalation_routes.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/executors.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/handlers.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/jsonrpc.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/lambda_codec.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/middleware.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/mtls.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/rate_limit.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/routes/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/routes/audit.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/routes/health.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/routes/jsonrpc.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/routes/websocket.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/server.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/sla_api.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/usage_api.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/validators.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/webhook.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/websocket.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/_ack.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/_actions.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/_dispatch.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/_errors.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/_recv.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/client.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/codecs.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/pool.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/transport/ws/server.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/utils/__init__.py +0 -0
- {asap_protocol-2.5.7 → asap_protocol-2.5.9}/src/asap/utils/sanitization.py +0 -0
|
@@ -16,12 +16,132 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
+
## [2.5.9] - 2026-10-23
|
|
20
|
+
|
|
21
|
+
**Security & CI patch** — promote `development` onto `main` after v2.5.8.
|
|
22
|
+
Dependency floors, the `security (web)` job, and regression fences. This is
|
|
23
|
+
**not** Formal Spec & Interop. npm `@asap-protocol/*` packages remain at
|
|
24
|
+
**2.4.1**. PyPI `asap-compliance` remains **1.3.0**.
|
|
25
|
+
Tag [`v2.5.9`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.9)
|
|
26
|
+
· PyPI `asap-protocol==2.5.9`.
|
|
27
|
+
|
|
28
|
+
### Security
|
|
29
|
+
|
|
30
|
+
- **Direct floors** — `brotli>=1.2.1` (PYSEC-2026-4322 / GHSA-9v8h-qqgm-4m35)
|
|
31
|
+
and `opentelemetry-api>=1.45.1` (CVE-2026-114603), with the matching SDK,
|
|
32
|
+
exporter, and instrumentation releases. These are published requirements.
|
|
33
|
+
- **Repository uv overrides** — `fastmcp>=3.4.10,<4` (lock 3.4.11,
|
|
34
|
+
GHSA-7xgj-8392-5q4r) and `setuptools>=84.1.0` (lock 84.2.1,
|
|
35
|
+
GHSA-xmj3-9gf7-h52w). Another project's `pip install asap-protocol==2.5.9`
|
|
36
|
+
does not apply these pins.
|
|
37
|
+
- **`apps/web` `fast-uri`** — override `^3.1.9` (GHSA-w74x-v6f9-j3xg and the other 3.1.8 advisories).
|
|
38
|
+
- **`apps/web`** — Next.js and `eslint-config-next` **16.4.3**
|
|
39
|
+
(GHSA-2464-fhr4-w9xw, GHSA-p3m5-59mp-jv5r, GHSA-673q-mjm6-r5xr), `zod`
|
|
40
|
+
**4.6.7** (GHSA-mrhx-c7xc-m3w5), `shadcn` **4.22.1**, and `body-parser`
|
|
41
|
+
**^2.4.0** (GHSA-27r3-jxmh-p828). These pins are this repository's web
|
|
42
|
+
app, not PyPI requirements
|
|
43
|
+
([#425](https://github.com/asap-protocol/asap-protocol/pull/425),
|
|
44
|
+
[#426](https://github.com/asap-protocol/asap-protocol/pull/426)).
|
|
45
|
+
|
|
46
|
+
### CI
|
|
47
|
+
|
|
48
|
+
- **One diff base** — the path filter and Prettier share `base_sha`. Pull
|
|
49
|
+
requests use `merge-base`. `quality (web)` checks out the pull-request
|
|
50
|
+
head. An empty base fails the format step
|
|
51
|
+
([#425](https://github.com/asap-protocol/asap-protocol/pull/425)).
|
|
52
|
+
- **Stack jobs** — unchanged stacks are skipped; a failed `changes` job
|
|
53
|
+
still runs the suite
|
|
54
|
+
([#420](https://github.com/asap-protocol/asap-protocol/pull/420)).
|
|
55
|
+
- **Coverage** — collected in the parallel test run. `serial_mcp` stays out
|
|
56
|
+
of xdist and is appended with `--cov-append`. The coverage job enforces
|
|
57
|
+
`--fail-under=85`
|
|
58
|
+
([#419](https://github.com/asap-protocol/asap-protocol/pull/419)).
|
|
59
|
+
- **`security (web)`** — npm audits for `apps/web` live in their own job.
|
|
60
|
+
Protect main requires it.
|
|
61
|
+
|
|
62
|
+
### Quality
|
|
63
|
+
|
|
64
|
+
- **Auth, billing, and registry fences (#423)** — identity binding, keys,
|
|
65
|
+
delegation allow-list and reissue, metering windows, usage intervals,
|
|
66
|
+
registry IO, batch, auth helpers, and circuit-open refresh.
|
|
67
|
+
- **SLA and JWT fences (#426)** — oldest SLA timestamp on memory and SQLite,
|
|
68
|
+
legacy `alg: EdDSA` plus a real signature flip, and host/agent
|
|
69
|
+
`alg: Ed25519`.
|
|
70
|
+
|
|
71
|
+
### Migration
|
|
72
|
+
|
|
73
|
+
- **v2.5.8 → v2.5.9**: See [migration guide](docs/migration.md#upgrading-from-v258-to-v259).
|
|
74
|
+
No wire-protocol or manifest schema breaking changes. Installs pick up
|
|
75
|
+
`brotli>=1.2.1` and `opentelemetry-api>=1.45.1`.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## [2.5.8] - 2026-10-21
|
|
80
|
+
|
|
81
|
+
**Security & coverage patch** — record the repository dependency overrides
|
|
82
|
+
and regression tests that landed on `main` after v2.5.7 via
|
|
83
|
+
[#413](https://github.com/asap-protocol/asap-protocol/pull/413)–[#417](https://github.com/asap-protocol/asap-protocol/pull/417).
|
|
84
|
+
This is **not** Formal Spec & Interop. npm `@asap-protocol/*` packages remain
|
|
85
|
+
at **2.4.1**. PyPI `asap-compliance` remains **1.3.0**.
|
|
86
|
+
Tag [`v2.5.8`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.8)
|
|
87
|
+
· PyPI `asap-protocol==2.5.8`.
|
|
88
|
+
|
|
89
|
+
### Security
|
|
90
|
+
|
|
91
|
+
- **Repository uv overrides and `[mcp]` extra (#413)** —
|
|
92
|
+
``[tool.uv] override-dependencies`` pins ``aiohttp>=3.14.4,<4``
|
|
93
|
+
(CVE-2026-111063 and related), ``certifi>=2026.10.19`` (PYSEC-2026-4320),
|
|
94
|
+
and ``pillow>=13.0.0`` (CVE-2026-112395 / 112397 / 112400 / 112404 /
|
|
95
|
+
112895 / 112896 / 112897 / 112899). Those overrides apply in this
|
|
96
|
+
repository. They are not requirements of the published wheel. The
|
|
97
|
+
optional ``[mcp]`` extra requires ``mcp>=1.30.0,<2`` (CVE-2026-59951).
|
|
98
|
+
- **`apps/web` Vite (#413)** — npm override pins ``vite`` to ``8.1.6``
|
|
99
|
+
(GHSA-587h-7wmj-h5pm and the other launch-editor advisories on Vite
|
|
100
|
+
8.0.0–8.1.5). This pin is the web app in this repository, not a PyPI
|
|
101
|
+
requirement.
|
|
102
|
+
- **`apps/web` audit CI** — ``quality (web)`` installs npm 11.21.0 before
|
|
103
|
+
``npm audit`` and ``audit-ci``. ``audit-ci.jsonc`` sets
|
|
104
|
+
``package-manager`` to ``npm``. npm 10 (Node 20) and pnpm 9 still call
|
|
105
|
+
the retired ``/-/npm/v1/security/audits/quick`` endpoint. Both audit
|
|
106
|
+
steps retry a registry 503 and still fail immediately on a real advisory.
|
|
107
|
+
|
|
108
|
+
### Quality
|
|
109
|
+
|
|
110
|
+
- **Quota, replay, and nonce regression tests (#413)** — webhook partial
|
|
111
|
+
refill, truncated public keys, JTI eviction, nonce expiry, and discovery
|
|
112
|
+
health. Batch ``check_n`` cost shipped in v2.5.7.
|
|
113
|
+
- **Metering, SLA, usage, and delivery regression tests (#414)** — metering
|
|
114
|
+
windows, SLA boundaries, audit queries, the existing one-time
|
|
115
|
+
``delegate_urn`` column add, usage pagination, webhook status band, batch
|
|
116
|
+
size, OpenAPI schema depth, and snapshot-loop edges.
|
|
117
|
+
- **Refresh, cache, and revocation regression tests (#415)** — OAuth refresh
|
|
118
|
+
on the buffer second, introspection cache expiry, discovery and registry
|
|
119
|
+
cache TTL, delegation expiry, ack timeout, revocation of a non-agent URN,
|
|
120
|
+
and dashboard action edges.
|
|
121
|
+
- **Expiry, receipt, and session regression tests (#416)** — receipt reads
|
|
122
|
+
at exact expiry, registration receipts, reactivation lifetime, approval
|
|
123
|
+
deadlines, host JWT skew, scope-claim types, envelope timestamps, and
|
|
124
|
+
compliance preflight edges.
|
|
125
|
+
- **Lifetime and size regression tests (#417)** — verify and reactivate
|
|
126
|
+
lifetime edges, blank IssueOps fields, request and decompressed size caps,
|
|
127
|
+
WebSocket idle and heartbeat fences, and truncated key age
|
|
128
|
+
(``timedelta.days`` inside ``warn_if_key_old``, distinct from the truncated
|
|
129
|
+
public-key fence in #413).
|
|
130
|
+
|
|
131
|
+
### Migration
|
|
132
|
+
|
|
133
|
+
- **v2.5.7 → v2.5.8**: See [migration guide](docs/migration.md#upgrading-from-v257-to-v258).
|
|
134
|
+
No wire-protocol or manifest schema breaking changes. Installs of the
|
|
135
|
+
optional ``[mcp]`` extra now require ``mcp>=1.30.0,<2``.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
19
139
|
## [2.5.7] - 2026-10-11
|
|
20
140
|
|
|
21
141
|
**Quality & coverage patch** — correct batch HTTP rate-limit accounting,
|
|
22
142
|
transitive dependency overrides for CI security gates, `apps/web` audit-ci
|
|
23
143
|
enforcement, and consolidated regression tests on `main` via
|
|
24
|
-
[#
|
|
144
|
+
[#394](https://github.com/asap-protocol/asap-protocol/pull/394)–[#399](https://github.com/asap-protocol/asap-protocol/pull/399).
|
|
25
145
|
This is **not** Formal Spec & Interop. npm `@asap-protocol/*` packages remain
|
|
26
146
|
at **2.4.1**. PyPI `asap-compliance` remains **1.3.0**.
|
|
27
147
|
Tag [`v2.5.7`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.7)
|
|
@@ -37,11 +157,11 @@ Tag [`v2.5.7`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.
|
|
|
37
157
|
|
|
38
158
|
- **Transitive Python deps** — ``uv`` override pins for advisories on optional
|
|
39
159
|
integration paths (``multidict``, ``pydantic-ai``, ``werkzeug``, ``fsspec``)
|
|
40
|
-
so CI ``pip-audit`` stays green ([#
|
|
160
|
+
so CI ``pip-audit`` stays green ([#395](https://github.com/asap-protocol/asap-protocol/pull/395)
|
|
41
161
|
train).
|
|
42
162
|
- **`apps/web` npm audit** — CI uses ``audit-ci`` with ``audit-ci.jsonc``;
|
|
43
163
|
production overrides bump ``sharp`` and ``source-map-js``
|
|
44
|
-
([#
|
|
164
|
+
([#395](https://github.com/asap-protocol/asap-protocol/pull/395) train).
|
|
45
165
|
|
|
46
166
|
### Quality
|
|
47
167
|
|
|
@@ -56,9 +176,11 @@ Tag [`v2.5.7`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.
|
|
|
56
176
|
### Migration
|
|
57
177
|
|
|
58
178
|
- **v2.5.6 → v2.5.7**: See [migration guide](docs/migration.md#upgrading-from-v256-to-v257).
|
|
59
|
-
No wire-protocol or manifest schema breaking changes. Operators
|
|
60
|
-
batch
|
|
61
|
-
|
|
179
|
+
No wire-protocol or manifest schema breaking changes. Operators using
|
|
180
|
+
JSON-RPC batch or other ``check_n`` paths should expect quota to reflect batch
|
|
181
|
+
size; oversized batches that v2.5.6 could accept may now raise
|
|
182
|
+
``RateLimitExceeded`` (intended behavior). With default limits, a batch of 50
|
|
183
|
+
against ``10/second`` can trip in one call.
|
|
62
184
|
|
|
63
185
|
---
|
|
64
186
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: asap-protocol
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.9
|
|
4
4
|
Summary: Async Simple Agent Protocol - A streamlined protocol for agent-to-agent communication
|
|
5
5
|
Project-URL: Homepage, https://github.com/asap-protocol/asap-protocol
|
|
6
6
|
Project-URL: Documentation, https://asap-protocol.github.io/asap-protocol
|
|
@@ -22,7 +22,7 @@ Classifier: Typing :: Typed
|
|
|
22
22
|
Requires-Python: >=3.13
|
|
23
23
|
Requires-Dist: aiosqlite>=0.20
|
|
24
24
|
Requires-Dist: authlib<2,>=1.6.12
|
|
25
|
-
Requires-Dist: brotli>=1.2.
|
|
25
|
+
Requires-Dist: brotli>=1.2.1
|
|
26
26
|
Requires-Dist: cryptography<51,>=50.0.0
|
|
27
27
|
Requires-Dist: fastapi>=0.136.1
|
|
28
28
|
Requires-Dist: httpx[http2]>=0.28.1
|
|
@@ -30,11 +30,11 @@ Requires-Dist: jcs>=0.2.0
|
|
|
30
30
|
Requires-Dist: joserfc<2,>=1.6.7
|
|
31
31
|
Requires-Dist: jsonschema>=4.23.0
|
|
32
32
|
Requires-Dist: limits>=3.0
|
|
33
|
-
Requires-Dist: opentelemetry-api>=1.
|
|
34
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.
|
|
35
|
-
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.
|
|
36
|
-
Requires-Dist: opentelemetry-instrumentation-httpx>=0.
|
|
37
|
-
Requires-Dist: opentelemetry-sdk>=1.
|
|
33
|
+
Requires-Dist: opentelemetry-api>=1.45.1
|
|
34
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.45.1
|
|
35
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.66b1
|
|
36
|
+
Requires-Dist: opentelemetry-instrumentation-httpx>=0.66b1
|
|
37
|
+
Requires-Dist: opentelemetry-sdk>=1.45.1
|
|
38
38
|
Requires-Dist: packaging>=25.0
|
|
39
39
|
Requires-Dist: pydantic<3,>=2.12.5
|
|
40
40
|
Requires-Dist: python-ulid>=3.0
|
|
@@ -47,7 +47,7 @@ Provides-Extra: crewai
|
|
|
47
47
|
Requires-Dist: crewai>=0.80; extra == 'crewai'
|
|
48
48
|
Provides-Extra: dev
|
|
49
49
|
Requires-Dist: asgi-lifespan>=2.1.0; extra == 'dev'
|
|
50
|
-
Requires-Dist: brotli>=1.1
|
|
50
|
+
Requires-Dist: brotli>=1.2.1; extra == 'dev'
|
|
51
51
|
Requires-Dist: fakeredis>=2.26.0; extra == 'dev'
|
|
52
52
|
Requires-Dist: mypy>=1.19.1; extra == 'dev'
|
|
53
53
|
Requires-Dist: pip-audit>=2.7; extra == 'dev'
|
|
@@ -73,7 +73,7 @@ Requires-Dist: langchain-core>=1.3.3; extra == 'langchain'
|
|
|
73
73
|
Provides-Extra: llamaindex
|
|
74
74
|
Requires-Dist: llama-index-core>=0.10; extra == 'llamaindex'
|
|
75
75
|
Provides-Extra: mcp
|
|
76
|
-
Requires-Dist: mcp
|
|
76
|
+
Requires-Dist: mcp<2,>=1.30.0; extra == 'mcp'
|
|
77
77
|
Provides-Extra: openapi
|
|
78
78
|
Requires-Dist: openapi-pydantic>=0.5; extra == 'openapi'
|
|
79
79
|
Provides-Extra: openclaw
|
|
@@ -99,9 +99,9 @@ Description-Content-Type: text/markdown
|
|
|
99
99
|
|
|
100
100
|
> A production-ready protocol for agent-to-agent communication and task coordination.
|
|
101
101
|
|
|
102
|
-
**Quick Info**: [`v2.5.
|
|
102
|
+
**Quick Info**: [`v2.5.9`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.9) · PyPI [`asap-protocol`](https://pypi.org/project/asap-protocol/) | `Apache 2.0` | `Python 3.13+` | [Documentation](docs/index.md) | [Changelog](CHANGELOG.md)
|
|
103
103
|
|
|
104
|
-
> 📦 **Install** — [`asap-protocol` **2.5.
|
|
104
|
+
> 📦 **Install** — [`asap-protocol` **2.5.9** on PyPI](https://pypi.org/project/asap-protocol/) (Python) · [`@asap-protocol/client` on npm](https://www.npmjs.com/package/@asap-protocol/client) (TypeScript)
|
|
105
105
|
|
|
106
106
|
🚀 **Live now** our [**agentic marketplace**](https://asap-protocol.com/) — browse agents, register yours, request verification.
|
|
107
107
|
|
|
@@ -156,16 +156,16 @@ ASAP meets agents where they run — optional Python extras, npm tool bridges, a
|
|
|
156
156
|
We recommend using [uv](https://github.com/astral-sh/uv) for dependency management:
|
|
157
157
|
|
|
158
158
|
```bash
|
|
159
|
-
uv add asap-protocol # latest on PyPI (currently 2.5.
|
|
159
|
+
uv add asap-protocol # latest on PyPI (currently 2.5.9)
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
Or with pip:
|
|
163
163
|
|
|
164
164
|
```bash
|
|
165
|
-
pip install asap-protocol==2.5.
|
|
165
|
+
pip install asap-protocol==2.5.9
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
**TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.
|
|
168
|
+
**TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.9; `@asap-protocol/mcp-auth` HTTP middleware still deferred):
|
|
169
169
|
|
|
170
170
|
- [`@asap-protocol/client`](https://www.npmjs.com/package/@asap-protocol/client) — [SDK docs](docs/sdks/typescript.md)
|
|
171
171
|
- [`@asap-protocol/mastra`](https://www.npmjs.com/package/@asap-protocol/mastra) — [docs](docs/integrations/mastra.md) · [demo](apps/example-mastra/README.md)
|
|
@@ -177,7 +177,7 @@ npm install @asap-protocol/mastra@2.4.1 @asap-protocol/client @mastra/core zod
|
|
|
177
177
|
npm install @asap-protocol/openai-agents@2.4.1 @asap-protocol/client @openai/agents zod
|
|
178
178
|
```
|
|
179
179
|
|
|
180
|
-
**Python v2.5.
|
|
180
|
+
**Python v2.5.9** (security & CI patch) is **shipped** — see [Migration (v2.5.8 → v2.5.9)](docs/migration.md#upgrading-from-v258-to-v259). Dist Loop starters remain: [Build for agents](docs/guides/build-for-agents.md) · [starters](examples/starters/README.md).
|
|
181
181
|
|
|
182
182
|
## Quick Start
|
|
183
183
|
|
|
@@ -193,15 +193,7 @@ uv run python -m asap.examples.run_demo
|
|
|
193
193
|
|
|
194
194
|
## Testing
|
|
195
195
|
|
|
196
|
-
|
|
197
|
-
uv run pytest -n auto --tb=short
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
With coverage (separate run — do not combine with `-n auto`):
|
|
201
|
-
|
|
202
|
-
```bash
|
|
203
|
-
uv run pytest --tb=short --cov=asap --cov-report=term-missing --cov-fail-under=85
|
|
204
|
-
```
|
|
196
|
+
Fast loop, local coverage floor, and the CI argv are the [canonical commands](.cursor/README.md#canonical-commands).
|
|
205
197
|
|
|
206
198
|
[Testing Guide](https://github.com/asap-protocol/asap-protocol/blob/main/docs/testing.md) (structure, fixtures, property/load/chaos tests). [Contributing](https://github.com/asap-protocol/asap-protocol/blob/main/CONTRIBUTING.md) (dev setup, CI).
|
|
207
199
|
|
|
@@ -265,7 +257,9 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
|
|
|
265
257
|
|
|
266
258
|
| Version | What shipped |
|
|
267
259
|
| :-- | :-- |
|
|
268
|
-
| **v2.5.
|
|
260
|
+
| **v2.5.9** | **Security & CI patch** — **[GitHub Release `v2.5.9`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.9)** · `brotli` 1.2.1, OpenTelemetry 1.45.1, `security (web)`, and regression fences ([#419](https://github.com/asap-protocol/asap-protocol/pull/419)–[#426](https://github.com/asap-protocol/asap-protocol/pull/426)). npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#259---2026-10-23) and [Migration (v2.5.8 → v2.5.9)](docs/migration.md#upgrading-from-v258-to-v259) |
|
|
261
|
+
| **v2.5.8** | **Security & coverage patch** — **[GitHub Release `v2.5.8`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.8)** · repository uv overrides (`aiohttp`, `certifi`, `pillow`), optional `[mcp]` extra `mcp>=1.30.0,<2`, `apps/web` Vite `8.1.6`, and regression tests ([#413](https://github.com/asap-protocol/asap-protocol/pull/413)–[#417](https://github.com/asap-protocol/asap-protocol/pull/417)). npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#258---2026-10-21) and [Migration (v2.5.7 → v2.5.8)](docs/migration.md#upgrading-from-v257-to-v258) |
|
|
262
|
+
| **v2.5.7** | **Quality & coverage patch** — **[GitHub Release `v2.5.7`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.7)** · batch rate-limit `check_n` fix, CI security gate deps + `apps/web` audit-ci, consolidated regression tests ([#394](https://github.com/asap-protocol/asap-protocol/pull/394)–[#399](https://github.com/asap-protocol/asap-protocol/pull/399)). npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#257---2026-10-11) and [Migration (v2.5.6 → v2.5.7)](docs/migration.md#upgrading-from-v256-to-v257) |
|
|
269
263
|
| **v2.5.6** | **Security & quality patch** — **[GitHub Release `v2.5.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6)** · Lite Registry IssueOps envelope + endpoint SSRF, compliance open-redirect SSRF, constrained capability execute, rotate-key lifecycle race, deps + regression tests. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#256---2026-10-01) and [Migration (v2.5.5 → v2.5.6)](docs/migration.md#upgrading-from-v255-to-v256) |
|
|
270
264
|
| **v2.5.5** | **Security & quality patch** — **[GitHub Release `v2.5.5`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.5)** · OpenAPI path-param climb, registry URN overwrite guard, marketplace SSRF DNS pin, capability-replace consent, fail-closed reactivate, Agent JWT persist/revoke races. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#255---2026-09-11) and [Migration (v2.5.4 → v2.5.5)](docs/migration.md#upgrading-from-v254-to-v255) |
|
|
271
265
|
| **v2.5.4** | **Distribution Loop** — **[GitHub Release `v2.5.4`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.4)** · thin starters (`examples/starters/`), [Build for agents](docs/guides/build-for-agents.md), homepage agent-first CTAs, telemetry ops (no public metrics UI). See [CHANGELOG](CHANGELOG.md#254---2026-07-18), [PRD](product/prd/prd-v2.5.4-distribution-loop.md), and [Migration (v2.5.3 → v2.5.4)](docs/migration.md#upgrading-from-v253-to-v254) |
|
|
@@ -291,7 +285,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
|
|
|
291
285
|
|
|
292
286
|
The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
|
|
293
287
|
|
|
294
|
-
- **Formal Spec & Interop** — RFC, introspection, privacy (PRD [prd-v2.5.5-formal-spec-interop.md](product/prd/prd-v2.5.5-formal-spec-interop.md); library **2.5.
|
|
288
|
+
- **Formal Spec & Interop** — RFC, introspection, privacy (PRD [prd-v2.5.5-formal-spec-interop.md](product/prd/prd-v2.5.5-formal-spec-interop.md); library **2.5.9** is the security/CI patch above)
|
|
295
289
|
- **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
|
|
296
290
|
- **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
|
|
297
291
|
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
> A production-ready protocol for agent-to-agent communication and task coordination.
|
|
9
9
|
|
|
10
|
-
**Quick Info**: [`v2.5.
|
|
10
|
+
**Quick Info**: [`v2.5.9`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.9) · PyPI [`asap-protocol`](https://pypi.org/project/asap-protocol/) | `Apache 2.0` | `Python 3.13+` | [Documentation](docs/index.md) | [Changelog](CHANGELOG.md)
|
|
11
11
|
|
|
12
|
-
> 📦 **Install** — [`asap-protocol` **2.5.
|
|
12
|
+
> 📦 **Install** — [`asap-protocol` **2.5.9** on PyPI](https://pypi.org/project/asap-protocol/) (Python) · [`@asap-protocol/client` on npm](https://www.npmjs.com/package/@asap-protocol/client) (TypeScript)
|
|
13
13
|
|
|
14
14
|
🚀 **Live now** our [**agentic marketplace**](https://asap-protocol.com/) — browse agents, register yours, request verification.
|
|
15
15
|
|
|
@@ -64,16 +64,16 @@ ASAP meets agents where they run — optional Python extras, npm tool bridges, a
|
|
|
64
64
|
We recommend using [uv](https://github.com/astral-sh/uv) for dependency management:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
uv add asap-protocol # latest on PyPI (currently 2.5.
|
|
67
|
+
uv add asap-protocol # latest on PyPI (currently 2.5.9)
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
Or with pip:
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
pip install asap-protocol==2.5.
|
|
73
|
+
pip install asap-protocol==2.5.9
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.
|
|
76
|
+
**TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.9; `@asap-protocol/mcp-auth` HTTP middleware still deferred):
|
|
77
77
|
|
|
78
78
|
- [`@asap-protocol/client`](https://www.npmjs.com/package/@asap-protocol/client) — [SDK docs](docs/sdks/typescript.md)
|
|
79
79
|
- [`@asap-protocol/mastra`](https://www.npmjs.com/package/@asap-protocol/mastra) — [docs](docs/integrations/mastra.md) · [demo](apps/example-mastra/README.md)
|
|
@@ -85,7 +85,7 @@ npm install @asap-protocol/mastra@2.4.1 @asap-protocol/client @mastra/core zod
|
|
|
85
85
|
npm install @asap-protocol/openai-agents@2.4.1 @asap-protocol/client @openai/agents zod
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
-
**Python v2.5.
|
|
88
|
+
**Python v2.5.9** (security & CI patch) is **shipped** — see [Migration (v2.5.8 → v2.5.9)](docs/migration.md#upgrading-from-v258-to-v259). Dist Loop starters remain: [Build for agents](docs/guides/build-for-agents.md) · [starters](examples/starters/README.md).
|
|
89
89
|
|
|
90
90
|
## Quick Start
|
|
91
91
|
|
|
@@ -101,15 +101,7 @@ uv run python -m asap.examples.run_demo
|
|
|
101
101
|
|
|
102
102
|
## Testing
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
uv run pytest -n auto --tb=short
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
With coverage (separate run — do not combine with `-n auto`):
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
uv run pytest --tb=short --cov=asap --cov-report=term-missing --cov-fail-under=85
|
|
112
|
-
```
|
|
104
|
+
Fast loop, local coverage floor, and the CI argv are the [canonical commands](.cursor/README.md#canonical-commands).
|
|
113
105
|
|
|
114
106
|
[Testing Guide](https://github.com/asap-protocol/asap-protocol/blob/main/docs/testing.md) (structure, fixtures, property/load/chaos tests). [Contributing](https://github.com/asap-protocol/asap-protocol/blob/main/CONTRIBUTING.md) (dev setup, CI).
|
|
115
107
|
|
|
@@ -173,7 +165,9 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
|
|
|
173
165
|
|
|
174
166
|
| Version | What shipped |
|
|
175
167
|
| :-- | :-- |
|
|
176
|
-
| **v2.5.
|
|
168
|
+
| **v2.5.9** | **Security & CI patch** — **[GitHub Release `v2.5.9`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.9)** · `brotli` 1.2.1, OpenTelemetry 1.45.1, `security (web)`, and regression fences ([#419](https://github.com/asap-protocol/asap-protocol/pull/419)–[#426](https://github.com/asap-protocol/asap-protocol/pull/426)). npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#259---2026-10-23) and [Migration (v2.5.8 → v2.5.9)](docs/migration.md#upgrading-from-v258-to-v259) |
|
|
169
|
+
| **v2.5.8** | **Security & coverage patch** — **[GitHub Release `v2.5.8`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.8)** · repository uv overrides (`aiohttp`, `certifi`, `pillow`), optional `[mcp]` extra `mcp>=1.30.0,<2`, `apps/web` Vite `8.1.6`, and regression tests ([#413](https://github.com/asap-protocol/asap-protocol/pull/413)–[#417](https://github.com/asap-protocol/asap-protocol/pull/417)). npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#258---2026-10-21) and [Migration (v2.5.7 → v2.5.8)](docs/migration.md#upgrading-from-v257-to-v258) |
|
|
170
|
+
| **v2.5.7** | **Quality & coverage patch** — **[GitHub Release `v2.5.7`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.7)** · batch rate-limit `check_n` fix, CI security gate deps + `apps/web` audit-ci, consolidated regression tests ([#394](https://github.com/asap-protocol/asap-protocol/pull/394)–[#399](https://github.com/asap-protocol/asap-protocol/pull/399)). npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#257---2026-10-11) and [Migration (v2.5.6 → v2.5.7)](docs/migration.md#upgrading-from-v256-to-v257) |
|
|
177
171
|
| **v2.5.6** | **Security & quality patch** — **[GitHub Release `v2.5.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6)** · Lite Registry IssueOps envelope + endpoint SSRF, compliance open-redirect SSRF, constrained capability execute, rotate-key lifecycle race, deps + regression tests. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#256---2026-10-01) and [Migration (v2.5.5 → v2.5.6)](docs/migration.md#upgrading-from-v255-to-v256) |
|
|
178
172
|
| **v2.5.5** | **Security & quality patch** — **[GitHub Release `v2.5.5`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.5)** · OpenAPI path-param climb, registry URN overwrite guard, marketplace SSRF DNS pin, capability-replace consent, fail-closed reactivate, Agent JWT persist/revoke races. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#255---2026-09-11) and [Migration (v2.5.4 → v2.5.5)](docs/migration.md#upgrading-from-v254-to-v255) |
|
|
179
173
|
| **v2.5.4** | **Distribution Loop** — **[GitHub Release `v2.5.4`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.4)** · thin starters (`examples/starters/`), [Build for agents](docs/guides/build-for-agents.md), homepage agent-first CTAs, telemetry ops (no public metrics UI). See [CHANGELOG](CHANGELOG.md#254---2026-07-18), [PRD](product/prd/prd-v2.5.4-distribution-loop.md), and [Migration (v2.5.3 → v2.5.4)](docs/migration.md#upgrading-from-v253-to-v254) |
|
|
@@ -199,7 +193,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
|
|
|
199
193
|
|
|
200
194
|
The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
|
|
201
195
|
|
|
202
|
-
- **Formal Spec & Interop** — RFC, introspection, privacy (PRD [prd-v2.5.5-formal-spec-interop.md](product/prd/prd-v2.5.5-formal-spec-interop.md); library **2.5.
|
|
196
|
+
- **Formal Spec & Interop** — RFC, introspection, privacy (PRD [prd-v2.5.5-formal-spec-interop.md](product/prd/prd-v2.5.5-formal-spec-interop.md); library **2.5.9** is the security/CI patch above)
|
|
203
197
|
- **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
|
|
204
198
|
- **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
|
|
205
199
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "asap-protocol"
|
|
3
|
-
version = "2.5.
|
|
3
|
+
version = "2.5.9"
|
|
4
4
|
description = "Async Simple Agent Protocol - A streamlined protocol for agent-to-agent communication"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "ASAP Protocol Contributors"}
|
|
@@ -39,18 +39,21 @@ dependencies = [
|
|
|
39
39
|
"typer>=0.21.1",
|
|
40
40
|
"watchfiles>=0.21.0",
|
|
41
41
|
"websockets>=12.0",
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"opentelemetry-
|
|
47
|
-
"opentelemetry-
|
|
42
|
+
# Floor 1.2.1 for PYSEC-2026-4322 / GHSA-9v8h-qqgm-4m35 (decoder OOB write).
|
|
43
|
+
"brotli>=1.2.1",
|
|
44
|
+
# Floor 1.45.1 for CVE-2026-114603. SDK 1.45.1 requires this API;
|
|
45
|
+
# instrumentation 0.66b1 is the matching release.
|
|
46
|
+
"opentelemetry-api>=1.45.1",
|
|
47
|
+
"opentelemetry-sdk>=1.45.1",
|
|
48
|
+
"opentelemetry-instrumentation-fastapi>=0.66b1",
|
|
49
|
+
"opentelemetry-instrumentation-httpx>=0.66b1",
|
|
50
|
+
"opentelemetry-exporter-otlp-proto-grpc>=1.45.1",
|
|
48
51
|
]
|
|
49
52
|
|
|
50
53
|
[project.optional-dependencies]
|
|
51
54
|
dev = [
|
|
52
55
|
"asgi-lifespan>=2.1.0",
|
|
53
|
-
"brotli>=1.1
|
|
56
|
+
"brotli>=1.2.1",
|
|
54
57
|
"pytest>=9.0.3",
|
|
55
58
|
"pytest-asyncio>=0.24",
|
|
56
59
|
"pytest-cov>=6.0",
|
|
@@ -84,8 +87,9 @@ webauthn = [
|
|
|
84
87
|
]
|
|
85
88
|
# Framework integration extras.
|
|
86
89
|
mcp = [
|
|
87
|
-
# Floor 1.
|
|
88
|
-
|
|
90
|
+
# Floor 1.30.0 for CVE-2026-59951 (also covers CVE-2026-52869 / CVE-2026-52870 /
|
|
91
|
+
# CVE-2026-59950). Stay on 1.x: mcp 2.x replaces mcp.server.fastmcp and depends on httpx2.
|
|
92
|
+
"mcp>=1.30.0,<2",
|
|
89
93
|
]
|
|
90
94
|
langchain = [
|
|
91
95
|
"langchain-core>=1.3.3",
|
|
@@ -124,13 +128,15 @@ Issues = "https://github.com/asap-protocol/asap-protocol/issues"
|
|
|
124
128
|
# Override transitive dependencies for security fixes:
|
|
125
129
|
# - pyjwt>=2.14.0 for PYSEC-2026-4140–4152 (prior: CVE-2026-32597 baseline at 2.12.0)
|
|
126
130
|
# - anyio>=4.14.2 for PYSEC-2026-4024 / PYSEC-2026-4025
|
|
127
|
-
# - aiohttp>=3.14.
|
|
131
|
+
# - aiohttp>=3.14.4,<4 for CVE-2026-111063–111066 / CVE-2026-111748–111750 / GHSA-2g87-pp6c-29x5 (prior: PYSEC-2026-3545/3546/3547 at >=3.14.3)
|
|
128
132
|
# - zeroconf>=0.149.5 for CVE-2026-47180/47183/47184 ([dns-sd] extra)
|
|
129
133
|
# - pyasn1>=0.6.4 for CVE-2026-30922 / CVE-2026-59885 / CVE-2026-59886 / PYSEC-2026-3455/3456/3457 (transitive, auth/JWT stack)
|
|
130
134
|
# - tinytag>=2.2.1 for CVE-2026-32889
|
|
131
135
|
# - cryptography>=50.0.0 for PYSEC-2026-3552 (PKCS7 Bleichenbacher; 3553/3554 fixed in 49.0.0; prior GHSA-537c-gmf6-5ccf at >=48.0.1)
|
|
132
136
|
# - requests>=2.33.0 for CVE-2026-25645 (extract_zipped_paths temp file)
|
|
133
|
-
# -
|
|
137
|
+
# - certifi>=2026.10.19 for PYSEC-2026-4320 (transitive via requests / httpx)
|
|
138
|
+
# - pillow>=13.0.0 for the Pillow 12.3.0 advisories fixed in 13.0.0 (CVE-2026-112390 and related; prior: PYSEC-2026-2253–2257 at >=12.3.0)
|
|
139
|
+
# - mcp>=1.30.0,<2 for CVE-2026-59951 (2.2.0+ also fixes it; 2.x breaks FastMCP — see SECURITY.md)
|
|
134
140
|
# - click>=8.3.3 for PYSEC-2026-2132 (transitive, e.g. typer / uvicorn / mkdocs stacks)
|
|
135
141
|
# - pytest>=9.0.3 for CVE-2025-71176 (dev)
|
|
136
142
|
# - python-multipart>=0.0.31 for CVE-2026-53538–53540 (FastAPI stack; prior floor 0.0.27)
|
|
@@ -150,23 +156,28 @@ Issues = "https://github.com/asap-protocol/asap-protocol/issues"
|
|
|
150
156
|
# - joserfc>=1.6.7 for CVE-2026-48990 (JWT/JWS primitives; direct + override)
|
|
151
157
|
# - python-engineio>=4.13.2 for CVE-2026-48802 / CVE-2026-48809 (transitive, locust stack)
|
|
152
158
|
# - python-socketio>=5.16.2 for CVE-2026-48804 (transitive, locust stack)
|
|
153
|
-
# - setuptools>=
|
|
159
|
+
# - setuptools>=84.1.0 for GHSA-xmj3-9gf7-h52w (also covers PYSEC-2026-3447)
|
|
160
|
+
# - fastmcp>=3.4.10,<4 for GHSA-7xgj-8392-5q4r (transitive via pydantic-ai)
|
|
154
161
|
# - pyopenssl>=26.4.0 for cryptography 50 ABI (webauthn extra; GEN_EMAIL / PKCS7)
|
|
155
162
|
# - mkdocs-material>=9.7.7 for PYSEC-2026-3864 / CVE-2026-73295 (DOM XSS in search.suggest)
|
|
156
163
|
# - multidict>=6.9.1 for CVE-2026-104874
|
|
157
164
|
# - pydantic-ai>=1.107.7,<2 for CVE-2026-107287–107291
|
|
158
165
|
# - werkzeug>=3.1.9 for CVE-2026-102598
|
|
159
166
|
# - fsspec>=2026.6.0 for CVE-2026-104851
|
|
167
|
+
# - opentelemetry-api>=1.45.1 for CVE-2026-114603 (SDK and instrumentation move with it)
|
|
168
|
+
# - brotli>=1.2.1 for PYSEC-2026-4322 / GHSA-9v8h-qqgm-4m35 (direct dependency)
|
|
160
169
|
[tool.uv]
|
|
161
170
|
override-dependencies = [
|
|
162
|
-
"aiohttp>=3.14.
|
|
171
|
+
"aiohttp>=3.14.4,<4",
|
|
172
|
+
"certifi>=2026.10.19",
|
|
163
173
|
"anyio>=4.14.2",
|
|
164
174
|
"pyjwt>=2.14.0,<3",
|
|
165
175
|
"pyasn1>=0.6.4",
|
|
166
176
|
"tinytag>=2.2.1",
|
|
167
177
|
"cryptography>=50.0.0,<51",
|
|
168
178
|
"requests>=2.33.0",
|
|
169
|
-
"pillow>=
|
|
179
|
+
"pillow>=13.0.0",
|
|
180
|
+
"mcp>=1.30.0,<2",
|
|
170
181
|
"click>=8.3.3",
|
|
171
182
|
"pytest>=9.0.3",
|
|
172
183
|
"python-multipart>=0.0.31",
|
|
@@ -186,7 +197,8 @@ override-dependencies = [
|
|
|
186
197
|
"joserfc>=1.6.7,<2",
|
|
187
198
|
"python-engineio>=4.13.2",
|
|
188
199
|
"python-socketio>=5.16.2",
|
|
189
|
-
"setuptools>=
|
|
200
|
+
"setuptools>=84.1.0",
|
|
201
|
+
"fastmcp>=3.4.10,<4",
|
|
190
202
|
"h2>=4.4.1",
|
|
191
203
|
"pyopenssl>=26.4.0",
|
|
192
204
|
"mkdocs-material>=9.7.7",
|
|
@@ -194,6 +206,8 @@ override-dependencies = [
|
|
|
194
206
|
"pydantic-ai>=1.107.7,<2",
|
|
195
207
|
"werkzeug>=3.1.9",
|
|
196
208
|
"fsspec>=2026.6.0",
|
|
209
|
+
"opentelemetry-api>=1.45.1",
|
|
210
|
+
"brotli>=1.2.1",
|
|
197
211
|
]
|
|
198
212
|
|
|
199
213
|
[project.scripts]
|
|
@@ -347,8 +361,11 @@ addopts = [
|
|
|
347
361
|
"--strict-markers",
|
|
348
362
|
"--strict-config",
|
|
349
363
|
]
|
|
350
|
-
# Coverage
|
|
351
|
-
#
|
|
364
|
+
# Coverage flags stay out of addopts: a partial run would fail the project-wide floor.
|
|
365
|
+
# Commands: .cursor/README.md#canonical-commands
|
|
366
|
+
markers = [
|
|
367
|
+
"serial_mcp: MCP example server started as a subprocess. Keep the test out of pytest-xdist; CI runs pytest for it outside xdist with --cov-append.",
|
|
368
|
+
]
|
|
352
369
|
testpaths = ["tests"]
|
|
353
370
|
# Note: benchmarks/ excluded from testpaths - Locust monkey-patches gevent/ssl which
|
|
354
371
|
# conflicts with pytest-xdist. Run benchmarks separately: uv run pytest benchmarks/
|
|
@@ -366,6 +383,9 @@ filterwarnings = [
|
|
|
366
383
|
[tool.coverage.run]
|
|
367
384
|
source = ["asap"]
|
|
368
385
|
branch = true
|
|
386
|
+
# The CI coverage job reads the data file on another runner. Relative paths
|
|
387
|
+
# still resolve after checkout; absolute workspace paths would not.
|
|
388
|
+
relative_files = true
|
|
369
389
|
omit = [
|
|
370
390
|
"src/asap/examples/*", # Runnable examples and demos; tested via tests/examples/
|
|
371
391
|
"src/asap/discovery/dnssd.py", # P3 optional, deferred to v1.1.1+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{asap_protocol-2.5.7 → asap_protocol-2.5.9}/schemas/examples/shellclaw-jetson-capabilities.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|