@astrasyncai/verification-gateway 5.14.0 → 5.15.0

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 (98) hide show
  1. package/README.md +27 -17
  2. package/dist/adapters/express.d.mts +1 -1
  3. package/dist/adapters/express.d.ts +1 -1
  4. package/dist/adapters/express.js +477 -240
  5. package/dist/adapters/express.js.map +1 -1
  6. package/dist/adapters/express.mjs +477 -240
  7. package/dist/adapters/express.mjs.map +1 -1
  8. package/dist/adapters/mcp.d.mts +1 -1
  9. package/dist/adapters/mcp.d.ts +1 -1
  10. package/dist/adapters/mcp.js +20 -6
  11. package/dist/adapters/mcp.js.map +1 -1
  12. package/dist/adapters/mcp.mjs +20 -6
  13. package/dist/adapters/mcp.mjs.map +1 -1
  14. package/dist/adapters/nextjs.d.mts +1 -1
  15. package/dist/adapters/nextjs.d.ts +1 -1
  16. package/dist/adapters/nextjs.js +460 -239
  17. package/dist/adapters/nextjs.js.map +1 -1
  18. package/dist/adapters/nextjs.mjs +460 -239
  19. package/dist/adapters/nextjs.mjs.map +1 -1
  20. package/dist/adapters/sdk.d.mts +18 -10
  21. package/dist/adapters/sdk.d.ts +18 -10
  22. package/dist/adapters/sdk.js +80 -23
  23. package/dist/adapters/sdk.js.map +1 -1
  24. package/dist/adapters/sdk.mjs +80 -23
  25. package/dist/adapters/sdk.mjs.map +1 -1
  26. package/dist/agent/index.js +1 -1
  27. package/dist/agent/index.js.map +1 -1
  28. package/dist/agent/index.mjs +1 -1
  29. package/dist/agent/index.mjs.map +1 -1
  30. package/dist/bin/astrasync-claude-hook.js +55 -11
  31. package/dist/bin/astrasync-codex-hook.js +55 -11
  32. package/dist/bin/astrasync-guard.js +55 -11
  33. package/dist/bin/astrasync.js +288 -33
  34. package/dist/browser/background.js +50 -6
  35. package/dist/browser/background.js.map +1 -1
  36. package/dist/browser/background.mjs +60 -6
  37. package/dist/browser/background.mjs.map +1 -1
  38. package/dist/cli/index.js +1 -1
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/cli/index.mjs +1 -1
  41. package/dist/cli/index.mjs.map +1 -1
  42. package/dist/codex/index.js +55 -11
  43. package/dist/codex/index.js.map +1 -1
  44. package/dist/codex/index.mjs +65 -11
  45. package/dist/codex/index.mjs.map +1 -1
  46. package/dist/cursor/extension.js +55 -11
  47. package/dist/cursor/extension.js.map +1 -1
  48. package/dist/cursor/extension.mjs +65 -11
  49. package/dist/cursor/extension.mjs.map +1 -1
  50. package/dist/edge-config.d.mts +31 -2
  51. package/dist/edge-config.d.ts +31 -2
  52. package/dist/edge-config.js +35 -5
  53. package/dist/edge-config.js.map +1 -1
  54. package/dist/edge-config.mjs +32 -4
  55. package/dist/edge-config.mjs.map +1 -1
  56. package/dist/edge-core/index.d.mts +11 -2
  57. package/dist/edge-core/index.d.ts +11 -2
  58. package/dist/edge-core/index.js +93 -10
  59. package/dist/edge-core/index.js.map +1 -1
  60. package/dist/edge-core/index.mjs +91 -10
  61. package/dist/edge-core/index.mjs.map +1 -1
  62. package/dist/gateway/gateway.js +50 -6
  63. package/dist/gateway/gateway.js.map +1 -1
  64. package/dist/gateway/gateway.mjs +60 -6
  65. package/dist/gateway/gateway.mjs.map +1 -1
  66. package/dist/git-trigger/git-hooks.d.mts +1 -1
  67. package/dist/git-trigger/git-hooks.d.ts +1 -1
  68. package/dist/index.d.mts +1314 -34
  69. package/dist/index.d.ts +1314 -34
  70. package/dist/index.js +5116 -2612
  71. package/dist/index.js.map +1 -1
  72. package/dist/index.mjs +5063 -2614
  73. package/dist/index.mjs.map +1 -1
  74. package/dist/registration/index.d.mts +28 -2
  75. package/dist/registration/index.d.ts +28 -2
  76. package/dist/registration/index.js +18 -3
  77. package/dist/registration/index.js.map +1 -1
  78. package/dist/registration/index.mjs +15 -2
  79. package/dist/registration/index.mjs.map +1 -1
  80. package/dist/transport/index.d.mts +7 -5
  81. package/dist/transport/index.d.ts +7 -5
  82. package/dist/transport/index.js +61 -5
  83. package/dist/transport/index.js.map +1 -1
  84. package/dist/transport/index.mjs +67 -11
  85. package/dist/transport/index.mjs.map +1 -1
  86. package/dist/{types-C_b4QTyO.d.ts → types-DtJjlW4O.d.ts} +104 -10
  87. package/dist/{types-BCkwBA84.d.mts → types-Dxf9DBpr.d.mts} +106 -12
  88. package/dist/{types-BCkwBA84.d.ts → types-Dxf9DBpr.d.ts} +106 -12
  89. package/dist/{types-DlshIIR-.d.mts → types-Eg6VoBNH.d.mts} +104 -10
  90. package/dist/ui/index.d.mts +1 -1
  91. package/dist/ui/index.d.ts +1 -1
  92. package/dist/verify.d.mts +1 -1
  93. package/dist/verify.d.ts +1 -1
  94. package/dist/verify.js +20 -6
  95. package/dist/verify.js.map +1 -1
  96. package/dist/verify.mjs +20 -6
  97. package/dist/verify.mjs.map +1 -1
  98. package/package.json +1 -1
