asap-protocol 2.5.8__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.
Files changed (239) hide show
  1. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/CHANGELOG.md +60 -0
  2. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/PKG-INFO +17 -24
  3. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/README.md +9 -16
  4. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/pyproject.toml +34 -16
  5. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/__init__.py +1 -1
  6. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/.gitignore +0 -0
  7. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/LICENSE +0 -0
  8. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/entities/agent.schema.json +0 -0
  9. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/entities/artifact.schema.json +0 -0
  10. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/entities/conversation.schema.json +0 -0
  11. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/entities/manifest.schema.json +0 -0
  12. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/entities/message.schema.json +0 -0
  13. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/entities/state_snapshot.schema.json +0 -0
  14. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/entities/task.schema.json +0 -0
  15. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/envelope.schema.json +0 -0
  16. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/examples/shellclaw-jetson-capabilities.json +0 -0
  17. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/parts/data_part.schema.json +0 -0
  18. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/parts/file_part.schema.json +0 -0
  19. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/parts/resource_part.schema.json +0 -0
  20. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/parts/template_part.schema.json +0 -0
  21. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/parts/text_part.schema.json +0 -0
  22. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/artifact_notify.schema.json +0 -0
  23. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/mcp_resource_data.schema.json +0 -0
  24. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
  25. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/mcp_tool_call.schema.json +0 -0
  26. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/mcp_tool_result.schema.json +0 -0
  27. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/message_send.schema.json +0 -0
  28. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/state_query.schema.json +0 -0
  29. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/state_restore.schema.json +0 -0
  30. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/task_cancel.schema.json +0 -0
  31. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/task_request.schema.json +0 -0
  32. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/task_response.schema.json +0 -0
  33. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/schemas/payloads/task_update.schema.json +0 -0
  34. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/__init__.py +0 -0
  35. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/mcp/__init__.py +0 -0
  36. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/mcp/auth_middleware.py +0 -0
  37. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/mcp/capability_map.py +0 -0
  38. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/mcp/config.py +0 -0
  39. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/mcp/errors.py +0 -0
  40. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/mcp/jwt_extractor.py +0 -0
  41. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/mcp/protected_server.py +0 -0
  42. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/openapi/__init__.py +0 -0
  43. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/openapi/approval.py +0 -0
  44. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/openapi/capability_mapper.py +0 -0
  45. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/openapi/factory.py +0 -0
  46. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/openapi/handler.py +0 -0
  47. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/adapters/openapi/spec_loader.py +0 -0
  48. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/__init__.py +0 -0
  49. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/_scope_parse.py +0 -0
  50. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/agent_jwt.py +0 -0
  51. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/agent_jwt_session.py +0 -0
  52. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/approval.py +0 -0
  53. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/capabilities.py +0 -0
  54. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/identity.py +0 -0
  55. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/introspection.py +0 -0
  56. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/jti_replay_cache.py +0 -0
  57. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/jwks.py +0 -0
  58. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/middleware.py +0 -0
  59. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/oauth2.py +0 -0
  60. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/oidc.py +0 -0
  61. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/scopes.py +0 -0
  62. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/self_auth.py +0 -0
  63. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/webauthn.py +0 -0
  64. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/auth/webauthn_store.py +0 -0
  65. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/__init__.py +0 -0
  66. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/_compat.py +0 -0
  67. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/audit_export.py +0 -0
  68. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/compliance_check.py +0 -0
  69. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/delegation.py +0 -0
  70. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/keys.py +0 -0
  71. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/manifest.py +0 -0
  72. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/repl.py +0 -0
  73. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/schemas.py +0 -0
  74. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/cli/trace.py +0 -0
  75. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/client/__init__.py +0 -0
  76. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/client/cache.py +0 -0
  77. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/client/http_client.py +0 -0
  78. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/client/market.py +0 -0
  79. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/client/revocation.py +0 -0
  80. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/client/trust.py +0 -0
  81. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/crypto/__init__.py +0 -0
  82. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/crypto/keys.py +0 -0
  83. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/crypto/models.py +0 -0
  84. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/crypto/signing.py +0 -0
  85. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/crypto/trust.py +0 -0
  86. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/crypto/trust_levels.py +0 -0
  87. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/discovery/__init__.py +0 -0
  88. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/discovery/dnssd.py +0 -0
  89. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/discovery/health.py +0 -0
  90. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/discovery/registry.py +0 -0
  91. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/discovery/validation.py +0 -0
  92. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/discovery/wellknown.py +0 -0
  93. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/__init__.py +0 -0
  94. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/audit.py +0 -0
  95. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/delegation.py +0 -0
  96. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/delegation_storage.py +0 -0
  97. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/hooks.py +0 -0
  98. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/metering.py +0 -0
  99. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/sla.py +0 -0
  100. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/sla_storage.py +0 -0
  101. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/economics/storage.py +0 -0
  102. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/errors.py +0 -0
  103. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/README.md +0 -0
  104. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/__init__.py +0 -0
  105. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/a2h_approval.py +0 -0
  106. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/agent_failover.py +0 -0
  107. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/auth_patterns.py +0 -0
  108. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/coordinator.py +0 -0
  109. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/echo_agent.py +0 -0
  110. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/error_recovery.py +0 -0
  111. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/long_running.py +0 -0
  112. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/mcp_client_demo.py +0 -0
  113. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/mcp_integration.py +0 -0
  114. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/multi_step_workflow.py +0 -0
  115. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/orchestration.py +0 -0
  116. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/rate_limiting.py +0 -0
  117. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/run_demo.py +0 -0
  118. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/secure_agent.py +0 -0
  119. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/secure_handler.py +0 -0
  120. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/state_migration.py +0 -0
  121. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/storage_backends.py +0 -0
  122. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/streaming_agent.py +0 -0
  123. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/streaming_response.py +0 -0
  124. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/v1_3_0_showcase.py +0 -0
  125. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/examples/v1_4_0_showcase.py +0 -0
  126. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/handlers/__init__.py +0 -0
  127. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/handlers/hitl.py +0 -0
  128. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/__init__.py +0 -0
  129. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/_base.py +0 -0
  130. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/a2h.py +0 -0
  131. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/crewai.py +0 -0
  132. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/langchain.py +0 -0
  133. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/llamaindex.py +0 -0
  134. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/openclaw.py +0 -0
  135. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/pydanticai.py +0 -0
  136. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/smolagents.py +0 -0
  137. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/integrations/vercel_ai.py +0 -0
  138. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/__init__.py +0 -0
  139. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/auth/__init__.py +0 -0
  140. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/auth/auth_middleware.py +0 -0
  141. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/auth/capability_map.py +0 -0
  142. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/auth/config.py +0 -0
  143. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/auth/errors.py +0 -0
  144. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/auth/jwt_extractor.py +0 -0
  145. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/auth/protected_server.py +0 -0
  146. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/client.py +0 -0
  147. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/protocol.py +0 -0
  148. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/serve.py +0 -0
  149. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/server.py +0 -0
  150. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/mcp/server_runner.py +0 -0
  151. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/__init__.py +0 -0
  152. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/base.py +0 -0
  153. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/constants.py +0 -0
  154. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/entities.py +0 -0
  155. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/enums.py +0 -0
  156. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/envelope.py +0 -0
  157. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/ids.py +0 -0
  158. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/parts.py +0 -0
  159. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/payloads.py +0 -0
  160. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/types.py +0 -0
  161. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/models/validators.py +0 -0
  162. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/__init__.py +0 -0
  163. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/dashboards/README.md +0 -0
  164. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/dashboards/asap-detailed.json +0 -0
  165. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/dashboards/asap-red.json +0 -0
  166. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/logging.py +0 -0
  167. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/metrics.py +0 -0
  168. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/trace_parser.py +0 -0
  169. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/trace_ui.py +0 -0
  170. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/observability/tracing.py +0 -0
  171. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/registry/__init__.py +0 -0
  172. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/registry/anti_spam.py +0 -0
  173. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/registry/auto_registration.py +0 -0
  174. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/registry/bot_pr.py +0 -0
  175. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/registry/receipt_cache.py +0 -0
  176. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/schemas.py +0 -0
  177. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/__init__.py +0 -0
  178. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/machine.py +0 -0
  179. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/metering.py +0 -0
  180. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/snapshot.py +0 -0
  181. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/stores/__init__.py +0 -0
  182. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/stores/_sqlite_base.py +0 -0
  183. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/stores/_sync_bridge.py +0 -0
  184. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/stores/memory.py +0 -0
  185. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/state/stores/sqlite.py +0 -0
  186. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/testing/__init__.py +0 -0
  187. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/testing/asgi_factory.py +0 -0
  188. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/testing/assertions.py +0 -0
  189. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/testing/compliance.py +0 -0
  190. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/testing/fixtures.py +0 -0
  191. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/testing/mocks.py +0 -0
  192. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/__init__.py +0 -0
  193. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/_auth_helpers.py +0 -0
  194. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/_request_handler.py +0 -0
  195. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/_state_deps.py +0 -0
  196. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/agent_routes.py +0 -0
  197. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/cache.py +0 -0
  198. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/capability_routes.py +0 -0
  199. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/challenge.py +0 -0
  200. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/circuit_breaker.py +0 -0
  201. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/client/__init__.py +0 -0
  202. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/client/_core.py +0 -0
  203. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/client/_discovery.py +0 -0
  204. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/client/_helpers.py +0 -0
  205. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/client/_send.py +0 -0
  206. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/compression.py +0 -0
  207. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/delegation_api.py +0 -0
  208. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/errors.py +0 -0
  209. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/escalation_routes.py +0 -0
  210. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/executors.py +0 -0
  211. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/handlers.py +0 -0
  212. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/jsonrpc.py +0 -0
  213. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/lambda_codec.py +0 -0
  214. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/middleware.py +0 -0
  215. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/mtls.py +0 -0
  216. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/rate_limit.py +0 -0
  217. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/routes/__init__.py +0 -0
  218. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/routes/audit.py +0 -0
  219. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/routes/health.py +0 -0
  220. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/routes/jsonrpc.py +0 -0
  221. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/routes/websocket.py +0 -0
  222. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/server.py +0 -0
  223. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/sla_api.py +0 -0
  224. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/usage_api.py +0 -0
  225. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/validators.py +0 -0
  226. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/webhook.py +0 -0
  227. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/websocket.py +0 -0
  228. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/__init__.py +0 -0
  229. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/_ack.py +0 -0
  230. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/_actions.py +0 -0
  231. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/_dispatch.py +0 -0
  232. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/_errors.py +0 -0
  233. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/_recv.py +0 -0
  234. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/client.py +0 -0
  235. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/codecs.py +0 -0
  236. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/pool.py +0 -0
  237. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/transport/ws/server.py +0 -0
  238. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/utils/__init__.py +0 -0
  239. {asap_protocol-2.5.8 → asap_protocol-2.5.9}/src/asap/utils/sanitization.py +0 -0
