@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
@@ -3258,7 +3258,7 @@ function verifyLocal(evaluator, context) {
3258
3258
  // src/access-levels.ts
3259
3259
  var ACCESS_LEVEL_HIERARCHY = {
3260
3260
  none: 0,
3261
- guidance: 1,
3261
+ restricted: 1,
3262
3262
  "read-only": 2,
3263
3263
  standard: 3,
3264
3264
  full: 4,
@@ -3274,7 +3274,11 @@ function getTrustLevel(score) {
3274
3274
  // src/verify.ts
3275
3275
  var DEFAULT_CONFIG = {
3276
3276
  apiBaseUrl: "https://astrasync.ai/api",
3277
- defaultAccessLevel: "guidance",
3277
+ // v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
3278
+ // access). Pre-rename this defaulted to `'guidance'`, which combined with
3279
+ // a route gated at `'guidance'` to silently let unverified traffic
3280
+ // through (`hasMinimumAccess('guidance', 'guidance') === true`).
3281
+ defaultAccessLevel: "none",
3278
3282
  // minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
3279
3283
  cacheTtl: 300,
3280
3284
  // 5 minutes
@@ -3339,7 +3343,12 @@ function createGuidanceResponse(config, reason) {
3339
3343
  };
3340
3344
  return {
3341
3345
  verified: false,
3342
- accessLevel: "guidance",
3346
+ // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
3347
+ // Adapters additionally short-circuit on `verified === false` before
3348
+ // the gate check, but the access level still has to be honest at the
3349
+ // data layer so downstream consumers (SDK adapters in other languages,
3350
+ // custom integrations) inherit the correct semantics.
3351
+ accessLevel: "none",
3343
3352
  guidance,
3344
3353
  denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
3345
3354
  verifiedAt: /* @__PURE__ */ new Date()
@@ -3396,6 +3405,23 @@ async function callVerifyAccessAPI(config, request) {
3396
3405
  body: JSON.stringify(body)
3397
3406
  });
3398
3407
  const data = await response.json();
3408
+ if (response.status === 410) {
3409
+ return {
3410
+ success: true,
3411
+ access: {
3412
+ allowed: false,
3413
+ accessLevel: "none",
3414
+ reason: "endpoint_deactivated",
3415
+ failures: [
3416
+ {
3417
+ dimension: "endpoint.deactivated",
3418
+ message: typeof data?.message === "string" ? data.message : "Endpoint has been deactivated",
3419
+ guidance: typeof data?.guidance === "string" ? data.guidance : "Reactivate via POST /api/endpoints/{id}/reactivate, or update the URL on the calling agent."
3420
+ }
3421
+ ]
3422
+ }
3423
+ };
3424
+ }
3399
3425
  if (!response.ok) {
3400
3426
  return {
3401
3427
  success: false,
@@ -3449,7 +3475,14 @@ async function verify(config, request) {
3449
3475
  const aggregatedFailures = apiResponse.access?.failures;
3450
3476
  const result2 = {
3451
3477
  verified: false,
3452
- accessLevel: "guidance",
3478
+ // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
3479
+ // Pre-rename this hardcoded `'guidance'`, which conflated with the
3480
+ // colocated `guidance: {...}` help-payload object below and let
3481
+ // denied requests pass any route gated at `'guidance'` because
3482
+ // `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
3483
+ // ALSO short-circuit on `verified === false` before the gate check —
3484
+ // belt-and-braces.
3485
+ accessLevel: "none",
3453
3486
  denialReasons: aggregatedFailures && aggregatedFailures.length > 0 ? aggregatedFailures.map((f) => f.message) : apiResponse.access?.reason ? [apiResponse.access.reason] : ["Access denied"],
3454
3487
  failures: aggregatedFailures,
3455
3488
  requiresStepUp: apiResponse.access?.requiresStepUp,
@@ -3505,7 +3538,8 @@ async function verify(config, request) {
3505
3538
  runtimeChallenge: apiResponse.runtimeChallenge,
3506
3539
  tokenGuidance: apiResponse.tokenGuidance,
3507
3540
  recommendation: apiResponse.recommendation,
3508
- recommendationReasons: apiResponse.recommendationReasons
3541
+ recommendationReasons: apiResponse.recommendationReasons,
3542
+ warningHeader: apiResponse.warningHeader
3509
3543
  };
3510
3544
  if (result.recommendation === "deny") {
3511
3545
  result.verified = false;