asap-protocol 2.5.4__tar.gz → 2.5.6__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.6}/CHANGELOG.md +183 -4
  2. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/PKG-INFO +49 -47
  3. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/README.md +39 -37
  4. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/pyproject.toml +35 -26
  5. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/__init__.py +1 -1
  6. asap_protocol-2.5.6/src/asap/adapters/mcp/__init__.py +26 -0
  7. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/openapi/__init__.py +1 -1
  8. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/openapi/capability_mapper.py +7 -10
  9. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/openapi/handler.py +38 -10
  10. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/agent_jwt.py +18 -13
  11. asap_protocol-2.5.6/src/asap/auth/agent_jwt_session.py +92 -0
  12. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/approval.py +87 -5
  13. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/capabilities.py +56 -7
  14. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/identity.py +217 -13
  15. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/self_auth.py +3 -3
  16. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/webauthn.py +4 -5
  17. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/webauthn_store.py +2 -2
  18. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/client/revocation.py +1 -1
  19. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/crypto/trust.py +1 -1
  20. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/README.md +2 -8
  21. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/auth_patterns.py +7 -6
  22. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/coordinator.py +1 -1
  23. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/rate_limiting.py +3 -3
  24. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/streaming_response.py +2 -2
  25. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/auth/__init__.py +6 -7
  26. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/auth/auth_middleware.py +1 -2
  27. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/auth/config.py +2 -2
  28. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/auth/protected_server.py +5 -5
  29. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/registry/auto_registration.py +20 -1
  30. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/registry/bot_pr.py +11 -1
  31. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/stores/_sync_bridge.py +1 -2
  32. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/testing/compliance.py +11 -2
  33. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/_request_handler.py +9 -15
  34. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/agent_routes.py +104 -32
  35. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/capability_routes.py +30 -4
  36. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/client/__init__.py +7 -19
  37. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/client/_core.py +5 -8
  38. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/client/_discovery.py +4 -8
  39. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/client/_helpers.py +2 -7
  40. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/client/_send.py +4 -5
  41. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/escalation_routes.py +31 -2
  42. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/handlers.py +0 -2
  43. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/middleware.py +0 -2
  44. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/server.py +4 -4
  45. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/validators.py +0 -1
  46. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/webhook.py +16 -1
  47. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/websocket.py +14 -34
  48. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/__init__.py +13 -16
  49. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/_ack.py +4 -6
  50. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/_dispatch.py +13 -17
  51. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/_recv.py +4 -5
  52. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/client.py +12 -40
  53. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/codecs.py +8 -14
  54. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/pool.py +2 -3
  55. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/server.py +26 -58
  56. asap_protocol-2.5.4/src/asap/adapters/mcp/__init__.py +0 -33
  57. asap_protocol-2.5.4/src/asap/examples/websocket_concept.py +0 -129
  58. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/.gitignore +0 -0
  59. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/LICENSE +0 -0
  60. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/entities/agent.schema.json +0 -0
  61. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/entities/artifact.schema.json +0 -0
  62. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/entities/conversation.schema.json +0 -0
  63. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/entities/manifest.schema.json +0 -0
  64. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/entities/message.schema.json +0 -0
  65. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/entities/state_snapshot.schema.json +0 -0
  66. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/entities/task.schema.json +0 -0
  67. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/envelope.schema.json +0 -0
  68. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/examples/shellclaw-jetson-capabilities.json +0 -0
  69. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/parts/data_part.schema.json +0 -0
  70. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/parts/file_part.schema.json +0 -0
  71. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/parts/resource_part.schema.json +0 -0
  72. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/parts/template_part.schema.json +0 -0
  73. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/parts/text_part.schema.json +0 -0
  74. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/artifact_notify.schema.json +0 -0
  75. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/mcp_resource_data.schema.json +0 -0
  76. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/mcp_resource_fetch.schema.json +0 -0
  77. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/mcp_tool_call.schema.json +0 -0
  78. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/mcp_tool_result.schema.json +0 -0
  79. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/message_send.schema.json +0 -0
  80. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/state_query.schema.json +0 -0
  81. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/state_restore.schema.json +0 -0
  82. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/task_cancel.schema.json +0 -0
  83. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/task_request.schema.json +0 -0
  84. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/task_response.schema.json +0 -0
  85. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/schemas/payloads/task_update.schema.json +0 -0
  86. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/__init__.py +0 -0
  87. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/mcp/auth_middleware.py +0 -0
  88. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/mcp/capability_map.py +0 -0
  89. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/mcp/config.py +0 -0
  90. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/mcp/errors.py +0 -0
  91. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/mcp/jwt_extractor.py +0 -0
  92. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/mcp/protected_server.py +0 -0
  93. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/openapi/approval.py +0 -0
  94. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/openapi/factory.py +0 -0
  95. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/adapters/openapi/spec_loader.py +0 -0
  96. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/__init__.py +0 -0
  97. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/_scope_parse.py +0 -0
  98. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/introspection.py +0 -0
  99. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/jti_replay_cache.py +0 -0
  100. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/jwks.py +0 -0
  101. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/middleware.py +0 -0
  102. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/oauth2.py +0 -0
  103. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/oidc.py +0 -0
  104. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/auth/scopes.py +0 -0
  105. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/__init__.py +0 -0
  106. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/_compat.py +0 -0
  107. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/audit_export.py +0 -0
  108. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/compliance_check.py +0 -0
  109. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/delegation.py +0 -0
  110. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/keys.py +0 -0
  111. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/manifest.py +0 -0
  112. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/repl.py +0 -0
  113. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/schemas.py +0 -0
  114. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/cli/trace.py +0 -0
  115. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/client/__init__.py +0 -0
  116. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/client/cache.py +0 -0
  117. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/client/http_client.py +0 -0
  118. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/client/market.py +0 -0
  119. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/client/trust.py +0 -0
  120. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/crypto/__init__.py +0 -0
  121. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/crypto/keys.py +0 -0
  122. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/crypto/models.py +0 -0
  123. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/crypto/signing.py +0 -0
  124. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/crypto/trust_levels.py +0 -0
  125. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/discovery/__init__.py +0 -0
  126. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/discovery/dnssd.py +0 -0
  127. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/discovery/health.py +0 -0
  128. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/discovery/registry.py +0 -0
  129. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/discovery/validation.py +0 -0
  130. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/discovery/wellknown.py +0 -0
  131. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/__init__.py +0 -0
  132. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/audit.py +0 -0
  133. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/delegation.py +0 -0
  134. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/delegation_storage.py +0 -0
  135. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/hooks.py +0 -0
  136. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/metering.py +0 -0
  137. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/sla.py +0 -0
  138. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/sla_storage.py +0 -0
  139. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/economics/storage.py +0 -0
  140. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/errors.py +0 -0
  141. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/__init__.py +0 -0
  142. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/a2h_approval.py +0 -0
  143. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/agent_failover.py +0 -0
  144. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/echo_agent.py +0 -0
  145. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/error_recovery.py +0 -0
  146. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/long_running.py +0 -0
  147. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/mcp_client_demo.py +0 -0
  148. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/mcp_integration.py +0 -0
  149. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/multi_step_workflow.py +0 -0
  150. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/orchestration.py +0 -0
  151. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/run_demo.py +0 -0
  152. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/secure_agent.py +0 -0
  153. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/secure_handler.py +0 -0
  154. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/state_migration.py +0 -0
  155. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/storage_backends.py +0 -0
  156. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/streaming_agent.py +0 -0
  157. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/v1_3_0_showcase.py +0 -0
  158. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/examples/v1_4_0_showcase.py +0 -0
  159. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/handlers/__init__.py +0 -0
  160. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/handlers/hitl.py +0 -0
  161. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/__init__.py +0 -0
  162. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/_base.py +0 -0
  163. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/a2h.py +0 -0
  164. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/crewai.py +0 -0
  165. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/langchain.py +0 -0
  166. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/llamaindex.py +0 -0
  167. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/openclaw.py +0 -0
  168. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/pydanticai.py +0 -0
  169. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/smolagents.py +0 -0
  170. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/integrations/vercel_ai.py +0 -0
  171. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/__init__.py +0 -0
  172. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/auth/capability_map.py +0 -0
  173. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/auth/errors.py +0 -0
  174. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/auth/jwt_extractor.py +0 -0
  175. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/client.py +0 -0
  176. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/protocol.py +0 -0
  177. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/serve.py +0 -0
  178. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/server.py +0 -0
  179. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/mcp/server_runner.py +0 -0
  180. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/__init__.py +0 -0
  181. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/base.py +0 -0
  182. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/constants.py +0 -0
  183. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/entities.py +0 -0
  184. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/enums.py +0 -0
  185. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/envelope.py +0 -0
  186. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/ids.py +0 -0
  187. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/parts.py +0 -0
  188. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/payloads.py +0 -0
  189. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/types.py +0 -0
  190. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/models/validators.py +0 -0
  191. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/__init__.py +0 -0
  192. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/dashboards/README.md +0 -0
  193. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/dashboards/asap-detailed.json +0 -0
  194. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/dashboards/asap-red.json +0 -0
  195. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/logging.py +0 -0
  196. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/metrics.py +0 -0
  197. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/trace_parser.py +0 -0
  198. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/trace_ui.py +0 -0
  199. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/observability/tracing.py +0 -0
  200. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/registry/__init__.py +0 -0
  201. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/registry/anti_spam.py +0 -0
  202. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/registry/receipt_cache.py +0 -0
  203. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/schemas.py +0 -0
  204. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/__init__.py +0 -0
  205. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/machine.py +0 -0
  206. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/metering.py +0 -0
  207. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/snapshot.py +0 -0
  208. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/stores/__init__.py +0 -0
  209. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/stores/_sqlite_base.py +0 -0
  210. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/stores/memory.py +0 -0
  211. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/state/stores/sqlite.py +0 -0
  212. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/testing/__init__.py +0 -0
  213. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/testing/asgi_factory.py +0 -0
  214. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/testing/assertions.py +0 -0
  215. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/testing/fixtures.py +0 -0
  216. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/testing/mocks.py +0 -0
  217. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/__init__.py +0 -0
  218. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/_auth_helpers.py +0 -0
  219. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/_state_deps.py +0 -0
  220. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/cache.py +0 -0
  221. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/challenge.py +0 -0
  222. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/circuit_breaker.py +0 -0
  223. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/compression.py +0 -0
  224. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/delegation_api.py +0 -0
  225. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/errors.py +0 -0
  226. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/executors.py +0 -0
  227. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/jsonrpc.py +0 -0
  228. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/lambda_codec.py +0 -0
  229. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/mtls.py +0 -0
  230. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/rate_limit.py +0 -0
  231. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/routes/__init__.py +0 -0
  232. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/routes/audit.py +0 -0
  233. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/routes/health.py +0 -0
  234. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/routes/jsonrpc.py +0 -0
  235. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/routes/websocket.py +0 -0
  236. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/sla_api.py +0 -0
  237. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/usage_api.py +0 -0
  238. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/_actions.py +0 -0
  239. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/transport/ws/_errors.py +0 -0
  240. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/src/asap/utils/__init__.py +0 -0
  241. {asap_protocol-2.5.4 → asap_protocol-2.5.6}/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,193 @@ 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.6] - 2026-10-01
