asap-protocol 2.5.4__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.4 → asap_protocol-2.5.5}/CHANGELOG.md +116 -4
  2. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/PKG-INFO +48 -47
  3. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/README.md +38 -37
  4. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/pyproject.toml +29 -22
  5. {asap_protocol-2.5.4 → 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.4 → asap_protocol-2.5.5}/src/asap/adapters/openapi/__init__.py +1 -1
  8. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/openapi/capability_mapper.py +7 -10
  9. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/openapi/handler.py +38 -10
  10. {asap_protocol-2.5.4 → 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.4 → asap_protocol-2.5.5}/src/asap/auth/approval.py +87 -5
  13. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/capabilities.py +48 -4
  14. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/identity.py +165 -8
  15. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/self_auth.py +3 -3
  16. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/webauthn.py +4 -5
  17. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/webauthn_store.py +2 -2
  18. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/client/revocation.py +1 -1
  19. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/crypto/trust.py +1 -1
  20. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/README.md +2 -8
  21. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/auth_patterns.py +7 -6
  22. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/coordinator.py +1 -1
  23. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/rate_limiting.py +3 -3
  24. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/streaming_response.py +2 -2
  25. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/auth/__init__.py +6 -7
  26. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/auth/auth_middleware.py +1 -2
  27. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/auth/config.py +2 -2
  28. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/auth/protected_server.py +5 -5
  29. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/registry/bot_pr.py +11 -1
  30. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/stores/_sync_bridge.py +1 -2
  31. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/_request_handler.py +9 -15
  32. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/agent_routes.py +86 -32
  33. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/capability_routes.py +20 -4
  34. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/client/__init__.py +7 -19
  35. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/client/_core.py +5 -8
  36. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/client/_discovery.py +4 -8
  37. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/client/_helpers.py +2 -7
  38. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/client/_send.py +4 -5
  39. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/escalation_routes.py +31 -2
  40. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/handlers.py +0 -2
  41. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/middleware.py +0 -2
  42. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/server.py +4 -4
  43. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/validators.py +0 -1
  44. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/websocket.py +14 -34
  45. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/__init__.py +13 -16
  46. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/_ack.py +4 -6
  47. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/_dispatch.py +13 -17
  48. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/_recv.py +4 -5
  49. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/client.py +12 -40
  50. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/codecs.py +8 -14
  51. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/pool.py +2 -3
  52. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/server.py +26 -58
  53. asap_protocol-2.5.4/src/asap/adapters/mcp/__init__.py +0 -33
  54. asap_protocol-2.5.4/src/asap/examples/websocket_concept.py +0 -129
  55. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/.gitignore +0 -0
  56. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/LICENSE +0 -0
  57. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/entities/agent.schema.json +0 -0
  58. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/entities/artifact.schema.json +0 -0
  59. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/entities/conversation.schema.json +0 -0
  60. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/entities/manifest.schema.json +0 -0
  61. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/entities/message.schema.json +0 -0
  62. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/entities/state_snapshot.schema.json +0 -0
  63. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/entities/task.schema.json +0 -0
  64. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/envelope.schema.json +0 -0
  65. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/examples/shellclaw-jetson-capabilities.json +0 -0
  66. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/parts/data_part.schema.json +0 -0
  67. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/parts/file_part.schema.json +0 -0
  68. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/parts/resource_part.schema.json +0 -0
  69. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/parts/template_part.schema.json +0 -0
  70. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/parts/text_part.schema.json +0 -0
  71. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/artifact_notify.schema.json +0 -0
  72. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/mcp_resource_data.schema.json +0 -0
  73. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
  74. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/mcp_tool_call.schema.json +0 -0
  75. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/mcp_tool_result.schema.json +0 -0
  76. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/message_send.schema.json +0 -0
  77. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/state_query.schema.json +0 -0
  78. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/state_restore.schema.json +0 -0
  79. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/task_cancel.schema.json +0 -0
  80. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/task_request.schema.json +0 -0
  81. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/task_response.schema.json +0 -0
  82. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/schemas/payloads/task_update.schema.json +0 -0
  83. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/__init__.py +0 -0
  84. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/mcp/auth_middleware.py +0 -0
  85. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/mcp/capability_map.py +0 -0
  86. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/mcp/config.py +0 -0
  87. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/mcp/errors.py +0 -0
  88. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/mcp/jwt_extractor.py +0 -0
  89. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/mcp/protected_server.py +0 -0
  90. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/openapi/approval.py +0 -0
  91. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/openapi/factory.py +0 -0
  92. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/adapters/openapi/spec_loader.py +0 -0
  93. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/__init__.py +0 -0
  94. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/_scope_parse.py +0 -0
  95. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/introspection.py +0 -0
  96. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/jti_replay_cache.py +0 -0
  97. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/jwks.py +0 -0
  98. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/middleware.py +0 -0
  99. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/oauth2.py +0 -0
  100. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/oidc.py +0 -0
  101. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/auth/scopes.py +0 -0
  102. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/__init__.py +0 -0
  103. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/_compat.py +0 -0
  104. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/audit_export.py +0 -0
  105. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/compliance_check.py +0 -0
  106. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/delegation.py +0 -0
  107. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/keys.py +0 -0
  108. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/manifest.py +0 -0
  109. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/repl.py +0 -0
  110. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/schemas.py +0 -0
  111. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/cli/trace.py +0 -0
  112. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/client/__init__.py +0 -0
  113. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/client/cache.py +0 -0
  114. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/client/http_client.py +0 -0
  115. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/client/market.py +0 -0
  116. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/client/trust.py +0 -0
  117. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/crypto/__init__.py +0 -0
  118. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/crypto/keys.py +0 -0
  119. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/crypto/models.py +0 -0
  120. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/crypto/signing.py +0 -0
  121. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/crypto/trust_levels.py +0 -0
  122. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/discovery/__init__.py +0 -0
  123. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/discovery/dnssd.py +0 -0
  124. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/discovery/health.py +0 -0
  125. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/discovery/registry.py +0 -0
  126. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/discovery/validation.py +0 -0
  127. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/discovery/wellknown.py +0 -0
  128. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/__init__.py +0 -0
  129. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/audit.py +0 -0
  130. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/delegation.py +0 -0
  131. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/delegation_storage.py +0 -0
  132. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/hooks.py +0 -0
  133. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/metering.py +0 -0
  134. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/sla.py +0 -0
  135. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/sla_storage.py +0 -0
  136. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/economics/storage.py +0 -0
  137. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/errors.py +0 -0
  138. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/__init__.py +0 -0
  139. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/a2h_approval.py +0 -0
  140. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/agent_failover.py +0 -0
  141. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/echo_agent.py +0 -0
  142. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/error_recovery.py +0 -0
  143. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/long_running.py +0 -0
  144. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/mcp_client_demo.py +0 -0
  145. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/mcp_integration.py +0 -0
  146. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/multi_step_workflow.py +0 -0
  147. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/orchestration.py +0 -0
  148. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/run_demo.py +0 -0
  149. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/secure_agent.py +0 -0
  150. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/secure_handler.py +0 -0
  151. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/state_migration.py +0 -0
  152. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/storage_backends.py +0 -0
  153. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/streaming_agent.py +0 -0
  154. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/v1_3_0_showcase.py +0 -0
  155. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/examples/v1_4_0_showcase.py +0 -0
  156. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/handlers/__init__.py +0 -0
  157. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/handlers/hitl.py +0 -0
  158. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/__init__.py +0 -0
  159. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/_base.py +0 -0
  160. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/a2h.py +0 -0
  161. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/crewai.py +0 -0
  162. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/langchain.py +0 -0
  163. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/llamaindex.py +0 -0
  164. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/openclaw.py +0 -0
  165. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/pydanticai.py +0 -0
  166. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/smolagents.py +0 -0
  167. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/integrations/vercel_ai.py +0 -0
  168. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/__init__.py +0 -0
  169. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/auth/capability_map.py +0 -0
  170. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/auth/errors.py +0 -0
  171. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/auth/jwt_extractor.py +0 -0
  172. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/client.py +0 -0
  173. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/protocol.py +0 -0
  174. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/serve.py +0 -0
  175. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/server.py +0 -0
  176. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/mcp/server_runner.py +0 -0
  177. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/__init__.py +0 -0
  178. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/base.py +0 -0
  179. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/constants.py +0 -0
  180. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/entities.py +0 -0
  181. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/enums.py +0 -0
  182. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/envelope.py +0 -0
  183. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/ids.py +0 -0
  184. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/parts.py +0 -0
  185. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/payloads.py +0 -0
  186. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/types.py +0 -0
  187. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/models/validators.py +0 -0
  188. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/__init__.py +0 -0
  189. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/dashboards/README.md +0 -0
  190. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/dashboards/asap-detailed.json +0 -0
  191. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/dashboards/asap-red.json +0 -0
  192. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/logging.py +0 -0
  193. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/metrics.py +0 -0
  194. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/trace_parser.py +0 -0
  195. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/trace_ui.py +0 -0
  196. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/observability/tracing.py +0 -0
  197. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/registry/__init__.py +0 -0
  198. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/registry/anti_spam.py +0 -0
  199. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/registry/auto_registration.py +0 -0
  200. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/registry/receipt_cache.py +0 -0
  201. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/schemas.py +0 -0
  202. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/__init__.py +0 -0
  203. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/machine.py +0 -0
  204. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/metering.py +0 -0
  205. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/snapshot.py +0 -0
  206. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/stores/__init__.py +0 -0
  207. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/stores/_sqlite_base.py +0 -0
  208. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/stores/memory.py +0 -0
  209. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/state/stores/sqlite.py +0 -0
  210. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/testing/__init__.py +0 -0
  211. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/testing/asgi_factory.py +0 -0
  212. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/testing/assertions.py +0 -0
  213. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/testing/compliance.py +0 -0
  214. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/testing/fixtures.py +0 -0
  215. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/testing/mocks.py +0 -0
  216. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/__init__.py +0 -0
  217. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/_auth_helpers.py +0 -0
  218. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/_state_deps.py +0 -0
  219. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/cache.py +0 -0
  220. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/challenge.py +0 -0
  221. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/circuit_breaker.py +0 -0
  222. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/compression.py +0 -0
  223. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/delegation_api.py +0 -0
  224. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/errors.py +0 -0
  225. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/executors.py +0 -0
  226. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/jsonrpc.py +0 -0
  227. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/lambda_codec.py +0 -0
  228. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/mtls.py +0 -0
  229. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/rate_limit.py +0 -0
  230. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/routes/__init__.py +0 -0
  231. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/routes/audit.py +0 -0
  232. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/routes/health.py +0 -0
  233. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/routes/jsonrpc.py +0 -0
  234. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/routes/websocket.py +0 -0
  235. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/sla_api.py +0 -0
  236. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/usage_api.py +0 -0
  237. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/webhook.py +0 -0
  238. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/_actions.py +0 -0
  239. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/transport/ws/_errors.py +0 -0
  240. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/utils/__init__.py +0 -0
  241. {asap_protocol-2.5.4 → asap_protocol-2.5.5}/src/asap/utils/sanitization.py +0 -0
