@astrasyncai/verification-gateway 2.4.0 → 2.4.2

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 (87) hide show
  1. package/README.md +137 -22
  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 +37 -7
  7. package/dist/adapters/express.js.map +1 -1
  8. package/dist/adapters/express.mjs +37 -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 +37 -7
  13. package/dist/adapters/mcp.js.map +1 -1
  14. package/dist/adapters/mcp.mjs +37 -7
  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 +30 -4
  19. package/dist/adapters/nextjs.js.map +1 -1
  20. package/dist/adapters/nextjs.mjs +30 -4
  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 +30 -4
  25. package/dist/adapters/sdk.js.map +1 -1
  26. package/dist/adapters/sdk.mjs +30 -4
  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/bin/astrasync.js +163 -4
  31. package/dist/browser/background.js +30 -4
  32. package/dist/browser/background.js.map +1 -1
  33. package/dist/browser/background.mjs +30 -4
  34. package/dist/browser/background.mjs.map +1 -1
  35. package/dist/browser/browser-adapter.d.mts +2 -2
  36. package/dist/browser/browser-adapter.d.ts +2 -2
  37. package/dist/cli/index.d.mts +2 -2
  38. package/dist/cli/index.d.ts +2 -2
  39. package/dist/cursor/cursor-adapter.d.mts +2 -2
  40. package/dist/cursor/cursor-adapter.d.ts +2 -2
  41. package/dist/cursor/extension.d.mts +2 -2
  42. package/dist/cursor/extension.d.ts +2 -2
  43. package/dist/cursor/extension.js +30 -4
  44. package/dist/cursor/extension.js.map +1 -1
  45. package/dist/cursor/extension.mjs +30 -4
  46. package/dist/cursor/extension.mjs.map +1 -1
  47. package/dist/{express-4Vau6x6X.d.mts → express-DneHiMhu.d.mts} +1 -1
  48. package/dist/{express-Nq-wWICa.d.ts → express-DsiaQRFt.d.ts} +1 -1
  49. package/dist/gateway/gateway.d.mts +2 -2
  50. package/dist/gateway/gateway.d.ts +2 -2
  51. package/dist/gateway/gateway.js +30 -4
  52. package/dist/gateway/gateway.js.map +1 -1
  53. package/dist/gateway/gateway.mjs +30 -4
  54. package/dist/gateway/gateway.mjs.map +1 -1
  55. package/dist/git-trigger/git-hooks.d.mts +2 -2
  56. package/dist/git-trigger/git-hooks.d.ts +2 -2
  57. package/dist/{index-DkyPV14Y.d.mts → index-C9yWlQ2Y.d.mts} +1 -1
  58. package/dist/{index-DiToN8gh.d.mts → index-DAGm-Sgf.d.mts} +1 -1
  59. package/dist/{index-B-EovXnY.d.ts → index-Dd4alF0l.d.ts} +1 -1
  60. package/dist/{index-CxwCN7AC.d.ts → index-NZiKvrtE.d.ts} +1 -1
  61. package/dist/index.d.mts +7 -7
  62. package/dist/index.d.ts +7 -7
  63. package/dist/index.js +37 -7
  64. package/dist/index.js.map +1 -1
  65. package/dist/index.mjs +37 -7
  66. package/dist/index.mjs.map +1 -1
  67. package/dist/local-evaluator/evaluator.d.mts +2 -2
  68. package/dist/local-evaluator/evaluator.d.ts +2 -2
  69. package/dist/{nextjs-DO_4crcp.d.ts → nextjs-B4WmoiVm.d.ts} +1 -1
  70. package/dist/{nextjs-BTR7Oix-.d.mts → nextjs-vUuVCaBP.d.mts} +1 -1
  71. package/dist/registration/index.d.mts +174 -7
  72. package/dist/registration/index.d.ts +174 -7
  73. package/dist/registration/index.js +171 -6
  74. package/dist/registration/index.js.map +1 -1
  75. package/dist/registration/index.mjs +167 -5
  76. package/dist/registration/index.mjs.map +1 -1
  77. package/dist/{sdk-TnHXD-Oh.d.ts → sdk-BvWp4q2q.d.ts} +1 -1
  78. package/dist/{sdk-DSLCyXIX.d.mts → sdk-Cixo6pTV.d.mts} +1 -1
  79. package/dist/transport/index.d.mts +2 -2
  80. package/dist/transport/index.d.ts +2 -2
  81. package/dist/{types-pU2O0BFq.d.mts → types-C_e1IZdU.d.mts} +1 -1
  82. package/dist/{types-BVp22KkN.d.mts → types-DLai3jly.d.mts} +16 -13
  83. package/dist/{types-BVp22KkN.d.ts → types-DLai3jly.d.ts} +16 -13
  84. package/dist/{types-DVCWReEN.d.ts → types-IUzu-A4u.d.ts} +1 -1
  85. package/dist/ui/index.d.mts +1 -1
  86. package/dist/ui/index.d.ts +1 -1
  87. package/package.json +1 -1
