asap-protocol 2.5.3__tar.gz → 2.5.5__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 (241) hide show
  1. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/CHANGELOG.md +148 -7
  2. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/PKG-INFO +49 -47
  3. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/README.md +38 -36
  4. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/pyproject.toml +31 -23
  5. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/__init__.py +1 -1
  6. asap_protocol-2.5.5/src/asap/adapters/mcp/__init__.py +26 -0
  7. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/openapi/__init__.py +1 -1
  8. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/openapi/capability_mapper.py +7 -10
  9. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/openapi/handler.py +38 -10
  10. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/agent_jwt.py +18 -13
  11. asap_protocol-2.5.5/src/asap/auth/agent_jwt_session.py +92 -0
  12. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/approval.py +87 -5
  13. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/capabilities.py +48 -4
  14. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/identity.py +165 -8
  15. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/self_auth.py +3 -3
  16. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/webauthn.py +4 -5
  17. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/webauthn_store.py +2 -2
  18. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/client/revocation.py +1 -1
  19. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/crypto/trust.py +1 -1
  20. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/README.md +2 -8
  21. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/auth_patterns.py +7 -6
  22. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/coordinator.py +1 -1
  23. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/rate_limiting.py +3 -3
  24. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/streaming_response.py +2 -2
  25. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/auth/__init__.py +6 -7
  26. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/auth/auth_middleware.py +1 -2
  27. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/auth/config.py +2 -2
  28. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/auth/protected_server.py +5 -5
  29. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/registry/bot_pr.py +11 -1
  30. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/stores/_sync_bridge.py +1 -2
  31. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/_request_handler.py +9 -15
  32. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/agent_routes.py +86 -32
  33. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/capability_routes.py +20 -4
  34. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/client/__init__.py +7 -19
  35. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/client/_core.py +5 -8
  36. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/client/_discovery.py +4 -8
  37. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/client/_helpers.py +2 -7
  38. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/client/_send.py +4 -5
  39. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/escalation_routes.py +31 -2
  40. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/handlers.py +0 -2
  41. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/middleware.py +0 -2
  42. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/server.py +4 -4
  43. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/validators.py +0 -1
  44. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/websocket.py +14 -34
  45. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/__init__.py +13 -16
  46. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/_ack.py +4 -6
  47. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/_dispatch.py +13 -17
  48. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/_recv.py +4 -5
  49. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/client.py +12 -40
  50. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/codecs.py +8 -14
  51. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/pool.py +2 -3
  52. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/server.py +26 -58
  53. asap_protocol-2.5.3/src/asap/adapters/mcp/__init__.py +0 -33
  54. asap_protocol-2.5.3/src/asap/examples/websocket_concept.py +0 -129
  55. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/.gitignore +0 -0
  56. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/LICENSE +0 -0
  57. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/entities/agent.schema.json +0 -0
  58. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/entities/artifact.schema.json +0 -0
  59. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/entities/conversation.schema.json +0 -0
  60. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/entities/manifest.schema.json +0 -0
  61. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/entities/message.schema.json +0 -0
  62. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/entities/state_snapshot.schema.json +0 -0
  63. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/entities/task.schema.json +0 -0
  64. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/envelope.schema.json +0 -0
  65. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/examples/shellclaw-jetson-capabilities.json +0 -0
  66. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/parts/data_part.schema.json +0 -0
  67. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/parts/file_part.schema.json +0 -0
  68. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/parts/resource_part.schema.json +0 -0
  69. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/parts/template_part.schema.json +0 -0
  70. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/parts/text_part.schema.json +0 -0
  71. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/artifact_notify.schema.json +0 -0
  72. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/mcp_resource_data.schema.json +0 -0
  73. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
  74. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/mcp_tool_call.schema.json +0 -0
  75. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/mcp_tool_result.schema.json +0 -0
  76. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/message_send.schema.json +0 -0
  77. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/state_query.schema.json +0 -0
  78. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/state_restore.schema.json +0 -0
  79. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/task_cancel.schema.json +0 -0
  80. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/task_request.schema.json +0 -0
  81. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/task_response.schema.json +0 -0
  82. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/schemas/payloads/task_update.schema.json +0 -0
  83. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/__init__.py +0 -0
  84. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/mcp/auth_middleware.py +0 -0
  85. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/mcp/capability_map.py +0 -0
  86. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/mcp/config.py +0 -0
  87. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/mcp/errors.py +0 -0
  88. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/mcp/jwt_extractor.py +0 -0
  89. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/mcp/protected_server.py +0 -0
  90. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/openapi/approval.py +0 -0
  91. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/openapi/factory.py +0 -0
  92. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/adapters/openapi/spec_loader.py +0 -0
  93. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/__init__.py +0 -0
  94. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/_scope_parse.py +0 -0
  95. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/introspection.py +0 -0
  96. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/jti_replay_cache.py +0 -0
  97. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/jwks.py +0 -0
  98. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/middleware.py +0 -0
  99. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/oauth2.py +0 -0
  100. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/oidc.py +0 -0
  101. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/auth/scopes.py +0 -0
  102. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/__init__.py +0 -0
  103. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/_compat.py +0 -0
  104. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/audit_export.py +0 -0
  105. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/compliance_check.py +0 -0
  106. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/delegation.py +0 -0
  107. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/keys.py +0 -0
  108. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/manifest.py +0 -0
  109. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/repl.py +0 -0
  110. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/schemas.py +0 -0
  111. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/cli/trace.py +0 -0
  112. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/client/__init__.py +0 -0
  113. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/client/cache.py +0 -0
  114. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/client/http_client.py +0 -0
  115. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/client/market.py +0 -0
  116. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/client/trust.py +0 -0
  117. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/crypto/__init__.py +0 -0
  118. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/crypto/keys.py +0 -0
  119. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/crypto/models.py +0 -0
  120. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/crypto/signing.py +0 -0
  121. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/crypto/trust_levels.py +0 -0
  122. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/discovery/__init__.py +0 -0
  123. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/discovery/dnssd.py +0 -0
  124. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/discovery/health.py +0 -0
  125. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/discovery/registry.py +0 -0
  126. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/discovery/validation.py +0 -0
  127. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/discovery/wellknown.py +0 -0
  128. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/__init__.py +0 -0
  129. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/audit.py +0 -0
  130. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/delegation.py +0 -0
  131. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/delegation_storage.py +0 -0
  132. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/hooks.py +0 -0
  133. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/metering.py +0 -0
  134. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/sla.py +0 -0
  135. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/sla_storage.py +0 -0
  136. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/economics/storage.py +0 -0
  137. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/errors.py +0 -0
  138. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/__init__.py +0 -0
  139. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/a2h_approval.py +0 -0
  140. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/agent_failover.py +0 -0
  141. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/echo_agent.py +0 -0
  142. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/error_recovery.py +0 -0
  143. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/long_running.py +0 -0
  144. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/mcp_client_demo.py +0 -0
  145. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/mcp_integration.py +0 -0
  146. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/multi_step_workflow.py +0 -0
  147. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/orchestration.py +0 -0
  148. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/run_demo.py +0 -0
  149. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/secure_agent.py +0 -0
  150. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/secure_handler.py +0 -0
  151. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/state_migration.py +0 -0
  152. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/storage_backends.py +0 -0
  153. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/streaming_agent.py +0 -0
  154. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/v1_3_0_showcase.py +0 -0
  155. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/examples/v1_4_0_showcase.py +0 -0
  156. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/handlers/__init__.py +0 -0
  157. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/handlers/hitl.py +0 -0
  158. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/__init__.py +0 -0
  159. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/_base.py +0 -0
  160. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/a2h.py +0 -0
  161. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/crewai.py +0 -0
  162. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/langchain.py +0 -0
  163. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/llamaindex.py +0 -0
  164. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/openclaw.py +0 -0
  165. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/pydanticai.py +0 -0
  166. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/smolagents.py +0 -0
  167. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/integrations/vercel_ai.py +0 -0
  168. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/__init__.py +0 -0
  169. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/auth/capability_map.py +0 -0
  170. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/auth/errors.py +0 -0
  171. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/auth/jwt_extractor.py +0 -0
  172. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/client.py +0 -0
  173. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/protocol.py +0 -0
  174. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/serve.py +0 -0
  175. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/server.py +0 -0
  176. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/mcp/server_runner.py +0 -0
  177. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/__init__.py +0 -0
  178. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/base.py +0 -0
  179. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/constants.py +0 -0
  180. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/entities.py +0 -0
  181. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/enums.py +0 -0
  182. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/envelope.py +0 -0
  183. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/ids.py +0 -0
  184. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/parts.py +0 -0
  185. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/payloads.py +0 -0
  186. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/types.py +0 -0
  187. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/models/validators.py +0 -0
  188. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/__init__.py +0 -0
  189. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/dashboards/README.md +0 -0
  190. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/dashboards/asap-detailed.json +0 -0
  191. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/dashboards/asap-red.json +0 -0
  192. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/logging.py +0 -0
  193. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/metrics.py +0 -0
  194. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/trace_parser.py +0 -0
  195. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/trace_ui.py +0 -0
  196. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/observability/tracing.py +0 -0
  197. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/registry/__init__.py +0 -0
  198. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/registry/anti_spam.py +0 -0
  199. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/registry/auto_registration.py +0 -0
  200. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/registry/receipt_cache.py +0 -0
  201. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/schemas.py +0 -0
  202. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/__init__.py +0 -0
  203. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/machine.py +0 -0
  204. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/metering.py +0 -0
  205. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/snapshot.py +0 -0
  206. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/stores/__init__.py +0 -0
  207. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/stores/_sqlite_base.py +0 -0
  208. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/stores/memory.py +0 -0
  209. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/state/stores/sqlite.py +0 -0
  210. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/testing/__init__.py +0 -0
  211. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/testing/asgi_factory.py +0 -0
  212. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/testing/assertions.py +0 -0
  213. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/testing/compliance.py +0 -0
  214. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/testing/fixtures.py +0 -0
  215. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/testing/mocks.py +0 -0
  216. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/__init__.py +0 -0
  217. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/_auth_helpers.py +0 -0
  218. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/_state_deps.py +0 -0
  219. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/cache.py +0 -0
  220. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/challenge.py +0 -0
  221. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/circuit_breaker.py +0 -0
  222. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/compression.py +0 -0
  223. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/delegation_api.py +0 -0
  224. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/errors.py +0 -0
  225. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/executors.py +0 -0
  226. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/jsonrpc.py +0 -0
  227. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/lambda_codec.py +0 -0
  228. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/mtls.py +0 -0
  229. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/rate_limit.py +0 -0
  230. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/routes/__init__.py +0 -0
  231. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/routes/audit.py +0 -0
  232. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/routes/health.py +0 -0
  233. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/routes/jsonrpc.py +0 -0
  234. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/routes/websocket.py +0 -0
  235. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/sla_api.py +0 -0
  236. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/usage_api.py +0 -0
  237. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/webhook.py +0 -0
  238. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/_actions.py +0 -0
  239. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/transport/ws/_errors.py +0 -0
  240. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/utils/__init__.py +0 -0
  241. {asap_protocol-2.5.3 → asap_protocol-2.5.5}/src/asap/utils/sanitization.py +0 -0
