@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
@@ -3015,7 +3015,7 @@ function verifyLocal(evaluator, context) {
3015
3015
  // src/access-levels.ts
3016
3016
  var ACCESS_LEVEL_HIERARCHY = {
3017
3017
  none: 0,
3018
- guidance: 1,
3018
+ restricted: 1,
3019
3019
  "read-only": 2,
3020
3020
  standard: 3,
3021
3021
  full: 4,
@@ -3031,7 +3031,11 @@ function getTrustLevel(score) {
3031
3031
  // src/verify.ts
3032
3032
  var DEFAULT_CONFIG = {
3033
3033
  apiBaseUrl: "https://astrasync.ai/api",
3034
- defaultAccessLevel: "guidance",
3034
+ // v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
3035
+ // access). Pre-rename this defaulted to `'guidance'`, which combined with
3036
+ // a route gated at `'guidance'` to silently let unverified traffic
3037
+ // through (`hasMinimumAccess('guidance', 'guidance') === true`).
3038
+ defaultAccessLevel: "none",
3035
3039
  // minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
3036
3040
  cacheTtl: 300,
3037
3041
  // 5 minutes
@@ -3096,7 +3100,12 @@ function createGuidanceResponse(config, reason) {
3096
3100
  };
3097
3101
  return {
3098
3102
  verified: false,
3099
- accessLevel: "guidance",
3103
+ // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
3104
+ // Adapters additionally short-circuit on `verified === false` before
3105
+ // the gate check, but the access level still has to be honest at the
3106
+ // data layer so downstream consumers (SDK adapters in other languages,
3107
+ // custom integrations) inherit the correct semantics.
3108
+ accessLevel: "none",
3100
3109
  guidance,
3101
3110
  denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
3102
3111
  verifiedAt: /* @__PURE__ */ new Date()
@@ -3153,6 +3162,23 @@ async function callVerifyAccessAPI(config, request) {
3153
3162
  body: JSON.stringify(body)
3154
3163
  });
3155
3164
  const data = await response.json();
3165
+ if (response.status === 410) {
3166
+ return {
3167
+ success: true,
3168
+ access: {
3169
+ allowed: false,
3170
+ accessLevel: "none",
3171
+ reason: "endpoint_deactivated",
3172
+ failures: [
3173
+ {
3174
+ dimension: "endpoint.deactivated",
3175
+ message: typeof data?.message === "string" ? data.message : "Endpoint has been deactivated",
3176
+ guidance: typeof data?.guidance === "string" ? data.guidance : "Reactivate via POST /api/endpoints/{id}/reactivate, or update the URL on the calling agent."
3177
+ }
3178
+ ]
3179
+ }
3180
+ };
3181
+ }
3156
3182
  if (!response.ok) {
3157
3183
  return {
3158
3184
  success: false,
@@ -3206,7 +3232,14 @@ async function verify(config, request) {
3206
3232
  const aggregatedFailures = apiResponse.access?.failures;
3207
3233
  const result2 = {
3208
3234
  verified: false,
3209
- accessLevel: "guidance",
3235
+ // v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
3236
+ // Pre-rename this hardcoded `'guidance'`, which conflated with the
3237
+ // colocated `guidance: {...}` help-payload object below and let
3238
+ // denied requests pass any route gated at `'guidance'` because
3239
+ // `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
3240
+ // ALSO short-circuit on `verified === false` before the gate check —
3241
+ // belt-and-braces.
3242
+ accessLevel: "none",
3210
3243
  denialReasons: aggregatedFailures && aggregatedFailures.length > 0 ? aggregatedFailures.map((f) => f.message) : apiResponse.access?.reason ? [apiResponse.access.reason] : ["Access denied"],
3211
3244
  failures: aggregatedFailures,
3212
3245
  requiresStepUp: apiResponse.access?.requiresStepUp,
@@ -3262,7 +3295,8 @@ async function verify(config, request) {
3262
3295
  runtimeChallenge: apiResponse.runtimeChallenge,
3263
3296
  tokenGuidance: apiResponse.tokenGuidance,
3264
3297
  recommendation: apiResponse.recommendation,
3265
- recommendationReasons: apiResponse.recommendationReasons
3298
+ recommendationReasons: apiResponse.recommendationReasons,
3299
+ warningHeader: apiResponse.warningHeader
3266
3300
  };
3267
3301
  if (result.recommendation === "deny") {
3268
3302
  result.verified = false;