asap-protocol 2.5.6__tar.gz → 2.5.7__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.6 → asap_protocol-2.5.7}/CHANGELOG.md +46 -0
  2. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/PKG-INFO +9 -8
  3. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/README.md +8 -7
  4. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/pyproject.toml +9 -1
  5. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/__init__.py +1 -1
  6. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/rate_limit.py +9 -3
  7. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/.gitignore +0 -0
  8. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/LICENSE +0 -0
  9. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/entities/agent.schema.json +0 -0
  10. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/entities/artifact.schema.json +0 -0
  11. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/entities/conversation.schema.json +0 -0
  12. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/entities/manifest.schema.json +0 -0
  13. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/entities/message.schema.json +0 -0
  14. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/entities/state_snapshot.schema.json +0 -0
  15. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/entities/task.schema.json +0 -0
  16. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/envelope.schema.json +0 -0
  17. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/examples/shellclaw-jetson-capabilities.json +0 -0
  18. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/parts/data_part.schema.json +0 -0
  19. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/parts/file_part.schema.json +0 -0
  20. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/parts/resource_part.schema.json +0 -0
  21. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/parts/template_part.schema.json +0 -0
  22. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/parts/text_part.schema.json +0 -0
  23. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/artifact_notify.schema.json +0 -0
  24. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/mcp_resource_data.schema.json +0 -0
  25. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
  26. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/mcp_tool_call.schema.json +0 -0
  27. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/mcp_tool_result.schema.json +0 -0
  28. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/message_send.schema.json +0 -0
  29. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/state_query.schema.json +0 -0
  30. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/state_restore.schema.json +0 -0
  31. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/task_cancel.schema.json +0 -0
  32. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/task_request.schema.json +0 -0
  33. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/task_response.schema.json +0 -0
  34. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/schemas/payloads/task_update.schema.json +0 -0
  35. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/__init__.py +0 -0
  36. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/mcp/__init__.py +0 -0
  37. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/mcp/auth_middleware.py +0 -0
  38. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/mcp/capability_map.py +0 -0
  39. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/mcp/config.py +0 -0
  40. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/mcp/errors.py +0 -0
  41. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/mcp/jwt_extractor.py +0 -0
  42. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/mcp/protected_server.py +0 -0
  43. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/openapi/__init__.py +0 -0
  44. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/openapi/approval.py +0 -0
  45. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/openapi/capability_mapper.py +0 -0
  46. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/openapi/factory.py +0 -0
  47. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/openapi/handler.py +0 -0
  48. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/adapters/openapi/spec_loader.py +0 -0
  49. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/__init__.py +0 -0
  50. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/_scope_parse.py +0 -0
  51. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/agent_jwt.py +0 -0
  52. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/agent_jwt_session.py +0 -0
  53. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/approval.py +0 -0
  54. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/capabilities.py +0 -0
  55. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/identity.py +0 -0
  56. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/introspection.py +0 -0
  57. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/jti_replay_cache.py +0 -0
  58. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/jwks.py +0 -0
  59. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/middleware.py +0 -0
  60. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/oauth2.py +0 -0
  61. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/oidc.py +0 -0
  62. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/scopes.py +0 -0
  63. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/self_auth.py +0 -0
  64. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/webauthn.py +0 -0
  65. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/auth/webauthn_store.py +0 -0
  66. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/__init__.py +0 -0
  67. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/_compat.py +0 -0
  68. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/audit_export.py +0 -0
  69. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/compliance_check.py +0 -0
  70. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/delegation.py +0 -0
  71. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/keys.py +0 -0
  72. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/manifest.py +0 -0
  73. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/repl.py +0 -0
  74. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/schemas.py +0 -0
  75. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/cli/trace.py +0 -0
  76. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/client/__init__.py +0 -0
  77. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/client/cache.py +0 -0
  78. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/client/http_client.py +0 -0
  79. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/client/market.py +0 -0
  80. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/client/revocation.py +0 -0
  81. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/client/trust.py +0 -0
  82. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/crypto/__init__.py +0 -0
  83. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/crypto/keys.py +0 -0
  84. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/crypto/models.py +0 -0
  85. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/crypto/signing.py +0 -0
  86. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/crypto/trust.py +0 -0
  87. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/crypto/trust_levels.py +0 -0
  88. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/discovery/__init__.py +0 -0
  89. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/discovery/dnssd.py +0 -0
  90. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/discovery/health.py +0 -0
  91. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/discovery/registry.py +0 -0
  92. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/discovery/validation.py +0 -0
  93. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/discovery/wellknown.py +0 -0
  94. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/__init__.py +0 -0
  95. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/audit.py +0 -0
  96. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/delegation.py +0 -0
  97. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/delegation_storage.py +0 -0
  98. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/hooks.py +0 -0
  99. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/metering.py +0 -0
  100. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/sla.py +0 -0
  101. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/sla_storage.py +0 -0
  102. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/economics/storage.py +0 -0
  103. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/errors.py +0 -0
  104. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/README.md +0 -0
  105. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/__init__.py +0 -0
  106. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/a2h_approval.py +0 -0
  107. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/agent_failover.py +0 -0
  108. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/auth_patterns.py +0 -0
  109. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/coordinator.py +0 -0
  110. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/echo_agent.py +0 -0
  111. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/error_recovery.py +0 -0
  112. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/long_running.py +0 -0
  113. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/mcp_client_demo.py +0 -0
  114. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/mcp_integration.py +0 -0
  115. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/multi_step_workflow.py +0 -0
  116. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/orchestration.py +0 -0
  117. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/rate_limiting.py +0 -0
  118. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/run_demo.py +0 -0
  119. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/secure_agent.py +0 -0
  120. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/secure_handler.py +0 -0
  121. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/state_migration.py +0 -0
  122. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/storage_backends.py +0 -0
  123. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/streaming_agent.py +0 -0
  124. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/streaming_response.py +0 -0
  125. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/v1_3_0_showcase.py +0 -0
  126. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/examples/v1_4_0_showcase.py +0 -0
  127. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/handlers/__init__.py +0 -0
  128. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/handlers/hitl.py +0 -0
  129. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/__init__.py +0 -0
  130. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/_base.py +0 -0
  131. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/a2h.py +0 -0
  132. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/crewai.py +0 -0
  133. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/langchain.py +0 -0
  134. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/llamaindex.py +0 -0
  135. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/openclaw.py +0 -0
  136. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/pydanticai.py +0 -0
  137. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/smolagents.py +0 -0
  138. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/integrations/vercel_ai.py +0 -0
  139. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/__init__.py +0 -0
  140. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/auth/__init__.py +0 -0
  141. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/auth/auth_middleware.py +0 -0
  142. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/auth/capability_map.py +0 -0
  143. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/auth/config.py +0 -0
  144. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/auth/errors.py +0 -0
  145. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/auth/jwt_extractor.py +0 -0
  146. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/auth/protected_server.py +0 -0
  147. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/client.py +0 -0
  148. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/protocol.py +0 -0
  149. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/serve.py +0 -0
  150. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/server.py +0 -0
  151. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/mcp/server_runner.py +0 -0
  152. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/__init__.py +0 -0
  153. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/base.py +0 -0
  154. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/constants.py +0 -0
  155. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/entities.py +0 -0
  156. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/enums.py +0 -0
  157. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/envelope.py +0 -0
  158. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/ids.py +0 -0
  159. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/parts.py +0 -0
  160. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/payloads.py +0 -0
  161. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/types.py +0 -0
  162. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/models/validators.py +0 -0
  163. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/__init__.py +0 -0
  164. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/dashboards/README.md +0 -0
  165. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/dashboards/asap-detailed.json +0 -0
  166. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/dashboards/asap-red.json +0 -0
  167. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/logging.py +0 -0
  168. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/metrics.py +0 -0
  169. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/trace_parser.py +0 -0
  170. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/trace_ui.py +0 -0
  171. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/observability/tracing.py +0 -0
  172. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/registry/__init__.py +0 -0
  173. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/registry/anti_spam.py +0 -0
  174. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/registry/auto_registration.py +0 -0
  175. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/registry/bot_pr.py +0 -0
  176. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/registry/receipt_cache.py +0 -0
  177. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/schemas.py +0 -0
  178. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/__init__.py +0 -0
  179. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/machine.py +0 -0
  180. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/metering.py +0 -0
  181. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/snapshot.py +0 -0
  182. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/stores/__init__.py +0 -0
  183. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/stores/_sqlite_base.py +0 -0
  184. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/stores/_sync_bridge.py +0 -0
  185. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/stores/memory.py +0 -0
  186. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/state/stores/sqlite.py +0 -0
  187. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/testing/__init__.py +0 -0
  188. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/testing/asgi_factory.py +0 -0
  189. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/testing/assertions.py +0 -0
  190. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/testing/compliance.py +0 -0
  191. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/testing/fixtures.py +0 -0
  192. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/testing/mocks.py +0 -0
  193. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/__init__.py +0 -0
  194. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/_auth_helpers.py +0 -0
  195. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/_request_handler.py +0 -0
  196. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/_state_deps.py +0 -0
  197. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/agent_routes.py +0 -0
  198. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/cache.py +0 -0
  199. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/capability_routes.py +0 -0
  200. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/challenge.py +0 -0
  201. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/circuit_breaker.py +0 -0
  202. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/client/__init__.py +0 -0
  203. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/client/_core.py +0 -0
  204. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/client/_discovery.py +0 -0
  205. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/client/_helpers.py +0 -0
  206. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/client/_send.py +0 -0
  207. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/compression.py +0 -0
  208. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/delegation_api.py +0 -0
  209. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/errors.py +0 -0
  210. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/escalation_routes.py +0 -0
  211. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/executors.py +0 -0
  212. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/handlers.py +0 -0
  213. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/jsonrpc.py +0 -0
  214. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/lambda_codec.py +0 -0
  215. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/middleware.py +0 -0
  216. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/mtls.py +0 -0
  217. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/routes/__init__.py +0 -0
  218. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/routes/audit.py +0 -0
  219. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/routes/health.py +0 -0
  220. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/routes/jsonrpc.py +0 -0
  221. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/routes/websocket.py +0 -0
  222. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/server.py +0 -0
  223. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/sla_api.py +0 -0
  224. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/usage_api.py +0 -0
  225. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/validators.py +0 -0
  226. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/webhook.py +0 -0
  227. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/websocket.py +0 -0
  228. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/__init__.py +0 -0
  229. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/_ack.py +0 -0
  230. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/_actions.py +0 -0
  231. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/_dispatch.py +0 -0
  232. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/_errors.py +0 -0
  233. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/_recv.py +0 -0
  234. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/client.py +0 -0
  235. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/codecs.py +0 -0
  236. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/pool.py +0 -0
  237. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/transport/ws/server.py +0 -0
  238. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/utils/__init__.py +0 -0
  239. {asap_protocol-2.5.6 → asap_protocol-2.5.7}/src/asap/utils/sanitization.py +0 -0