@@ -7,9 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ### Follow-up (planned v2.5.4+)
10
+ ### Follow-up (planned)
11
11
 
12
- - **Distribution Loop** — homepage, templates, metrics ([prd-v2.5.4-distribution-loop.md](product/prd/prd-v2.5.4-distribution-loop.md)).
13
12
  - **Formal Spec & Interop** — RFC spec, introspection, privacy ([prd-v2.5.5-formal-spec-interop.md](product/prd/prd-v2.5.5-formal-spec-interop.md)).
14
13
  - `@asap-protocol/mcp-auth` HTTP/SSE middleware (deferred from v2.5.0 — see [2.5.0] TypeScript note and [typescript-mcp-auth-spike.md](engineering/tasks/v2.5.0/typescript-mcp-auth-spike.md)).
15
14
  - Collapse the dual `UsageMetrics`/`InMemoryMeteringStore` pair retained in S1 for API stability.
@@ -17,15 +16,157 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
17
16
 
18
17
  ---
19
18
 
20
- ## [2.5.3] - 2026-07-14
19
+ ## [2.5.5] - 2026-09-11
20
+
21
+ **Security & quality patch** — OpenAPI path-parameter climb, Lite Registry
22
+ add-only URN policy, marketplace allowlisted-fetch DNS pin, capability-replace
23
+ consent, fail-closed reactivate, Agent JWT persist/revoke races, and
24
+ dependency floors already on `main` via [#344](https://github.com/asap-protocol/asap-protocol/pull/344)–[#350](https://github.com/asap-protocol/asap-protocol/pull/350).
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.5`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.5)
28
+ · PyPI `asap-protocol==2.5.5`.
29
+
30
+ ### Security
31
+
32
+ - **Reactivate approval bypass (#348)** — ``reactivate_agent`` /
33
+ ``POST /asap/agent/reactivate`` only allow ``active`` / ``expired``
34
+ (fail-closed). ``pending``, ``rejected``, ``revoked``, and any future
35
+ status cannot be force-activated. LIFE-004 scopes reactivation to expired
36
+ agents; flipping a denied or still-open registration would skip host
37
+ consent.
38
+ - **Capability escalation constraint overwrite (#347)** —
39
+ ``POST /asap/agent/request-capability`` no longer auto-applies a name in
40
+ ``host.default_capabilities`` when that would clear, weaken, or otherwise
41
+ replace an existing registry grant (constraints, status, or a
42
+ host-imposed ``expires_at``). Constraint or expiry changes require the same
43
+ Device Auth / CIBA consent path as non-default capability names. Identical
44
+ active re-requests do not rewrite the grant row. A2H prompts include the
45
+ requested spec, not names only.
46
+ - **Marketplace allowlisted fetch DNS pin (#346)** — `/api/health-check`,
47
+ `/api/proxy/check`, and dashboard register HEAD no longer let Node
48
+ `fetch` re-resolve after the SSRF allowlist. `connect()` is pinned to
49
+ the allowlisted IPs, each redirect hop is re-validated, hop sockets are
50
+ dropped after headers, and the 3s budget is shared across the walk
51
+ (DNS rebinding / private Location / body-drain DoS).
52
+ - **Lite Registry auto-registration (#345)** — `POST /registry/agents` and the
53
+ auto-merge policy cannot overwrite or delete existing agent URNs.
54
+ Duplicate ids in `registry.json` are rejected (marketplace lookup is
55
+ first-match). Updates and removals stay on IssueOps / human review.
56
+ - **OpenAPI path-parameter climb (#344)** — ``_fill_path_template`` rejects
57
+ ``.`` / ``..`` path params before ``httpx.request``.
58
+ ``quote(..., safe="")`` leaves RFC 3986 dots unencoded, so a granted
59
+ skill for ``/v1/{resource}/{id}`` with both params ``..`` would climb
60
+ out of a path-prefixed ``base_url`` (confused deputy with OA-009
61
+ headers). Static templates that already contain ``.`` / ``..`` raise
62
+ ``OpenAPIPathParameterError`` instead of ``ValueError``.
63
+ - **Marketplace IPv6 SSRF ranges (#350)** — ``isBlockedIPv6`` treats link-local
64
+ as ``fe80::/10`` (not ``fe80:`` /16), blocks unspecified ``::``, and
65
+ applies the IPv4 blocklist to NAT64 ``64:ff9b::/96`` embeddings.
66
+ - **Pending Device Auth / CIBA spec reuse (#350)** — a later escalation request
67
+ merges ``capability_specs`` and rotates to a new challenge. A2H
68
+ approve/deny is ignored when the store payload no longer matches the
69
+ prompt, so a stale consent cannot grant a wider set.
70
+
71
+ ### Security (deps)
72
+
73
+ - Raise `cryptography` to `>=50.0.0,<51` for **PYSEC-2026-3552** (PKCS7
74
+ Bleichenbacher; 49.0.0 already covered PYSEC-2026-3553/3554). Pair with
75
+ `pyopenssl>=26.4.0` so `[webauthn]` stays importable.
76
+ - Raise `aiohttp` override to `>=3.14.3,<4` for **PYSEC-2026-3545/3546/3547**.
77
+ - Add `h2>=4.4.1` override for **PYSEC-2026-3628**.
78
+ - Raise `pip` floor to `>=26.2` for **PYSEC-2026-3721**.
79
+ - Raise optional `[pydanticai]` floor to `pydantic-ai>=1.106.0,<2` for
80
+ **PYSEC-2026-3692/3693**.
81
+ - `apps/web` npm overrides: `fast-uri@^3.1.6`, `nanoid@^3.3.18`,
82
+ `postcss@^8.5.23`, `brace-expansion@^5.0.9`, `ip-address@^10.3.1`,
83
+ `js-yaml@^4.3.1`, `undici@^7.29.0`, `fflate@^0.8.3`
84
+ (**CVE-2026-45820**), `baseline-browser-mapping@^2.11.0`
85
+ (**CVE-2026-45819**), and `browserslist@^4.28.9` so
86
+ production moderate+ and full-graph high+ audits stay clean.
87
+ - Raise `apps/web` `next` to **16.3.4** and `eslint-config-next` to match
88
+ (**GHSA-p293-qw3h-jr36**, **GHSA-2xp9-vwfh-vxw4**). Align `sharp` to
89
+ `^0.35.4` (**GHSA-rgj7-g3m4-5g8c** / libheif).
90
+ - Raise `mkdocs-material` to `>=9.7.7` for **PYSEC-2026-3864** /
91
+ **CVE-2026-73295** (DOM XSS in `search.suggest`). The wheel bump does not
92
+ patch GitHub Pages until the docs site is rebuilt and published (`Docs`
93
+ workflow on `main`).
94
+
95
+ ### Fixed
96
+
97
+ - **Agent JWT session sliding (LIFE-005)** — Successful
98
+ :func:`~asap.auth.agent_jwt.verify_agent_jwt` always persists the extended
99
+ ``last_used_at`` after a verified Agent JWT (restores the pre-S3 “verifier
100
+ writes” contract; callers must not assume they alone persist idle timeout).
101
+ Side effect: authenticated ``GET /asap/capability/list`` with an Agent JWT
102
+ now slides idle timeout the same as other verify paths — list traffic keeps
103
+ sessions warm.
104
+ - **Agent JWT verify vs concurrent revoke/rotate** — Session extension no
105
+ longer uses full-row ``AgentStore.save`` of a verify-time snapshot (that
106
+ TOCTOU could resurrect a revoked agent or undo ``rotate-key``). Persist goes
107
+ through ``AgentStore.touch_if_current`` (atomic ``UPDATE ... WHERE status =
108
+ 'active'`` plus matching ``host_id`` and RFC 7638 public-key thumbprint).
109
+ Custom store authors must implement that method; get→mutate→save is not
110
+ sufficient.
111
+ - **Rotate-key / reactivate / status vs concurrent revoke** — Those handlers
112
+ re-read then persist through ``save_agent_unless_revoked``. ``AgentStore.save``
113
+ must reject replacing a ``revoked`` row with a non-revoked snapshot
114
+ (``InMemoryAgentStore`` raises ``RevokedAgentOverwriteError``). Custom stores
115
+ that await I/O inside ``save`` must make that check atomic
116
+ (``UPDATE ... WHERE status <> 'revoked'``).
117
+
118
+ ### Changed
119
+
120
+ - **CI setup-uv pin (#350)** — `.github/actions/setup-python` pins
121
+ `astral-sh/setup-uv` to **v10.0.1**.
122
+ - **Dependabot groups (#349)** — grouped GitHub Actions and `apps/web` npm
123
+ production/development updates (no extra dep bump in this release PR).
124
+
125
+ ### Migration
126
+
127
+ - **v2.5.4 → v2.5.5**: See [migration guide](docs/migration.md#upgrading-from-v254-to-v255).
128
+ No wire-protocol or manifest schema breaking changes. Custom ``AgentStore``
129
+ authors must implement ``touch_if_current`` and refuse revoked overwrite.
21
130
 
22
- > **Status:** merged to `main` ([#291](https://github.com/adriannoes/asap-protocol/pull/291), 2026-07-15);
23
- > **pending tag/publish**. PyPI still serves **2.5.2** until `v2.5.3` is tagged and the
24
- > release workflow completes.
131
+ ---
132
+
133
+ ## [2.5.4] - 2026-07-18
134
+
135
+ **Distribution Loop** — homepage, thin starters, Build for agents guide, and maintainer
136
+ telemetry ops (no public metrics UI). Scope:
137
+ [prd-v2.5.4-distribution-loop.md](product/prd/prd-v2.5.4-distribution-loop.md).
138
+ npm `@asap-protocol/*` packages remain at **2.4.1**. Tag [`v2.5.4`](https://github.com/adriannoes/asap-protocol/releases/tag/v2.5.4) · PyPI `asap-protocol==2.5.4`.
139
+
140
+ ### Added
141
+
142
+ - **Thin starters** under `examples/starters/`:
143
+ - `openapi-provider/` — OpenAPI → ASAP skills wrapper
144
+ - `typescript-consumer/` — `@asap-protocol/client` consumer smoke
145
+ - `mcp-auth-bridge/` — MCP Auth Bridge (`protect_server`) wrapper
146
+ - **Build for agents guide** — [docs/guides/build-for-agents.md](docs/guides/build-for-agents.md)
147
+ (agent-first onboarding into the three starters).
148
+ - **Homepage agent-first narrative** — hero / CTAs route to docs, starters, and
149
+ examples (marketplace browse/register remain secondary).
150
+ - **Telemetry ops** — collector defaults expanded (npm ≥3 scoped packages,
151
+ PyPI ≥2); maintainer runbook; **no** public live metrics UI (PRD D4).
152
+
153
+ ### Security (deps)
154
+
155
+ - Raise optional `[mcp]` floor to `mcp>=1.28.1` for **CVE-2026-52869**,
156
+ **CVE-2026-52870**, and **CVE-2026-59950**. See [SECURITY.md](SECURITY.md).
157
+
158
+ ### Migration
159
+
160
+ - **v2.5.3 → v2.5.4**: See [migration guide](docs/migration.md#upgrading-from-v253-to-v254).
161
+ No breaking wire-protocol changes; adopt starters/guide as needed.
162
+
163
+ ---
164
+
165
+ ## [2.5.3] - 2026-07-14
25
166
 
26
167
  **Adapter Lab II** — workflow / enterprise adapters as **docs + examples** (no wire-format
27
168
  change). Scope: [prd-v2.5.3-adapter-lab-ii.md](product/prd/prd-v2.5.3-adapter-lab-ii.md).
28
- npm `@asap-protocol/*` packages remain at **2.4.1**.
169
+ npm `@asap-protocol/*` packages remain at **2.4.1**. Tag [`v2.5.3`](https://github.com/adriannoes/asap-protocol/releases/tag/v2.5.3) · PyPI `asap-protocol==2.5.3`.
29
170
 
30
171
  ### Added
31
172
 
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: asap-protocol
3
- Version: 2.5.3
3
+ Version: 2.5.5
4
4
  Summary: Async Simple Agent Protocol - A streamlined protocol for agent-to-agent communication
5
- Project-URL: Homepage, https://github.com/adriannoes/asap-protocol
6
- Project-URL: Documentation, https://adriannoes.github.io/asap-protocol
7
- Project-URL: Repository, https://github.com/adriannoes/asap-protocol
8
- Project-URL: Issues, https://github.com/adriannoes/asap-protocol/issues
5
+ Project-URL: Homepage, https://github.com/asap-protocol/asap-protocol
6
+ Project-URL: Documentation, https://asap-protocol.github.io/asap-protocol
7
+ Project-URL: Repository, https://github.com/asap-protocol/asap-protocol
8
+ Project-URL: Issues, https://github.com/asap-protocol/asap-protocol/issues
9
9
  Project-URL: PyPI, https://pypi.org/project/asap-protocol/
10
10
  Author: ASAP Protocol Contributors
11
11
  License: Apache-2.0
@@ -23,7 +23,7 @@ Requires-Python: >=3.13
23
23
  Requires-Dist: aiosqlite>=0.20
24
24
  Requires-Dist: authlib<2,>=1.6.12
25
25
  Requires-Dist: brotli>=1.2.0
26
- Requires-Dist: cryptography<49,>=48.0.1
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
29
29
  Requires-Dist: jcs>=0.2.0
@@ -63,9 +63,9 @@ Requires-Dist: zeroconf>=0.149.5; extra == 'dns-sd'
63
63
  Provides-Extra: docs
64
64
  Requires-Dist: ghp-import>=2.1.0; extra == 'docs'
65
65
  Requires-Dist: joserfc<2,>=1.6.7; extra == 'docs'
66
- Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
66
+ Requires-Dist: mkdocs-material>=9.7.7; extra == 'docs'
67
67
  Requires-Dist: mkdocstrings[python]>=0.27; extra == 'docs'
68
- Requires-Dist: pymdown-extensions>=10.21.3; extra == 'docs'
68
+ Requires-Dist: pymdown-extensions>=11.0.1; extra == 'docs'
69
69
  Requires-Dist: python-engineio>=4.13.2; extra == 'docs'
70
70
  Requires-Dist: python-socketio>=5.16.2; extra == 'docs'
71
71
  Provides-Extra: langchain
@@ -73,13 +73,13 @@ 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.0.0; extra == 'mcp'
76
+ Requires-Dist: mcp>=1.28.1; extra == 'mcp'
77
77
  Provides-Extra: openapi
78
78
  Requires-Dist: openapi-pydantic>=0.5; extra == 'openapi'
79
79
  Provides-Extra: openclaw
80
80
  Requires-Dist: openclaw-sdk>=2.0; extra == 'openclaw'
81
81
  Provides-Extra: pydanticai
82
- Requires-Dist: pydantic-ai>=1.99.0; extra == 'pydanticai'
82
+ Requires-Dist: pydantic-ai<2,>=1.106.0; extra == 'pydanticai'
83
83
  Provides-Extra: redis
84
84
  Requires-Dist: redis>=5.0.0; extra == 'redis'
85
85
  Provides-Extra: smolagents
@@ -94,14 +94,14 @@ Description-Content-Type: text/markdown
94
94
 
95
95
  *✨ From **agents**, for **agents**. Delivering reliability, **as soon as possible.***
96
96
 
97
- ![ASAP Protocol Banner](https://raw.githubusercontent.com/adriannoes/asap-protocol/main/.github/assets/asap-protocol-banner.png)
97
+ ![ASAP Protocol Banner](https://raw.githubusercontent.com/asap-protocol/asap-protocol/main/.github/assets/asap-protocol-banner.png)
98
98
 
99
99
 
100
100
  > A production-ready protocol for agent-to-agent communication and task coordination.
101
101
 
102
- **Quick Info**: [`v2.5.3`](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md#253---2026-07-14) (merged · pending tag/publish) · PyPI [`v2.5.2`](https://pypi.org/project/asap-protocol/) | `Apache 2.0` | `Python 3.13+` | [Documentation](docs/index.md) | [Changelog](CHANGELOG.md)
102
+ **Quick Info**: [`v2.5.5`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.5) · 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.2** on PyPI](https://pypi.org/project/asap-protocol/) (Python; **2.5.3** merged to `main`, pending tag/publish) · [`@asap-protocol/client` on npm](https://www.npmjs.com/package/@asap-protocol/client) (TypeScript)
104
+ > 📦 **Install** — [`asap-protocol` **2.5.5** 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.2)
159
+ uv add asap-protocol # latest on PyPI (currently 2.5.5)
160
160
  ```
161
161
 
162
162
  Or with pip:
163
163
 
164
164
  ```bash
165
- pip install asap-protocol==2.5.2
165
+ pip install asap-protocol==2.5.5
166
166
  ```
167
167
 
168
- **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.3; `@asap-protocol/mcp-auth` HTTP middleware still deferred):
168
+ **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.5; `@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.3** (Adapter Lab II) is **merged to `main`** and **pending tag/publish** — stay on `asap-protocol==2.5.2` from PyPI until the release is published; then see [Migration (v2.5.2 → v2.5.3)](docs/migration.md#upgrading-from-v252-to-v253).
180
+ **Python v2.5.5** (security & quality patch) is **shipped** — see [Migration (v2.5.4 → v2.5.5)](docs/migration.md#upgrading-from-v254-to-v255). 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
 
@@ -203,7 +203,7 @@ With coverage (separate run — do not combine with `-n auto`):
203
203
  uv run pytest --tb=short --cov=asap --cov-report=term-missing --cov-fail-under=85
204
204
  ```
205
205
 
206
- [Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md) (structure, fixtures, property/load/chaos tests). [Contributing](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) (dev setup, CI).
206
+ [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
207
 
208
208
  ### Compliance Harness
209
209
 
@@ -214,9 +214,9 @@ uv add "asap-compliance>=1.3.0"
214
214
  pytest --asap-agent-url https://your-agent.example.com -m asap_compliance
215
215
  ```
216
216
 
217
- For **MCP Auth Bridge** stdio gates (`mcp-auth-bridge` profile), use **`asap-compliance` 1.3.0+** with **`asap-protocol` 2.5.0+** — published on PyPI via tag [`v2.5.0.1`](https://github.com/adriannoes/asap-protocol/releases/tag/v2.5.0.1).
217
+ For **MCP Auth Bridge** stdio gates (`mcp-auth-bridge` profile), use **`asap-compliance` 1.3.0+** with **`asap-protocol` 2.5.0+** — published on PyPI via tag [`v2.5.0.1`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.0.1).
218
218
 
219
- See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) for handshake, schema and state machine validation.
219
+ See [Compliance Testing Guide](https://github.com/asap-protocol/asap-protocol/blob/main/docs/guides/compliance-testing.md) for handshake, schema and state machine validation.
220
220
 
221
221
  ## Documentation
222
222
 
@@ -224,23 +224,23 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
224
224
  - [Docs](docs/index.md) | [API Reference](docs/api-reference.md)
225
225
  - [MCP Auth Bridge](docs/adapters/mcp-auth-bridge.md) — v2.5.0 opt-in JWT + capability grants for native stdio MCP
226
226
  - [TypeScript client SDK](docs/sdks/typescript.md) — `@asap-protocol/client` (identity, capabilities, streaming, adapters)
227
- - [Tutorials](https://github.com/adriannoes/asap-protocol/tree/main/docs/tutorials) — First agent to production checklist
228
- - [Migration from A2A/MCP](https://github.com/adriannoes/asap-protocol/blob/main/docs/migration.md)
229
- - [Raw Fetch (non-Python)](https://github.com/adriannoes/asap-protocol/blob/main/docs/raw-fetch.md) — Fetch registry.json and revoked_agents.json with curl/fetch; implement your own client.
227
+ - [Tutorials](https://github.com/asap-protocol/asap-protocol/tree/main/docs/tutorials) — First agent to production checklist
228
+ - [Migration from A2A/MCP](https://github.com/asap-protocol/asap-protocol/blob/main/docs/migration.md)
229
+ - [Raw Fetch (non-Python)](https://github.com/asap-protocol/asap-protocol/blob/main/docs/raw-fetch.md) — Fetch registry.json and revoked_agents.json with curl/fetch; implement your own client.
230
230
 
231
231
  **Deep Dive**
232
- - [State Management](https://github.com/adriannoes/asap-protocol/blob/main/docs/state-management.md) | [Best Practices: Failover & Migration](https://github.com/adriannoes/asap-protocol/blob/main/docs/best-practices/agent-failover-migration.md) | [Error Handling](https://github.com/adriannoes/asap-protocol/blob/main/docs/error-handling.md)
233
- - [Transport](https://github.com/adriannoes/asap-protocol/blob/main/docs/transport.md) | [Security](https://github.com/adriannoes/asap-protocol/blob/main/docs/security.md) | [Security Model](https://github.com/adriannoes/asap-protocol/blob/main/docs/security/v1.1-security-model.md) (OAuth2 trust, Custom Claims)
234
- - [Identity Signing](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/identity-signing.md) | [Compliance Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) | [Migration v1.1 to v1.2](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/migration-v1.1-to-v1.2.md) | [mTLS](https://github.com/adriannoes/asap-protocol/blob/main/docs/security/mtls.md)
235
- - [Observability](https://github.com/adriannoes/asap-protocol/blob/main/docs/observability.md) | [Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md)
232
+ - [State Management](https://github.com/asap-protocol/asap-protocol/blob/main/docs/state-management.md) | [Best Practices: Failover & Migration](https://github.com/asap-protocol/asap-protocol/blob/main/docs/best-practices/agent-failover-migration.md) | [Error Handling](https://github.com/asap-protocol/asap-protocol/blob/main/docs/error-handling.md)
233
+ - [Transport](https://github.com/asap-protocol/asap-protocol/blob/main/docs/transport.md) | [Security](https://github.com/asap-protocol/asap-protocol/blob/main/docs/security.md) | [Security Model](https://github.com/asap-protocol/asap-protocol/blob/main/docs/security/v1.1-security-model.md) (OAuth2 trust, Custom Claims)
234
+ - [Identity Signing](https://github.com/asap-protocol/asap-protocol/blob/main/docs/guides/identity-signing.md) | [Compliance Testing](https://github.com/asap-protocol/asap-protocol/blob/main/docs/guides/compliance-testing.md) | [Migration v1.1 to v1.2](https://github.com/asap-protocol/asap-protocol/blob/main/docs/guides/migration-v1.1-to-v1.2.md) | [mTLS](https://github.com/asap-protocol/asap-protocol/blob/main/docs/security/mtls.md)
235
+ - [Observability](https://github.com/asap-protocol/asap-protocol/blob/main/docs/observability.md) | [Testing](https://github.com/asap-protocol/asap-protocol/blob/main/docs/testing.md)
236
236
 
237
237
  **Decisions & Operations**
238
- - [ADRs](https://github.com/adriannoes/asap-protocol/tree/main/docs/adr) — 19 Architecture Decision Records
239
- - [Tech Stack](https://github.com/adriannoes/asap-protocol/blob/main/engineering/architecture/tech-stack-decisions.md) — Rationale for Python, Pydantic, Next.js choices
240
- - [Deployment](https://github.com/adriannoes/asap-protocol/blob/main/docs/deployment/kubernetes.md) | [Troubleshooting](https://github.com/adriannoes/asap-protocol/blob/main/docs/troubleshooting.md)
238
+ - [ADRs](https://github.com/asap-protocol/asap-protocol/tree/main/docs/adr) — 19 Architecture Decision Records
239
+ - [Tech Stack](https://github.com/asap-protocol/asap-protocol/blob/main/engineering/architecture/tech-stack-decisions.md) — Rationale for Python, Pydantic, Next.js choices
240
+ - [Deployment](https://github.com/asap-protocol/asap-protocol/blob/main/docs/deployment/kubernetes.md) | [Troubleshooting](https://github.com/asap-protocol/asap-protocol/blob/main/docs/troubleshooting.md)
241
241
 
242
242
  **Release**
243
- - [Changelog](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md) | **[PyPI listing](https://pypi.org/project/asap-protocol/)** — `https://pypi.org/project/asap-protocol/` (install: `pip install asap-protocol`)
243
+ - [Changelog](https://github.com/asap-protocol/asap-protocol/blob/main/CHANGELOG.md) | **[PyPI listing](https://pypi.org/project/asap-protocol/)** — `https://pypi.org/project/asap-protocol/` (install: `pip install asap-protocol`)
244
244
 
245
245
  ## CLI
246
246
 
@@ -261,37 +261,39 @@ See [docs/cli.md](docs/cli.md) for delegation tokens, schema validation, trace v
261
261
 
262
262
  ## Version History
263
263
 
264
- High-level only — see **[Changelog](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md)** and the **[docs index](https://github.com/adriannoes/asap-protocol/blob/main/docs/index.md#v11-features-api-reference--guides)** for full notes.
264
+ High-level only — see **[Changelog](https://github.com/asap-protocol/asap-protocol/blob/main/CHANGELOG.md)** and the **[docs index](https://github.com/asap-protocol/asap-protocol/blob/main/docs/index.md#v11-features-api-reference--guides)** for full notes.
265
265
 
266
266
  | Version | What shipped |
267
267
  | :-- | :-- |
268
- | **v2.5.3** | **Adapter Lab II** — **merged · pending tag/publish**. Workflow OpenAPI connectors + security guide, experimental MAF / NeMo guides, JSON-safe `-32602`, MCP example client DX. PyPI still **2.5.2**. See [CHANGELOG](CHANGELOG.md#253---2026-07-14), [PRD](product/prd/prd-v2.5.3-adapter-lab-ii.md), and [Migration (v2.5.2 → v2.5.3)](docs/migration.md#upgrading-from-v252-to-v253) |
268
+ | **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) |
269
+ | **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) |
270
+ | **v2.5.3** | **Adapter Lab II** — **[GitHub Release `v2.5.3`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.3)** · workflow OpenAPI connectors + security guide, experimental MAF / NeMo guides, JSON-safe `-32602`, MCP example client DX. See [CHANGELOG](CHANGELOG.md#253---2026-07-14), [PRD](product/prd/prd-v2.5.3-adapter-lab-ii.md), and [Migration (v2.5.2 → v2.5.3)](docs/migration.md#upgrading-from-v252-to-v253) |
269
271
  | **v2.5.2** | **Security & correctness follow-up** — opt-in operator API auth, `extra="forbid"` ingress, Redis JTI replay, web distributed rate limits, v2.5.1 CR follow-ups (#245–#249), registry signed-manifest/400 fixes. See [CHANGELOG](CHANGELOG.md#252---2026-07-08), [PRD](product/prd/prd-v2.5.2-security-follow-up.md), and [Migration (v2.5.1 → v2.5.2)](docs/migration.md#upgrading-from-v251) |
270
272
  | **v2.5.1** | **Code quality patch** — behavior-preserving refactor (transport/server, client, websocket, SQLite storage, auth, integrations) + six correctness/security fixes (atomic `revoke_cascade`, `usage_events` DDL, unified Host-JWT verifier, **WS now enforces OAuth2**, OpenAPI handler cleanup, client `correlation_id` binding). Deprecated import paths removed in v2.6.0. See [CHANGELOG](CHANGELOG.md#251---2026-06-25) and [Migration (v2.5.0 → v2.5.1)](docs/migration.md#upgrading-from-v250-to-v251) |
271
- | **v2.5.0.1** | **Compliance publish** — **[GitHub Release `v2.5.0.1`](https://github.com/adriannoes/asap-protocol/releases/tag/v2.5.0.1)** · PyPI **`asap-compliance` 1.3.0** (`mcp-auth-bridge` profile; requires `asap-protocol>=2.5.0`). No `asap-protocol` API change. See [CHANGELOG](CHANGELOG.md#2501---2026-06-24) |
272
- | **v2.5.0** | **MCP Auth Bridge** — **[GitHub Release `v2.5.0`](https://github.com/adriannoes/asap-protocol/releases/tag/v2.5.0)** · opt-in `protect_server` for stdio MCP; Agent JWT + capability grants; reference example `examples/mcp_auth_bridge/`. See [CHANGELOG](CHANGELOG.md#250---2026-06-24) and [Migration (v2.4.1 → v2.5.0)](docs/migration.md#upgrading-from-v241-to-v250) |
273
+ | **v2.5.0.1** | **Compliance publish** — **[GitHub Release `v2.5.0.1`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.0.1)** · PyPI **`asap-compliance` 1.3.0** (`mcp-auth-bridge` profile; requires `asap-protocol>=2.5.0`). No `asap-protocol` API change. See [CHANGELOG](CHANGELOG.md#2501---2026-06-24) |
274
+ | **v2.5.0** | **MCP Auth Bridge** — **[GitHub Release `v2.5.0`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.0)** · opt-in `protect_server` for stdio MCP; Agent JWT + capability grants; reference example `examples/mcp_auth_bridge/`. See [CHANGELOG](CHANGELOG.md#250---2026-06-24) and [Migration (v2.4.1 → v2.5.0)](docs/migration.md#upgrading-from-v241-to-v250) |
273
275
  | **v2.4.1** | **Security hardening** — OAuth2 `iss`/`aud`, fail-closed identity binding, web SSRF/redirect fixes, dependency bumps. See [CHANGELOG](CHANGELOG.md#241---2026-06-14) and [Migration (v2.4.0 → v2.4.1)](docs/migration.md#upgrading-from-v240-to-v241) |
274
276
  | **v2.4.0** | **Edge-AI discovery** — optional `hardware` / `inference` manifest fields, registry mirror, marketplace filters, **`@asap-protocol/client@2.4.0`**, ShellClaw onboarding docs. See [CHANGELOG](CHANGELOG.md#240---2026-05-24) and [Migration (v2.3.x → v2.4.0)](docs/migration.md#upgrading-from-v23x-to-v240) |
275
- | **v2.3.1** | **npm TS patch** — **[GitHub Release `v2.3.1`](https://github.com/adriannoes/asap-protocol/releases/tag/v2.3.1)** · **`@asap-protocol/mastra`**, **`@asap-protocol/openai-agents`**, **`@asap-protocol/client@2.3.1`** (additive adapter exports). Python **2.3.0** unchanged. See [CHANGELOG](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md#231---2026-05-20) and [Migration (v2.3.0 → v2.3.1)](https://github.com/adriannoes/asap-protocol/blob/main/docs/migration.md#upgrading-from-v230-to-v231) |
276
- | **v2.3.0** | **OpenAPI Adapter** (`[openapi]`) · **TypeScript client** (`@asap-protocol/client`) · **Auto-Registration** · **Capability escalation** · **ASAP HTTP challenge** — see [CHANGELOG](https://github.com/adriannoes/asap-protocol/blob/main/CHANGELOG.md#230---2026-05-04) and [Migration](https://github.com/adriannoes/asap-protocol/blob/main/docs/migration.md#upgrading-from-v22x-to-v230) |
277
- | **v2.2.1** | Opt-in **WebAuthn** (`asap-protocol[webauthn]`) · `asap compliance-check` & `asap audit export` · stricter `ResolvedAgent.run()` · `AuditChainBroken` · [pinned security deps](https://github.com/adriannoes/asap-protocol/blob/main/SECURITY.md#dependency-policy) |
277
+ | **v2.3.1** | **npm TS patch** — **[GitHub Release `v2.3.1`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.3.1)** · **`@asap-protocol/mastra`**, **`@asap-protocol/openai-agents`**, **`@asap-protocol/client@2.3.1`** (additive adapter exports). Python **2.3.0** unchanged. See [CHANGELOG](https://github.com/asap-protocol/asap-protocol/blob/main/CHANGELOG.md#231---2026-05-20) and [Migration (v2.3.0 → v2.3.1)](https://github.com/asap-protocol/asap-protocol/blob/main/docs/migration.md#upgrading-from-v230-to-v231) |
278
+ | **v2.3.0** | **OpenAPI Adapter** (`[openapi]`) · **TypeScript client** (`@asap-protocol/client`) · **Auto-Registration** · **Capability escalation** · **ASAP HTTP challenge** — see [CHANGELOG](https://github.com/asap-protocol/asap-protocol/blob/main/CHANGELOG.md#230---2026-05-04) and [Migration](https://github.com/asap-protocol/asap-protocol/blob/main/docs/migration.md#upgrading-from-v22x-to-v230) |
279
+ | **v2.2.1** | Opt-in **WebAuthn** (`asap-protocol[webauthn]`) · `asap compliance-check` & `asap audit export` · stricter `ResolvedAgent.run()` · `AuditChainBroken` · [pinned security deps](https://github.com/asap-protocol/asap-protocol/blob/main/SECURITY.md#dependency-policy) |
278
280
  | **v2.2** | Per-runtime identity & capability auth · SSE `POST /asap/stream` · `ASAP-Version` · JSON-RPC batch · tamper-evident audit · async state stores · Compliance Harness v2 |
279
281
  | **v2.1.1** | Patch: JWT allowlist · SQLite async bridge · optional Redis rate limits · web SSRF hardening |
280
282
  | **v2.1** | `MarketClient` · framework extras (LangChain, CrewAI, LlamaIndex, …) · registry UX |
281
283
  | **v2.0** | Marketplace web app · Lite Registry (GitHub Pages) · IssueOps · OAuth · verification flow |
282
284
  | **v1.3** | `asap delegation create` / `revoke` |
283
- | **v1.2** | Ed25519 manifests · trust levels · optional mTLS · [Compliance Harness](https://github.com/adriannoes/asap-protocol/blob/main/asap-compliance/README.md) |
285
+ | **v1.2** | Ed25519 manifests · trust levels · optional mTLS · [Compliance Harness](https://github.com/asap-protocol/asap-protocol/blob/main/asap-compliance/README.md) |
284
286
  | **v1.1** | OAuth2 · WebSocket · discovery (well-known + Lite Registry) · SQLite state · webhooks |
285
287
 
286
288
  ## 🔭 What's Next?
287
289
 
288
290
  The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
289
291
 
290
- - **v2.5.4** — distribution loop (homepage templates, starter kits, adoption metrics)
292
+ - **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.5** is the security/quality patch above)
291
293
  - **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
292
- - **Formal spec track** (v2.5.5) — introspection, privacy, cross-protocol interop on the path to v3.0 economy
294
+ - **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
293
295
 
294
- See the [v2.5 roadmap PRD](https://github.com/adriannoes/asap-protocol/blob/main/product/prd/prd-v2.5-roadmap.md) and [ADR index](https://github.com/adriannoes/asap-protocol/blob/main/product/decision-records/README.md).
296
+ See the [v2.5 roadmap PRD](https://github.com/asap-protocol/asap-protocol/blob/main/product/prd/prd-v2.5-roadmap.md) and [ADR index](https://github.com/asap-protocol/asap-protocol/blob/main/product/decision-records/README.md).
295
297
 
296
298
  ## Contributing
297
299
 
@@ -299,13 +301,13 @@ See the [v2.5 roadmap PRD](https://github.com/adriannoes/asap-protocol/blob/main
299
301
 
300
302
  Every contribution, from bug reports to feature suggestions, documentation improvements and code contributions, makes a real difference.
301
303
 
302
- Check out our [contributing guidelines](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) to get started. It's easier than you think! 🚀
304
+ Check out our [contributing guidelines](https://github.com/asap-protocol/asap-protocol/blob/main/CONTRIBUTING.md) to get started. It's easier than you think! 🚀
303
305
 
304
306
  ## Contact
305
307
 
306
308
  | Channel | Use for |
307
309
  | --- | --- |
308
- | [GitHub Discussions](https://github.com/adriannoes/asap-protocol/discussions) or [Issues](https://github.com/adriannoes/asap-protocol/issues) | Public questions, bugs, and feature ideas |
310
+ | [GitHub Discussions](https://github.com/asap-protocol/asap-protocol/discussions) or [Issues](https://github.com/asap-protocol/asap-protocol/issues) | Public questions, bugs, and feature ideas |
309
311
  | [info@asap-protocol.com](mailto:info@asap-protocol.com) | Private coordination — protocol, marketplace, partnerships, press |
310
312
  | [SECURITY.md](SECURITY.md) | Security vulnerabilities only — **do not** use email or public issues |
311
313
 
@@ -315,8 +317,8 @@ See [PRIVACY.md](PRIVACY.md) for how the public site and maintainer telemetry us
315
317
 
316
318
  ## License
317
319
 
318
- This project is licensed under the Apache 2.0 License - see the [license](https://github.com/adriannoes/asap-protocol/blob/main/LICENSE) file for details.
320
+ This project is licensed under the Apache 2.0 License - see the [license](https://github.com/asap-protocol/asap-protocol/blob/main/LICENSE) file for details.
319
321
 
320
322
  ---
321
323
 
322
- **Built with [Cursor](https://cursor.com/)**, with Composer, Opus, Gemini, Kimi and more.
324
+ **Built with [Cursor](https://cursor.com/)**, with Composer, Grok, Opus, Gemini, Kimi and more.