@@ -3350,8 +3350,18 @@ function cacheResult(credentials, result, ttlSeconds) {
3350
3350
  expiresAt: Date.now() + ttlSeconds * 1e3
3351
3351
  });
3352
3352
  }
3353
- function createGuidanceResponse(config, reason) {
3354
- const guidance = {
3353
+ function createGuidanceResponse(config, reason, options = {}) {
3354
+ const source = options.source ?? "no_credentials";
3355
+ const isApiError = source === "api_error";
3356
+ const guidance = isApiError ? {
3357
+ message: "Verification is temporarily unavailable. Retry with exponential backoff; if the issue persists, contact support with the correlationId.",
3358
+ registrationUrl: `${config.apiBaseUrl.replace("/api", "")}/register`,
3359
+ documentationUrl: `${config.apiBaseUrl.replace("/api", "")}/docs/agent-access`,
3360
+ steps: [
3361
+ "Retry the request with exponential backoff",
3362
+ "If failures persist, share the correlationId with support"
3363
+ ]
3364
+ } : {
3355
3365
  message: "This service verifies AI agents before granting access. Please register your agent with AstraSync.",
3356
3366
  registrationUrl: `${config.apiBaseUrl.replace("/api", "")}/register`,
3357
3367
  documentationUrl: `${config.apiBaseUrl.replace("/api", "")}/docs/agent-access`,
@@ -3372,6 +3382,18 @@ function createGuidanceResponse(config, reason) {
3372
3382
  accessLevel: "none",
3373
3383
  guidance,
3374
3384
  denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
3385
+ // Round-10 (#47, O5): on API-error fallback, surface a typed failure so
3386
+ // partners (and their custom onDenied handlers) can branch on
3387
+ // dimension. Without this, the synthesised stub was indistinguishable
3388
+ // from a real policy deny.
3389
+ failures: isApiError ? [
3390
+ {
3391
+ dimension: "verify_access.api_error",
3392
+ message: reason ?? "Verification temporarily unavailable",
3393
+ guidance: guidance.message
3394
+ }
3395
+ ] : void 0,
3396
+ correlationId: options.correlationId,
3375
3397
  verifiedAt: /* @__PURE__ */ new Date()
3376
3398
  };
3377
3399
  }
@@ -3446,7 +3468,8 @@ async function callVerifyAccessAPI(config, request) {
3446
3468
  if (!response.ok) {
3447
3469
  return {
3448
3470
  success: false,
3449
- error: data.message || data.error || `API returned ${response.status}`
3471
+ error: data.message || data.error || `API returned ${response.status}`,
3472
+ correlationId: typeof data?.correlationId === "string" ? data.correlationId : void 0
3450
3473
  };
3451
3474
  }
3452
3475
  return data;
@@ -3490,7 +3513,10 @@ async function verify(config, request) {
3490
3513
  }
3491
3514
  const apiResponse = await callVerifyAccessAPI(mergedConfig, enrichedRequest);
3492
3515
  if (!apiResponse.success) {
3493
- return createGuidanceResponse(mergedConfig, apiResponse.error);
3516
+ return createGuidanceResponse(mergedConfig, apiResponse.error, {
3517
+ source: "api_error",
3518
+ correlationId: apiResponse.correlationId
3519
+ });
3494
3520
  }
3495
3521
  if (!apiResponse.access?.allowed) {
3496
3522
  const aggregatedFailures = apiResponse.access?.failures;