@@ -16,6 +16,66 @@ 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
+
19
79
  ## [2.5.8] - 2026-10-21
20
80
 
21
81
  **Security & coverage patch** — record the repository dependency overrides
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: asap-protocol
3
- Version: 2.5.8
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.0
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.20
34
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.20
35
- Requires-Dist: opentelemetry-instrumentation-fastapi>=0.41
36
- Requires-Dist: opentelemetry-instrumentation-httpx>=0.41
37
- Requires-Dist: opentelemetry-sdk>=1.20
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.0; extra == 'dev'
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'
@@ -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.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)
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.8** on PyPI](https://pypi.org/project/asap-protocol/) (Python) · [`@asap-protocol/client` on npm](https://www.npmjs.com/package/@asap-protocol/client) (TypeScript)
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.8)
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.8
165
+ pip install asap-protocol==2.5.9
166
166
  ```
167
167
 
168
- **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.8; `@asap-protocol/mcp-auth` HTTP middleware still deferred):
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.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).
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
- ```bash
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,6 +257,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
265
257
 
266
258
  | Version | What shipped |
267
259
  | :-- | :-- |
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) |
268
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) |
269
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) |
270
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) |
@@ -292,7 +285,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
292
285
 
293
286
  The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
294
287
 
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)
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)
296
289
  - **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
