@astrasyncai/verification-gateway 4.5.1 → 5.0.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 (140) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter-interface/interface.d.mts +2 -2
  3. package/dist/adapter-interface/interface.d.ts +2 -2
  4. package/dist/adapters/express.d.mts +2 -2
  5. package/dist/adapters/express.d.ts +2 -2
  6. package/dist/adapters/express.js +11 -33
  7. package/dist/adapters/express.js.map +1 -1
  8. package/dist/adapters/express.mjs +11 -33
  9. package/dist/adapters/express.mjs.map +1 -1
  10. package/dist/adapters/mcp.d.mts +2 -2
  11. package/dist/adapters/mcp.d.ts +2 -2
  12. package/dist/adapters/mcp.js +28 -65
  13. package/dist/adapters/mcp.js.map +1 -1
  14. package/dist/adapters/mcp.mjs +27 -64
  15. package/dist/adapters/mcp.mjs.map +1 -1
  16. package/dist/adapters/nextjs.d.mts +2 -2
  17. package/dist/adapters/nextjs.d.ts +2 -2
  18. package/dist/adapters/nextjs.js +9 -30
  19. package/dist/adapters/nextjs.js.map +1 -1
  20. package/dist/adapters/nextjs.mjs +9 -30
  21. package/dist/adapters/nextjs.mjs.map +1 -1
  22. package/dist/adapters/sdk.d.mts +2 -2
  23. package/dist/adapters/sdk.d.ts +2 -2
  24. package/dist/adapters/sdk.js +8 -124
  25. package/dist/adapters/sdk.js.map +1 -1
  26. package/dist/adapters/sdk.mjs +8 -122
  27. package/dist/adapters/sdk.mjs.map +1 -1
  28. package/dist/agent/index.d.mts +2 -2
  29. package/dist/agent/index.d.ts +2 -2
  30. package/dist/agent/index.js +1 -1
  31. package/dist/agent/index.js.map +1 -1
  32. package/dist/agent/index.mjs +1 -1
  33. package/dist/agent/index.mjs.map +1 -1
  34. package/dist/bin/astrasync-claude-hook.js +63 -41
  35. package/dist/bin/astrasync-codex-hook.js +63 -41
  36. package/dist/bin/astrasync-guard.js +63 -41
  37. package/dist/bin/astrasync.js +75 -48
  38. package/dist/browser/background.js +63 -41
  39. package/dist/browser/background.js.map +1 -1
  40. package/dist/browser/background.mjs +63 -41
  41. package/dist/browser/background.mjs.map +1 -1
  42. package/dist/browser/browser-adapter.d.mts +2 -2
  43. package/dist/browser/browser-adapter.d.ts +2 -2
  44. package/dist/claude-code/claude-code-adapter.d.mts +2 -2
  45. package/dist/claude-code/claude-code-adapter.d.ts +2 -2
  46. package/dist/cli/index.d.mts +2 -2
  47. package/dist/cli/index.d.ts +2 -2
  48. package/dist/cli/index.js +33 -6
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/cli/index.mjs +33 -6
  51. package/dist/cli/index.mjs.map +1 -1
  52. package/dist/codex/index.d.mts +2 -2
  53. package/dist/codex/index.d.ts +2 -2
  54. package/dist/codex/index.js +63 -41
  55. package/dist/codex/index.js.map +1 -1
  56. package/dist/codex/index.mjs +63 -41
  57. package/dist/codex/index.mjs.map +1 -1
  58. package/dist/cursor/cursor-adapter.d.mts +2 -2
  59. package/dist/cursor/cursor-adapter.d.ts +2 -2
  60. package/dist/cursor/extension.d.mts +2 -2
  61. package/dist/cursor/extension.d.ts +2 -2
  62. package/dist/cursor/extension.js +63 -41
  63. package/dist/cursor/extension.js.map +1 -1
  64. package/dist/cursor/extension.mjs +63 -41
  65. package/dist/cursor/extension.mjs.map +1 -1
  66. package/dist/edge-config.d.mts +1 -1
  67. package/dist/edge-config.d.ts +1 -1
  68. package/dist/edge-config.js +1 -1
  69. package/dist/edge-config.js.map +1 -1
  70. package/dist/edge-config.mjs +1 -1
  71. package/dist/edge-config.mjs.map +1 -1
  72. package/dist/edge-core/index.d.mts +1 -3
  73. package/dist/edge-core/index.d.ts +1 -3
  74. package/dist/edge-core/index.js +11 -33
  75. package/dist/edge-core/index.js.map +1 -1
  76. package/dist/edge-core/index.mjs +11 -33
  77. package/dist/edge-core/index.mjs.map +1 -1
  78. package/dist/{express-DaqL11tx.d.ts → express-B5lWuemA.d.ts} +1 -1
  79. package/dist/{express-CR6F3njD.d.mts → express-Dm-snUuY.d.mts} +1 -1
  80. package/dist/gateway/gateway.d.mts +2 -2
  81. package/dist/gateway/gateway.d.ts +2 -2
  82. package/dist/gateway/gateway.js +63 -41
  83. package/dist/gateway/gateway.js.map +1 -1
  84. package/dist/gateway/gateway.mjs +63 -41
  85. package/dist/gateway/gateway.mjs.map +1 -1
  86. package/dist/git-trigger/git-hooks.d.mts +2 -2
  87. package/dist/git-trigger/git-hooks.d.ts +2 -2
  88. package/dist/{index-Cub7lK-T.d.mts → index-B5k_vUmK.d.mts} +1 -1
  89. package/dist/{index-BfIxCYIZ.d.ts → index-BOzM6xUq.d.mts} +1 -2
  90. package/dist/{index-CwAh7Tln.d.mts → index-dRfxUdFA.d.ts} +1 -2
  91. package/dist/{index-B5Ts1WtM.d.ts → index-y8xToocF.d.ts} +1 -1
  92. package/dist/index.d.mts +10 -10
  93. package/dist/index.d.ts +10 -10
  94. package/dist/index.js +30 -217
  95. package/dist/index.js.map +1 -1
  96. package/dist/index.mjs +30 -210
  97. package/dist/index.mjs.map +1 -1
  98. package/dist/local-evaluator/evaluator.d.mts +2 -2
  99. package/dist/local-evaluator/evaluator.d.ts +2 -2
  100. package/dist/local-evaluator/evaluator.js +22 -7
  101. package/dist/local-evaluator/evaluator.js.map +1 -1
  102. package/dist/local-evaluator/evaluator.mjs +22 -7
  103. package/dist/local-evaluator/evaluator.mjs.map +1 -1
  104. package/dist/{mcp-BgBJu4Jl.d.mts → mcp-DgsyQiQq.d.mts} +53 -52
  105. package/dist/{mcp--DgKOwfu.d.ts → mcp-OosmAcKf.d.ts} +53 -52
  106. package/dist/{nextjs-DlX6xwbU.d.mts → nextjs-B1sBdEav.d.mts} +1 -1
  107. package/dist/{nextjs-DL6uE1ye.d.ts → nextjs-DoRmhV_Z.d.ts} +1 -1
  108. package/dist/registration/index.d.mts +5 -1
  109. package/dist/registration/index.d.ts +5 -1
  110. package/dist/registration/index.js +1 -1
  111. package/dist/registration/index.js.map +1 -1
  112. package/dist/registration/index.mjs +1 -1
  113. package/dist/registration/index.mjs.map +1 -1
  114. package/dist/sdk-B83N3xKc.d.mts +142 -0
  115. package/dist/sdk-H_9BTNBS.d.ts +142 -0
  116. package/dist/transport/index.d.mts +2 -2
  117. package/dist/transport/index.d.ts +2 -2
  118. package/dist/transport/index.js +1 -1
  119. package/dist/transport/index.js.map +1 -1
  120. package/dist/transport/index.mjs +1 -1
  121. package/dist/transport/index.mjs.map +1 -1
  122. package/dist/{types-DwSfO7Sb.d.ts → types-BK2POWNc.d.ts} +23 -50
  123. package/dist/{types-C0zfSXMB.d.mts → types-CJjZvPr9.d.mts} +23 -50
  124. package/dist/{types-C7Rb-w0d.d.mts → types-CXf3q4kZ.d.ts} +14 -3
  125. package/dist/{types-nIh3HtuA.d.ts → types-DQmop7ZW.d.mts} +14 -3
  126. package/dist/ui/index.d.mts +2 -17
  127. package/dist/ui/index.d.ts +2 -17
  128. package/dist/ui/index.js +1 -43
  129. package/dist/ui/index.js.map +1 -1
  130. package/dist/ui/index.mjs +1 -42
  131. package/dist/ui/index.mjs.map +1 -1
  132. package/dist/verify.d.mts +3 -4
  133. package/dist/verify.d.ts +3 -4
  134. package/dist/verify.js +8 -28
  135. package/dist/verify.js.map +1 -1
  136. package/dist/verify.mjs +8 -28
  137. package/dist/verify.mjs.map +1 -1
  138. package/package.json +1 -1
  139. package/dist/sdk-Bbh9B_dw.d.mts +0 -215
  140. package/dist/sdk-C6SASmsh.d.ts +0 -215
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var SDK_VERSION = "4.5.1";
2
+ var SDK_VERSION = "5.0.0";
3
3
 
