asap-protocol 2.5.7__tar.gz → 2.5.9__tar.gz

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