@astrasyncai/verification-gateway 2.4.8 → 2.4.10
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/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 +81 -31
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +81 -31
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +1 -1
- package/dist/adapters/mcp.d.ts +1 -1
- package/dist/adapters/mcp.js +64 -26
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +64 -26
- 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 +89 -32
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +89 -32
- 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 +65 -25
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +65 -25
- 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/browser/background.js +60 -25
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +60 -25
- 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/cli/index.d.mts +2 -2
- package/dist/cli/index.d.ts +2 -2
- 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 +60 -25
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +60 -25
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/{express-DvVjR2H4.d.mts → express-4WStX3PV.d.mts} +1 -1
- package/dist/{express-714gJbaW.d.ts → express-C1ePFB7n.d.ts} +1 -1
- package/dist/gateway/gateway.d.mts +2 -2
- package/dist/gateway/gateway.d.ts +2 -2
- package/dist/gateway/gateway.js +60 -25
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +60 -25
- 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-DYFS9QVb.d.mts → index-ChPX4WHl.d.mts} +1 -1
- package/dist/{index-DO0oG8ED.d.ts → index-Cjm-zBeZ.d.ts} +1 -1
- package/dist/{index-2WAlxs2G.d.ts → index-CzJMCgEy.d.ts} +1 -1
- package/dist/{index-P9t7M_dJ.d.mts → index-D8IEntil.d.mts} +1 -1
- package/dist/index.d.mts +22 -11
- package/dist/index.d.ts +22 -11
- package/dist/index.js +133 -42
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +132 -42
- 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/{nextjs-CZ-MwSOT.d.ts → nextjs-BIORS__0.d.ts} +1 -1
- package/dist/{nextjs-BCoH7EqF.d.mts → nextjs-CjzHdaXA.d.mts} +1 -1
- package/dist/registration/index.d.mts +76 -1
- package/dist/registration/index.d.ts +76 -1
- package/dist/registration/index.js +27 -2
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +25 -1
- package/dist/registration/index.mjs.map +1 -1
- package/dist/{sdk-wwhFDXWX.d.mts → sdk-Chhz-FcT.d.mts} +9 -4
- package/dist/{sdk-kiA49vqJ.d.ts → sdk-CqTEQAc6.d.ts} +9 -4
- package/dist/transport/index.d.mts +2 -2
- package/dist/transport/index.d.ts +2 -2
- package/dist/{types-DOAb89cm.d.mts → types-DNK2BgIf.d.mts} +1 -1
- package/dist/{types-aucqzfUa.d.ts → types-DoWIuzfj.d.ts} +1 -1
- package/dist/{types-BwDmjIdr.d.mts → types-L15pYd2c.d.mts} +21 -4
- package/dist/{types-BwDmjIdr.d.ts → types-L15pYd2c.d.ts} +21 -4
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +1 -1
- package/dist/ui/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RequestHandler, Request } from 'express';
|
|
2
|
-
import { i as VerificationResult, d as ExpressMiddlewareOptions, b as AstraSyncCredentials } from './types-
|
|
2
|
+
import { i as VerificationResult, d as ExpressMiddlewareOptions, b as AstraSyncCredentials } from './types-L15pYd2c.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* AstraSync Universal Verification Gateway - Express Middleware
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RequestHandler, Request } from 'express';
|
|
2
|
-
import { i as VerificationResult, d as ExpressMiddlewareOptions, b as AstraSyncCredentials } from './types-
|
|
2
|
+
import { i as VerificationResult, d as ExpressMiddlewareOptions, b as AstraSyncCredentials } from './types-L15pYd2c.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* AstraSync Universal Verification Gateway - Express Middleware
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as AstraSyncGatewayConfig, P as PDLSSContext, V as VerificationDecision } from '../types-
|
|
2
|
-
import '../types-
|
|
1
|
+
import { a as AstraSyncGatewayConfig, P as PDLSSContext, V as VerificationDecision } from '../types-DNK2BgIf.mjs';
|
|
2
|
+
import '../types-L15pYd2c.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* AstraSyncGateway — Primary API surface for agent verification.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as AstraSyncGatewayConfig, P as PDLSSContext, V as VerificationDecision } from '../types-
|
|
2
|
-
import '../types-
|
|
1
|
+
import { a as AstraSyncGatewayConfig, P as PDLSSContext, V as VerificationDecision } from '../types-DoWIuzfj.js';
|
|
2
|
+
import '../types-L15pYd2c.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* AstraSyncGateway — Primary API surface for agent verification.
|
package/dist/gateway/gateway.js
CHANGED
|
@@ -3055,7 +3055,7 @@ function getTrustLevel(score) {
|
|
|
3055
3055
|
}
|
|
3056
3056
|
|
|
3057
3057
|
// src/version.ts
|
|
3058
|
-
var SDK_VERSION = "2.4.
|
|
3058
|
+
var SDK_VERSION = "2.4.10";
|
|
3059
3059
|
|
|
3060
3060
|
// src/verify.ts
|
|
3061
3061
|
var DEFAULT_CONFIG = {
|
|
@@ -3066,8 +3066,10 @@ var DEFAULT_CONFIG = {
|
|
|
3066
3066
|
// through (`hasMinimumAccess('guidance', 'guidance') === true`).
|
|
3067
3067
|
defaultAccessLevel: "none",
|
|
3068
3068
|
// minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
|
|
3069
|
-
|
|
3070
|
-
//
|
|
3069
|
+
// Round-18.5 F4: cacheTtl deliberately unset. When undefined, cacheResult
|
|
3070
|
+
// applies the split default (60s autonomous / 300s step-up). When the
|
|
3071
|
+
// caller sets cacheTtl explicitly, that value is honoured uniformly.
|
|
3072
|
+
// Set cacheTtl: 0 to disable caching entirely.
|
|
3071
3073
|
debug: false
|
|
3072
3074
|
};
|
|
3073
3075
|
var initCheckPerformed = false;
|
|
@@ -3094,11 +3096,28 @@ async function performInitCheck(apiBaseUrl, debug) {
|
|
|
3094
3096
|
}
|
|
3095
3097
|
}
|
|
3096
3098
|
var verificationCache = /* @__PURE__ */ new Map();
|
|
3097
|
-
function getCacheKey(
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3099
|
+
function getCacheKey(request) {
|
|
3100
|
+
const c = request.credentials;
|
|
3101
|
+
return [
|
|
3102
|
+
c.astraId || "",
|
|
3103
|
+
c.apiKey || "",
|
|
3104
|
+
c.jwt || "",
|
|
3105
|
+
request.purpose || "",
|
|
3106
|
+
request.action || "",
|
|
3107
|
+
request.resourceType || "",
|
|
3108
|
+
request.resource || "",
|
|
3109
|
+
request.jurisdiction || "",
|
|
3110
|
+
request.transactionValue ?? "",
|
|
3111
|
+
request.currency || "",
|
|
3112
|
+
request.counterpartyUrl || "",
|
|
3113
|
+
request.counterpartyType || "",
|
|
3114
|
+
request.isSubAgentRequest ? "1" : "0",
|
|
3115
|
+
request.parentAgentId || "",
|
|
3116
|
+
request.subAgentDepth ?? ""
|
|
3117
|
+
].join("|");
|
|
3118
|
+
}
|
|
3119
|
+
function getCachedResult(request) {
|
|
3120
|
+
const key = getCacheKey(request);
|
|
3102
3121
|
const cached = verificationCache.get(key);
|
|
3103
3122
|
if (cached && cached.expiresAt > Date.now()) {
|
|
3104
3123
|
return cached.result;
|
|
@@ -3108,8 +3127,11 @@ function getCachedResult(credentials) {
|
|
|
3108
3127
|
}
|
|
3109
3128
|
return null;
|
|
3110
3129
|
}
|
|
3111
|
-
|
|
3112
|
-
|
|
3130
|
+
var DEFAULT_AUTONOMOUS_TTL_SECONDS = 60;
|
|
3131
|
+
var DEFAULT_STEP_UP_TTL_SECONDS = 300;
|
|
3132
|
+
function cacheResult(request, result, configuredTtl) {
|
|
3133
|
+
const ttlSeconds = configuredTtl && configuredTtl > 0 ? configuredTtl : result.requiresStepUp ? DEFAULT_STEP_UP_TTL_SECONDS : DEFAULT_AUTONOMOUS_TTL_SECONDS;
|
|
3134
|
+
const key = getCacheKey(request);
|
|
3113
3135
|
verificationCache.set(key, {
|
|
3114
3136
|
result,
|
|
3115
3137
|
expiresAt: Date.now() + ttlSeconds * 1e3
|
|
@@ -3138,12 +3160,17 @@ function createGuidanceResponse(config, reason, options = {}) {
|
|
|
3138
3160
|
]
|
|
3139
3161
|
};
|
|
3140
3162
|
return {
|
|
3141
|
-
|
|
3163
|
+
// Round-18 G4: createGuidanceResponse fires for unverified-agent path or
|
|
3164
|
+
// API-error fallback. Identity is not verified (no agent resolved);
|
|
3165
|
+
// policy is not evaluated (we never reached the gate).
|
|
3166
|
+
identityVerified: false,
|
|
3167
|
+
policyAllowed: false,
|
|
3142
3168
|
// v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
|
|
3143
|
-
// Adapters additionally short-circuit on
|
|
3144
|
-
// the gate check, but the access level still has
|
|
3145
|
-
// data layer so downstream consumers (SDK adapters
|
|
3146
|
-
// custom integrations) inherit the correct
|
|
3169
|
+
// Adapters additionally short-circuit on `!identityVerified ||
|
|
3170
|
+
// !policyAllowed` before the gate check, but the access level still has
|
|
3171
|
+
// to be honest at the data layer so downstream consumers (SDK adapters
|
|
3172
|
+
// in other languages, custom integrations) inherit the correct
|
|
3173
|
+
// semantics.
|
|
3147
3174
|
accessLevel: "none",
|
|
3148
3175
|
guidance,
|
|
3149
3176
|
denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
|
|
@@ -3259,8 +3286,8 @@ async function verify(config, request) {
|
|
|
3259
3286
|
"[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access-level decisions (the SDK reads access.accessLevel from the verify-access response). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
|
|
3260
3287
|
);
|
|
3261
3288
|
}
|
|
3262
|
-
if (mergedConfig.cacheTtl
|
|
3263
|
-
const cached = getCachedResult(request
|
|
3289
|
+
if (mergedConfig.cacheTtl !== 0) {
|
|
3290
|
+
const cached = getCachedResult(request);
|
|
3264
3291
|
if (cached) {
|
|
3265
3292
|
if (mergedConfig.debug) {
|
|
3266
3293
|
console.log("[VerificationGateway] Returning cached result");
|
|
@@ -3287,15 +3314,17 @@ async function verify(config, request) {
|
|
|
3287
3314
|
}
|
|
3288
3315
|
if (!apiResponse.access?.allowed) {
|
|
3289
3316
|
const aggregatedFailures = apiResponse.access?.failures;
|
|
3317
|
+
const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true;
|
|
3290
3318
|
const result2 = {
|
|
3291
|
-
|
|
3319
|
+
identityVerified: idVerifiedFromBackend,
|
|
3320
|
+
policyAllowed: false,
|
|
3292
3321
|
// v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
|
|
3293
3322
|
// Pre-rename this hardcoded `'guidance'`, which conflated with the
|
|
3294
3323
|
// colocated `guidance: {...}` help-payload object below and let
|
|
3295
3324
|
// denied requests pass any route gated at `'guidance'` because
|
|
3296
3325
|
// `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
|
|
3297
|
-
// ALSO short-circuit on
|
|
3298
|
-
// belt-and-braces.
|
|
3326
|
+
// ALSO short-circuit on `!identityVerified || !policyAllowed` before
|
|
3327
|
+
// the gate check — belt-and-braces.
|
|
3299
3328
|
accessLevel: "none",
|
|
3300
3329
|
denialReasons: aggregatedFailures && aggregatedFailures.length > 0 ? aggregatedFailures.map((f) => f.message) : apiResponse.access?.reason ? [apiResponse.access.reason] : ["Access denied"],
|
|
3301
3330
|
failures: aggregatedFailures,
|
|
@@ -3339,7 +3368,13 @@ async function verify(config, request) {
|
|
|
3339
3368
|
const verificationContext = apiResponse.verificationContext;
|
|
3340
3369
|
const accessLevel = apiResponse.access?.accessLevel ?? "standard";
|
|
3341
3370
|
const result = {
|
|
3342
|
-
|
|
3371
|
+
// Round-18 G4: backend allowed access. Identity is verified (we resolved
|
|
3372
|
+
// the caller to an agent) and policy passed all gates. Read idVerified
|
|
3373
|
+
// from verificationContext for symmetry with the deny branch; default true
|
|
3374
|
+
// on success path since `access.allowed === true` implies identity was
|
|
3375
|
+
// resolvable (anonymous-allow paths flow through createGuidanceResponse).
|
|
3376
|
+
identityVerified: apiResponse.verificationContext?.idVerified !== false,
|
|
3377
|
+
policyAllowed: true,
|
|
3343
3378
|
accessLevel,
|
|
3344
3379
|
agent,
|
|
3345
3380
|
developer,
|
|
@@ -3362,7 +3397,7 @@ async function verify(config, request) {
|
|
|
3362
3397
|
warningHeader: apiResponse.warningHeader
|
|
3363
3398
|
};
|
|
3364
3399
|
if (result.recommendation === "deny") {
|
|
3365
|
-
result.
|
|
3400
|
+
result.policyAllowed = false;
|
|
3366
3401
|
result.accessLevel = "none";
|
|
3367
3402
|
result.denialReasons = result.recommendationReasons || [
|
|
3368
3403
|
"Access denied by AstraSync recommendation"
|
|
@@ -3381,8 +3416,8 @@ async function verify(config, request) {
|
|
|
3381
3416
|
}
|
|
3382
3417
|
result.denialReasons = result.recommendationReasons || ["Step-up verification required"];
|
|
3383
3418
|
}
|
|
3384
|
-
if (mergedConfig.cacheTtl
|
|
3385
|
-
cacheResult(request
|
|
3419
|
+
if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny") {
|
|
3420
|
+
cacheResult(request, result, mergedConfig.cacheTtl);
|
|
3386
3421
|
}
|
|
3387
3422
|
return result;
|
|
3388
3423
|
}
|
|
@@ -3454,7 +3489,7 @@ function toVerificationRequest(context, astraId) {
|
|
|
3454
3489
|
};
|
|
3455
3490
|
}
|
|
3456
3491
|
function toDecision(result) {
|
|
3457
|
-
if (result.
|
|
3492
|
+
if (result.identityVerified && result.policyAllowed) {
|
|
3458
3493
|
return {
|
|
3459
3494
|
recommendation: "ALLOW",
|
|
3460
3495
|
reason: `Verified with access level: ${result.accessLevel}`,
|