@astrasyncai/verification-gateway 4.3.0 → 4.5.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 (87) hide show
  1. package/dist/adapters/express.js +104 -28
  2. package/dist/adapters/express.js.map +1 -1
  3. package/dist/adapters/express.mjs +104 -28
  4. package/dist/adapters/express.mjs.map +1 -1
  5. package/dist/adapters/mcp.js +63 -21
  6. package/dist/adapters/mcp.js.map +1 -1
  7. package/dist/adapters/mcp.mjs +63 -21
  8. package/dist/adapters/mcp.mjs.map +1 -1
  9. package/dist/adapters/nextjs.js +103 -27
  10. package/dist/adapters/nextjs.js.map +1 -1
  11. package/dist/adapters/nextjs.mjs +103 -27
  12. package/dist/adapters/nextjs.mjs.map +1 -1
  13. package/dist/adapters/sdk.js +33 -12
  14. package/dist/adapters/sdk.js.map +1 -1
  15. package/dist/adapters/sdk.mjs +33 -12
  16. package/dist/adapters/sdk.mjs.map +1 -1
  17. package/dist/agent/index.js +24 -3
  18. package/dist/agent/index.js.map +1 -1
  19. package/dist/agent/index.mjs +24 -3
  20. package/dist/agent/index.mjs.map +1 -1
  21. package/dist/bin/astrasync-claude-hook.js +31 -10
  22. package/dist/bin/astrasync-codex-hook.js +31 -10
  23. package/dist/bin/astrasync-guard.js +35 -14
  24. package/dist/bin/astrasync.js +75 -29
  25. package/dist/browser/background.js +31 -10
  26. package/dist/browser/background.js.map +1 -1
  27. package/dist/browser/background.mjs +31 -10
  28. package/dist/browser/background.mjs.map +1 -1
  29. package/dist/cli/index.js +23 -2
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/cli/index.mjs +23 -2
  32. package/dist/cli/index.mjs.map +1 -1
  33. package/dist/codex/index.js +31 -10
  34. package/dist/codex/index.js.map +1 -1
  35. package/dist/codex/index.mjs +31 -10
  36. package/dist/codex/index.mjs.map +1 -1
  37. package/dist/cursor/extension.js +31 -10
  38. package/dist/cursor/extension.js.map +1 -1
  39. package/dist/cursor/extension.mjs +31 -10
  40. package/dist/cursor/extension.mjs.map +1 -1
  41. package/dist/edge-config.d.mts +11 -4
  42. package/dist/edge-config.d.ts +11 -4
  43. package/dist/edge-config.js +24 -1
  44. package/dist/edge-config.js.map +1 -1
  45. package/dist/edge-config.mjs +22 -1
  46. package/dist/edge-config.mjs.map +1 -1
  47. package/dist/edge-core/index.d.mts +21 -7
  48. package/dist/edge-core/index.d.ts +21 -7
  49. package/dist/edge-core/index.js +170 -25
  50. package/dist/edge-core/index.js.map +1 -1
  51. package/dist/edge-core/index.mjs +170 -25
  52. package/dist/edge-core/index.mjs.map +1 -1
  53. package/dist/gateway/gateway.js +31 -10
  54. package/dist/gateway/gateway.js.map +1 -1
  55. package/dist/gateway/gateway.mjs +31 -10
  56. package/dist/gateway/gateway.mjs.map +1 -1
  57. package/dist/index.d.mts +51 -2
  58. package/dist/index.d.ts +51 -2
  59. package/dist/index.js +169 -40
  60. package/dist/index.js.map +1 -1
  61. package/dist/index.mjs +165 -40
  62. package/dist/index.mjs.map +1 -1
  63. package/dist/metadata-capture.d.mts +17 -0
  64. package/dist/metadata-capture.d.ts +17 -0
  65. package/dist/metadata-capture.js +25 -4
  66. package/dist/metadata-capture.js.map +1 -1
  67. package/dist/metadata-capture.mjs +25 -4
  68. package/dist/metadata-capture.mjs.map +1 -1
  69. package/dist/platform-signatures.d.mts +18 -1
  70. package/dist/platform-signatures.d.ts +18 -1
  71. package/dist/platform-signatures.js +35 -2
  72. package/dist/platform-signatures.js.map +1 -1
  73. package/dist/platform-signatures.mjs +35 -2
  74. package/dist/platform-signatures.mjs.map +1 -1
  75. package/dist/registration/index.js +25 -4
  76. package/dist/registration/index.js.map +1 -1
  77. package/dist/registration/index.mjs +25 -4
  78. package/dist/registration/index.mjs.map +1 -1
  79. package/dist/transport/index.js +22 -1
  80. package/dist/transport/index.js.map +1 -1
  81. package/dist/transport/index.mjs +22 -1
  82. package/dist/transport/index.mjs.map +1 -1
  83. package/dist/verify.js +38 -17
  84. package/dist/verify.js.map +1 -1
  85. package/dist/verify.mjs +38 -17
  86. package/dist/verify.mjs.map +1 -1
  87. package/package.json +2 -2
