agentscore-commerce 2.8.2__tar.gz → 2.9.0__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 (250) hide show
  1. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/PKG-INFO +2 -2
  2. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/sessions.py +23 -3
  3. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/pyproject.toml +2 -2
  4. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_sessions.py +18 -0
  5. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/uv.lock +654 -597
  6. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  7. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  8. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  9. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/dependabot.yml +0 -0
  10. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/workflows/ci.yml +0 -0
  11. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/workflows/publish.yml +0 -0
  12. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/workflows/security.yml +0 -0
  13. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.gitignore +0 -0
  14. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/CLAUDE.md +0 -0
  15. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/CODE_OF_CONDUCT.md +0 -0
  16. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/CONTRIBUTING.md +0 -0
  17. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/LICENSE +0 -0
  18. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/README.md +0 -0
  19. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/SECURITY.md +0 -0
  20. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/__init__.py +0 -0
  21. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/_headers.py +0 -0
  22. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/_mppx_receipt.py +0 -0
  23. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/_redis.py +0 -0
  24. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/_warnings.py +0 -0
  25. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/__init__.py +0 -0
  26. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/gate.py +0 -0
  27. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/http_signature.py +0 -0
  28. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/jwks.py +0 -0
  29. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/request.py +0 -0
  30. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/types.py +0 -0
  31. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/verify.py +0 -0
  32. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/api/__init__.py +0 -0
  33. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/__init__.py +0 -0
  34. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/accepted_methods.py +0 -0
  35. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/agent_instructions.py +0 -0
  36. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/agent_memory.py +0 -0
  37. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/body.py +0 -0
  38. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/how_to_pay.py +0 -0
  39. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/identity.py +0 -0
  40. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/pricing.py +0 -0
  41. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/receipt.py +0 -0
  42. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/respond_402.py +0 -0
  43. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/validation_error.py +0 -0
  44. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/checkout.py +0 -0
  45. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/checkout_compute_first.py +0 -0
  46. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/checkout_hooks.py +0 -0
  47. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/__init__.py +0 -0
  48. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/agentscore_content.py +0 -0
  49. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/bazaar.py +0 -0
  50. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/llms_txt.py +0 -0
  51. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/openapi.py +0 -0
  52. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/probe.py +0 -0
  53. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/redemption_md.py +0 -0
  54. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/robots_tag.py +0 -0
  55. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/skill_md.py +0 -0
  56. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/well_known.py +0 -0
  57. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/well_known_mpp.py +0 -0
  58. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/well_known_x402.py +0 -0
  59. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/errors.py +0 -0
  60. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/forwarded_proto.py +0 -0
  61. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/__init__.py +0 -0
  62. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/_denial.py +0 -0
  63. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/_response.py +0 -0
  64. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/a2a.py +0 -0
  65. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/address.py +0 -0
  66. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/aiohttp.py +0 -0
  67. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/cache.py +0 -0
  68. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/core.py +0 -0
  69. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/default_denied.py +0 -0
  70. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/django.py +0 -0
  71. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/fastapi.py +0 -0
  72. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/flask.py +0 -0
  73. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/middleware.py +0 -0
  74. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/policy.py +0 -0
  75. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/py.typed +0 -0
  76. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/sanic.py +0 -0
  77. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/signer.py +0 -0
  78. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/tokens.py +0 -0
  79. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/types.py +0 -0
  80. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/ucp.py +0 -0
  81. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/ucp_jwks.py +0 -0
  82. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/__init__.py +0 -0
  83. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/_core.py +0 -0
  84. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/aiohttp.py +0 -0
  85. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/asgi.py +0 -0
  86. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/django.py +0 -0
  87. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/fastapi.py +0 -0
  88. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/flask.py +0 -0
  89. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/sanic.py +0 -0
  90. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/__init__.py +0 -0
  91. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/amounts.py +0 -0
  92. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/compose_rails.py +0 -0
  93. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/constants.py +0 -0
  94. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/default_rails.py +0 -0
  95. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/directive.py +0 -0
  96. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/dispatch.py +0 -0
  97. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/headers.py +0 -0
  98. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/idempotency.py +0 -0
  99. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/lazy.py +0 -0
  100. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/mppx_failures.py +0 -0
  101. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/mppx_server.py +0 -0
  102. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/network_kind.py +0 -0
  103. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/networks.py +0 -0
  104. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/payment_header.py +0 -0
  105. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/rail_spec.py +0 -0
  106. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/rails.py +0 -0
  107. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/settlement_override.py +0 -0
  108. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/signer.py +0 -0
  109. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/solana.py +0 -0
  110. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/usdc.py +0 -0
  111. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/wwwauthenticate.py +0 -0
  112. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/x402.py +0 -0
  113. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/x402_server.py +0 -0
  114. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/x402_settle.py +0 -0
  115. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/x402_validation.py +0 -0
  116. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/zero_settle.py +0 -0
  117. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/py.typed +0 -0
  118. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/quote_cache.py +0 -0
  119. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/__init__.py +0 -0
  120. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/mppx_stripe.py +0 -0
  121. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/pay_to_address.py +0 -0
  122. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/payment_intent.py +0 -0
  123. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/pi_cache.py +0 -0
  124. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/simulate_deposit.py +0 -0
  125. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/simulate_dispatch.py +0 -0
  126. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/README.md +0 -0
  127. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/api_provider.py +0 -0
  128. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/compliance_merchant.py +0 -0
  129. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/compute_first_merchant.py +0 -0
  130. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/identity_only.py +0 -0
  131. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/multi_rail_merchant.py +0 -0
  132. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/per_product_policy_merchant.py +0 -0
  133. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/signed_ucp_merchant.py +0 -0
  134. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/stripe_multichain_merchant.py +0 -0
  135. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/lefthook.yml +0 -0
  136. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/osv-scanner.toml +0 -0
  137. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/ruff.toml +0 -0
  138. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/scripts/regenerate_cross_lang_fixtures.py +0 -0
  139. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/__init__.py +0 -0
  140. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/conftest.py +0 -0
  141. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-agentscore-gate-blocked.json +0 -0
  142. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-agentscore-gate-full.json +0 -0
  143. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-capability.json +0 -0
  144. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-emoji-keys.json +0 -0
  145. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-es256-rails.json +0 -0
  146. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-extras-int.json +0 -0
  147. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-int-boundary.json +0 -0
  148. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-minimal.json +0 -0
  149. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-multikey.json +0 -0
  150. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-unicode.json +0 -0
  151. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-agentscore-gate-blocked.json +0 -0
  152. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-agentscore-gate-full.json +0 -0
  153. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-capability.json +0 -0
  154. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-emoji-keys.json +0 -0
  155. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-es256-rails.json +0 -0
  156. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-extras-int.json +0 -0
  157. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-int-boundary.json +0 -0
  158. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-minimal.json +0 -0
  159. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-multikey.json +0 -0
  160. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-unicode.json +0 -0
  161. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_a2a.py +0 -0
  162. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_a2a_jws_roundtrip.py +0 -0
  163. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_address.py +0 -0
  164. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_agent_memory_emitter.py +0 -0
  165. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aiohttp.py +0 -0
  166. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_adapters.py +0 -0
  167. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_agent_memory.py +0 -0
  168. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_checkout.py +0 -0
  169. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_gate.py +0 -0
  170. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_http_signature.py +0 -0
  171. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_jwks.py +0 -0
  172. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_presentation.py +0 -0
  173. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_request.py +0 -0
  174. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_types.py +0 -0
  175. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_verify.py +0 -0
  176. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_amounts.py +0 -0
  177. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_api_reexport.py +0 -0
  178. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_cache.py +0 -0
  179. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_challenge.py +0 -0
  180. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout.py +0 -0
  181. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_compute_first.py +0 -0
  182. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_compute_first_adapters.py +0 -0
  183. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_compute_first_ofac.py +0 -0
  184. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_compute_first_settle.py +0 -0
  185. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_coverage_gaps.py +0 -0
  186. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_signer_match.py +0 -0
  187. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_wallet_ofac_default.py +0 -0
  188. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_classify_orchestration_error.py +0 -0
  189. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_compose_rails.py +0 -0
  190. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_core.py +0 -0
  191. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_coverage_fillers.py +0 -0
  192. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_credential_precheck.py +0 -0
  193. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_default_denied.py +0 -0
  194. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_default_rails.py +0 -0
  195. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_default_read_only_on_denied.py +0 -0
  196. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_denial.py +0 -0
  197. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_discovery.py +0 -0
  198. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_dispatch.py +0 -0
  199. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_django.py +0 -0
  200. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_extract_owner_scope.py +0 -0
  201. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_fastapi.py +0 -0
  202. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_flask.py +0 -0
  203. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_forwarded_proto.py +0 -0
  204. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_gate_quota_info.py +0 -0
  205. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_get_signer_verdict.py +0 -0
  206. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_idempotency_helper.py +0 -0
  207. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_integration.py +0 -0
  208. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_internal_helpers.py +0 -0
  209. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_lifted_helpers.py +0 -0
  210. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_load_ucp_signing_key_from_env.py +0 -0
  211. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_middleware.py +0 -0
  212. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_mppx_failures.py +0 -0
  213. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_mppx_receipt.py +0 -0
  214. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_network_kind.py +0 -0
  215. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_operator_handle.py +0 -0
  216. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_pay_to_address.py +0 -0
  217. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_directive.py +0 -0
  218. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_dispatch.py +0 -0
  219. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_handlers.py +0 -0
  220. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_header.py +0 -0
  221. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_headers.py +0 -0
  222. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_misc.py +0 -0
  223. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_servers.py +0 -0
  224. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_signer.py +0 -0
  225. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_policy.py +0 -0
  226. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_pricing.py +0 -0
  227. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_public_surface.py +0 -0
  228. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_quote_cache.py +0 -0
  229. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_quote_cache_redis.py +0 -0
  230. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_rail_spec.py +0 -0
  231. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_rate_limit.py +0 -0
  232. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_redis_internal.py +0 -0
  233. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_response.py +0 -0
  234. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_robots_tag.py +0 -0
  235. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_sanic.py +0 -0
  236. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_seamless_helpers.py +0 -0
  237. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_signer_match.py +0 -0
  238. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_signer_verdict_request_scoped.py +0 -0
  239. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_simulate_dispatch.py +0 -0
  240. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_skill_md.py +0 -0
  241. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_solana.py +0 -0
  242. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_solana_mpp_rail_spec_post_init.py +0 -0
  243. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_stripe_multichain.py +0 -0
  244. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_tokens.py +0 -0
  245. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_ucp.py +0 -0
  246. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_ucp_cross_lang.py +0 -0
  247. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_ucp_jwks.py +0 -0
  248. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_validation_error.py +0 -0
  249. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_x402_settle_extra.py +0 -0
  250. {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_zero_settle.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agentscore-commerce
3
- Version: 2.8.2
3
+ Version: 2.9.0
4
4
  Summary: Agentic commerce SDK for Python: identity middleware (FastAPI, Flask, Django, AIOHTTP, Sanic, ASGI) + payment helpers + 402 builders + discovery + Stripe multichain. The full merchant-side toolkit for AgentScore-powered agentic commerce.
5
5
  Project-URL: Homepage, https://www.agentscore.com
6
6
  Project-URL: Repository, https://github.com/agentscore/python-commerce
@@ -18,7 +18,7 @@ Classifier: License :: OSI Approved :: MIT License
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Topic :: Software Development :: Libraries
20
20
  Requires-Python: >=3.11
21
- Requires-Dist: agentscore-py>=2.6.4
21
+ Requires-Dist: agentscore-py>=2.6.9
22
22
  Requires-Dist: httpx<1.0.0,>=0.25.0
23
23
  Provides-Extra: aiohttp
24
24
  Requires-Dist: aiohttp>=3.8.0; extra == 'aiohttp'
@@ -7,7 +7,7 @@ import json
7
7
  import logging
8
8
  from collections.abc import Awaitable, Callable
9
9
  from dataclasses import dataclass
10
- from typing import Any, cast
10
+ from typing import Any, Literal, cast
11
11
 
12
12
  from agentscore import AgentScore, AgentScoreError
13
13
 
@@ -46,6 +46,13 @@ class CreateSessionOnMissing:
46
46
  base_url: str = "https://api.agentscore.com"
47
47
  context: str | None = None
48
48
  product_name: str | None = None
49
+ # Session kind sent to POST /v1/sessions. "kyc" (the API default) runs identity
50
+ # verification; "sign_in" is registration-only (the buyer signs in with an AgentScore
51
+ # account, no identity documents) and mints a sign_in-scoped credential. Use it when the
52
+ # gate runs with an EMPTY compliance policy and only needs an account to key state on
53
+ # (a prepaid balance, say): a KYC session there asks for documents nothing will check.
54
+ # The denial's default error.message follows the kind.
55
+ kind: Literal["kyc", "sign_in"] | None = None
49
56
  # Per-request override of context / product_name. Receives the framework request
50
57
  # object; returns a dict with optional "context" and/or "product_name" keys.
51
58
  get_session_options: Callable[[Any], _Hookable] | None = None
@@ -91,12 +98,22 @@ def _resolved_session_options(cfg: CreateSessionOnMissing, dynamic: Any) -> dict
91
98
  options["context"] = cfg.context
92
99
  if cfg.product_name is not None:
93
100
  options["product_name"] = cfg.product_name
101
+ if cfg.kind is not None:
102
+ options["kind"] = cfg.kind
94
103
  return _apply_dynamic_options(options, dynamic)
95
104
 
96
105
 
106
+ SIGN_IN_REQUIRED_MESSAGE = (
107
+ "Sign-in is required to access this resource. Visit verify_url to sign in with an "
108
+ "AgentScore account (no identity documents), then poll poll_url for the operator token "
109
+ "and retry."
110
+ )
111
+
112
+
97
113
  def _session_denial_reason(
98
114
  data: dict[str, Any],
99
115
  extra: dict[str, Any] | None = None,
116
+ kind: Literal["kyc", "sign_in"] | None = None,
100
117
  ) -> DenialReason | None:
101
118
  # Validate required fields before trusting the response. A misbehaving (or
102
119
  # mocked-wrong) API could 200 without session_id/poll_secret/verify_url, which
@@ -116,6 +133,9 @@ def _session_denial_reason(
116
133
  agent_instructions = json.dumps(next_steps) if next_steps else None
117
134
  return DenialReason(
118
135
  code="identity_verification_required",
136
+ # The per-code default message talks about KYC, which a sign_in session never runs;
137
+ # say what this session actually asks for so a merchant's default 403 is not a lie.
138
+ message=SIGN_IN_REQUIRED_MESSAGE if kind == "sign_in" else None,
119
139
  verify_url=data["verify_url"],
120
140
  session_id=data["session_id"],
121
141
  poll_secret=data["poll_secret"],
@@ -171,7 +191,7 @@ async def try_create_session_denial_reason(
171
191
  except Exception as err:
172
192
  logger.warning("on_before_session hook failed: %s", err)
173
193
 
174
- return _session_denial_reason(data, extra)
194
+ return _session_denial_reason(data, extra, cfg.kind)
175
195
  except Exception:
176
196
  return None
177
197
 
@@ -219,6 +239,6 @@ def try_create_session_denial_reason_sync(
219
239
  except Exception as err:
220
240
  logger.warning("on_before_session hook failed: %s", err)
221
241
 
222
- return _session_denial_reason(data, extra)
242
+ return _session_denial_reason(data, extra, cfg.kind)
223
243
  except Exception:
224
244
  return None
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agentscore-commerce"
7
- version = "2.8.2"
7
+ version = "2.9.0"
8
8
  description = "Agentic commerce SDK for Python: identity middleware (FastAPI, Flask, Django, AIOHTTP, Sanic, ASGI) + payment helpers + 402 builders + discovery + Stripe multichain. The full merchant-side toolkit for AgentScore-powered agentic commerce."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -12,7 +12,7 @@ requires-python = ">=3.11"
12
12
  keywords = ["agentscore", "agent-commerce", "agentic-payments", "402", "x402", "mpp", "machine-payments-protocol", "fastapi", "starlette", "flask", "django", "aiohttp", "sanic", "middleware", "trust", "reputation", "kyc", "identity", "stripe", "tempo", "solana", "base", "ai-agent"]
13
13
  dependencies = [
14
14
  "httpx>=0.25.0,<1.0.0",
15
- "agentscore-py>=2.6.4",
15
+ "agentscore-py>=2.6.9",
16
16
  ]
17
17
  classifiers = [
18
18
  "Development Status :: 5 - Production/Stable",
@@ -81,6 +81,24 @@ class TestSyncHelper:
81
81
  body = json.loads(route.calls[0].request.content)
82
82
  assert body["context"] == "purchase_flow"
83
83
  assert body["product_name"] == "Example Merchant"
84
+ assert "kind" not in body
85
+
86
+ @respx.mock
87
+ def test_forwards_kind_and_swaps_the_kyc_message_for_sign_in(self):
88
+ route = respx.post(SESSIONS_URL).mock(return_value=httpx.Response(200, json=SESSION_RESPONSE))
89
+ reason = try_create_session_denial_reason_sync(
90
+ CreateSessionOnMissing(api_key="ask_test", kind="sign_in"),
91
+ user_agent="agentscore-commerce/1.0",
92
+ )
93
+ import json
94
+
95
+ body = json.loads(route.calls[0].request.content)
96
+ assert body["kind"] == "sign_in"
97
+ assert reason is not None
98
+ assert reason.code == "identity_verification_required"
99
+ assert reason.message is not None
100
+ assert "sign in with an AgentScore account" in reason.message
101
+ assert "KYC" not in reason.message
84
102
 
85
103
  @respx.mock
86
104
  def test_omits_context_and_product_name_when_not_provided(self):