@@ -7,7 +7,7 @@ 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.5+)
10
+ ### Follow-up (planned)
11
11
 
12
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)).
13
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)).
@@ -16,14 +16,126 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
16
16
 
17
17
  ---
18
18
 
19
- ## [2.5.4] - 2026-07-18
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
20
96
 
21
- > **Status:** pending tag `v2.5.4` / PyPI publish (S5 prep). Merge → tag → publish runs after this train lands on `main` via `release/2.5.4`.
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.
130
+
131
+ ---
132
+
133
+ ## [2.5.4] - 2026-07-18
22
134
 
23
135
  **Distribution Loop** — homepage, thin starters, Build for agents guide, and maintainer
24
136
  telemetry ops (no public metrics UI). Scope:
25
137
  [prd-v2.5.4-distribution-loop.md](product/prd/prd-v2.5.4-distribution-loop.md).
26
- npm `@asap-protocol/*` packages remain at **2.4.1**.
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`.
27
139
 
28
140
  ### Added
29
141
 
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: asap-protocol
3
- Version: 2.5.4
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
@@ -79,7 +79,7 @@ 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/releases/tag/v2.5.3) on PyPI · in-tree **v2.5.4** pending tag · 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.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.3** on PyPI](https://pypi.org/project/asap-protocol/) (Python; **2.5.4** pending 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.3; in-tree 2.5.4 pending publish)
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.3
165
+ pip install asap-protocol==2.5.5
166
166
  ```