297
290
  - **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
298
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.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)
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.8** on PyPI](https://pypi.org/project/asap-protocol/) (Python) · [`@asap-protocol/client` on npm](https://www.npmjs.com/package/@asap-protocol/client) (TypeScript)
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.8)
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.8
73
+ pip install asap-protocol==2.5.9
74
74
  ```
75
75
 
76
- **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.8; `@asap-protocol/mcp-auth` HTTP middleware still deferred):
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.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).
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
- ```bash
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,6 +165,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
173
165
 
174
166
  | Version | What shipped |
175
167
  | :-- | :-- |
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) |
176
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) |
177
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) |
178
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) |
@@ -200,7 +193,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
200
193
 
201
194
  The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
202
195
 
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)
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)
204
197
  - **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
205
198
  - **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
206
199
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "asap-protocol"
3
- version = "2.5.8"
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
- "brotli>=1.2.0",
43
- "opentelemetry-api>=1.20",
44
- "opentelemetry-sdk>=1.20",
45
- "opentelemetry-instrumentation-fastapi>=0.41",
46
- "opentelemetry-instrumentation-httpx>=0.41",
47
- "opentelemetry-exporter-otlp-proto-grpc>=1.20",
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.0",
56
+ "brotli>=1.2.1",
54
57
  "pytest>=9.0.3",
55
58
  "pytest-asyncio>=0.24",
56
59
  "pytest-cov>=6.0",
@@ -84,7 +87,8 @@ webauthn = [
84
87
  ]
85
88
  # Framework integration extras.