4
4
  // src/http.ts
5
5
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -77,7 +77,7 @@ async function awaitStepUpApproval(config, approval) {
77
77
  return "timeout";
78
78
  }
79
79
 
80
- // src/access-levels.ts
80
+ // src/trust-levels.ts
81
81
  function getTrustLevel(score) {
82
82
  if (score >= 80) return "PLATINUM";
83
83
  if (score >= 60) return "GOLD";
@@ -95,11 +95,6 @@ function getCachedWellKnownUrls(apiBaseUrl) {
95
95
  // src/verify.ts
96
96
  var DEFAULT_CONFIG = {
97
97
  apiBaseUrl: "https://astrasync.ai/api",
98
- // v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
99
- // access). Pre-rename this defaulted to `'guidance'`, which combined with
100
- // a route gated at `'guidance'` to silently let unverified traffic
101
- // through (`hasMinimumAccess('guidance', 'guidance') === true`).
102
- defaultAccessLevel: "none",
103
98
  // minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
104
99
  // cacheTtl deliberately unset. When undefined, cacheResult applies the 60s
105
100
  // default; the caller's explicit value is honoured for cacheable results.
@@ -294,13 +289,6 @@ function createGuidanceResponse(_config, reason, options = {}) {
294
289
  // policy is not evaluated (we never reached the gate).
295
290
  identityVerified: false,
296
291
  policyAllowed: false,
297
- // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
298
- // Adapters additionally short-circuit on `!identityVerified ||
299
- // !policyAllowed` before the gate check, but the access level still has
300
- // to be honest at the data layer so downstream consumers (SDK adapters
301
- // in other languages, custom integrations) inherit the correct
302
- // semantics.
303
- accessLevel: "none",
304
292
  guidance,
305
293
  denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
306
294
  // Round-10 (#47, O5): on API-error fallback, surface a typed failure so
@@ -323,6 +311,11 @@ function createGuidanceResponse(_config, reason, options = {}) {
323
311
  // 4.0.0: typed marker so adapters render the misconfig envelope (503 +
324
312
  // MERCHANT_VERIFICATION_MISCONFIGURED) without string-matching.
325
313
  ...isMisconfig && { misconfigured: true },
314
+ // 4.6.0: a transient api_error is retryable — mark it so consumers surface
315
+ // "temporarily unavailable, retry" (recommendation 'error') instead of
316
+ // coercing the absent recommendation to a policy 'deny'. Misconfig is
317
+ // deterministic and intentionally NOT marked retryable.
318
+ ...isApiError && { retryable: true },
326
319
  correlationId: options.correlationId,
327
320
  attemptId: options.attemptId,
328
321
  verifiedAt: /* @__PURE__ */ new Date()
@@ -389,7 +382,6 @@ async function callVerifyAccessAPI(config, request) {
389
382
  attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
390
383
  access: {
391
384
  allowed: false,
392
- accessLevel: "none",
393
385
  reason: "endpoint_deactivated",
394
386
  failures: [
395
387
  {
@@ -452,7 +444,7 @@ async function verify(config, request, options) {
452
444
  if (!deprecationWarningShown && (config.minTrustScore !== void 0 || config.minTrustScoreForFull !== void 0)) {
453
445
  deprecationWarningShown = true;
454
446
  console.warn(
455
- "[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access-level decisions (the SDK reads access.accessLevel from the verify-access response). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
447
+ "[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."
456
448
  );
457
449
  }
458
450
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
@@ -498,14 +490,6 @@ async function verify(config, request, options) {
498
490
  const result2 = {
499
491
  identityVerified: idVerifiedFromBackend,
500
492
  policyAllowed: false,
501
- // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
502
- // Pre-rename this hardcoded `'guidance'`, which conflated with the
503
- // colocated `guidance: {...}` help-payload object below and let
504
- // denied requests pass any route gated at `'guidance'` because
505
- // `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
506
- // ALSO short-circuit on `!identityVerified || !policyAllowed` before
507
- // the gate check — belt-and-braces.
508
- accessLevel: "none",
509
493
  // 3.6.0: the server now emits top-level denialReasons on every deny
510
494
  // path — prefer it verbatim; the failure-message reconstruction remains
511
495
  // as the fallback for older backends.
@@ -554,7 +538,6 @@ async function verify(config, request, options) {
554
538
  trustScore: apiResponse.organization.trustScore
555
539
  } : void 0;
556
540
  const verificationContext = apiResponse.verificationContext;
557
- const accessLevel = apiResponse.access?.accessLevel ?? "standard";
558
541
  const result = {
559
542
  // 4.5.0 (probe F1): read idVerified from verificationContext with the
560
543
  // SAME absent⇒false default as the deny branch. The previous `!== false`
@@ -566,7 +549,6 @@ async function verify(config, request, options) {
566
549
  // this load-bearing must never be defaulted on.
567
550
  identityVerified: apiResponse.verificationContext?.idVerified === true,
568
551
  policyAllowed: true,
569
- accessLevel,
570
552
  agent,
571
553
  developer,
572
554
  organization,
@@ -593,7 +575,6 @@ async function verify(config, request, options) {
593
575
  };
594
576
  if (result.recommendation === "deny") {
595
577
  result.policyAllowed = false;
596
- result.accessLevel = "none";
597
578
  result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Access denied by AstraSync recommendation"];
598
579
  result.guidance = result.runtimeChallenge ? {
599
580
  message: `Verification failed: ${result.runtimeChallenge.reason || "runtime challenge failed"}`,
@@ -1728,7 +1709,7 @@ function createMiddleware(options) {
1728
1709
  beaconPassThrough?.(request, pathname);
1729
1710
  return NextResponse.next();
1730
1711
  }
1731
- if (routeConfig.minAccessLevel === "none") {
1712
+ if (routeConfig.observe) {
1732
1713
  beaconPassThrough?.(request, pathname);
1733
1714
  return NextResponse.next();
1734
1715
  }
@@ -1758,7 +1739,6 @@ function createMiddleware(options) {
1758
1739
  const preCheckResult = {
1759
1740
  identityVerified: false,
1760
1741
  policyAllowed: false,
1761
- accessLevel: "none",
1762
1742
  denialReasons: preCheckFailures.map((f) => f.message),
1763
1743
  guidance: {
1764
1744
  message: "Request exceeds counterparty-defined PDLSS limits.",
@@ -1896,7 +1876,6 @@ function createMiddleware(options) {
1896
1876
  }
1897
1877
  response.headers.set("X-AstraSync-Identity-Verified", result.identityVerified.toString());
1898
1878
  response.headers.set("X-AstraSync-Policy-Allowed", result.policyAllowed.toString());
1899
- response.headers.set("X-AstraSync-Access-Level", result.accessLevel);
1900
1879
  if (result.agent) {
1901
1880
  response.headers.set("X-AstraSync-Agent-Id", result.agent.astraId);
1902
1881
  }