@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}`;
@@ -19,84 +19,13 @@ function withUserAgent(initHeaders) {
19
19
  }
20
20
  var sdkFetch = (input, init) => fetch(input, { ...init, headers: withUserAgent(init?.headers) });
21
21
 
22
- // src/access-levels.ts
23
- var ACCESS_LEVEL_HIERARCHY = {
24
- none: 0,
25
- restricted: 1,
26
- "read-only": 2,
27
- standard: 3,
28
- full: 4,
29
- internal: 5
30
- };
22
+ // src/trust-levels.ts
31
23
  function getTrustLevel(score) {
32
24
  if (score >= 80) return "PLATINUM";
33
25
  if (score >= 60) return "GOLD";
34
26
  if (score >= 40) return "SILVER";
35
27
  return "BRONZE";
36
28
  }
37
- function hasMinimumAccess(actual, required) {
38
- return ACCESS_LEVEL_HIERARCHY[actual] >= ACCESS_LEVEL_HIERARCHY[required];
39
- }
40
- function getCapabilities(accessLevel) {
41
- switch (accessLevel) {
42
- case "none":
43
- return {
44
- canRead: false,
45
- canWrite: false,
46
- canDelete: false,
47
- canAdmin: false,
48
- canAccessInternal: false
49
- };
50
- case "restricted":
51
- return {
52
- canRead: false,
53
- canWrite: false,
54
- canDelete: false,
55
- canAdmin: false,
56
- canAccessInternal: false
57
- };
58
- case "read-only":
59
- return {
60
- canRead: true,
61
- canWrite: false,
62
- canDelete: false,
63
- canAdmin: false,
64
- canAccessInternal: false
65
- };
66
- case "standard":
67
- return {
68
- canRead: true,
69
- canWrite: true,
70
- canDelete: false,
71
- canAdmin: false,
72
- canAccessInternal: false
73
- };
74
- case "full":
75
- return {
76
- canRead: true,
77
- canWrite: true,
78
- canDelete: true,
79
- canAdmin: false,
80
- canAccessInternal: false
81
- };
82
- case "internal":
83
- return {
84
- canRead: true,
85
- canWrite: true,
86
- canDelete: true,
87
- canAdmin: true,
88
- canAccessInternal: true
89
- };
90
- default:
91
- return {
92
- canRead: false,
93
- canWrite: false,
94
- canDelete: false,
95
- canAdmin: false,
96
- canAccessInternal: false
97
- };
98
- }
99
- }
100
29
 
101
30
  // src/well-known.ts
102
31
  var CACHE_TTL_MS = 60 * 60 * 1e3;
@@ -108,11 +37,6 @@ function getCachedWellKnownUrls(apiBaseUrl) {
108
37
  // src/verify.ts
109
38
  var DEFAULT_CONFIG = {
110
39
  apiBaseUrl: "https://astrasync.ai/api",
111
- // v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
112
- // access). Pre-rename this defaulted to `'guidance'`, which combined with
113
- // a route gated at `'guidance'` to silently let unverified traffic
114
- // through (`hasMinimumAccess('guidance', 'guidance') === true`).
115
- defaultAccessLevel: "none",
116
40
  // minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
117
41
  // cacheTtl deliberately unset. When undefined, cacheResult applies the 60s
118
42
  // default; the caller's explicit value is honoured for cacheable results.
@@ -276,13 +200,6 @@ function createGuidanceResponse(_config, reason, options = {}) {
276
200
  // policy is not evaluated (we never reached the gate).
277
201
  identityVerified: false,
278
202
  policyAllowed: false,
279
- // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
280
- // Adapters additionally short-circuit on `!identityVerified ||
281
- // !policyAllowed` before the gate check, but the access level still has
282
- // to be honest at the data layer so downstream consumers (SDK adapters
283
- // in other languages, custom integrations) inherit the correct
284
- // semantics.
285
- accessLevel: "none",
286
203
  guidance,
287
204
  denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
288
205
  // Round-10 (#47, O5): on API-error fallback, surface a typed failure so
