@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
@@ -3994,7 +3994,7 @@ function getTrustLevel(score) {
3994
3994
  }
3995
3995
 
3996
3996
  // src/version.ts
3997
- var SDK_VERSION = "5.14.0";
3997
+ var SDK_VERSION = "5.15.0";
3998
3998
 
3999
3999
  // src/http.ts
4000
4000
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4313,6 +4313,7 @@ async function callVerifyAccessAPI(config, request) {
4313
4313
  if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
4314
4314
  if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
4315
4315
  if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
4316
+ if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
4316
4317
  if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
4317
4318
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4318
4319
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
@@ -4463,7 +4464,8 @@ async function verify(config, request, options) {
4463
4464
  "[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."
4464
4465
  );
4465
4466
  }
4466
- if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
4467
+ const uncacheable = Boolean(request.commerceArtifacts);
4468
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4467
4469
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4468
4470
  if (cached) {
4469
4471
  if (mergedConfig.debug) {
@@ -4544,7 +4546,10 @@ async function verify(config, request, options) {
4544
4546
  // MERCHANT caller only (bridge callers strip it before the agent plane).
4545
4547
  settlementToken: apiResponse.settlementToken,
4546
4548
  // 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
4547
- fulfilment: apiResponse.fulfilment
4549
+ fulfilment: apiResponse.fulfilment,
4550
+ mandates: apiResponse.mandates,
4551
+ kyaToken: apiResponse.kyaToken,
4552
+ aep: apiResponse.aep
4548
4553
  };
4549
4554
  return result2;
4550
4555
  }
@@ -4554,7 +4559,10 @@ async function verify(config, request, options) {
4554
4559
  trustScore: apiResponse.agent.trustScore,
4555
4560
  trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4556
4561
  blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4557
- status: apiResponse.agent.agentStatus
4562
+ status: apiResponse.agent.agentStatus,
4563
+ ...apiResponse.agent.protocolIdentities && {
4564
+ protocolIdentities: apiResponse.agent.protocolIdentities
4565
+ }
4558
4566
  } : void 0;
4559
4567
  const developer = apiResponse.developer ? {
4560
4568
  astradId: apiResponse.developer.kyaOwnerId,
@@ -4605,7 +4613,11 @@ async function verify(config, request, options) {
4605
4613
  settlementOutcome: apiResponse.settlementOutcome,
4606
4614
  settlementToken: apiResponse.settlementToken,
4607
4615
  // 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
4608
- fulfilment: apiResponse.fulfilment
4616
+ fulfilment: apiResponse.fulfilment,
4617
+ // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4618
+ mandates: apiResponse.mandates,
4619
+ kyaToken: apiResponse.kyaToken,
4620
+ aep: apiResponse.aep
4609
4621
  };
4610
4622
  if (result.recommendation === "deny") {
4611
4623
  result.policyAllowed = false;
@@ -4625,7 +4637,9 @@ async function verify(config, request, options) {
4625
4637
  }
4626
4638
  const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
4627
4639
  if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
4628
- cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4640
+ if (!uncacheable) {
4641
+ cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4642
+ }
4629
4643
  }
4630
4644
  return result;
4631
4645
  }
@@ -4636,6 +4650,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
4636
4650
  // src/metadata-capture.ts
4637
4651
  var MAX_TOTAL_BYTES = 16 * 1024;
4638
4652
 
4653
+ // src/adapters/commerce-detect.ts
4654
+ var MAX_BODY_BYTES = 64 * 1024;
4655
+
4639
4656
  // src/edge-config.ts
4640
4657
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4641
4658
  version: 1,
@@ -4945,6 +4962,33 @@ var import_node_crypto4 = require("crypto");
4945
4962
  // src/transport/registry/visa.ts
4946
4963
  var import_jose = require("jose");
4947
4964
 
4965
+ // src/ucp/profile.ts
4966
+ var UCP_VERSION = "2026-08-25";
4967
+ var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
4968
+ var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
4969
+
4970
+ // src/ucp/signatures.ts
4971
+ var import_http_message_signatures3 = require("http-message-signatures");
4972
+
4973
+ // src/http-signatures/sign.ts
4974
+ var import_http_message_signatures2 = require("http-message-signatures");
4975
+
4976
+ // src/ucp/checkout-kit.ts
4977
+ var import_jose3 = require("jose");
4978
+
4979
+ // src/mandates/sd-jwt.ts
4980
+ var import_jose2 = require("jose");
4981
+
4982
+ // src/idempotency/index.ts
4983
+ var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
4984
+
4985
+ // src/payments/kyapay.ts
4986
+ var import_jose4 = require("jose");
4987
+
4988
+ // src/aep/core.ts
4989
+ var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
4990
+ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
4991
+
4948
4992
  // src/gateway/modes/online.ts
4949
4993
  function toGatewayConfig(config) {
4950
4994
  return {
@@ -5656,7 +5700,7 @@ async function sendHeartbeat(enrolment, request, timeoutMs = 1500) {
5656
5700
 
5657
5701
  // src/fleet/policy-verify.ts
5658
5702
  var import_crypto = require("crypto");
5659
- var import_jose2 = require("jose");
5703
+ var import_jose5 = require("jose");
5660
5704
 
5661
5705
  // src/fleet/types.ts
5662
5706
  var FLEET_POLICY_TYP = "fleet-policy+jwt";
@@ -5705,8 +5749,8 @@ async function verifyFleetPolicy(jws, jwks, options) {
5705
5749
  let payloadBytes;
5706
5750
  let header;
5707
5751
  try {
5708
- const keySet = (0, import_jose2.createLocalJWKSet)(jwks);
5709
- const result = await (0, import_jose2.compactVerify)(jws, keySet, { algorithms: ["ES256"] });
5752
+ const keySet = (0, import_jose5.createLocalJWKSet)(jwks);
5753
+ const result = await (0, import_jose5.compactVerify)(jws, keySet, { algorithms: ["ES256"] });
5710
5754
  payloadBytes = result.payload;
5711
5755
  header = result.protectedHeader;
5712
5756
  } catch (err) {
@@ -5752,9 +5796,9 @@ async function resolveFleetJwks(pinned, chain, ownerId) {
5752
5796
  let lastSeq = 0;
5753
5797
  for (const link of chain) {
5754
5798
  try {
5755
- const { payload, protectedHeader } = await (0, import_jose2.compactVerify)(
5799
+ const { payload, protectedHeader } = await (0, import_jose5.compactVerify)(
5756
5800
  link,
5757
- (0, import_jose2.createLocalJWKSet)(trusted),
5801
+ (0, import_jose5.createLocalJWKSet)(trusted),
5758
5802
  { algorithms: ["ES256"] }
5759
5803
  );
5760
5804
  if (protectedHeader.typ !== FLEET_KEYS_TYP) continue;