@astrasyncai/verification-gateway 2.3.7 → 2.3.9

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 (84) hide show
  1. package/README.md +93 -10
  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 +81 -7
  7. package/dist/adapters/express.js.map +1 -1
  8. package/dist/adapters/express.mjs +81 -7
  9. package/dist/adapters/express.mjs.map +1 -1
  10. package/dist/adapters/mcp.d.mts +1 -1
  11. package/dist/adapters/mcp.d.ts +1 -1
  12. package/dist/adapters/mcp.js +84 -12
  13. package/dist/adapters/mcp.js.map +1 -1
  14. package/dist/adapters/mcp.mjs +84 -12
  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 +40 -6
  19. package/dist/adapters/nextjs.js.map +1 -1
  20. package/dist/adapters/nextjs.mjs +40 -6
  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 +40 -6
  25. package/dist/adapters/sdk.js.map +1 -1
  26. package/dist/adapters/sdk.mjs +40 -6
  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/browser/background.js +39 -5
  31. package/dist/browser/background.js.map +1 -1
  32. package/dist/browser/background.mjs +39 -5
  33. package/dist/browser/background.mjs.map +1 -1
  34. package/dist/browser/browser-adapter.d.mts +2 -2
  35. package/dist/browser/browser-adapter.d.ts +2 -2
  36. package/dist/cli/index.d.mts +2 -2
  37. package/dist/cli/index.d.ts +2 -2
  38. package/dist/cursor/cursor-adapter.d.mts +2 -2
  39. package/dist/cursor/cursor-adapter.d.ts +2 -2
  40. package/dist/cursor/extension.d.mts +2 -2
  41. package/dist/cursor/extension.d.ts +2 -2
  42. package/dist/cursor/extension.js +39 -5
  43. package/dist/cursor/extension.js.map +1 -1
  44. package/dist/cursor/extension.mjs +39 -5
  45. package/dist/cursor/extension.mjs.map +1 -1
  46. package/dist/{express-D9oRsseg.d.mts → express-BiB51d5t.d.mts} +1 -1
  47. package/dist/{express-DMSIl20m.d.ts → express-D6tEDU08.d.ts} +1 -1
  48. package/dist/gateway/gateway.d.mts +2 -2
  49. package/dist/gateway/gateway.d.ts +2 -2
  50. package/dist/gateway/gateway.js +39 -5
  51. package/dist/gateway/gateway.js.map +1 -1
  52. package/dist/gateway/gateway.mjs +39 -5
  53. package/dist/gateway/gateway.mjs.map +1 -1
  54. package/dist/git-trigger/git-hooks.d.mts +2 -2
  55. package/dist/git-trigger/git-hooks.d.ts +2 -2
  56. package/dist/{index-EwUWXC5T.d.ts → index-8DFMpITk.d.ts} +1 -1
  57. package/dist/{index-YNPs800Z.d.mts → index-B--6fiDp.d.mts} +1 -1
  58. package/dist/{index-Bn_7eGjb.d.mts → index-CAykfMWK.d.mts} +1 -1
  59. package/dist/{index-BtU9yFda.d.ts → index-Yt02MRyu.d.ts} +1 -1
  60. package/dist/index.d.mts +7 -7
  61. package/dist/index.d.ts +7 -7
  62. package/dist/index.js +87 -13
  63. package/dist/index.js.map +1 -1
  64. package/dist/index.mjs +87 -13
  65. package/dist/index.mjs.map +1 -1
  66. package/dist/local-evaluator/evaluator.d.mts +2 -2
  67. package/dist/local-evaluator/evaluator.d.ts +2 -2
  68. package/dist/{nextjs-B5ZBpHra.d.ts → nextjs-CK5F_tVZ.d.ts} +1 -1
  69. package/dist/{nextjs-BLtjRbc-.d.mts → nextjs-CpxqfQqD.d.mts} +1 -1
  70. package/dist/{sdk-BhkxvqnK.d.mts → sdk-BMvauMgP.d.ts} +9 -2
  71. package/dist/{sdk-YmE3RG8n.d.ts → sdk-yJjO7yzn.d.mts} +9 -2
  72. package/dist/transport/index.d.mts +2 -2
  73. package/dist/transport/index.d.ts +2 -2
  74. package/dist/{types-DxY5zt4z.d.mts → types-CKafuHDn.d.mts} +1 -1
  75. package/dist/{types-Bxqj1sKY.d.mts → types-UYT4GdPW.d.mts} +42 -4
  76. package/dist/{types-Bxqj1sKY.d.ts → types-UYT4GdPW.d.ts} +42 -4
  77. package/dist/{types-BecRpozv.d.ts → types-ppkhdldJ.d.ts} +1 -1
  78. package/dist/ui/index.d.mts +1 -1
  79. package/dist/ui/index.d.ts +1 -1
  80. package/dist/ui/index.js +3 -3
  81. package/dist/ui/index.js.map +1 -1
  82. package/dist/ui/index.mjs +3 -3
  83. package/dist/ui/index.mjs.map +1 -1
  84. package/package.json +1 -1
