@astrasyncai/verification-gateway 4.6.0 → 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 (135) hide show
  1. package/dist/adapter-interface/interface.d.mts +2 -2
  2. package/dist/adapter-interface/interface.d.ts +2 -2
  3. package/dist/adapters/express.d.mts +2 -2
  4. package/dist/adapters/express.d.ts +2 -2
  5. package/dist/adapters/express.js +6 -33
  6. package/dist/adapters/express.js.map +1 -1
  7. package/dist/adapters/express.mjs +6 -33
  8. package/dist/adapters/express.mjs.map +1 -1
  9. package/dist/adapters/mcp.d.mts +2 -2
  10. package/dist/adapters/mcp.d.ts +2 -2
  11. package/dist/adapters/mcp.js +23 -65
  12. package/dist/adapters/mcp.js.map +1 -1
  13. package/dist/adapters/mcp.mjs +22 -64
  14. package/dist/adapters/mcp.mjs.map +1 -1
  15. package/dist/adapters/nextjs.d.mts +2 -2
  16. package/dist/adapters/nextjs.d.ts +2 -2
  17. package/dist/adapters/nextjs.js +4 -30
  18. package/dist/adapters/nextjs.js.map +1 -1
  19. package/dist/adapters/nextjs.mjs +4 -30
  20. package/dist/adapters/nextjs.mjs.map +1 -1
  21. package/dist/adapters/sdk.d.mts +2 -2
  22. package/dist/adapters/sdk.d.ts +2 -2
  23. package/dist/adapters/sdk.js +3 -124
  24. package/dist/adapters/sdk.js.map +1 -1
  25. package/dist/adapters/sdk.mjs +3 -122
  26. package/dist/adapters/sdk.mjs.map +1 -1
  27. package/dist/agent/index.d.mts +2 -2
  28. package/dist/agent/index.d.ts +2 -2
  29. package/dist/agent/index.js +1 -1
  30. package/dist/agent/index.js.map +1 -1
  31. package/dist/agent/index.mjs +1 -1
  32. package/dist/agent/index.mjs.map +1 -1
  33. package/dist/bin/astrasync-claude-hook.js +4 -29
  34. package/dist/bin/astrasync-codex-hook.js +4 -29
  35. package/dist/bin/astrasync-guard.js +4 -29
  36. package/dist/bin/astrasync.js +9 -34
  37. package/dist/browser/background.js +4 -29
  38. package/dist/browser/background.js.map +1 -1
  39. package/dist/browser/background.mjs +4 -29
  40. package/dist/browser/background.mjs.map +1 -1
  41. package/dist/browser/browser-adapter.d.mts +2 -2
  42. package/dist/browser/browser-adapter.d.ts +2 -2
  43. package/dist/claude-code/claude-code-adapter.d.mts +2 -2
  44. package/dist/claude-code/claude-code-adapter.d.ts +2 -2
  45. package/dist/cli/index.d.mts +2 -2
  46. package/dist/cli/index.d.ts +2 -2
  47. package/dist/cli/index.js +1 -1
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/cli/index.mjs +1 -1
  50. package/dist/cli/index.mjs.map +1 -1
  51. package/dist/codex/index.d.mts +2 -2
  52. package/dist/codex/index.d.ts +2 -2
  53. package/dist/codex/index.js +4 -29
  54. package/dist/codex/index.js.map +1 -1
  55. package/dist/codex/index.mjs +4 -29
  56. package/dist/codex/index.mjs.map +1 -1
  57. package/dist/cursor/cursor-adapter.d.mts +2 -2
  58. package/dist/cursor/cursor-adapter.d.ts +2 -2
  59. package/dist/cursor/extension.d.mts +2 -2
  60. package/dist/cursor/extension.d.ts +2 -2
  61. package/dist/cursor/extension.js +4 -29
  62. package/dist/cursor/extension.js.map +1 -1
  63. package/dist/cursor/extension.mjs +4 -29
  64. package/dist/cursor/extension.mjs.map +1 -1
  65. package/dist/edge-config.d.mts +1 -1
  66. package/dist/edge-config.d.ts +1 -1
  67. package/dist/edge-config.js +1 -1
  68. package/dist/edge-config.js.map +1 -1
  69. package/dist/edge-config.mjs +1 -1
  70. package/dist/edge-config.mjs.map +1 -1
  71. package/dist/edge-core/index.d.mts +1 -3
  72. package/dist/edge-core/index.d.ts +1 -3
  73. package/dist/edge-core/index.js +6 -33
  74. package/dist/edge-core/index.js.map +1 -1
  75. package/dist/edge-core/index.mjs +6 -33
  76. package/dist/edge-core/index.mjs.map +1 -1
  77. package/dist/{express-D-8Ks2Uo.d.ts → express-B5lWuemA.d.ts} +1 -1
  78. package/dist/{express-DBtPKXOL.d.mts → express-Dm-snUuY.d.mts} +1 -1
  79. package/dist/gateway/gateway.d.mts +2 -2
  80. package/dist/gateway/gateway.d.ts +2 -2
  81. package/dist/gateway/gateway.js +4 -29
  82. package/dist/gateway/gateway.js.map +1 -1
  83. package/dist/gateway/gateway.mjs +4 -29
  84. package/dist/gateway/gateway.mjs.map +1 -1
  85. package/dist/git-trigger/git-hooks.d.mts +2 -2
  86. package/dist/git-trigger/git-hooks.d.ts +2 -2
  87. package/dist/{index-kGCGWd5x.d.mts → index-B5k_vUmK.d.mts} +1 -1
  88. package/dist/{index-CUfmJ1Dq.d.mts → index-BOzM6xUq.d.mts} +1 -1
  89. package/dist/{index-BND3kQev.d.ts → index-dRfxUdFA.d.ts} +1 -1
  90. package/dist/{index-DlZORQsb.d.ts → index-y8xToocF.d.ts} +1 -1
  91. package/dist/index.d.mts +10 -10
  92. package/dist/index.d.ts +10 -10
  93. package/dist/index.js +25 -217
  94. package/dist/index.js.map +1 -1
  95. package/dist/index.mjs +25 -210
  96. package/dist/index.mjs.map +1 -1
  97. package/dist/local-evaluator/evaluator.d.mts +2 -2
  98. package/dist/local-evaluator/evaluator.d.ts +2 -2
  99. package/dist/local-evaluator/evaluator.js.map +1 -1
  100. package/dist/local-evaluator/evaluator.mjs.map +1 -1
  101. package/dist/{mcp-ZRN4kY3b.d.mts → mcp-DgsyQiQq.d.mts} +53 -52
  102. package/dist/{mcp-DToTlwIn.d.ts → mcp-OosmAcKf.d.ts} +53 -52
  103. package/dist/{nextjs-C0KASOy_.d.mts → nextjs-B1sBdEav.d.mts} +1 -1
  104. package/dist/{nextjs-lwNvWYWT.d.ts → nextjs-DoRmhV_Z.d.ts} +1 -1
  105. package/dist/registration/index.js +1 -1
  106. package/dist/registration/index.js.map +1 -1
  107. package/dist/registration/index.mjs +1 -1
  108. package/dist/registration/index.mjs.map +1 -1
  109. package/dist/sdk-B83N3xKc.d.mts +142 -0
  110. package/dist/sdk-H_9BTNBS.d.ts +142 -0
  111. package/dist/transport/index.d.mts +2 -2
  112. package/dist/transport/index.d.ts +2 -2
  113. package/dist/transport/index.js +1 -1
  114. package/dist/transport/index.js.map +1 -1
  115. package/dist/transport/index.mjs +1 -1
  116. package/dist/transport/index.mjs.map +1 -1
  117. package/dist/{types-CGPU7HLi.d.ts → types-BK2POWNc.d.ts} +15 -50
  118. package/dist/{types-Cx9hTpKI.d.mts → types-CJjZvPr9.d.mts} +15 -50
  119. package/dist/{types-DhhJxKIC.d.ts → types-CXf3q4kZ.d.ts} +1 -3
  120. package/dist/{types-CfSJLS4i.d.mts → types-DQmop7ZW.d.mts} +1 -3
  121. package/dist/ui/index.d.mts +2 -17
  122. package/dist/ui/index.d.ts +2 -17
  123. package/dist/ui/index.js +1 -43
  124. package/dist/ui/index.js.map +1 -1
  125. package/dist/ui/index.mjs +1 -42
  126. package/dist/ui/index.mjs.map +1 -1
  127. package/dist/verify.d.mts +3 -4
  128. package/dist/verify.d.ts +3 -4
  129. package/dist/verify.js +3 -28
  130. package/dist/verify.js.map +1 -1
  131. package/dist/verify.mjs +3 -28
  132. package/dist/verify.mjs.map +1 -1
  133. package/package.json +1 -1
  134. package/dist/sdk-B4aodEwj.d.ts +0 -215
  135. package/dist/sdk-B9dSwum7.d.mts +0 -215
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var SDK_VERSION = "4.6.0";
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";
@@ -147,11 +147,6 @@ function getCachedWellKnownUrls(apiBaseUrl) {
147
147
  // src/verify.ts
148
148
  var DEFAULT_CONFIG = {
149
149
  apiBaseUrl: "https://astrasync.ai/api",
150
- // v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
151
- // access). Pre-rename this defaulted to `'guidance'`, which combined with
152
- // a route gated at `'guidance'` to silently let unverified traffic
153
- // through (`hasMinimumAccess('guidance', 'guidance') === true`).
154
- defaultAccessLevel: "none",
155
150
  // minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
156
151
  // cacheTtl deliberately unset. When undefined, cacheResult applies the 60s
157
152
  // default; the caller's explicit value is honoured for cacheable results.
@@ -346,13 +341,6 @@ function createGuidanceResponse(_config, reason, options = {}) {
346
341
  // policy is not evaluated (we never reached the gate).
347
342
  identityVerified: false,
348
343
  policyAllowed: false,
349
- // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
350
- // Adapters additionally short-circuit on `!identityVerified ||
351
- // !policyAllowed` before the gate check, but the access level still has
352
- // to be honest at the data layer so downstream consumers (SDK adapters
353
- // in other languages, custom integrations) inherit the correct
354
- // semantics.
355
- accessLevel: "none",
356
344
  guidance,
357
345
  denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
358
346
  // Round-10 (#47, O5): on API-error fallback, surface a typed failure so
@@ -446,7 +434,6 @@ async function callVerifyAccessAPI(config, request) {
446
434
  attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
447
435
  access: {
448
436
  allowed: false,
449
- accessLevel: "none",
450
437
  reason: "endpoint_deactivated",
451
438
  failures: [
452
439
  {
@@ -509,7 +496,7 @@ async function verify(config, request, options) {
509
496
  if (!deprecationWarningShown && (config.minTrustScore !== void 0 || config.minTrustScoreForFull !== void 0)) {
510
497
  deprecationWarningShown = true;
511
498
  console.warn(
512
- "[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."
499
+ "[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."
513
500
  );
514
501
  }
515
502
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
@@ -555,14 +542,6 @@ async function verify(config, request, options) {
555
542
  const result2 = {
556
543
  identityVerified: idVerifiedFromBackend,
557
544
  policyAllowed: false,
558
- // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
559
- // Pre-rename this hardcoded `'guidance'`, which conflated with the
560
- // colocated `guidance: {...}` help-payload object below and let
561
- // denied requests pass any route gated at `'guidance'` because
562
- // `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
563
- // ALSO short-circuit on `!identityVerified || !policyAllowed` before
564
- // the gate check — belt-and-braces.
565
- accessLevel: "none",
566
545
  // 3.6.0: the server now emits top-level denialReasons on every deny
567
546
  // path — prefer it verbatim; the failure-message reconstruction remains
568
547
  // as the fallback for older backends.
@@ -611,7 +590,6 @@ async function verify(config, request, options) {
611
590
  trustScore: apiResponse.organization.trustScore
612
591
  } : void 0;
613
592
  const verificationContext = apiResponse.verificationContext;
614
- const accessLevel = apiResponse.access?.accessLevel ?? "standard";
615
593
  const result = {
616
594
  // 4.5.0 (probe F1): read idVerified from verificationContext with the
617
595
  // SAME absent⇒false default as the deny branch. The previous `!== false`
@@ -623,7 +601,6 @@ async function verify(config, request, options) {
623
601
  // this load-bearing must never be defaulted on.
624
602
  identityVerified: apiResponse.verificationContext?.idVerified === true,
625
603
  policyAllowed: true,
626
- accessLevel,
627
604
  agent,
628
605
  developer,
629
606
  organization,
@@ -650,7 +627,6 @@ async function verify(config, request, options) {
650
627
  };
651
628
  if (result.recommendation === "deny") {
652
629
  result.policyAllowed = false;
653
- result.accessLevel = "none";
654
630
  result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Access denied by AstraSync recommendation"];
655
631
  result.guidance = result.runtimeChallenge ? {
656
632
  message: `Verification failed: ${result.runtimeChallenge.reason || "runtime challenge failed"}`,
@@ -1590,7 +1566,6 @@ function defaultOnDenied(result, _req, res) {
1590
1566
  error: {
1591
1567
  code: !result.identityVerified ? "UNAUTHORIZED" : "INSUFFICIENT_ACCESS",
1592
1568
  message: result.denialReasons?.[0] || "Access denied",
1593
- accessLevel: result.accessLevel,
1594
1569
  guidance: result.guidance,
1595
1570
  // Round-10: aggregated per-dimension detail + correlation handle.
1596
1571
  failures: result.failures,
@@ -1706,11 +1681,11 @@ function createMiddleware(options) {
1706
1681
  }
1707
1682
  const wellKnownUrls = config.apiBaseUrl ? await getWellKnownUrls(config.apiBaseUrl).catch(() => void 0) : void 0;
1708
1683
  const credentials = customExtractCredentials ? customExtractCredentials(req) : defaultExtractCredentials(req);
1709
- const shouldEnforce = routeConfig.minAccessLevel !== "none";
1710
- if (routeConfig.minAccessLevel === "none" && (!config.evaluateAlwaysIfCredentialed || !credentials.astraId)) {
1684
+ const shouldEnforce = !routeConfig.observe;
1685
+ if (routeConfig.observe && (!config.evaluateAlwaysIfCredentialed || !credentials.astraId)) {
1711
1686
  if (config.setPassThroughHeader) {
1712
1687
  res.setHeader("X-Astra-Gateway-Mode", "unenforced");
1713
- res.setHeader("X-Astra-Gateway-Reason", "route-none");
1688
+ res.setHeader("X-Astra-Gateway-Reason", "route-observe");
1714
1689
  }
1715
1690
  beaconPassThrough?.(req);
1716
1691
  return next();
@@ -1747,7 +1722,6 @@ function createMiddleware(options) {
1747
1722
  const result2 = {
1748
1723
  identityVerified: false,
1749
1724
  policyAllowed: false,
1750
- accessLevel: "none",
1751
1725
  denialReasons: preCheckFailures.map((f) => f.message),
1752
1726
  guidance: {
1753
1727
  message: "Request exceeds counterparty-defined PDLSS limits.",
@@ -1910,7 +1884,6 @@ function createMiddleware(options) {
1910
1884
  const result = {
1911
1885
  identityVerified: false,
1912
1886
  policyAllowed: false,
1913
- accessLevel: "none",
1914
1887
  denialReasons: [`Verification middleware internal error: ${errorClass}`],
1915
1888
  failures: [
1916
1889
  {