@@ -4036,7 +4036,7 @@ function getTrustLevel(score) {
4036
4036
  }
4037
4037
 
4038
4038
  // src/version.ts
4039
- var SDK_VERSION = "5.14.0";
4039
+ var SDK_VERSION = "5.15.0";
4040
4040
 
4041
4041
  // src/http.ts
4042
4042
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4355,6 +4355,7 @@ async function callVerifyAccessAPI(config, request) {
4355
4355
  if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
4356
4356
  if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
4357
4357
  if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
4358
+ if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
4358
4359
  if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
4359
4360
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4360
4361
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
@@ -4505,7 +4506,8 @@ async function verify(config, request, options) {
4505
4506
  "[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access decisions (verified ID + runtime challenge + PDLSS + trust score). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
4506
4507
  );
4507
4508
  }
4508
- if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
4509
+ const uncacheable = Boolean(request.commerceArtifacts);
4510
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4509
4511
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4510
4512
  if (cached) {
4511
4513
  if (mergedConfig.debug) {
@@ -4586,7 +4588,10 @@ async function verify(config, request, options) {
4586
4588
  // MERCHANT caller only (bridge callers strip it before the agent plane).
4587
4589
  settlementToken: apiResponse.settlementToken,
4588
4590
  // 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
4589
- fulfilment: apiResponse.fulfilment
4591
+ fulfilment: apiResponse.fulfilment,
4592
+ mandates: apiResponse.mandates,
4593
+ kyaToken: apiResponse.kyaToken,
4594
+ aep: apiResponse.aep
4590
4595
  };
4591
4596
  return result2;
4592
4597
  }
@@ -4596,7 +4601,10 @@ async function verify(config, request, options) {
4596
4601
  trustScore: apiResponse.agent.trustScore,
4597
4602
  trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4598
4603
  blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4599
- status: apiResponse.agent.agentStatus
4604
+ status: apiResponse.agent.agentStatus,
4605
+ ...apiResponse.agent.protocolIdentities && {
4606
+ protocolIdentities: apiResponse.agent.protocolIdentities
4607
+ }
4600
4608
  } : void 0;
4601
4609
  const developer = apiResponse.developer ? {
4602
4610
  astradId: apiResponse.developer.kyaOwnerId,
@@ -4647,7 +4655,11 @@ async function verify(config, request, options) {
4647
4655
  settlementOutcome: apiResponse.settlementOutcome,
4648
4656
  settlementToken: apiResponse.settlementToken,
4649
4657
  // 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
4650
- fulfilment: apiResponse.fulfilment
4658
+ fulfilment: apiResponse.fulfilment,
4659
+ // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4660
+ mandates: apiResponse.mandates,
4661
+ kyaToken: apiResponse.kyaToken,
4662
+ aep: apiResponse.aep
4651
4663
  };
4652
4664
  if (result.recommendation === "deny") {
4653
4665
  result.policyAllowed = false;
@@ -4667,7 +4679,9 @@ async function verify(config, request, options) {
4667
4679
  }
4668
4680
  const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
4669
4681
  if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
4670
- cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4682
+ if (!uncacheable) {
4683
+ cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4684
+ }
4671
4685
  }
4672
4686
  return result;
4673
4687
  }
@@ -4678,6 +4692,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
4678
4692
  // src/metadata-capture.ts
4679
4693
  var MAX_TOTAL_BYTES = 16 * 1024;
4680
4694
 
4695
+ // src/adapters/commerce-detect.ts
4696
+ var MAX_BODY_BYTES = 64 * 1024;
4697
+
4681
4698
  // src/edge-config.ts
4682
4699
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4683
4700
  version: 1,
@@ -4987,6 +5004,33 @@ var import_node_crypto4 = require("crypto");
4987
5004
  // src/transport/registry/visa.ts
4988
5005
  var import_jose = require("jose");
4989
5006
 
5007
+ // src/ucp/profile.ts
5008
+ var UCP_VERSION = "2026-08-25";
5009
+ var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
5010
+ var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
5011
+
5012
+ // src/ucp/signatures.ts
5013
+ var import_http_message_signatures3 = require("http-message-signatures");
5014
+
5015
+ // src/http-signatures/sign.ts
5016
+ var import_http_message_signatures2 = require("http-message-signatures");
5017
+
5018
+ // src/ucp/checkout-kit.ts
5019
+ var import_jose3 = require("jose");
5020
+
5021
+ // src/mandates/sd-jwt.ts
5022
+ var import_jose2 = require("jose");
5023
+
5024
+ // src/idempotency/index.ts
5025
+ var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
5026
+
5027
+ // src/payments/kyapay.ts
5028
+ var import_jose4 = require("jose");
5029
+
5030
+ // src/aep/core.ts
5031
+ var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
5032
+ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
5033
+
4990
5034
  // src/gateway/modes/online.ts
4991
5035
  function toGatewayConfig(config) {
4992
5036
  return {
@@ -5724,7 +5768,7 @@ async function sendHeartbeat(enrolment, request, timeoutMs = 1500) {
5724
5768
 
5725
5769
  // src/fleet/policy-verify.ts
5726
5770
  var import_crypto = require("crypto");
5727
- var import_jose2 = require("jose");
5771
+ var import_jose5 = require("jose");
5728
5772
 
5729
5773
  // src/fleet/types.ts
5730
5774
  var FLEET_POLICY_TYP = "fleet-policy+jwt";
@@ -5773,8 +5817,8 @@ async function verifyFleetPolicy(jws, jwks, options) {
5773
5817
  let payloadBytes;
5774
5818
  let header;
5775
5819
  try {
5776
- const keySet = (0, import_jose2.createLocalJWKSet)(jwks);
5777
- const result = await (0, import_jose2.compactVerify)(jws, keySet, { algorithms: ["ES256"] });
5820
+ const keySet = (0, import_jose5.createLocalJWKSet)(jwks);
5821
+ const result = await (0, import_jose5.compactVerify)(jws, keySet, { algorithms: ["ES256"] });
5778
5822
  payloadBytes = result.payload;
5779
5823
  header = result.protectedHeader;
5780
5824
  } catch (err) {
@@ -5820,9 +5864,9 @@ async function resolveFleetJwks(pinned, chain, ownerId) {
5820
5864
  let lastSeq = 0;
5821
5865
  for (const link of chain) {
5822
5866
  try {
5823
- const { payload, protectedHeader } = await (0, import_jose2.compactVerify)(
5867
+ const { payload, protectedHeader } = await (0, import_jose5.compactVerify)(
5824
5868
  link,
5825
- (0, import_jose2.createLocalJWKSet)(trusted),
5869
+ (0, import_jose5.createLocalJWKSet)(trusted),
5826
5870
  { algorithms: ["ES256"] }
5827
5871
  );
5828
5872
  if (protectedHeader.typ !== FLEET_KEYS_TYP) continue;