@astrasyncai/verification-gateway 4.5.1 → 5.0.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.
- package/README.md +1 -1
- package/dist/adapter-interface/interface.d.mts +2 -2
- package/dist/adapter-interface/interface.d.ts +2 -2
- package/dist/adapters/express.d.mts +2 -2
- package/dist/adapters/express.d.ts +2 -2
- package/dist/adapters/express.js +11 -33
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +11 -33
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +2 -2
- package/dist/adapters/mcp.d.ts +2 -2
- package/dist/adapters/mcp.js +28 -65
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +27 -64
- package/dist/adapters/mcp.mjs.map +1 -1
- package/dist/adapters/nextjs.d.mts +2 -2
- package/dist/adapters/nextjs.d.ts +2 -2
- package/dist/adapters/nextjs.js +9 -30
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +9 -30
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +2 -2
- package/dist/adapters/sdk.d.ts +2 -2
- package/dist/adapters/sdk.js +8 -124
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +8 -122
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.d.mts +2 -2
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.js +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/index.mjs +1 -1
- package/dist/agent/index.mjs.map +1 -1
- package/dist/bin/astrasync-claude-hook.js +63 -41
- package/dist/bin/astrasync-codex-hook.js +63 -41
- package/dist/bin/astrasync-guard.js +63 -41
- package/dist/bin/astrasync.js +75 -48
- package/dist/browser/background.js +63 -41
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +63 -41
- package/dist/browser/background.mjs.map +1 -1
- package/dist/browser/browser-adapter.d.mts +2 -2
- package/dist/browser/browser-adapter.d.ts +2 -2
- package/dist/claude-code/claude-code-adapter.d.mts +2 -2
- package/dist/claude-code/claude-code-adapter.d.ts +2 -2
- package/dist/cli/index.d.mts +2 -2
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +33 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +33 -6
- package/dist/cli/index.mjs.map +1 -1
- package/dist/codex/index.d.mts +2 -2
- package/dist/codex/index.d.ts +2 -2
- package/dist/codex/index.js +63 -41
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +63 -41
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/cursor-adapter.d.mts +2 -2
- package/dist/cursor/cursor-adapter.d.ts +2 -2
- package/dist/cursor/extension.d.mts +2 -2
- package/dist/cursor/extension.d.ts +2 -2
- package/dist/cursor/extension.js +63 -41
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +63 -41
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/edge-config.d.mts +1 -1
- package/dist/edge-config.d.ts +1 -1
- package/dist/edge-config.js +1 -1
- package/dist/edge-config.js.map +1 -1
- package/dist/edge-config.mjs +1 -1
- package/dist/edge-config.mjs.map +1 -1
- package/dist/edge-core/index.d.mts +1 -3
- package/dist/edge-core/index.d.ts +1 -3
- package/dist/edge-core/index.js +11 -33
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +11 -33
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/{express-DaqL11tx.d.ts → express-B5lWuemA.d.ts} +1 -1
- package/dist/{express-CR6F3njD.d.mts → express-Dm-snUuY.d.mts} +1 -1
- package/dist/gateway/gateway.d.mts +2 -2
- package/dist/gateway/gateway.d.ts +2 -2
- package/dist/gateway/gateway.js +63 -41
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +63 -41
- package/dist/gateway/gateway.mjs.map +1 -1
- package/dist/git-trigger/git-hooks.d.mts +2 -2
- package/dist/git-trigger/git-hooks.d.ts +2 -2
- package/dist/{index-Cub7lK-T.d.mts → index-B5k_vUmK.d.mts} +1 -1
- package/dist/{index-BfIxCYIZ.d.ts → index-BOzM6xUq.d.mts} +1 -2
- package/dist/{index-CwAh7Tln.d.mts → index-dRfxUdFA.d.ts} +1 -2
- package/dist/{index-B5Ts1WtM.d.ts → index-y8xToocF.d.ts} +1 -1
- package/dist/index.d.mts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.js +30 -217
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +30 -210
- package/dist/index.mjs.map +1 -1
- package/dist/local-evaluator/evaluator.d.mts +2 -2
- package/dist/local-evaluator/evaluator.d.ts +2 -2
- package/dist/local-evaluator/evaluator.js +22 -7
- package/dist/local-evaluator/evaluator.js.map +1 -1
- package/dist/local-evaluator/evaluator.mjs +22 -7
- package/dist/local-evaluator/evaluator.mjs.map +1 -1
- package/dist/{mcp-BgBJu4Jl.d.mts → mcp-DgsyQiQq.d.mts} +53 -52
- package/dist/{mcp--DgKOwfu.d.ts → mcp-OosmAcKf.d.ts} +53 -52
- package/dist/{nextjs-DlX6xwbU.d.mts → nextjs-B1sBdEav.d.mts} +1 -1
- package/dist/{nextjs-DL6uE1ye.d.ts → nextjs-DoRmhV_Z.d.ts} +1 -1
- package/dist/registration/index.d.mts +5 -1
- package/dist/registration/index.d.ts +5 -1
- package/dist/registration/index.js +1 -1
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +1 -1
- package/dist/registration/index.mjs.map +1 -1
- package/dist/sdk-B83N3xKc.d.mts +142 -0
- package/dist/sdk-H_9BTNBS.d.ts +142 -0
- package/dist/transport/index.d.mts +2 -2
- package/dist/transport/index.d.ts +2 -2
- package/dist/transport/index.js +1 -1
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +1 -1
- package/dist/transport/index.mjs.map +1 -1
- package/dist/{types-DwSfO7Sb.d.ts → types-BK2POWNc.d.ts} +23 -50
- package/dist/{types-C0zfSXMB.d.mts → types-CJjZvPr9.d.mts} +23 -50
- package/dist/{types-C7Rb-w0d.d.mts → types-CXf3q4kZ.d.ts} +14 -3
- package/dist/{types-nIh3HtuA.d.ts → types-DQmop7ZW.d.mts} +14 -3
- package/dist/ui/index.d.mts +2 -17
- package/dist/ui/index.d.ts +2 -17
- package/dist/ui/index.js +1 -43
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +1 -42
- package/dist/ui/index.mjs.map +1 -1
- package/dist/verify.d.mts +3 -4
- package/dist/verify.d.ts +3 -4
- package/dist/verify.js +8 -28
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +8 -28
- package/dist/verify.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/sdk-Bbh9B_dw.d.mts +0 -215
- package/dist/sdk-C6SASmsh.d.ts +0 -215
package/dist/adapters/nextjs.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/version.ts
|
|
2
|
-
var SDK_VERSION = "
|
|
2
|
+
var SDK_VERSION = "5.0.0";
|
|
3
3
|
|
|
4
4
|
// src/http.ts
|
|
5
5
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -77,7 +77,7 @@ async function awaitStepUpApproval(config, approval) {
|
|
|
77
77
|
return "timeout";
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
// src/
|
|
80
|
+
// src/trust-levels.ts
|
|
81
81
|
function getTrustLevel(score) {
|
|
82
82
|
if (score >= 80) return "PLATINUM";
|
|
83
83
|
if (score >= 60) return "GOLD";
|
|
@@ -95,11 +95,6 @@ function getCachedWellKnownUrls(apiBaseUrl) {
|
|
|
95
95
|
// src/verify.ts
|
|
96
96
|
var DEFAULT_CONFIG = {
|
|
97
97
|
apiBaseUrl: "https://astrasync.ai/api",
|
|
98
|
-
// v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
|
|
99
|
-
// access). Pre-rename this defaulted to `'guidance'`, which combined with
|
|
100
|
-
// a route gated at `'guidance'` to silently let unverified traffic
|
|
101
|
-
// through (`hasMinimumAccess('guidance', 'guidance') === true`).
|
|
102
|
-
defaultAccessLevel: "none",
|
|
103
98
|
// minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
|
|
104
99
|
// cacheTtl deliberately unset. When undefined, cacheResult applies the 60s
|
|
105
100
|
// default; the caller's explicit value is honoured for cacheable results.
|
|
@@ -294,13 +289,6 @@ function createGuidanceResponse(_config, reason, options = {}) {
|
|
|
294
289
|
// policy is not evaluated (we never reached the gate).
|
|
295
290
|
identityVerified: false,
|
|
296
291
|
policyAllowed: false,
|
|
297
|
-
// v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
|
|
298
|
-
// Adapters additionally short-circuit on `!identityVerified ||
|
|
299
|
-
// !policyAllowed` before the gate check, but the access level still has
|
|
300
|
-
// to be honest at the data layer so downstream consumers (SDK adapters
|
|
301
|
-
// in other languages, custom integrations) inherit the correct
|
|
302
|
-
// semantics.
|
|
303
|
-
accessLevel: "none",
|
|
304
292
|
guidance,
|
|
305
293
|
denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
|
|
306
294
|
// Round-10 (#47, O5): on API-error fallback, surface a typed failure so
|
|
@@ -323,6 +311,11 @@ function createGuidanceResponse(_config, reason, options = {}) {
|
|
|
323
311
|
// 4.0.0: typed marker so adapters render the misconfig envelope (503 +
|
|
324
312
|
// MERCHANT_VERIFICATION_MISCONFIGURED) without string-matching.
|
|
325
313
|
...isMisconfig && { misconfigured: true },
|
|
314
|
+
// 4.6.0: a transient api_error is retryable — mark it so consumers surface
|
|
315
|
+
// "temporarily unavailable, retry" (recommendation 'error') instead of
|
|
316
|
+
// coercing the absent recommendation to a policy 'deny'. Misconfig is
|
|
317
|
+
// deterministic and intentionally NOT marked retryable.
|
|
318
|
+
...isApiError && { retryable: true },
|
|
326
319
|
correlationId: options.correlationId,
|
|
327
320
|
attemptId: options.attemptId,
|
|
328
321
|
verifiedAt: /* @__PURE__ */ new Date()
|
|
@@ -389,7 +382,6 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
389
382
|
attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
|
|
390
383
|
access: {
|
|
391
384
|
allowed: false,
|
|
392
|
-
accessLevel: "none",
|
|
393
385
|
reason: "endpoint_deactivated",
|
|
394
386
|
failures: [
|
|
395
387
|
{
|
|
@@ -452,7 +444,7 @@ async function verify(config, request, options) {
|
|
|
452
444
|
if (!deprecationWarningShown && (config.minTrustScore !== void 0 || config.minTrustScoreForFull !== void 0)) {
|
|
453
445
|
deprecationWarningShown = true;
|
|
454
446
|
console.warn(
|
|
455
|
-
"[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access
|
|
447
|
+
"[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access decisions (verified ID + runtime challenge + PDLSS + trust score). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
|
|
456
448
|
);
|
|
457
449
|
}
|
|
458
450
|
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
|
|
@@ -498,14 +490,6 @@ async function verify(config, request, options) {
|
|
|
498
490
|
const result2 = {
|
|
499
491
|
identityVerified: idVerifiedFromBackend,
|
|
500
492
|
policyAllowed: false,
|
|
501
|
-
// v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
|
|
502
|
-
// Pre-rename this hardcoded `'guidance'`, which conflated with the
|
|
503
|
-
// colocated `guidance: {...}` help-payload object below and let
|
|
504
|
-
// denied requests pass any route gated at `'guidance'` because
|
|
505
|
-
// `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
|
|
506
|
-
// ALSO short-circuit on `!identityVerified || !policyAllowed` before
|
|
507
|
-
// the gate check — belt-and-braces.
|
|
508
|
-
accessLevel: "none",
|
|
509
493
|
// 3.6.0: the server now emits top-level denialReasons on every deny
|
|
510
494
|
// path — prefer it verbatim; the failure-message reconstruction remains
|
|
511
495
|
// as the fallback for older backends.
|
|
@@ -554,7 +538,6 @@ async function verify(config, request, options) {
|
|
|
554
538
|
trustScore: apiResponse.organization.trustScore
|
|
555
539
|
} : void 0;
|
|
556
540
|
const verificationContext = apiResponse.verificationContext;
|
|
557
|
-
const accessLevel = apiResponse.access?.accessLevel ?? "standard";
|
|
558
541
|
const result = {
|
|
559
542
|
// 4.5.0 (probe F1): read idVerified from verificationContext with the
|
|
560
543
|
// SAME absent⇒false default as the deny branch. The previous `!== false`
|
|
@@ -566,7 +549,6 @@ async function verify(config, request, options) {
|
|
|
566
549
|
// this load-bearing must never be defaulted on.
|
|
567
550
|
identityVerified: apiResponse.verificationContext?.idVerified === true,
|
|
568
551
|
policyAllowed: true,
|
|
569
|
-
accessLevel,
|
|
570
552
|
agent,
|
|
571
553
|
developer,
|
|
572
554
|
organization,
|
|
@@ -593,7 +575,6 @@ async function verify(config, request, options) {
|
|
|
593
575
|
};
|
|
594
576
|
if (result.recommendation === "deny") {
|
|
595
577
|
result.policyAllowed = false;
|
|
596
|
-
result.accessLevel = "none";
|
|
597
578
|
result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Access denied by AstraSync recommendation"];
|
|
598
579
|
result.guidance = result.runtimeChallenge ? {
|
|
599
580
|
message: `Verification failed: ${result.runtimeChallenge.reason || "runtime challenge failed"}`,
|
|
@@ -1728,7 +1709,7 @@ function createMiddleware(options) {
|
|
|
1728
1709
|
beaconPassThrough?.(request, pathname);
|
|
1729
1710
|
return NextResponse.next();
|
|
1730
1711
|
}
|
|
1731
|
-
if (routeConfig.
|
|
1712
|
+
if (routeConfig.observe) {
|
|
1732
1713
|
beaconPassThrough?.(request, pathname);
|
|
1733
1714
|
return NextResponse.next();
|
|
1734
1715
|
}
|
|
@@ -1758,7 +1739,6 @@ function createMiddleware(options) {
|
|
|
1758
1739
|
const preCheckResult = {
|
|
1759
1740
|
identityVerified: false,
|
|
1760
1741
|
policyAllowed: false,
|
|
1761
|
-
accessLevel: "none",
|
|
1762
1742
|
denialReasons: preCheckFailures.map((f) => f.message),
|
|
1763
1743
|
guidance: {
|
|
1764
1744
|
message: "Request exceeds counterparty-defined PDLSS limits.",
|
|
@@ -1896,7 +1876,6 @@ function createMiddleware(options) {
|
|
|
1896
1876
|
}
|
|
1897
1877
|
response.headers.set("X-AstraSync-Identity-Verified", result.identityVerified.toString());
|
|
1898
1878
|
response.headers.set("X-AstraSync-Policy-Allowed", result.policyAllowed.toString());
|
|
1899
|
-
response.headers.set("X-AstraSync-Access-Level", result.accessLevel);
|
|
1900
1879
|
if (result.agent) {
|
|
1901
1880
|
response.headers.set("X-AstraSync-Agent-Id", result.agent.astraId);
|
|
1902
1881
|
}
|