86
89
  mcp = [
87
- # Floor 1.30.0 for CVE-2026-59951 (prior: 1.28.1 for CVE-2026-52869 / 52870 / 59950).
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.
88
92
  "mcp>=1.30.0,<2",
89
93
  ]
90
94
  langchain = [
@@ -124,14 +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.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)
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
- # - 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)
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)
135
140
  # - click>=8.3.3 for PYSEC-2026-2132 (transitive, e.g. typer / uvicorn / mkdocs stacks)
136
141
  # - pytest>=9.0.3 for CVE-2025-71176 (dev)
137
142
  # - python-multipart>=0.0.31 for CVE-2026-53538–53540 (FastAPI stack; prior floor 0.0.27)
@@ -151,13 +156,16 @@ Issues = "https://github.com/asap-protocol/asap-protocol/issues"
151
156
  # - joserfc>=1.6.7 for CVE-2026-48990 (JWT/JWS primitives; direct + override)
152
157
  # - python-engineio>=4.13.2 for CVE-2026-48802 / CVE-2026-48809 (transitive, locust stack)
153
158
  # - python-socketio>=5.16.2 for CVE-2026-48804 (transitive, locust stack)
154
- # - setuptools>=83.0.0 for PYSEC-2026-3447 (transitive build/tooling path)
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)
155
161
  # - pyopenssl>=26.4.0 for cryptography 50 ABI (webauthn extra; GEN_EMAIL / PKCS7)
156
162
  # - mkdocs-material>=9.7.7 for PYSEC-2026-3864 / CVE-2026-73295 (DOM XSS in search.suggest)
157
163
  # - multidict>=6.9.1 for CVE-2026-104874
158
164
  # - pydantic-ai>=1.107.7,<2 for CVE-2026-107287–107291
159
165
  # - werkzeug>=3.1.9 for CVE-2026-102598
160
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)
161
169
  [tool.uv]
162
170
  override-dependencies = [
163
171
  "aiohttp>=3.14.4,<4",
@@ -169,6 +177,7 @@ override-dependencies = [
169
177
  "cryptography>=50.0.0,<51",
170
178
  "requests>=2.33.0",
171
179
  "pillow>=13.0.0",
180
+ "mcp>=1.30.0,<2",
172
181
  "click>=8.3.3",
173
182
  "pytest>=9.0.3",
174
183
  "python-multipart>=0.0.31",
@@ -188,7 +197,8 @@ override-dependencies = [
188
197
  "joserfc>=1.6.7,<2",
189
198
  "python-engineio>=4.13.2",
190
199
  "python-socketio>=5.16.2",
191
- "setuptools>=83.0.0",
200
+ "setuptools>=84.1.0",
201
+ "fastmcp>=3.4.10,<4",
192
202
  "h2>=4.4.1",
193
203
  "pyopenssl>=26.4.0",
194
204
  "mkdocs-material>=9.7.7",
@@ -196,6 +206,8 @@ override-dependencies = [
196
206
  "pydantic-ai>=1.107.7,<2",
197
207
  "werkzeug>=3.1.9",
198
208
  "fsspec>=2026.6.0",
209
+ "opentelemetry-api>=1.45.1",
210
+ "brotli>=1.2.1",
199
211
  ]
200
212
 
201
213
  [project.scripts]
@@ -349,8 +361,11 @@ addopts = [
349
361
  "--strict-markers",
350
362
  "--strict-config",
351
363
  ]
352
- # Coverage options: use explicitly when needed (e.g., pytest --tb=short --cov=asap --cov-report=xml --cov-fail-under=85)
353
- # NOT included in addopts to avoid conflicts with pytest-xdist (-n auto)
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
+ ]
354
369
  testpaths = ["tests"]
355
370
  # Note: benchmarks/ excluded from testpaths - Locust monkey-patches gevent/ssl which
356
371
  # conflicts with pytest-xdist. Run benchmarks separately: uv run pytest benchmarks/
@@ -368,6 +383,9 @@ filterwarnings = [
368
383
  [tool.coverage.run]
369
384
  source = ["asap"]
370
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
371
389
  omit = [
372
390
  "src/asap/examples/*", # Runnable examples and demos; tested via tests/examples/
373
391
  "src/asap/discovery/dnssd.py", # P3 optional, deferred to v1.1.1+
@@ -8,7 +8,7 @@ from __future__ import annotations
8
8
 
9
9
  from typing import Any
10
10
 
11
- __version__ = "2.5.8"
11
+ __version__ = "2.5.9"
12
12
 
13
13
  __all__ = ["__version__", "create_from_openapi"]
14
14
 
File without changes
File without changes