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.
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/PKG-INFO +2 -2
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/sessions.py +23 -3
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/pyproject.toml +2 -2
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_sessions.py +18 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/uv.lock +654 -597
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/dependabot.yml +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/workflows/ci.yml +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/workflows/publish.yml +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.github/workflows/security.yml +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/.gitignore +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/CLAUDE.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/CODE_OF_CONDUCT.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/CONTRIBUTING.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/LICENSE +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/README.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/SECURITY.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/_headers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/_mppx_receipt.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/_redis.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/_warnings.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/gate.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/http_signature.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/jwks.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/request.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/types.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/aip/verify.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/api/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/accepted_methods.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/agent_instructions.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/agent_memory.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/body.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/how_to_pay.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/identity.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/pricing.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/receipt.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/respond_402.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/challenge/validation_error.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/checkout.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/checkout_compute_first.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/checkout_hooks.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/agentscore_content.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/bazaar.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/llms_txt.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/openapi.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/probe.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/redemption_md.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/robots_tag.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/skill_md.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/well_known.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/well_known_mpp.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/discovery/well_known_x402.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/errors.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/forwarded_proto.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/_denial.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/_response.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/a2a.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/address.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/aiohttp.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/cache.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/core.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/default_denied.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/django.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/fastapi.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/flask.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/middleware.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/policy.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/py.typed +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/sanic.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/signer.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/tokens.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/types.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/ucp.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/ucp_jwks.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/_core.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/aiohttp.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/asgi.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/django.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/fastapi.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/flask.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/middleware/sanic.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/amounts.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/compose_rails.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/constants.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/default_rails.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/directive.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/dispatch.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/headers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/idempotency.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/lazy.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/mppx_failures.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/mppx_server.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/network_kind.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/networks.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/payment_header.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/rail_spec.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/rails.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/settlement_override.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/signer.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/solana.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/usdc.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/wwwauthenticate.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/x402.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/x402_server.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/x402_settle.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/x402_validation.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/payment/zero_settle.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/py.typed +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/quote_cache.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/mppx_stripe.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/pay_to_address.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/payment_intent.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/pi_cache.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/simulate_deposit.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/stripe_multichain/simulate_dispatch.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/README.md +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/api_provider.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/compliance_merchant.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/compute_first_merchant.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/identity_only.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/multi_rail_merchant.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/per_product_policy_merchant.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/signed_ucp_merchant.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/examples/stripe_multichain_merchant.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/lefthook.yml +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/osv-scanner.toml +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/ruff.toml +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/scripts/regenerate_cross_lang_fixtures.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/__init__.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/conftest.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-agentscore-gate-blocked.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-agentscore-gate-full.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-capability.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-emoji-keys.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-es256-rails.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-extras-int.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-int-boundary.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-minimal.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-multikey.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/node-unicode.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-agentscore-gate-blocked.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-agentscore-gate-full.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-capability.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-emoji-keys.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-es256-rails.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-extras-int.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-int-boundary.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-minimal.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-multikey.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/fixtures/cross-lang/py-unicode.json +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_a2a.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_a2a_jws_roundtrip.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_address.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_agent_memory_emitter.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aiohttp.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_adapters.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_agent_memory.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_checkout.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_gate.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_http_signature.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_jwks.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_presentation.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_request.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_types.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_aip_verify.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_amounts.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_api_reexport.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_cache.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_challenge.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_compute_first.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_compute_first_adapters.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_compute_first_ofac.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_compute_first_settle.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_coverage_gaps.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_signer_match.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_checkout_wallet_ofac_default.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_classify_orchestration_error.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_compose_rails.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_core.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_coverage_fillers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_credential_precheck.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_default_denied.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_default_rails.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_default_read_only_on_denied.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_denial.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_discovery.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_dispatch.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_django.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_extract_owner_scope.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_fastapi.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_flask.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_forwarded_proto.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_gate_quota_info.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_get_signer_verdict.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_idempotency_helper.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_integration.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_internal_helpers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_lifted_helpers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_load_ucp_signing_key_from_env.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_middleware.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_mppx_failures.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_mppx_receipt.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_network_kind.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_operator_handle.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_pay_to_address.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_directive.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_dispatch.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_handlers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_header.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_headers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_misc.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_servers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_payment_signer.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_policy.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_pricing.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_public_surface.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_quote_cache.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_quote_cache_redis.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_rail_spec.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_rate_limit.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_redis_internal.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_response.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_robots_tag.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_sanic.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_seamless_helpers.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_signer_match.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_signer_verdict_request_scoped.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_simulate_dispatch.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_skill_md.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_solana.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_solana_mpp_rail_spec_post_init.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_stripe_multichain.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_tokens.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_ucp.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_ucp_cross_lang.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_ucp_jwks.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_validation_error.py +0 -0
- {agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/tests/test_x402_settle_extra.py +0 -0
- {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.
|
|
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.
|
|
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'
|
{agentscore_commerce-2.8.2 → agentscore_commerce-2.9.0}/agentscore_commerce/identity/sessions.py
RENAMED
|
@@ -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.
|
|
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.
|
|
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):
|