167
167
 
168
- **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.4; `@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.4** (Distribution Loop) is **pending tag/PyPI** — see [Migration (v2.5.3 → v2.5.4)](docs/migration.md#upgrading-from-v253-to-v254). Start here: [Build for agents](docs/guides/build-for-agents.md) · [starters](examples/starters/README.md).
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,38 +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.4** | **Distribution Loop** — pending tag/PyPI · 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) |
269
- | **v2.5.3** | **Adapter Lab II** — **[GitHub Release `v2.5.3`](https://github.com/adriannoes/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) |
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) |
270
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) |
271
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) |
272
- | **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) |
273
- | **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) |
274
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) |
275
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) |
276
- | **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) |
277
- | **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) |
278
- | **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) |
279
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 |
280
281
  | **v2.1.1** | Patch: JWT allowlist · SQLite async bridge · optional Redis rate limits · web SSRF hardening |
281
282
  | **v2.1** | `MarketClient` · framework extras (LangChain, CrewAI, LlamaIndex, …) · registry UX |
282
283
  | **v2.0** | Marketplace web app · Lite Registry (GitHub Pages) · IssueOps · OAuth · verification flow |
283
284
  | **v1.3** | `asap delegation create` / `revoke` |
284
- | **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) |
285
286
  | **v1.1** | OAuth2 · WebSocket · discovery (well-known + Lite Registry) · SQLite state · webhooks |
286
287
 
287
288
  ## 🔭 What's Next?
288
289
 
289
290
  The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
290
291
 
291
- - **v2.5.5** — Formal Spec & Interop (RFC, introspection, privacy)
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)
292
293
  - **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
293
- - **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
294
295
 
295
- 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).
296
297
 
297
298
  ## Contributing
298
299
 
@@ -300,13 +301,13 @@ See the [v2.5 roadmap PRD](https://github.com/adriannoes/asap-protocol/blob/main
300
301
 
301
302
  Every contribution, from bug reports to feature suggestions, documentation improvements and code contributions, makes a real difference.
302
303
 
303
- 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! 🚀
304
305
 
305
306
  ## Contact
306
307
 
307
308
  | Channel | Use for |
308
309
  | --- | --- |
309
- | [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 |
310
311
  | [info@asap-protocol.com](mailto:info@asap-protocol.com) | Private coordination — protocol, marketplace, partnerships, press |
311
312
  | [SECURITY.md](SECURITY.md) | Security vulnerabilities only — **do not** use email or public issues |
312
313
 
@@ -316,8 +317,8 @@ See [PRIVACY.md](PRIVACY.md) for how the public site and maintainer telemetry us
316
317
 
317
318
  ## License
318
319
 
319
- 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.
320
321
 
321
322
  ---
322
323
 
323
- **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.
@@ -2,14 +2,14 @@
2
2
 
3
3
  *✨ From **agents**, for **agents**. Delivering reliability, **as soon as possible.***
4
4
 
5
- ![ASAP Protocol Banner](https://raw.githubusercontent.com/adriannoes/asap-protocol/main/.github/assets/asap-protocol-banner.png)
5
+ ![ASAP Protocol Banner](https://raw.githubusercontent.com/asap-protocol/asap-protocol/main/.github/assets/asap-protocol-banner.png)
6
6
 
7
7
 
8
8
  > A production-ready protocol for agent-to-agent communication and task coordination.
9
9
 
10
- **Quick Info**: [`v2.5.3`](https://github.com/adriannoes/asap-protocol/releases/tag/v2.5.3) on PyPI · in-tree **v2.5.4** pending tag · 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.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)
11
11
 
12
- > 📦 **Install** — [`asap-protocol` **2.5.3** on PyPI](https://pypi.org/project/asap-protocol/) (Python; **2.5.4** pending publish) · [`@asap-protocol/client` on npm](https://www.npmjs.com/package/@asap-protocol/client) (TypeScript)
12
+ > 📦 **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)
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.3; in-tree 2.5.4 pending publish)
67
+ uv add asap-protocol # latest on PyPI (currently 2.5.5)
68
68
  ```
