asap-protocol 2.5.6__tar.gz → 2.5.8__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.6 → asap_protocol-2.5.8}/CHANGELOG.md +108 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/PKG-INFO +11 -9
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/README.md +9 -7
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/pyproject.toml +17 -7
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/__init__.py +1 -1
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/rate_limit.py +9 -3
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/.gitignore +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/LICENSE +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/entities/agent.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/entities/artifact.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/entities/conversation.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/entities/manifest.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/entities/message.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/entities/state_snapshot.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/entities/task.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/envelope.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/examples/shellclaw-jetson-capabilities.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/parts/data_part.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/parts/file_part.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/parts/resource_part.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/parts/template_part.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/parts/text_part.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/artifact_notify.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/mcp_resource_data.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/mcp_tool_call.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/mcp_tool_result.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/message_send.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/state_query.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/state_restore.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/task_cancel.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/task_request.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/task_response.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/schemas/payloads/task_update.schema.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/mcp/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/mcp/auth_middleware.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/mcp/capability_map.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/mcp/config.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/mcp/errors.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/mcp/jwt_extractor.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/mcp/protected_server.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/openapi/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/openapi/approval.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/openapi/capability_mapper.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/openapi/factory.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/openapi/handler.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/adapters/openapi/spec_loader.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/_scope_parse.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/agent_jwt.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/agent_jwt_session.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/approval.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/capabilities.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/identity.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/introspection.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/jti_replay_cache.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/jwks.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/middleware.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/oauth2.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/oidc.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/scopes.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/self_auth.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/webauthn.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/auth/webauthn_store.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/_compat.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/audit_export.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/compliance_check.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/delegation.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/keys.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/manifest.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/repl.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/schemas.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/cli/trace.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/client/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/client/cache.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/client/http_client.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/client/market.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/client/revocation.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/client/trust.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/crypto/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/crypto/keys.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/crypto/models.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/crypto/signing.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/crypto/trust.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/crypto/trust_levels.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/discovery/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/discovery/dnssd.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/discovery/health.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/discovery/registry.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/discovery/validation.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/discovery/wellknown.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/audit.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/delegation.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/delegation_storage.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/hooks.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/metering.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/sla.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/sla_storage.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/economics/storage.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/errors.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/README.md +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/a2h_approval.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/agent_failover.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/auth_patterns.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/coordinator.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/echo_agent.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/error_recovery.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/long_running.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/mcp_client_demo.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/mcp_integration.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/multi_step_workflow.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/orchestration.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/rate_limiting.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/run_demo.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/secure_agent.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/secure_handler.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/state_migration.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/storage_backends.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/streaming_agent.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/streaming_response.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/v1_3_0_showcase.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/examples/v1_4_0_showcase.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/handlers/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/handlers/hitl.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/_base.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/a2h.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/crewai.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/langchain.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/llamaindex.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/openclaw.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/pydanticai.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/smolagents.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/integrations/vercel_ai.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/auth/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/auth/auth_middleware.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/auth/capability_map.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/auth/config.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/auth/errors.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/auth/jwt_extractor.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/auth/protected_server.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/client.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/protocol.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/serve.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/server.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/mcp/server_runner.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/base.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/constants.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/entities.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/enums.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/envelope.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/ids.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/parts.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/payloads.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/types.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/models/validators.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/dashboards/README.md +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/dashboards/asap-detailed.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/dashboards/asap-red.json +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/logging.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/metrics.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/trace_parser.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/trace_ui.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/observability/tracing.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/registry/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/registry/anti_spam.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/registry/auto_registration.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/registry/bot_pr.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/registry/receipt_cache.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/schemas.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/machine.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/metering.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/snapshot.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/stores/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/stores/_sqlite_base.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/stores/_sync_bridge.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/stores/memory.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/state/stores/sqlite.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/testing/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/testing/asgi_factory.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/testing/assertions.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/testing/compliance.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/testing/fixtures.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/testing/mocks.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/_auth_helpers.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/_request_handler.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/_state_deps.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/agent_routes.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/cache.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/capability_routes.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/challenge.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/circuit_breaker.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/client/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/client/_core.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/client/_discovery.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/client/_helpers.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/client/_send.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/compression.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/delegation_api.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/errors.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/escalation_routes.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/executors.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/handlers.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/jsonrpc.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/lambda_codec.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/middleware.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/mtls.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/routes/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/routes/audit.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/routes/health.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/routes/jsonrpc.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/routes/websocket.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/server.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/sla_api.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/usage_api.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/validators.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/webhook.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/websocket.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/_ack.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/_actions.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/_dispatch.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/_errors.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/_recv.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/client.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/codecs.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/pool.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/transport/ws/server.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/utils/__init__.py +0 -0
- {asap_protocol-2.5.6 → asap_protocol-2.5.8}/src/asap/utils/sanitization.py +0 -0
|
@@ -16,6 +16,114 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
+
## [2.5.8] - 2026-10-21
|
|
20
|
+
|
|
21
|
+
**Security & coverage patch** — record the repository dependency overrides
|
|
22
|
+
and regression tests that landed on `main` after v2.5.7 via
|
|
23
|
+
[#413](https://github.com/asap-protocol/asap-protocol/pull/413)–[#417](https://github.com/asap-protocol/asap-protocol/pull/417).
|
|
24
|
+
This is **not** Formal Spec & Interop. npm `@asap-protocol/*` packages remain
|
|
25
|
+
at **2.4.1**. PyPI `asap-compliance` remains **1.3.0**.
|
|
26
|
+
Tag [`v2.5.8`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.8)
|
|
27
|
+
· PyPI `asap-protocol==2.5.8`.
|
|
28
|
+
|
|
29
|
+
### Security
|
|
30
|
+
|
|
31
|
+
- **Repository uv overrides and `[mcp]` extra (#413)** —
|
|
32
|
+
``[tool.uv] override-dependencies`` pins ``aiohttp>=3.14.4,<4``
|
|
33
|
+
(CVE-2026-111063 and related), ``certifi>=2026.10.19`` (PYSEC-2026-4320),
|
|
34
|
+
and ``pillow>=13.0.0`` (CVE-2026-112395 / 112397 / 112400 / 112404 /
|
|
35
|
+
112895 / 112896 / 112897 / 112899). Those overrides apply in this
|
|
36
|
+
repository. They are not requirements of the published wheel. The
|
|
37
|
+
optional ``[mcp]`` extra requires ``mcp>=1.30.0,<2`` (CVE-2026-59951).
|
|
38
|
+
- **`apps/web` Vite (#413)** — npm override pins ``vite`` to ``8.1.6``
|
|
39
|
+
(GHSA-587h-7wmj-h5pm and the other launch-editor advisories on Vite
|
|
40
|
+
8.0.0–8.1.5). This pin is the web app in this repository, not a PyPI
|
|
41
|
+
requirement.
|
|
42
|
+
- **`apps/web` audit CI** — ``quality (web)`` installs npm 11.21.0 before
|
|
43
|
+
``npm audit`` and ``audit-ci``. ``audit-ci.jsonc`` sets
|
|
44
|
+
``package-manager`` to ``npm``. npm 10 (Node 20) and pnpm 9 still call
|
|
45
|
+
the retired ``/-/npm/v1/security/audits/quick`` endpoint. Both audit
|
|
46
|
+
steps retry a registry 503 and still fail immediately on a real advisory.
|
|
47
|
+
|
|
48
|
+
### Quality
|
|
49
|
+
|
|
50
|
+
- **Quota, replay, and nonce regression tests (#413)** — webhook partial
|
|
51
|
+
refill, truncated public keys, JTI eviction, nonce expiry, and discovery
|
|
52
|
+
health. Batch ``check_n`` cost shipped in v2.5.7.
|
|
53
|
+
- **Metering, SLA, usage, and delivery regression tests (#414)** — metering
|
|
54
|
+
windows, SLA boundaries, audit queries, the existing one-time
|
|
55
|
+
``delegate_urn`` column add, usage pagination, webhook status band, batch
|
|
56
|
+
size, OpenAPI schema depth, and snapshot-loop edges.
|
|
57
|
+
- **Refresh, cache, and revocation regression tests (#415)** — OAuth refresh
|
|
58
|
+
on the buffer second, introspection cache expiry, discovery and registry
|
|
59
|
+
cache TTL, delegation expiry, ack timeout, revocation of a non-agent URN,
|
|
60
|
+
and dashboard action edges.
|
|
61
|
+
- **Expiry, receipt, and session regression tests (#416)** — receipt reads
|
|
62
|
+
at exact expiry, registration receipts, reactivation lifetime, approval
|
|
63
|
+
deadlines, host JWT skew, scope-claim types, envelope timestamps, and
|
|
64
|
+
compliance preflight edges.
|
|
65
|
+
- **Lifetime and size regression tests (#417)** — verify and reactivate
|
|
66
|
+
lifetime edges, blank IssueOps fields, request and decompressed size caps,
|
|
67
|
+
WebSocket idle and heartbeat fences, and truncated key age
|
|
68
|
+
(``timedelta.days`` inside ``warn_if_key_old``, distinct from the truncated
|
|
69
|
+
public-key fence in #413).
|
|
70
|
+
|
|
71
|
+
### Migration
|
|
72
|
+
|
|
73
|
+
- **v2.5.7 → v2.5.8**: See [migration guide](docs/migration.md#upgrading-from-v257-to-v258).
|
|
74
|
+
No wire-protocol or manifest schema breaking changes. Installs of the
|
|
75
|
+
optional ``[mcp]`` extra now require ``mcp>=1.30.0,<2``.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## [2.5.7] - 2026-10-11
|
|
80
|
+
|
|
81
|
+
**Quality & coverage patch** — correct batch HTTP rate-limit accounting,
|
|
82
|
+
transitive dependency overrides for CI security gates, `apps/web` audit-ci
|
|
83
|
+
enforcement, and consolidated regression tests on `main` via
|
|
84
|
+
[#394](https://github.com/asap-protocol/asap-protocol/pull/394)–[#399](https://github.com/asap-protocol/asap-protocol/pull/399).
|
|
85
|
+
This is **not** Formal Spec & Interop. npm `@asap-protocol/*` packages remain
|
|
86
|
+
at **2.4.1**. PyPI `asap-compliance` remains **1.3.0**.
|
|
87
|
+
Tag [`v2.5.7`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.7)
|
|
88
|
+
· PyPI `asap-protocol==2.5.7`.
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
|
|
92
|
+
- **Batch rate limits (#394)** — ``ASAPRateLimiter.check_n`` passes ``cost=n`` to
|
|
93
|
+
the moving-window strategy instead of ``n`` separate unit-cost ``hit`` calls,
|
|
94
|
+
so multi-item requests consume the correct quota.
|
|
95
|
+
|
|
96
|
+
### Security
|
|
97
|
+
|
|
98
|
+
- **Transitive Python deps** — ``uv`` override pins for advisories on optional
|
|
99
|
+
integration paths (``multidict``, ``pydantic-ai``, ``werkzeug``, ``fsspec``)
|
|
100
|
+
so CI ``pip-audit`` stays green ([#395](https://github.com/asap-protocol/asap-protocol/pull/395)
|
|
101
|
+
train).
|
|
102
|
+
- **`apps/web` npm audit** — CI uses ``audit-ci`` with ``audit-ci.jsonc``;
|
|
103
|
+
production overrides bump ``sharp`` and ``source-map-js``
|
|
104
|
+
([#395](https://github.com/asap-protocol/asap-protocol/pull/395) train).
|
|
105
|
+
|
|
106
|
+
### Quality
|
|
107
|
+
|
|
108
|
+
- **Transport & auth regression tests (#395, #397, #394)** — stale-key grants and
|
|
109
|
+
409 races, WebSocket token bursts and snapshot replace, streamed limits and
|
|
110
|
+
ceremony retry paths.
|
|
111
|
+
- **Registry & compliance harness (#389)** — endpoint rewrite, webhook DNS match,
|
|
112
|
+
compliance preflight edges.
|
|
113
|
+
- **Identity, economics, ingress (#398, #399)** — JWT middleware and metering
|
|
114
|
+
bridges, SSRF and ingress policy, adapter storage edges.
|
|
115
|
+
|
|
116
|
+
### Migration
|
|
117
|
+
|
|
118
|
+
- **v2.5.6 → v2.5.7**: See [migration guide](docs/migration.md#upgrading-from-v256-to-v257).
|
|
119
|
+
No wire-protocol or manifest schema breaking changes. Operators using
|
|
120
|
+
JSON-RPC batch or other ``check_n`` paths should expect quota to reflect batch
|
|
121
|
+
size; oversized batches that v2.5.6 could accept may now raise
|
|
122
|
+
``RateLimitExceeded`` (intended behavior). With default limits, a batch of 50
|
|
123
|
+
against ``10/second`` can trip in one call.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
19
127
|
## [2.5.6] - 2026-10-01
|
|
20
128
|
|
|
21
129
|
**Security & quality patch** — Lite Registry IssueOps envelope and endpoint SSRF
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: asap-protocol
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.8
|
|
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
|
|
@@ -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.8`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.8) · 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.8** 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.8)
|
|
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.8
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
**TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.
|
|
168
|
+
**TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.8; `@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.8** (security & coverage patch) is **shipped** — see [Migration (v2.5.7 → v2.5.8)](docs/migration.md#upgrading-from-v257-to-v258). 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
|
|
|
@@ -265,6 +265,8 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
|
|
|
265
265
|
|
|
266
266
|
| Version | What shipped |
|
|
267
267
|
| :-- | :-- |
|
|
268
|
+
| **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) |
|
|
269
|
+
| **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) |
|
|
268
270
|
| **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) |
|
|
269
271
|
| **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) |
|
|
270
272
|
| **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) |
|
|
@@ -290,7 +292,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
|
|
|
290
292
|
|
|
291
293
|
The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
|
|
292
294
|
|
|
293
|
-
- **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.
|
|
295
|
+
- **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.8** is the security/coverage patch above)
|
|
294
296
|
- **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
|
|
295
297
|
- **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
|
|
296
298
|
|
|
@@ -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.8`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.8) · 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.8** 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.8)
|
|
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.8
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.
|
|
76
|
+
**TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.8; `@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.8** (security & coverage patch) is **shipped** — see [Migration (v2.5.7 → v2.5.8)](docs/migration.md#upgrading-from-v257-to-v258). 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
|
|
|
@@ -173,6 +173,8 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
|
|
|
173
173
|
|
|
174
174
|
| Version | What shipped |
|
|
175
175
|
| :-- | :-- |
|
|
176
|
+
| **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) |
|
|
177
|
+
| **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) |
|
|
176
178
|
| **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) |
|
|
177
179
|
| **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) |
|
|
178
180
|
| **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) |
|
|
@@ -198,7 +200,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
|
|
|
198
200
|
|
|
199
201
|
The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
|
|
200
202
|
|
|
201
|
-
- **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.
|
|
203
|
+
- **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.8** is the security/coverage patch above)
|
|
202
204
|
- **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
|
|
203
205
|
- **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
|
|
204
206
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "asap-protocol"
|
|
3
|
-
version = "2.5.
|
|
3
|
+
version = "2.5.8"
|
|
4
4
|
description = "Async Simple Agent Protocol - A streamlined protocol for agent-to-agent communication"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "ASAP Protocol Contributors"}
|
|
@@ -84,8 +84,8 @@ webauthn = [
|
|
|
84
84
|
]
|
|
85
85
|
# Framework integration extras.
|
|
86
86
|
mcp = [
|
|
87
|
-
# Floor 1.28.1 for CVE-2026-52869 /
|
|
88
|
-
"mcp>=1.
|
|
87
|
+
# Floor 1.30.0 for CVE-2026-59951 (prior: 1.28.1 for CVE-2026-52869 / 52870 / 59950).
|
|
88
|
+
"mcp>=1.30.0,<2",
|
|
89
89
|
]
|
|
90
90
|
langchain = [
|
|
91
91
|
"langchain-core>=1.3.3",
|
|
@@ -124,13 +124,14 @@ Issues = "https://github.com/asap-protocol/asap-protocol/issues"
|
|
|
124
124
|
# Override transitive dependencies for security fixes:
|
|
125
125
|
# - pyjwt>=2.14.0 for PYSEC-2026-4140–4152 (prior: CVE-2026-32597 baseline at 2.12.0)
|
|
126
126
|
# - anyio>=4.14.2 for PYSEC-2026-4024 / PYSEC-2026-4025
|
|
127
|
-
# - aiohttp>=3.14.
|
|
127
|
+
# - aiohttp>=3.14.4,<4 for CVE-2026-111063/111064/111065/111066/111748/111749/111750 and GHSA-2g87-pp6c-29x5 (prior: PYSEC-2026-3545/3546/3547 at >=3.14.3)
|
|
128
128
|
# - zeroconf>=0.149.5 for CVE-2026-47180/47183/47184 ([dns-sd] extra)
|
|
129
129
|
# - pyasn1>=0.6.4 for CVE-2026-30922 / CVE-2026-59885 / CVE-2026-59886 / PYSEC-2026-3455/3456/3457 (transitive, auth/JWT stack)
|
|
130
130
|
# - tinytag>=2.2.1 for CVE-2026-32889
|
|
131
131
|
# - 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
132
|
# - requests>=2.33.0 for CVE-2026-25645 (extract_zipped_paths temp file)
|
|
133
|
-
# - pillow>=
|
|
133
|
+
# - pillow>=13.0.0 for CVE-2026-112395/112397/112400/112404/112895/112896/112897/112899 (prior: PYSEC-2026-2253–2257 at >=12.3.0; transitive, e.g. pdf/vision stacks)
|
|
134
|
+
# - certifi>=2026.10.19 for PYSEC-2026-4320 (transitive via requests/httpx)
|
|
134
135
|
# - click>=8.3.3 for PYSEC-2026-2132 (transitive, e.g. typer / uvicorn / mkdocs stacks)
|
|
135
136
|
# - pytest>=9.0.3 for CVE-2025-71176 (dev)
|
|
136
137
|
# - python-multipart>=0.0.31 for CVE-2026-53538–53540 (FastAPI stack; prior floor 0.0.27)
|
|
@@ -153,16 +154,21 @@ Issues = "https://github.com/asap-protocol/asap-protocol/issues"
|
|
|
153
154
|
# - setuptools>=83.0.0 for PYSEC-2026-3447 (transitive build/tooling path)
|
|
154
155
|
# - pyopenssl>=26.4.0 for cryptography 50 ABI (webauthn extra; GEN_EMAIL / PKCS7)
|
|
155
156
|
# - mkdocs-material>=9.7.7 for PYSEC-2026-3864 / CVE-2026-73295 (DOM XSS in search.suggest)
|
|
157
|
+
# - multidict>=6.9.1 for CVE-2026-104874
|
|
158
|
+
# - pydantic-ai>=1.107.7,<2 for CVE-2026-107287–107291
|
|
159
|
+
# - werkzeug>=3.1.9 for CVE-2026-102598
|
|
160
|
+
# - fsspec>=2026.6.0 for CVE-2026-104851
|
|
156
161
|
[tool.uv]
|
|
157
162
|
override-dependencies = [
|
|
158
|
-
"aiohttp>=3.14.
|
|
163
|
+
"aiohttp>=3.14.4,<4",
|
|
164
|
+
"certifi>=2026.10.19",
|
|
159
165
|
"anyio>=4.14.2",
|
|
160
166
|
"pyjwt>=2.14.0,<3",
|
|
161
167
|
"pyasn1>=0.6.4",
|
|
162
168
|
"tinytag>=2.2.1",
|
|
163
169
|
"cryptography>=50.0.0,<51",
|
|
164
170
|
"requests>=2.33.0",
|
|
165
|
-
"pillow>=
|
|
171
|
+
"pillow>=13.0.0",
|
|
166
172
|
"click>=8.3.3",
|
|
167
173
|
"pytest>=9.0.3",
|
|
168
174
|
"python-multipart>=0.0.31",
|
|
@@ -186,6 +192,10 @@ override-dependencies = [
|
|
|
186
192
|
"h2>=4.4.1",
|
|
187
193
|
"pyopenssl>=26.4.0",
|
|
188
194
|
"mkdocs-material>=9.7.7",
|
|
195
|
+
"multidict>=6.9.1",
|
|
196
|
+
"pydantic-ai>=1.107.7,<2",
|
|
197
|
+
"werkzeug>=3.1.9",
|
|
198
|
+
"fsspec>=2026.6.0",
|
|
189
199
|
]
|
|
190
200
|
|
|
191
201
|
[project.scripts]
|
|
@@ -142,7 +142,7 @@ class ASAPRateLimiter:
|
|
|
142
142
|
return
|
|
143
143
|
key = self._key_func(request)
|
|
144
144
|
for rate_limit in self._rate_limits:
|
|
145
|
-
if not self._strategy.test(rate_limit, key):
|
|
145
|
+
if not self._strategy.test(rate_limit, key, cost=n):
|
|
146
146
|
window_stats = self._strategy.get_window_stats(rate_limit, key)
|
|
147
147
|
retry_seconds = max(1, int(window_stats[0] - time.time()))
|
|
148
148
|
raise RateLimitExceeded(
|
|
@@ -151,8 +151,14 @@ class ASAPRateLimiter:
|
|
|
151
151
|
limit=str(rate_limit),
|
|
152
152
|
)
|
|
153
153
|
for rate_limit in self._rate_limits:
|
|
154
|
-
|
|
155
|
-
self._strategy.
|
|
154
|
+
if not self._strategy.hit(rate_limit, key, cost=n):
|
|
155
|
+
window_stats = self._strategy.get_window_stats(rate_limit, key)
|
|
156
|
+
retry_seconds = max(1, int(window_stats[0] - time.time()))
|
|
157
|
+
raise RateLimitExceeded(
|
|
158
|
+
detail=f"Rate limit exceeded: {rate_limit}",
|
|
159
|
+
retry_after=retry_seconds,
|
|
160
|
+
limit=str(rate_limit),
|
|
161
|
+
)
|
|
156
162
|
|
|
157
163
|
def test(self, request: Request) -> bool:
|
|
158
164
|
"""Return True if *request* would pass all limits (no counter increment)."""
|
|
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.6 → asap_protocol-2.5.8}/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
|
|
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
|
|
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
|
|
File without changes
|