@@ -3985,7 +3985,25 @@ function getTrustLevel(score) {
3985
3985
  }
3986
3986
 
3987
3987
  // src/version.ts
3988
- var SDK_VERSION = "4.1.0";
3988
+ var SDK_VERSION = "4.5.0";
3989
+
3990
+ // src/http.ts
3991
+ var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
3992
+ function withUserAgent(initHeaders) {
3993
+ if (!initHeaders) return { "user-agent": SDK_USER_AGENT };
3994
+ if (initHeaders instanceof Headers) {
3995
+ const copy = new Headers(initHeaders);
3996
+ if (!copy.has("user-agent")) copy.set("user-agent", SDK_USER_AGENT);
3997
+ return copy;
3998
+ }
3999
+ if (Array.isArray(initHeaders)) {
4000
+ const has2 = initHeaders.some(([name]) => name.toLowerCase() === "user-agent");
4001
+ return has2 ? initHeaders : [...initHeaders, ["user-agent", SDK_USER_AGENT]];
4002
+ }
4003
+ const has = Object.keys(initHeaders).some((name) => name.toLowerCase() === "user-agent");
4004
+ return has ? initHeaders : { "user-agent": SDK_USER_AGENT, ...initHeaders };
4005
+ }
4006
+ var sdkFetch = (input, init) => fetch(input, { ...init, headers: withUserAgent(init?.headers) });
3989
4007
 
3990
4008
  // src/well-known.ts
3991
4009
  var CACHE_TTL_MS = 60 * 60 * 1e3;
@@ -4015,7 +4033,7 @@ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
4015
4033
  initCheckPerformed = true;
4016
4034
  try {
4017
4035
  const probeUrl = `${apiBaseUrl}/agents/verify-access`;
4018
- const response = await fetch(probeUrl, { method: "HEAD" });
4036
+ const response = await sdkFetch(probeUrl, { method: "HEAD" });
4019
4037
  const contentType = response.headers.get("content-type") ?? "";
4020
4038
  if (contentType.startsWith("text/html")) {
4021
4039
  const message = `[VerificationGateway] apiBaseUrl '${apiBaseUrl}' returned HTML (content-type: ${contentType}). This usually means apiBaseUrl is pointing at a marketing site instead of the API. Expected: 'https://astrasync.ai/api' (prod) or 'https://staging.astrasync.ai/api' (staging).`;
@@ -4029,7 +4047,7 @@ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
4029
4047
  );
4030
4048
  }
4031
4049
  if (apiKey) {
4032
- const selfCheck = await fetch(`${apiBaseUrl}/agents/verify-access/self-check`, {
4050
+ const selfCheck = await sdkFetch(`${apiBaseUrl}/agents/verify-access/self-check`, {
4033
4051
  headers: { Authorization: `Bearer ${apiKey}` }
4034
4052
  });
4035
4053
  if (selfCheck.status === 401) {
@@ -4242,7 +4260,7 @@ async function callVerifyAccessAPI(config, request) {
4242
4260
  headers["X-API-Key"] = config.apiKey;
4243
4261
  }
4244
4262
  try {
4245
- const response = await fetch(`${config.apiBaseUrl}/agents/verify-access`, {
4263
+ const response = await sdkFetch(`${config.apiBaseUrl}/agents/verify-access`, {
4246
4264
  method: "POST",
4247
4265
  headers,
4248
4266
  body: JSON.stringify(body),
@@ -4424,12 +4442,15 @@ async function verify(config, request, options) {
4424
4442
  const verificationContext = apiResponse.verificationContext;
4425
4443
  const accessLevel = apiResponse.access?.accessLevel ?? "standard";
4426
4444
  const result = {
4427
- // Round-18 G4: backend allowed access. Identity is verified (we resolved
4428
- // the caller to an agent) and policy passed all gates. Read idVerified
4429
- // from verificationContext for symmetry with the deny branch; default true
4430
- // on success path since `access.allowed === true` implies identity was
4431
- // resolvable (anonymous-allow paths flow through createGuidanceResponse).
4432
- identityVerified: apiResponse.verificationContext?.idVerified !== false,
4445
+ // 4.5.0 (probe F1): read idVerified from verificationContext with the
4446
+ // SAME absent⇒false default as the deny branch. The previous `!== false`
4447
+ // default manufactured `identityVerified: true` for anonymous
4448
+ // allow_full/allow_partial/audit responses (which allow access but omit
4449
+ // verificationContext entirely) — the "anonymous caller labelled
4450
+ // verified" defect. Every authenticated success response has carried
4451
+ // `verificationContext.idVerified: true` since v2.2.4, so a truth claim
4452
+ // this load-bearing must never be defaulted on.
4453
+ identityVerified: apiResponse.verificationContext?.idVerified === true,
4433
4454
  policyAllowed: true,
4434
4455
  accessLevel,
4435
4456
  agent,