20
+
21
+ **Security & quality patch** — Lite Registry IssueOps envelope and endpoint SSRF
22
+ hardening, compliance harness open-redirect SSRF, constrained capability execute,
23
+ Agent JWT rotate-key lifecycle race, dependency bumps, and consolidated regression
24
+ tests on `development` via [#354](https://github.com/asap-protocol/asap-protocol/pull/354)–[#379](https://github.com/asap-protocol/asap-protocol/pull/379).
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.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6)
28
+ · PyPI `asap-protocol==2.5.6`.
29
+
30
+ ### Fixed
31
+
32
+ - **Lite Registry IssueOps envelope (#354)** — `save_registry` again writes a
33
+ `LiteRegistry` object (`version`, `updated_at`, `agents`) so
34
+ `discover_from_registry` and Python validation keep working after
35
+ registration/removal. CI `validate_registry.py` and auto-merge eligibility
36
+ now reject a bare root array on production `registry.json` (fixture dry-runs
37
+ use `--allow-agents-array`).
38
+
39
+ - **Agent JWT rotate-key lifecycle (#372)** — lifecycle persistence uses
40
+ compare-and-set on `expected_public_key` so stale snapshots cannot undo
41
+ `POST /asap/agent/rotate-key`.
42
+
43
+ ### Security
44
+
45
+ - **Capability execute omitted arguments (#373)** — ``CapabilityRegistry.check_grant``
46
+ and ``POST /asap/capability/execute`` treat a missing ``arguments`` object
47
+ as empty when the grant has constraints. Constrained fields stay required,
48
+ so omitting the object no longer skips the allowlist.
49
+
50
+ - **Compliance harness open-redirect SSRF (#370)** — ``run_compliance_harness_v2_from_url``
51
+ no longer sets ``follow_redirects=True``. Auto-registration
52
+ (``POST /registry/agents``) allowlists the harness base URL once, then the
53
+ harness preflight and checks use that client; a public agent could
54
+ ``302`` to ``http://169.254.169.254/`` (or another blocked hop) and the
55
+ registry-bot would fetch it. Same fail-closed policy as
56
+ ``fetch_manifest_at_url``. ``asap compliance-check`` against a hostile
57
+ URL is covered by the same client.
58
+
59
+ - **IssueOps registry endpoint SSRF (#371)** — `process_registration` rejects HTTP
60
+ and WebSocket endpoints that resolve to private, loopback, cloud-metadata, or
61
+ NAT64-embedded private hosts before writing `registry.json`. Manifest fetch was
62
+ already allowlisted; the advertised agent URLs were not, so a public signed
63
+ manifest could list `http://169.254.169.254/` and SDK `MarketClient.run`
64
+ would dial IMDS.
65
+
66
+ ### Changed
67
+
68
+ - **GitHub Actions deps (#374)** — grouped bump for CI and release workflows.
69
+ - **`apps/web` npm deps (#375)** — grouped production and dev dependency updates.
70
+
71
+ ### Quality
72
+
73
+ - **Consolidated regression tests (#376–#379)** — SSRF and web policy coverage,
74
+ transport binding/nonce/validation edges, streaming registration and SLA idle
75
+ windows, and auth lifecycle/session gates.
76
+
77
+ ### Migration
78
+
79
+ - **v2.5.5 → v2.5.6**: See [migration guide](docs/migration.md#upgrading-from-v255-to-v256).
80
+ No wire-protocol or manifest schema breaking changes. Capability clients with
81
+ constrained grants must send an ``arguments`` object (may be empty). Registry
82
+ operators must keep `registry.json` as a `LiteRegistry` envelope.
83
+
84
+ ---
85
+
86
+ ## [2.5.5] - 2026-09-11
20
87
 
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`.
88
+ **Security & quality patch** — OpenAPI path-parameter climb, Lite Registry
89
+ add-only URN policy, marketplace allowlisted-fetch DNS pin, capability-replace
90
+ consent, fail-closed reactivate, Agent JWT persist/revoke races, and
91
+ 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).
92
+ This is **not** Formal Spec & Interop. npm `@asap-protocol/*` packages remain
93
+ at **2.4.1**. PyPI `asap-compliance` remains **1.3.0**.
94
+ Tag [`v2.5.5`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.5)
95
+ · PyPI `asap-protocol==2.5.5`.
96
+
97
+ ### Security
98
+
99
+ - **Reactivate approval bypass (#348)** — ``reactivate_agent`` /
100
+ ``POST /asap/agent/reactivate`` only allow ``active`` / ``expired``
101
+ (fail-closed). ``pending``, ``rejected``, ``revoked``, and any future
102
+ status cannot be force-activated. LIFE-004 scopes reactivation to expired
103
+ agents; flipping a denied or still-open registration would skip host
104
+ consent.
105
+ - **Capability escalation constraint overwrite (#347)** —
106
+ ``POST /asap/agent/request-capability`` no longer auto-applies a name in
107
+ ``host.default_capabilities`` when that would clear, weaken, or otherwise
108
+ replace an existing registry grant (constraints, status, or a
109
+ host-imposed ``expires_at``). Constraint or expiry changes require the same
110
+ Device Auth / CIBA consent path as non-default capability names. Identical
111
+ active re-requests do not rewrite the grant row. A2H prompts include the
112
+ requested spec, not names only.
113
+ - **Marketplace allowlisted fetch DNS pin (#346)** — `/api/health-check`,
114
+ `/api/proxy/check`, and dashboard register HEAD no longer let Node
115
+ `fetch` re-resolve after the SSRF allowlist. `connect()` is pinned to
116
+ the allowlisted IPs, each redirect hop is re-validated, hop sockets are
117
+ dropped after headers, and the 3s budget is shared across the walk
118
+ (DNS rebinding / private Location / body-drain DoS).
119
+ - **Lite Registry auto-registration (#345)** — `POST /registry/agents` and the
120
+ auto-merge policy cannot overwrite or delete existing agent URNs.
121
+ Duplicate ids in `registry.json` are rejected (marketplace lookup is
122
+ first-match). Updates and removals stay on IssueOps / human review.
123
+ - **OpenAPI path-parameter climb (#344)** — ``_fill_path_template`` rejects
124
+ ``.`` / ``..`` path params before ``httpx.request``.
125
+ ``quote(..., safe="")`` leaves RFC 3986 dots unencoded, so a granted
126
+ skill for ``/v1/{resource}/{id}`` with both params ``..`` would climb
127
+ out of a path-prefixed ``base_url`` (confused deputy with OA-009
128
+ headers). Static templates that already contain ``.`` / ``..`` raise
129
+ ``OpenAPIPathParameterError`` instead of ``ValueError``.
130
+ - **Marketplace IPv6 SSRF ranges (#350)** — ``isBlockedIPv6`` treats link-local
131
+ as ``fe80::/10`` (not ``fe80:`` /16), blocks unspecified ``::``, and
132
+ applies the IPv4 blocklist to NAT64 ``64:ff9b::/96`` embeddings.
133
+ - **Pending Device Auth / CIBA spec reuse (#350)** — a later escalation request
134
+ merges ``capability_specs`` and rotates to a new challenge. A2H
135
+ approve/deny is ignored when the store payload no longer matches the
136
+ prompt, so a stale consent cannot grant a wider set.
137
+
138
+ ### Security (deps)
139
+
140
+ - Raise `cryptography` to `>=50.0.0,<51` for **PYSEC-2026-3552** (PKCS7
141
+ Bleichenbacher; 49.0.0 already covered PYSEC-2026-3553/3554). Pair with
142
+ `pyopenssl>=26.4.0` so `[webauthn]` stays importable.
143
+ - Raise `aiohttp` override to `>=3.14.3,<4` for **PYSEC-2026-3545/3546/3547**.
144
+ - Add `h2>=4.4.1` override for **PYSEC-2026-3628**.
145
+ - Raise `pip` floor to `>=26.2` for **PYSEC-2026-3721**.
146
+ - Raise optional `[pydanticai]` floor to `pydantic-ai>=1.106.0,<2` for
147
+ **PYSEC-2026-3692/3693**.
148
+ - `apps/web` npm overrides: `fast-uri@^3.1.6`, `nanoid@^3.3.18`,
149
+ `postcss@^8.5.23`, `brace-expansion@^5.0.9`, `ip-address@^10.3.1`,
150
+ `js-yaml@^4.3.1`, `undici@^7.29.0`, `fflate@^0.8.3`
151
+ (**CVE-2026-45820**), `baseline-browser-mapping@^2.11.0`
152
+ (**CVE-2026-45819**), and `browserslist@^4.28.9` so
153
+ production moderate+ and full-graph high+ audits stay clean.
154
+ - Raise `apps/web` `next` to **16.3.4** and `eslint-config-next` to match
155
+ (**GHSA-p293-qw3h-jr36**, **GHSA-2xp9-vwfh-vxw4**). Align `sharp` to
156
+ `^0.35.4` (**GHSA-rgj7-g3m4-5g8c** / libheif).
157
+ - Raise `mkdocs-material` to `>=9.7.7` for **PYSEC-2026-3864** /
158
+ **CVE-2026-73295** (DOM XSS in `search.suggest`). The wheel bump does not
159
+ patch GitHub Pages until the docs site is rebuilt and published (`Docs`
160
+ workflow on `main`).
161
+
162
+ ### Fixed
163
+
164
+ - **Agent JWT session sliding (LIFE-005)** — Successful
165
+ :func:`~asap.auth.agent_jwt.verify_agent_jwt` always persists the extended
166
+ ``last_used_at`` after a verified Agent JWT (restores the pre-S3 “verifier
167
+ writes” contract; callers must not assume they alone persist idle timeout).
168
+ Side effect: authenticated ``GET /asap/capability/list`` with an Agent JWT
169
+ now slides idle timeout the same as other verify paths — list traffic keeps
170
+ sessions warm.
171
+ - **Agent JWT verify vs concurrent revoke/rotate** — Session extension no
172
+ longer uses full-row ``AgentStore.save`` of a verify-time snapshot (that
173
+ TOCTOU could resurrect a revoked agent or undo ``rotate-key``). Persist goes
174
+ through ``AgentStore.touch_if_current`` (atomic ``UPDATE ... WHERE status =
175
+ 'active'`` plus matching ``host_id`` and RFC 7638 public-key thumbprint).
176
+ Custom store authors must implement that method; get→mutate→save is not
177
+ sufficient.
178
+ - **Rotate-key / reactivate / status vs concurrent revoke** — Those handlers
179
+ re-read then persist through ``save_agent_unless_revoked``. ``AgentStore.save``
180
+ must reject replacing a ``revoked`` row with a non-revoked snapshot
181
+ (``InMemoryAgentStore`` raises ``RevokedAgentOverwriteError``). Custom stores
182
+ that await I/O inside ``save`` must make that check atomic
183
+ (``UPDATE ... WHERE status <> 'revoked'``).
184
+
185
+ ### Changed
186
+
187
+ - **CI setup-uv pin (#350)** — `.github/actions/setup-python` pins
188
+ `astral-sh/setup-uv` to **v10.0.1**.
189
+ - **Dependabot groups (#349)** — grouped GitHub Actions and `apps/web` npm
190
+ production/development updates (no extra dep bump in this release PR).
191
+
192
+ ### Migration
193
+
194
+ - **v2.5.4 → v2.5.5**: See [migration guide](docs/migration.md#upgrading-from-v254-to-v255).
195
+ No wire-protocol or manifest schema breaking changes. Custom ``AgentStore``
196
+ authors must implement ``touch_if_current`` and refuse revoked overwrite.
197
+
198
+ ---
199
+
200
+ ## [2.5.4] - 2026-07-18
22
201
 
23
202
  **Distribution Loop** — homepage, thin starters, Build for agents guide, and maintainer
24
203
  telemetry ops (no public metrics UI). Scope:
25
204
  [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**.
205
+ 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
206
 
28
207
  ### Added
29
208
 
@@ -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.6
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.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6) · PyPI [`asap-protocol`](https://pypi.org/project/asap-protocol/) | `Apache 2.0` | `Python 3.13+` | [Documentation](docs/index.md) | [Changelog](CHANGELOG.md)
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.6** 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.6)
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.6
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.6; `@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.6** (security & quality patch) is **shipped** — see [Migration (v2.5.5 → v2.5.6)](docs/migration.md#upgrading-from-v255-to-v256). Dist Loop starters remain: [Build for agents](docs/guides/build-for-agents.md) · [starters](examples/starters/README.md).
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,40 @@ 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.6** | **Security & quality patch** — **[GitHub Release `v2.5.6`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.6)** · Lite Registry IssueOps envelope + endpoint SSRF, compliance open-redirect SSRF, constrained capability execute, rotate-key lifecycle race, deps + regression tests. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#256---2026-10-01) and [Migration (v2.5.5 → v2.5.6)](docs/migration.md#upgrading-from-v255-to-v256) |
269
+ | **v2.5.5** | **Security & quality patch** — **[GitHub Release `v2.5.5`](https://github.com/asap-protocol/asap-protocol/releases/tag/v2.5.5)** · OpenAPI path-param climb, registry URN overwrite guard, marketplace SSRF DNS pin, capability-replace consent, fail-closed reactivate, Agent JWT persist/revoke races. npm `@asap-protocol/*` remain **2.4.1**. See [CHANGELOG](CHANGELOG.md#255---2026-09-11) and [Migration (v2.5.4 → v2.5.5)](docs/migration.md#upgrading-from-v254-to-v255) |
270
+ | **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) |
271
+ | **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
272
  | **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
273
  | **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) |
274
+ | **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) |
275
+ | **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
276
  | **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
277
  | **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) |
278
+ | **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) |
279
+ | **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) |
280
+ | **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
281
  | **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
282
  | **v2.1.1** | Patch: JWT allowlist · SQLite async bridge · optional Redis rate limits · web SSRF hardening |
281
283
  | **v2.1** | `MarketClient` · framework extras (LangChain, CrewAI, LlamaIndex, …) · registry UX |
282
284
  | **v2.0** | Marketplace web app · Lite Registry (GitHub Pages) · IssueOps · OAuth · verification flow |
283
285
  | **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) |
286
+ | **v1.2** | Ed25519 manifests · trust levels · optional mTLS · [Compliance Harness](https://github.com/asap-protocol/asap-protocol/blob/main/asap-compliance/README.md) |
285
287
  | **v1.1** | OAuth2 · WebSocket · discovery (well-known + Lite Registry) · SQLite state · webhooks |
286
288
 
287
289
  ## 🔭 What's Next?
288
290
 
289
291
  The [agentic marketplace](https://asap-protocol.com/) and Lite Registry are live. The **v2.5.x train** focuses on interop and adoption:
290
292
 
291
- - **v2.5.5** — Formal Spec & Interop (RFC, introspection, privacy)
293
+ - **Formal Spec & Interop** — RFC, introspection, privacy (PRD [prd-v2.5.5-formal-spec-interop.md](product/prd/prd-v2.5.5-formal-spec-interop.md); library **2.5.6** is the security/quality patch above)
292
294
  - **`@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
295
+ - **Formal spec track** — introspection, privacy, cross-protocol interop on the path to v3.0 economy
294
296
 
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).
297
+ 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
298
 
297
299
  ## Contributing
298
300
 
@@ -300,13 +302,13 @@ See the [v2.5 roadmap PRD](https://github.com/adriannoes/asap-protocol/blob/main
300
302
 
301
303
  Every contribution, from bug reports to feature suggestions, documentation improvements and code contributions, makes a real difference.
302
304
 
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! 🚀
305
+ 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
306
 
305
307
  ## Contact
306
308
 
307
309
  | Channel | Use for |
308
310
  | --- | --- |
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 |
311
+ | [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
312
  | [info@asap-protocol.com](mailto:info@asap-protocol.com) | Private coordination — protocol, marketplace, partnerships, press |
311
313
  | [SECURITY.md](SECURITY.md) | Security vulnerabilities only — **do not** use email or public issues |
312
314
 
@@ -316,8 +318,8 @@ See [PRIVACY.md](PRIVACY.md) for how the public site and maintainer telemetry us
316
318
 
317
319
  ## License
318
320
 
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.
321
+ 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
322
 
321
323
  ---
322
324
 
323
- **Built with [Cursor](https://cursor.com/)**, with Composer, Opus, Gemini, Kimi and more.
325
+ **Built with [Cursor](https://cursor.com/)**, with Composer, Grok, Opus, Gemini, Kimi and more.