@@ -3279,7 +3279,7 @@ function verifyLocal(evaluator, context) {
3279
3279
  // src/access-levels.ts
3280
3280
  var ACCESS_LEVEL_HIERARCHY = {
3281
3281
  none: 0,
3282
- guidance: 1,
3282
+ restricted: 1,
3283
3283
  "read-only": 2,
3284
3284
  standard: 3,
3285
3285
  full: 4,
@@ -3295,7 +3295,11 @@ function getTrustLevel(score) {
3295
3295
  // src/verify.ts
3296
3296
  var DEFAULT_CONFIG = {
3297
3297
  apiBaseUrl: "https://astrasync.ai/api",
3298
- defaultAccessLevel: "guidance",
3298
+ // v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
3299
+ // access). Pre-rename this defaulted to `'guidance'`, which combined with
3300
+ // a route gated at `'guidance'` to silently let unverified traffic
3301
+ // through (`hasMinimumAccess('guidance', 'guidance') === true`).
3302
+ defaultAccessLevel: "none",
3299
3303
  // minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
3300
3304
  cacheTtl: 300,
3301
3305
  // 5 minutes
@@ -3360,7 +3364,12 @@ function createGuidanceResponse(config, reason) {
3360
3364
  };
3361
3365
  return {
3362
3366
  verified: false,
3363
- accessLevel: "guidance",
3367
+ // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
3368
+ // Adapters additionally short-circuit on `verified === false` before
3369
+ // the gate check, but the access level still has to be honest at the
3370
+ // data layer so downstream consumers (SDK adapters in other languages,
3371
+ // custom integrations) inherit the correct semantics.
3372
+ accessLevel: "none",
3364
3373
  guidance,
3365
3374
  denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
3366
3375
  verifiedAt: /* @__PURE__ */ new Date()
@@ -3417,6 +3426,23 @@ async function callVerifyAccessAPI(config, request) {
3417
3426
  body: JSON.stringify(body)
3418
3427
  });
3419
3428
  const data = await response.json();
3429
+ if (response.status === 410) {
3430
+ return {
3431
+ success: true,
3432
+ access: {
3433
+ allowed: false,
3434
+ accessLevel: "none",
3435
+ reason: "endpoint_deactivated",
3436
+ failures: [
3437
+ {
3438
+ dimension: "endpoint.deactivated",
3439
+ message: typeof data?.message === "string" ? data.message : "Endpoint has been deactivated",
3440
+ guidance: typeof data?.guidance === "string" ? data.guidance : "Reactivate via POST /api/endpoints/{id}/reactivate, or update the URL on the calling agent."
3441
+ }
3442
+ ]
3443
+ }
3444
+ };
3445
+ }
3420
3446
  if (!response.ok) {
3421
3447
  return {
3422
3448
  success: false,
@@ -3470,7 +3496,14 @@ async function verify(config, request) {
3470
3496
  const aggregatedFailures = apiResponse.access?.failures;
3471
3497
  const result2 = {
3472
3498
  verified: false,
3473
- accessLevel: "guidance",
3499
+ // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
3500
+ // Pre-rename this hardcoded `'guidance'`, which conflated with the
3501
+ // colocated `guidance: {...}` help-payload object below and let
3502
+ // denied requests pass any route gated at `'guidance'` because
3503
+ // `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
3504
+ // ALSO short-circuit on `verified === false` before the gate check —
3505
+ // belt-and-braces.
3506
+ accessLevel: "none",
3474
3507
  denialReasons: aggregatedFailures && aggregatedFailures.length > 0 ? aggregatedFailures.map((f) => f.message) : apiResponse.access?.reason ? [apiResponse.access.reason] : ["Access denied"],
3475
3508
  failures: aggregatedFailures,
3476
3509
  requiresStepUp: apiResponse.access?.requiresStepUp,
@@ -3526,7 +3559,8 @@ async function verify(config, request) {
3526
3559
  runtimeChallenge: apiResponse.runtimeChallenge,
3527
3560
  tokenGuidance: apiResponse.tokenGuidance,
3528
3561
  recommendation: apiResponse.recommendation,
3529
- recommendationReasons: apiResponse.recommendationReasons
3562
+ recommendationReasons: apiResponse.recommendationReasons,
3563
+ warningHeader: apiResponse.warningHeader
3530
3564
  };
3531
3565
  if (result.recommendation === "deny") {
3532
3566
  result.verified = false;