@astrasyncai/verification-gateway 5.12.0 → 5.14.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 (75) hide show
  1. package/dist/adapters/express.js +63 -19
  2. package/dist/adapters/express.js.map +1 -1
  3. package/dist/adapters/express.mjs +63 -19
  4. package/dist/adapters/express.mjs.map +1 -1
  5. package/dist/adapters/mcp.js +26 -9
  6. package/dist/adapters/mcp.js.map +1 -1
  7. package/dist/adapters/mcp.mjs +26 -9
  8. package/dist/adapters/mcp.mjs.map +1 -1
  9. package/dist/adapters/nextjs.js +63 -19
  10. package/dist/adapters/nextjs.js.map +1 -1
  11. package/dist/adapters/nextjs.mjs +63 -19
  12. package/dist/adapters/nextjs.mjs.map +1 -1
  13. package/dist/adapters/sdk.js +26 -9
  14. package/dist/adapters/sdk.js.map +1 -1
  15. package/dist/adapters/sdk.mjs +26 -9
  16. package/dist/adapters/sdk.mjs.map +1 -1
  17. package/dist/agent/index.js +1 -1
  18. package/dist/agent/index.js.map +1 -1
  19. package/dist/agent/index.mjs +1 -1
  20. package/dist/agent/index.mjs.map +1 -1
  21. package/dist/bin/astrasync-claude-hook.js +53 -18
  22. package/dist/bin/astrasync-codex-hook.js +53 -18
  23. package/dist/bin/astrasync-guard.js +53 -18
  24. package/dist/bin/astrasync.js +54 -19
  25. package/dist/browser/background.js +53 -18
  26. package/dist/browser/background.js.map +1 -1
  27. package/dist/browser/background.mjs +53 -18
  28. package/dist/browser/background.mjs.map +1 -1
  29. package/dist/cli/index.js +1 -1
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/cli/index.mjs +1 -1
  32. package/dist/cli/index.mjs.map +1 -1
  33. package/dist/codex/index.js +53 -18
  34. package/dist/codex/index.js.map +1 -1
  35. package/dist/codex/index.mjs +53 -18
  36. package/dist/codex/index.mjs.map +1 -1
  37. package/dist/cursor/extension.js +53 -18
  38. package/dist/cursor/extension.js.map +1 -1
  39. package/dist/cursor/extension.mjs +53 -18
  40. package/dist/cursor/extension.mjs.map +1 -1
  41. package/dist/edge-config.js +1 -1
  42. package/dist/edge-config.js.map +1 -1
  43. package/dist/edge-config.mjs +1 -1
  44. package/dist/edge-config.mjs.map +1 -1
  45. package/dist/edge-core/index.d.mts +32 -4
  46. package/dist/edge-core/index.d.ts +32 -4
  47. package/dist/edge-core/index.js +53 -18
  48. package/dist/edge-core/index.js.map +1 -1
  49. package/dist/edge-core/index.mjs +53 -18
  50. package/dist/edge-core/index.mjs.map +1 -1
  51. package/dist/gateway/gateway.js +53 -18
  52. package/dist/gateway/gateway.js.map +1 -1
  53. package/dist/gateway/gateway.mjs +53 -18
  54. package/dist/gateway/gateway.mjs.map +1 -1
  55. package/dist/index.d.mts +2 -12
  56. package/dist/index.d.ts +2 -12
  57. package/dist/index.js +63 -19
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.mjs +63 -19
  60. package/dist/index.mjs.map +1 -1
  61. package/dist/registration/index.js +1 -1
  62. package/dist/registration/index.js.map +1 -1
  63. package/dist/registration/index.mjs +1 -1
  64. package/dist/registration/index.mjs.map +1 -1
  65. package/dist/transport/index.js +1 -1
  66. package/dist/transport/index.js.map +1 -1
  67. package/dist/transport/index.mjs +1 -1
  68. package/dist/transport/index.mjs.map +1 -1
  69. package/dist/verify.d.mts +0 -10
  70. package/dist/verify.d.ts +0 -10
  71. package/dist/verify.js +36 -10
  72. package/dist/verify.js.map +1 -1
  73. package/dist/verify.mjs +36 -10
  74. package/dist/verify.mjs.map +1 -1
  75. package/package.json +3 -2
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var SDK_VERSION = "5.12.0";
2
+ var SDK_VERSION = "5.14.0";
3
3
 
4
4
  // src/http.ts
5
5
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -69,7 +69,7 @@ var DEFAULT_CONFIG = {
69
69
  };
70
70
  var initCheckPerformed = false;
71
71
  var deprecationWarningShown = false;
72
- async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
72
+ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey, counterparty) {
73
73
  initCheckPerformed = true;
74
74
  try {
75
75
  const probeUrl = `${apiBaseUrl}/agents/verify-access`;
@@ -87,7 +87,8 @@ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
87
87
  );
88
88
  }