@@ -376,7 +293,6 @@ async function callVerifyAccessAPI(config, request) {
376
293
  attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
377
294
  access: {
378
295
  allowed: false,
379
- accessLevel: "none",
380
296
  reason: "endpoint_deactivated",
381
297
  failures: [
382
298
  {
@@ -439,7 +355,7 @@ async function verify(config, request, options) {
439
355
  if (!deprecationWarningShown && (config.minTrustScore !== void 0 || config.minTrustScoreForFull !== void 0)) {
440
356
  deprecationWarningShown = true;
441
357
  console.warn(
442
- "[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."
358
+ "[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."
443
359
  );
444
360
  }
445
361
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
@@ -485,14 +401,6 @@ async function verify(config, request, options) {
485
401
  const result2 = {
486
402
  identityVerified: idVerifiedFromBackend,
487
403
  policyAllowed: false,
488
- // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
489
- // Pre-rename this hardcoded `'guidance'`, which conflated with the
490
- // colocated `guidance: {...}` help-payload object below and let
491
- // denied requests pass any route gated at `'guidance'` because
492
- // `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
493
- // ALSO short-circuit on `!identityVerified || !policyAllowed` before
494
- // the gate check — belt-and-braces.
495
- accessLevel: "none",
496
404
  // 3.6.0: the server now emits top-level denialReasons on every deny
497
405
  // path — prefer it verbatim; the failure-message reconstruction remains
498
406
  // as the fallback for older backends.
@@ -541,7 +449,6 @@ async function verify(config, request, options) {
541
449
  trustScore: apiResponse.organization.trustScore
542
450
  } : void 0;
543
451
  const verificationContext = apiResponse.verificationContext;
544
- const accessLevel = apiResponse.access?.accessLevel ?? "standard";
545
452
  const result = {
546
453
  // 4.5.0 (probe F1): read idVerified from verificationContext with the
547
454
  // SAME absent⇒false default as the deny branch. The previous `!== false`
@@ -553,7 +460,6 @@ async function verify(config, request, options) {
553
460
  // this load-bearing must never be defaulted on.
554
461
  identityVerified: apiResponse.verificationContext?.idVerified === true,
555
462
  policyAllowed: true,
556
- accessLevel,
557
463
  agent,
558
464
  developer,
559
465
  organization,
@@ -580,7 +486,6 @@ async function verify(config, request, options) {
580
486
  };
581
487
  if (result.recommendation === "deny") {
582
488
  result.policyAllowed = false;
583
- result.accessLevel = "none";
584
489
  result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Access denied by AstraSync recommendation"];
585
490
  result.guidance = result.runtimeChallenge ? {
586
491
  message: `Verification failed: ${result.runtimeChallenge.reason || "runtime challenge failed"}`,
@@ -609,7 +514,6 @@ async function quickVerify(config, credentials) {
609
514
  return {
610
515
  identityVerified: result.identityVerified,
611
516
  policyAllowed: result.policyAllowed,
612
- accessLevel: result.accessLevel,
613
517
  reason: result.denialReasons?.[0]
614
518
  };
615
519
  }
@@ -620,7 +524,6 @@ var VerificationGatewayClient = class {
620
524
  this.config = {
621
525
  apiBaseUrl: options.apiBaseUrl,
622
526
  apiKey: options.apiKey,
623
- defaultAccessLevel: options.defaultAccessLevel,
624
527
  minTrustScore: options.minTrustScore,
625
528
  minTrustScoreForFull: options.minTrustScoreForFull,
626
529
  cacheTtl: options.cacheTtl,
@@ -669,26 +572,6 @@ var VerificationGatewayClient = class {
669
572
  async quickVerify(credentials) {
670
573
  return this.executeWithRetry(() => quickVerify(this.config, credentials));
671
574
  }
672
- /**
673
- * Check if an agent has a specific access level.
674
- *
675
- * @deprecated 3.2.0 — the access-level band is informational only; it no
676
- * longer gates in the middleware adapters (post-3.1.0 feedback #1). This
677
- * explicit opt-in query still works, but prefer gating on the server-side
678
- * policy decision (identity + policy + trust) or per-route `minTrustScore`.
679
- * Explicit per-route condition→constraint rules are the Phase-2 successor.
680
- */
681
- async hasAccess(credentials, requiredLevel) {
682
- const result = await this.quickVerify(credentials);
683
- return hasMinimumAccess(result.accessLevel, requiredLevel);
684
- }
685
- /**
686
- * Get capabilities for a verified agent
687
- */
688
- async getCapabilities(credentials) {
689
- const result = await this.quickVerify(credentials);
690
- return getCapabilities(result.accessLevel);
691
- }
692
575
  /**
693
576
  * Verify a specific ASTRA-ID
694
577
  */
@@ -750,9 +633,7 @@ async function verifyOnce(options) {
750
633
  export {
751
634
  VerificationGatewayClient,
752
635
  createClient,
753
- getCapabilities,
754
636
  getTrustLevel,
755
- hasMinimumAccess,
756
637
  verifyOnce
757
638
  };
758
639
  //# sourceMappingURL=sdk.mjs.map