69
69
 
70
70
  Or with pip:
71
71
 
72
72
  ```bash
73
- pip install asap-protocol==2.5.3
73
+ pip install asap-protocol==2.5.5
74
74
  ```
75
75
 
76
- **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.4; `@asap-protocol/mcp-auth` HTTP middleware still deferred):
76
+ **TypeScript** (npm, **`2.4.1`** — unchanged for v2.5.5; `@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.4** (Distribution Loop) is **pending tag/PyPI** — see [Migration (v2.5.3 → v2.5.4)](docs/migration.md#upgrading-from-v253-to-v254). Start here: [Build for agents](docs/guides/build-for-agents.md) · [starters](examples/starters/README.md).
88
+ **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).
89
89
 
90
90
  ## Quick Start
91
91
 
@@ -111,7 +111,7 @@ With coverage (separate run — do not combine with `-n auto`):
111
111
  uv run pytest --tb=short --cov=asap --cov-report=term-missing --cov-fail-under=85
112
112
  ```
113
113
 
114
- [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).
114
+ [Testing Guide](https://github.com/asap-protocol/asap-protocol/blob/main/docs/testing.md) (structure, fixtures, property/load/chaos tests). [Contributing](https://github.com/asap-protocol/asap-protocol/blob/main/CONTRIBUTING.md) (dev setup, CI).
115
115
 
116
116
  ### Compliance Harness
117
117
 
@@ -122,9 +122,9 @@ uv add "asap-compliance>=1.3.0"
122
122
  pytest --asap-agent-url https://your-agent.example.com -m asap_compliance
123
123
  ```
124
124
 
125
- 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).
125
+ 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).
126
126
 
127
- See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/main/docs/guides/compliance-testing.md) for handshake, schema and state machine validation.
127
+ 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.
128
128
 
129
129
  ## Documentation
130
130
 
@@ -132,23 +132,23 @@ See [Compliance Testing Guide](https://github.com/adriannoes/asap-protocol/blob/
132
132
  - [Docs](docs/index.md) | [API Reference](docs/api-reference.md)
133
133
  - [MCP Auth Bridge](docs/adapters/mcp-auth-bridge.md) — v2.5.0 opt-in JWT + capability grants for native stdio MCP
134
134
  - [TypeScript client SDK](docs/sdks/typescript.md) — `@asap-protocol/client` (identity, capabilities, streaming, adapters)
135
- - [Tutorials](https://github.com/adriannoes/asap-protocol/tree/main/docs/tutorials) — First agent to production checklist
136
- - [Migration from A2A/MCP](https://github.com/adriannoes/asap-protocol/blob/main/docs/migration.md)
137
- - [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.
135
+ - [Tutorials](https://github.com/asap-protocol/asap-protocol/tree/main/docs/tutorials) — First agent to production checklist
136
+ - [Migration from A2A/MCP](https://github.com/asap-protocol/asap-protocol/blob/main/docs/migration.md)
137
+ - [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.
138
138
 
139
139
  **Deep Dive**
140
- - [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)
141
- - [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)
142
- - [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)
143
- - [Observability](https://github.com/adriannoes/asap-protocol/blob/main/docs/observability.md) | [Testing](https://github.com/adriannoes/asap-protocol/blob/main/docs/testing.md)
140
+ - [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)
141
+ - [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)
142
+ - [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)
143
+ - [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)
144
144
 
145
145
  **Decisions & Operations**
146
- - [ADRs](https://github.com/adriannoes/asap-protocol/tree/main/docs/adr) — 19 Architecture Decision Records
147
- - [Tech Stack](https://github.com/adriannoes/asap-protocol/blob/main/engineering/architecture/tech-stack-decisions.md) — Rationale for Python, Pydantic, Next.js choices
148
- - [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)
146
+ - [ADRs](https://github.com/asap-protocol/asap-protocol/tree/main/docs/adr) — 19 Architecture Decision Records
147
+ - [Tech Stack](https://github.com/asap-protocol/asap-protocol/blob/main/engineering/architecture/tech-stack-decisions.md) — Rationale for Python, Pydantic, Next.js choices
148
+ - [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)
149
149
 
150
150
  **Release**
151
- - [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`)
151
+ - [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`)
152
152
 
153
153
  ## CLI
154
154
 
@@ -169,38 +169,39 @@ See [docs/cli.md](docs/cli.md) for delegation tokens, schema validation, trace v
169
169
 
170
170
  ## Version History
171
171
 
172
- 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.
172
+ 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.
173
173
 
174
174
  | Version | What shipped |
175
175
  | :-- | :-- |
176
- | **v2.5.4** | **Distribution Loop** — pending tag/PyPI · 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) |
177
- | **v2.5.3** | **Adapter Lab II** — **[GitHub Release `v2.5.3`](https://github.com/adriannoes/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) |
176
+ | **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) |
177
+ | **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) |
178
+ | **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) |
178
179
  | **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) |
179
180
  | **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) |
180
- | **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) |
181
- | **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) |
181
+ | **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) |
182
+ | **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) |
182
183
  | **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) |
183
184
  | **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) |
184
- | **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) |
185
- | **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) |
186
- | **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) |
185
+ | **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) |
186
+ | **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) |
187
+ | **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) |
187
188
  | **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 |
188
189
  | **v2.1.1** | Patch: JWT allowlist · SQLite async bridge · optional Redis rate limits · web SSRF hardening |
189
190
  | **v2.1** | `MarketClient` · framework extras (LangChain, CrewAI, LlamaIndex, …) · registry UX |
190
191
  | **v2.0** | Marketplace web app · Lite Registry (GitHub Pages) · IssueOps · OAuth · verification flow |
191
192
  | **v1.3** | `asap delegation create` / `revoke` |
192
- | **v1.2** | Ed25519 manifests · trust levels · optional mTLS · [Compliance Harness](https://github.com/adriannoes/asap-protocol/blob/main/asap-compliance/README.md) |
193
+ | **v1.2** | Ed25519 manifests · trust levels · optional mTLS · [Compliance Harness](https://github.com/asap-protocol/asap-protocol/blob/main/asap-compliance/README.md) |
193
194
  | **v1.1** | OAuth2 · WebSocket · discovery (well-known + Lite Registry) · SQLite state · webhooks |
194
195
 
195
196
  ## 🔭 What's Next?
196
197
 
197
198
  The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
198
199
 
199
- - **v2.5.5** — Formal Spec & Interop (RFC, introspection, privacy)
200
+ - **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)
200
201
  - **`@asap-protocol/mcp-auth`** (npm) — HTTP/SSE MCP middleware
201
- - **Formal spec track** (v2.5.5) — introspection, privacy, cross-protocol interop on the path to v3.0 economy
202
+ - **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
202
203
 
203
- 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).
204
+ 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).
204
205
 
205
206
  ## Contributing
206
207
 
@@ -208,13 +209,13 @@ See the [v2.5 roadmap PRD](https://github.com/adriannoes/asap-protocol/blob/main
208
209
 
209
210
  Every contribution, from bug reports to feature suggestions, documentation improvements and code contributions, makes a real difference.
210
211
 
211
- Check out our [contributing guidelines](https://github.com/adriannoes/asap-protocol/blob/main/CONTRIBUTING.md) to get started. It's easier than you think! 🚀
212
+ 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! 🚀
212
213
 
213
214
  ## Contact
214
215
 
215
216
  | Channel | Use for |
216
217
  | --- | --- |
217
- | [GitHub Discussions](https://github.com/adriannoes/asap-protocol/discussions) or [Issues](https://github.com/adriannoes/asap-protocol/issues) | Public questions, bugs, and feature ideas |
218
+ | [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 |
218
219
  | [info@asap-protocol.com](mailto:info@asap-protocol.com) | Private coordination — protocol, marketplace, partnerships, press |
219
220
  | [SECURITY.md](SECURITY.md) | Security vulnerabilities only — **do not** use email or public issues |
220
221
 
@@ -224,8 +225,8 @@ See [PRIVACY.md](PRIVACY.md) for how the public site and maintainer telemetry us
224
225
 
225
226
  ## License
226
227
 
227
- 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.
228
+ 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.
228
229
 
229
230
  ---
230
231
 
231
- **Built with [Cursor](https://cursor.com/)**, with Composer, Opus, Gemini, Kimi and more.
232
+ **Built with [Cursor](https://cursor.com/)**, with Composer, Grok, Opus, Gemini, Kimi and more.