89
89
  if (apiKey) {
90
- const selfCheck = await sdkFetch(`${apiBaseUrl}/agents/verify-access/self-check`, {
90
+ const q = counterparty?.id ? `?counterpartyId=${encodeURIComponent(counterparty.id)}` : counterparty?.url ? `?counterpartyUrl=${encodeURIComponent(counterparty.url)}` : "";
91
+ const selfCheck = await sdkFetch(`${apiBaseUrl}/agents/verify-access/self-check${q}`, {
91
92
  headers: { Authorization: `Bearer ${apiKey}` }
92
93
  });
93
94
  if (selfCheck.status === 401) {
@@ -99,6 +100,13 @@ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
99
100
  console.error(message);
100
101
  } else if (selfCheck.ok) {
101
102
  const body = await selfCheck.json().catch(() => ({}));
103
+ if (body.counterparty && body.counterparty.canVerify === false) {
104
+ const message = `[VerificationGateway] the configured AstraSync API key cannot verify for this endpoint (${body.counterparty.message ?? "endpoint not found or owned by another account"}). Every inbound agent will be turned away until the key or counterparty is corrected.`;
105
+ if (strictInit) {
106
+ throw new Error(`${message} (strictInit=true)`);
107
+ }
108
+ console.error(message);
109
+ }
102
110
  if (typeof body.daysToExpiry === "number" && body.daysToExpiry <= 7) {
103
111
  console.warn(
104
112
  `[VerificationGateway] the configured AstraSync API key expires in ${body.daysToExpiry} day(s) \u2014 rotate it at Settings \u2192 Developer Tools before integrations start failing.`
@@ -206,11 +214,11 @@ function createGuidanceResponse(_config, reason, options = {}) {
206
214
  const isMisconfig = source === "merchant_misconfig";
207
215
  const urls = options.urls;
208
216
  const guidance = isMisconfig ? {
209
- message: "This site's AstraSync integration is misconfigured (its API key was revoked, expired, or rotated). Your identity and the AstraSync platform are fine \u2014 contact the site operator. Retrying will not help.",
217
+ message: "This site's AstraSync integration is misconfigured (its API key was revoked, expired, rotated, or belongs to another account). Your identity and the AstraSync platform are fine \u2014 contact the site operator. Retrying will not help.",
210
218
  registrationUrl: urls?.registrationUrl ?? "",
211
219
  documentationUrl: options.remediation?.docsUrl ?? urls?.documentationUrl ?? "",
212
220
  steps: [
213
- "Report the failure to the site operator \u2014 their AstraSync API key needs rotating",
221
+ "Report the failure to the site operator \u2014 their AstraSync API key needs replacing",
214
222
  "Do not retry: the failure is deterministic until the operator updates their key"
215
223
  ]
216
224
  } : isApiError ? {
@@ -422,12 +430,13 @@ async function callVerifyAccessAPI(config, request) {
422
430
  };
423
431
  }
424
432
  if (!response.ok) {
425
- if (response.status === 401) {
433
+ const keyMismatch = response.status === 403 && data?.error === "COUNTERPARTY_KEY_MISMATCH";
434
+ if (response.status === 401 || keyMismatch) {
426
435
  return {
427
436
  success: false,
428
437
  error: data.message || data.error || "Integration API key rejected",
429
438
  misconfig: true,
430
- misconfigCode: typeof data?.code === "string" ? data.code : void 0,
439
+ misconfigCode: keyMismatch ? "counterparty_key_mismatch" : typeof data?.code === "string" ? data.code : void 0,
431
440
  remediation: data?.remediation && typeof data.remediation === "object" ? data.remediation : void 0,
432
441
  correlationId: typeof data?.correlationId === "string" ? data.correlationId : void 0,
433
442
  attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0
@@ -460,14 +469,22 @@ async function verify(config, request, options) {
460
469
  mergedConfig.apiBaseUrl,
461
470
  mergedConfig.debug,
462
471
  true,
463
- mergedConfig.apiKey
472
+ mergedConfig.apiKey,
473
+ {
474
+ id: mergedConfig.counterpartyId,
475
+ url: mergedConfig.counterpartyUrl ?? request.counterpartyUrl
476
+ }
464
477
  );
465
478
  } else {
466
479
  void performInitCheck(
467
480
  mergedConfig.apiBaseUrl,
468
481
  mergedConfig.debug,
469
482
  false,
470
- mergedConfig.apiKey
483
+ mergedConfig.apiKey,
484
+ {
485
+ id: mergedConfig.counterpartyId,
486
+ url: mergedConfig.counterpartyUrl ?? request.counterpartyUrl
487
+ }
471
488
  );
472
489
  }
473
490
  }