@@ -16,6 +16,52 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
16
16
 
17
17
  ---
18
18
 
19
+ ## [2.5.7] - 2026-10-11
20
+
21
+ **Quality & coverage patch** — correct batch HTTP rate-limit accounting,
22
+ transitive dependency overrides for CI security gates, `apps/web` audit-ci
23
+ 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).
25
+ This is **not** Formal Spec & Interop. npm `@asap-protocol/*` packages remain
26
+ at **2.4.1**. PyPI `asap-compliance` remains **1.3.0**.
27
+ Tag [`v2.5.7`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.7)
28
+ · PyPI `asap-protocol==2.5.7`.
29
+
30
+ ### Fixed
31
+
32
+ - **Batch rate limits (#394)** — ``ASAPRateLimiter.check_n`` passes ``cost=n`` to
33
+ the moving-window strategy instead of ``n`` separate unit-cost ``hit`` calls,
34
+ so multi-item requests consume the correct quota.
35
+
36
+ ### Security
37
+
38
+ - **Transitive Python deps** — ``uv`` override pins for advisories on optional
39
+ integration paths (``multidict``, ``pydantic-ai``, ``werkzeug``, ``fsspec``)
40
+ so CI ``pip-audit`` stays green ([#394](https://github.com/asap-protocol/asap-protocol/pull/394)
41
+ train).
42
+ - **`apps/web` npm audit** — CI uses ``audit-ci`` with ``audit-ci.jsonc``;
43
+ production overrides bump ``sharp`` and ``source-map-js``
44
+ ([#394](https://github.com/asap-protocol/asap-protocol/pull/394) train).
45
+
46
+ ### Quality
47
+
48
+ - **Transport & auth regression tests (#395, #397, #394)** — stale-key grants and
49
+ 409 races, WebSocket token bursts and snapshot replace, streamed limits and
50
+ ceremony retry paths.
51
+ - **Registry & compliance harness (#389)** — endpoint rewrite, webhook DNS match,
52
+ compliance preflight edges.
53
+ - **Identity, economics, ingress (#398, #399)** — JWT middleware and metering
54
+ bridges, SSRF and ingress policy, adapter storage edges.
55
+
56
+ ### Migration
57
+
58
+ - **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).
62
+
63
+ ---
64
+
19
65
  ## [2.5.6] - 2026-10-01
20
66
 
21
67
  **Security & quality patch** — Lite Registry IssueOps envelope and endpoint SSRF
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: asap-protocol
3
- Version: 2.5.6
3
+ Version: 2.5.7
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
@@ -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.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6) · 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.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)
103
103
 
104
- > 📦 **Install** — [`asap-protocol` **2.5.6** 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.7** 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.6)
159
+ uv add asap-protocol # latest on PyPI (currently 2.5.7)
160
160
  ```
161
161
 
162
162
  Or with pip:
163
163
 
164
164
  ```bash
165
- pip install asap-protocol==2.5.6
165
+ pip install asap-protocol==2.5.7
166
166
  ```
167
167
 
168
- **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.6; `@asap-protocol/mcp-auth` HTTP middleware still deferred):
168
+ **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.7; `@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.6** (security & quality patch) is **shipped** — see [Migration (v2.5.5 → v2.5.6)](docs/migration.md#upgrading-from-v255-to-v256). Dist Loop starters remain: [Build for agents](docs/guides/build-for-agents.md) · [starters](examples/starters/README.md).
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).
181
181
 
182
182
  ## Quick Start
183
183
 
@@ -265,6 +265,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
265
265
 
266
266
  | Version | What shipped |
267
267
  | :-- | :-- |
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) |
268
269
  | **v2.5.6** | **Security & quality patch** — **[GitHub Release `v2.5.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6)** · Lite Registry IssueOps envelope + endpoint SSRF, compliance open-redirect SSRF, constrained capability execute, rotate-key lifecycle race, deps + regression tests. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#256---2026-10-01) and [Migration (v2.5.5 → v2.5.6)](docs/migration.md#upgrading-from-v255-to-v256) |
269
270
  | **v2.5.5** | **Security & quality patch** — **[GitHub Release `v2.5.5`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.5)** · OpenAPI path-param climb, registry URN overwrite guard, marketplace SSRF DNS pin, capability-replace consent, fail-closed reactivate, Agent JWT persist/revoke races. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#255---2026-09-11) and [Migration (v2.5.4 → v2.5.5)](docs/migration.md#upgrading-from-v254-to-v255) |
270
271
  | **v2.5.4** | **Distribution Loop** — **[GitHub Release `v2.5.4`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.4)** · thin starters (`examples/starters/`), [Build for agents](docs/guides/build-for-agents.md), homepage agent-first CTAs, telemetry ops (no public metrics UI). See [CHANGELOG](CHANGELOG.md#254---2026-07-18), [PRD](product/prd/prd-v2.5.4-distribution-loop.md), and [Migration (v2.5.3 → v2.5.4)](docs/migration.md#upgrading-from-v253-to-v254) |
@@ -290,7 +291,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
290
291
 
291
292
  The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
292
293
 
293
- - **Formal Spec & Interop** — RFC, introspection, privacy (PRD [prd-v2.5.5-formal-spec-interop.md](product/prd/prd-v2.5.5-formal-spec-interop.md); library **2.5.6** is the security/quality patch above)
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)
294
295
  - **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
295
296
  - **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
296
297
 
@@ -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.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6) · 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.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)
11
11
 
12
- > 📦 **Install** — [`asap-protocol` **2.5.6** 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.7** 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.6)
67
+ uv add asap-protocol # latest on PyPI (currently 2.5.7)
68
68
  ```
69
69
 
70
70
  Or with pip:
71
71
 
72
72
  ```bash
73
- pip install asap-protocol==2.5.6
73
+ pip install asap-protocol==2.5.7
74
74
  ```
75
75
 
76
- **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.6; `@asap-protocol/mcp-auth` HTTP middleware still deferred):
76
+ **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.7; `@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.6** (security & quality patch) is **shipped** — see [Migration (v2.5.5 → v2.5.6)](docs/migration.md#upgrading-from-v255-to-v256). Dist Loop starters remain: [Build for agents](docs/guides/build-for-agents.md) · [starters](examples/starters/README.md).
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).
89
89
 
90
90
  ## Quick Start
91
91
 
@@ -173,6 +173,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
173
173
 
174
174
  | Version | What shipped |
175
175
  | :-- | :-- |
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) |
176
177
  | **v2.5.6** | **Security & quality patch** — **[GitHub Release `v2.5.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6)** · Lite Registry IssueOps envelope + endpoint SSRF, compliance open-redirect SSRF, constrained capability execute, rotate-key lifecycle race, deps + regression tests. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#256---2026-10-01) and [Migration (v2.5.5 → v2.5.6)](docs/migration.md#upgrading-from-v255-to-v256) |
177
178
  | **v2.5.5** | **Security & quality patch** — **[GitHub Release `v2.5.5`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.5)** · OpenAPI path-param climb, registry URN overwrite guard, marketplace SSRF DNS pin, capability-replace consent, fail-closed reactivate, Agent JWT persist/revoke races. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#255---2026-09-11) and [Migration (v2.5.4 → v2.5.5)](docs/migration.md#upgrading-from-v254-to-v255) |
178
179
  | **v2.5.4** | **Distribution Loop** — **[GitHub Release `v2.5.4`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.4)** · thin starters (`examples/starters/`), [Build for agents](docs/guides/build-for-agents.md), homepage agent-first CTAs, telemetry ops (no public metrics UI). See [CHANGELOG](CHANGELOG.md#254---2026-07-18), [PRD](product/prd/prd-v2.5.4-distribution-loop.md), and [Migration (v2.5.3 → v2.5.4)](docs/migration.md#upgrading-from-v253-to-v254) |
@@ -198,7 +199,7 @@ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-prot
198
199
 
199
200
  The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
200
201
 
201
- - **Formal Spec & Interop** — RFC, introspection, privacy (PRD [prd-v2.5.5-formal-spec-interop.md](product/prd/prd-v2.5.5-formal-spec-interop.md); library **2.5.6** is the security/quality patch above)
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)
202
203
  - **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
203
204
  - **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
204
205
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "asap-protocol"
3
- version = "2.5.6"
3
+ version = "2.5.7"
4
4
  description = "Async Simple Agent Protocol - A streamlined protocol for agent-to-agent communication"
5
5
  authors = [
6
6
  {name = "ASAP Protocol Contributors"}
@@ -153,6 +153,10 @@ Issues = "https://github.com/asap-protocol/asap-protocol/issues"
153
153
  # - setuptools>=83.0.0 for PYSEC-2026-3447 (transitive build/tooling path)
154
154
  # - pyopenssl>=26.4.0 for cryptography 50 ABI (webauthn extra; GEN_EMAIL / PKCS7)
155
155
  # - mkdocs-material>=9.7.7 for PYSEC-2026-3864 / CVE-2026-73295 (DOM XSS in search.suggest)
156
+ # - multidict>=6.9.1 for CVE-2026-104874
157
+ # - pydantic-ai>=1.107.7,<2 for CVE-2026-107287–107291
158
+ # - werkzeug>=3.1.9 for CVE-2026-102598
159
+ # - fsspec>=2026.6.0 for CVE-2026-104851
156
160
  [tool.uv]
157
161
  override-dependencies = [
158
162
  "aiohttp>=3.14.3,<4",
@@ -186,6 +190,10 @@ override-dependencies = [
186
190
  "h2>=4.4.1",
187
191
  "pyopenssl>=26.4.0",
188
192
  "mkdocs-material>=9.7.7",
193
+ "multidict>=6.9.1",
194
+ "pydantic-ai>=1.107.7,<2",
195
+ "werkzeug>=3.1.9",
196
+ "fsspec>=2026.6.0",
189
197
  ]
190
198
 
191
199
  [project.scripts]
@@ -8,7 +8,7 @@ from __future__ import annotations
8
8
 
9
9
  from typing import Any
10
10
 
11
- __version__ = "2.5.6"
11
+ __version__ = "2.5.7"
12
12
 
13
13
  __all__ = ["__version__", "create_from_openapi"]
14
14
 
@@ -142,7 +142,7 @@ class ASAPRateLimiter:
142
142
  return
143
143
  key = self._key_func(request)
144
144
  for rate_limit in self._rate_limits:
145
- if not self._strategy.test(rate_limit, key):
145
+ if not self._strategy.test(rate_limit, key, cost=n):
146
146
  window_stats = self._strategy.get_window_stats(rate_limit, key)
147
147
  retry_seconds = max(1, int(window_stats[0] - time.time()))
148
148
  raise RateLimitExceeded(
@@ -151,8 +151,14 @@ class ASAPRateLimiter:
151
151
  limit=str(rate_limit),
152
152
  )
153
153
  for rate_limit in self._rate_limits:
154
- for _ in range(n):
155
- self._strategy.hit(rate_limit, key)
154
+ if not self._strategy.hit(rate_limit, key, cost=n):
155
+ window_stats = self._strategy.get_window_stats(rate_limit, key)
156
+ retry_seconds = max(1, int(window_stats[0] - time.time()))
157
+ raise RateLimitExceeded(
158
+ detail=f"Rate limit exceeded: {rate_limit}",
159
+ retry_after=retry_seconds,
160
+ limit=str(rate_limit),
161
+ )
156
162
 
157
163
  def test(self, request: Request) -> bool:
158
164
  """Return True if *request* would pass all limits (no counter increment)."""
File without changes
File without changes