@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
@@ -3672,7 +3672,25 @@ function getTrustLevel(score) {
3672
3672
  }
3673
3673
 
3674
3674
  // src/version.ts
3675
- var SDK_VERSION = "4.1.0";
3675
+ var SDK_VERSION = "4.5.0";
3676
+
3677
+ // src/http.ts
3678
+ var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
3679
+ function withUserAgent(initHeaders) {
3680
+ if (!initHeaders) return { "user-agent": SDK_USER_AGENT };
3681
+ if (initHeaders instanceof Headers) {
3682
+ const copy = new Headers(initHeaders);
3683
+ if (!copy.has("user-agent")) copy.set("user-agent", SDK_USER_AGENT);
3684
+ return copy;
3685
+ }
3686
+ if (Array.isArray(initHeaders)) {
3687
+ const has2 = initHeaders.some(([name]) => name.toLowerCase() === "user-agent");
3688
+ return has2 ? initHeaders : [...initHeaders, ["user-agent", SDK_USER_AGENT]];
3689
+ }
3690
+ const has = Object.keys(initHeaders).some((name) => name.toLowerCase() === "user-agent");
3691
+ return has ? initHeaders : { "user-agent": SDK_USER_AGENT, ...initHeaders };
3692
+ }
3693
+ var sdkFetch = (input, init) => fetch(input, { ...init, headers: withUserAgent(init?.headers) });
3676
3694
 
3677
3695
  // src/well-known.ts
3678
3696
  var CACHE_TTL_MS = 60 * 60 * 1e3;
@@ -3702,7 +3720,7 @@ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
3702
3720
  initCheckPerformed = true;
3703
3721
  try {
3704
3722
  const probeUrl = `${apiBaseUrl}/agents/verify-access`;
3705
- const response = await fetch(probeUrl, { method: "HEAD" });
3723
+ const response = await sdkFetch(probeUrl, { method: "HEAD" });
3706
3724
  const contentType = response.headers.get("content-type") ?? "";
3707
3725
  if (contentType.startsWith("text/html")) {
3708
3726
  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).`;
@@ -3716,7 +3734,7 @@ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
3716
3734
  );
3717
3735
  }
3718
3736
  if (apiKey) {
3719
- const selfCheck = await fetch(`${apiBaseUrl}/agents/verify-access/self-check`, {
3737
+ const selfCheck = await sdkFetch(`${apiBaseUrl}/agents/verify-access/self-check`, {
3720
3738
  headers: { Authorization: `Bearer ${apiKey}` }
3721
3739
  });
3722
3740
  if (selfCheck.status === 401) {
@@ -3929,7 +3947,7 @@ async function callVerifyAccessAPI(config, request) {
3929
3947
  headers["X-API-Key"] = config.apiKey;
3930
3948
  }
3931
3949
  try {
3932
- const response = await fetch(`${config.apiBaseUrl}/agents/verify-access`, {
3950
+ const response = await sdkFetch(`${config.apiBaseUrl}/agents/verify-access`, {
3933
3951
  method: "POST",
3934
3952
  headers,
3935
3953
  body: JSON.stringify(body),
@@ -4111,12 +4129,15 @@ async function verify(config, request, options) {
4111
4129
  const verificationContext = apiResponse.verificationContext;
4112
4130
  const accessLevel = apiResponse.access?.accessLevel ?? "standard";
4113
4131
  const result = {
4114
- // Round-18 G4: backend allowed access. Identity is verified (we resolved
4115
- // the caller to an agent) and policy passed all gates. Read idVerified
4116
- // from verificationContext for symmetry with the deny branch; default true
4117
- // on success path since `access.allowed === true` implies identity was
4118
- // resolvable (anonymous-allow paths flow through createGuidanceResponse).
4119
- identityVerified: apiResponse.verificationContext?.idVerified !== false,
4132
+ // 4.5.0 (probe F1): read idVerified from verificationContext with the
4133
+ // SAME absent⇒false default as the deny branch. The previous `!== false`
4134
+ // default manufactured `identityVerified: true` for anonymous
4135
+ // allow_full/allow_partial/audit responses (which allow access but omit
4136
+ // verificationContext entirely) — the "anonymous caller labelled
4137
+ // verified" defect. Every authenticated success response has carried
4138
+ // `verificationContext.idVerified: true` since v2.2.4, so a truth claim
4139
+ // this load-bearing must never be defaulted on.
4140
+ identityVerified: apiResponse.verificationContext?.idVerified === true,
4120
4141
  policyAllowed: true,
4121
4142
  accessLevel,
4122
4143
  agent,