@astrasyncai/verification-gateway 4.6.0 → 5.1.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/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 +25 -35
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +25 -35
- 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 +42 -67
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +41 -66
- 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 +23 -32
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +23 -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 +22 -126
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +22 -124
- 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 +23 -31
- package/dist/bin/astrasync-codex-hook.js +23 -31
- package/dist/bin/astrasync-guard.js +23 -31
- package/dist/bin/astrasync.js +28 -36
- package/dist/browser/background.js +23 -31
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +23 -31
- 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 +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +1 -1
- 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 +23 -31
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +23 -31
- 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 +23 -31
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +23 -31
- 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 +12 -3
- package/dist/edge-core/index.d.ts +12 -3
- package/dist/edge-core/index.js +42 -36
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +42 -36
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/{express-DBtPKXOL.d.mts → express-KkBZBMqi.d.mts} +1 -1
- package/dist/{express-D-8Ks2Uo.d.ts → express-xK8pRrmj.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 +23 -31
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +23 -31
- 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-kGCGWd5x.d.mts → index-DIRzR5IS.d.mts} +1 -1
- package/dist/{index-DlZORQsb.d.ts → index-DLQ4Rcuc.d.ts} +1 -1
- package/dist/{index-CUfmJ1Dq.d.mts → index-GPDn_EGI.d.mts} +1 -1
- package/dist/{index-BND3kQev.d.ts → index-Hnz5VyMR.d.ts} +1 -1
- package/dist/index.d.mts +14 -10
- package/dist/index.d.ts +14 -10
- package/dist/index.js +44 -219
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -212
- 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.map +1 -1
- package/dist/local-evaluator/evaluator.mjs.map +1 -1
- package/dist/{mcp-DToTlwIn.d.ts → mcp-DPpu4xQz.d.ts} +53 -52
- package/dist/{mcp-ZRN4kY3b.d.mts → mcp-Dju_Sr1o.d.mts} +53 -52
- package/dist/{nextjs-C0KASOy_.d.mts → nextjs-BuoDBN4g.d.mts} +1 -1
- package/dist/{nextjs-lwNvWYWT.d.ts → nextjs-rZKzY_8o.d.ts} +1 -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-CdO6TIEf.d.mts +142 -0
- package/dist/sdk-DxHuIJBm.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-DhhJxKIC.d.ts → types-3UV7IZx7.d.ts} +1 -3
- package/dist/{types-CGPU7HLi.d.ts → types-CNBaZKxY.d.ts} +24 -50
- package/dist/{types-Cx9hTpKI.d.mts → types-CSHcByFX.d.mts} +24 -50
- package/dist/{types-CfSJLS4i.d.mts → types-CoDjpbVY.d.mts} +1 -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 +22 -30
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +22 -30
- package/dist/verify.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/sdk-B4aodEwj.d.ts +0 -215
- package/dist/sdk-B9dSwum7.d.mts +0 -215
package/dist/codex/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PlatformAdapter, AdapterConfig } from '../adapter-interface/interface.mjs';
|
|
2
|
-
import { A as AgentAction, I as InterceptResult, P as PDLSSContext, V as VerificationDecision } from '../types-
|
|
2
|
+
import { A as AgentAction, I as InterceptResult, P as PDLSSContext, V as VerificationDecision } from '../types-CoDjpbVY.mjs';
|
|
3
3
|
import { AstraSyncGateway } from '../gateway/gateway.mjs';
|
|
4
|
-
import '../types-
|
|
4
|
+
import '../types-CSHcByFX.mjs';
|
|
5
5
|
import '../metadata-capture.mjs';
|
|
6
6
|
|
|
7
7
|
/**
|
package/dist/codex/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PlatformAdapter, AdapterConfig } from '../adapter-interface/interface.js';
|
|
2
|
-
import { A as AgentAction, I as InterceptResult, P as PDLSSContext, V as VerificationDecision } from '../types-
|
|
2
|
+
import { A as AgentAction, I as InterceptResult, P as PDLSSContext, V as VerificationDecision } from '../types-3UV7IZx7.js';
|
|
3
3
|
import { AstraSyncGateway } from '../gateway/gateway.js';
|
|
4
|
-
import '../types-
|
|
4
|
+
import '../types-CNBaZKxY.js';
|
|
5
5
|
import '../metadata-capture.js';
|
|
6
6
|
|
|
7
7
|
/**
|
package/dist/codex/index.js
CHANGED
|
@@ -4018,7 +4018,7 @@ function verifyLocal(evaluator, context) {
|
|
|
4018
4018
|
return evaluator.evaluate(context);
|
|
4019
4019
|
}
|
|
4020
4020
|
|
|
4021
|
-
// src/
|
|
4021
|
+
// src/trust-levels.ts
|
|
4022
4022
|
function getTrustLevel(score) {
|
|
4023
4023
|
if (score >= 80) return "PLATINUM";
|
|
4024
4024
|
if (score >= 60) return "GOLD";
|
|
@@ -4027,7 +4027,7 @@ function getTrustLevel(score) {
|
|
|
4027
4027
|
}
|
|
4028
4028
|
|
|
4029
4029
|
// src/version.ts
|
|
4030
|
-
var SDK_VERSION = "
|
|
4030
|
+
var SDK_VERSION = "5.0.0";
|
|
4031
4031
|
|
|
4032
4032
|
// src/http.ts
|
|
4033
4033
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -4057,11 +4057,6 @@ function getCachedWellKnownUrls(apiBaseUrl) {
|
|
|
4057
4057
|
// src/verify.ts
|
|
4058
4058
|
var DEFAULT_CONFIG = {
|
|
4059
4059
|
apiBaseUrl: "https://astrasync.ai/api",
|
|
4060
|
-
// v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
|
|
4061
|
-
// access). Pre-rename this defaulted to `'guidance'`, which combined with
|
|
4062
|
-
// a route gated at `'guidance'` to silently let unverified traffic
|
|
4063
|
-
// through (`hasMinimumAccess('guidance', 'guidance') === true`).
|
|
4064
|
-
defaultAccessLevel: "none",
|
|
4065
4060
|
// minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
|
|
4066
4061
|
// cacheTtl deliberately unset. When undefined, cacheResult applies the 60s
|
|
4067
4062
|
// default; the caller's explicit value is honoured for cacheable results.
|
|
@@ -4184,6 +4179,14 @@ function cacheResult(request, result, configuredTtl, counterpartyId) {
|
|
|
4184
4179
|
expiresAt: Date.now() + ttlSeconds * 1e3
|
|
4185
4180
|
});
|
|
4186
4181
|
}
|
|
4182
|
+
function mcpGuidance(urls) {
|
|
4183
|
+
if (!urls?.mcpEndpoint) return void 0;
|
|
4184
|
+
return {
|
|
4185
|
+
endpoint: urls.mcpEndpoint,
|
|
4186
|
+
discoveryUrl: urls.mcpDiscoveryUrl,
|
|
4187
|
+
message: "If you are operating inside an MCP-capable host (Claude, ChatGPT, Cursor, or any MCP client), add the AstraSync MCP connector instead of integrating these URLs by hand: registration through the connector is KEYLESS and HUMAN-APPROVED \u2014 your human approves in an in-chat card, and you never see, hold, or transmit an API key, password, or private key."
|
|
4188
|
+
};
|
|
4189
|
+
}
|
|
4187
4190
|
function createGuidanceResponse(_config, reason, options = {}) {
|
|
4188
4191
|
const source = options.source ?? "no_credentials";
|
|
4189
4192
|
const isApiError = source === "api_error";
|
|
@@ -4210,11 +4213,17 @@ function createGuidanceResponse(_config, reason, options = {}) {
|
|
|
4210
4213
|
registrationUrl: urls?.registrationUrl ?? "",
|
|
4211
4214
|
documentationUrl: urls?.documentationUrl ?? "",
|
|
4212
4215
|
steps: [
|
|
4216
|
+
// MCP steering leads when the hosted bridge is advertised — the
|
|
4217
|
+
// connector is the agent-actionable path (keyless, human-approved).
|
|
4218
|
+
...urls?.mcpEndpoint ? [
|
|
4219
|
+
`Fastest path (inside an MCP host): add the AstraSync MCP connector at ${urls.mcpEndpoint} \u2014 keyless, human-approved registration`
|
|
4220
|
+
] : [],
|
|
4213
4221
|
"Register for an AstraSync account",
|
|
4214
4222
|
"Create and register your agent",
|
|
4215
4223
|
"Add your ASTRA-ID to request headers",
|
|
4216
4224
|
"Retry your request"
|
|
4217
|
-
]
|
|
4225
|
+
],
|
|
4226
|
+
...mcpGuidance(urls) && { mcp: mcpGuidance(urls) }
|
|
4218
4227
|
};
|
|
4219
4228
|
return {
|
|
4220
4229
|
// Round-18 G4: createGuidanceResponse fires for unverified-agent path or
|
|
@@ -4222,13 +4231,6 @@ function createGuidanceResponse(_config, reason, options = {}) {
|
|
|
4222
4231
|
// policy is not evaluated (we never reached the gate).
|
|
4223
4232
|
identityVerified: false,
|
|
4224
4233
|
policyAllowed: false,
|
|
4225
|
-
// v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
|
|
4226
|
-
// Adapters additionally short-circuit on `!identityVerified ||
|
|
4227
|
-
// !policyAllowed` before the gate check, but the access level still has
|
|
4228
|
-
// to be honest at the data layer so downstream consumers (SDK adapters
|
|
4229
|
-
// in other languages, custom integrations) inherit the correct
|
|
4230
|
-
// semantics.
|
|
4231
|
-
accessLevel: "none",
|
|
4232
4234
|
guidance,
|
|
4233
4235
|
denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
|
|
4234
4236
|
// Round-10 (#47, O5): on API-error fallback, surface a typed failure so
|
|
@@ -4322,7 +4324,6 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4322
4324
|
attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
|
|
4323
4325
|
access: {
|
|
4324
4326
|
allowed: false,
|
|
4325
|
-
accessLevel: "none",
|
|
4326
4327
|
reason: "endpoint_deactivated",
|
|
4327
4328
|
failures: [
|
|
4328
4329
|
{
|
|
@@ -4385,7 +4386,7 @@ async function verify(config, request, options) {
|
|
|
4385
4386
|
if (!deprecationWarningShown && (config.minTrustScore !== void 0 || config.minTrustScoreForFull !== void 0)) {
|
|
4386
4387
|
deprecationWarningShown = true;
|
|
4387
4388
|
console.warn(
|
|
4388
|
-
"[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access
|
|
4389
|
+
"[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."
|
|
4389
4390
|
);
|
|
4390
4391
|
}
|
|
4391
4392
|
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
|
|
@@ -4431,14 +4432,6 @@ async function verify(config, request, options) {
|
|
|
4431
4432
|
const result2 = {
|
|
4432
4433
|
identityVerified: idVerifiedFromBackend,
|
|
4433
4434
|
policyAllowed: false,
|
|
4434
|
-
// v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
|
|
4435
|
-
// Pre-rename this hardcoded `'guidance'`, which conflated with the
|
|
4436
|
-
// colocated `guidance: {...}` help-payload object below and let
|
|
4437
|
-
// denied requests pass any route gated at `'guidance'` because
|
|
4438
|
-
// `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
|
|
4439
|
-
// ALSO short-circuit on `!identityVerified || !policyAllowed` before
|
|
4440
|
-
// the gate check — belt-and-braces.
|
|
4441
|
-
accessLevel: "none",
|
|
4442
4435
|
// 3.6.0: the server now emits top-level denialReasons on every deny
|
|
4443
4436
|
// path — prefer it verbatim; the failure-message reconstruction remains
|
|
4444
4437
|
// as the fallback for older backends.
|
|
@@ -4449,7 +4442,10 @@ async function verify(config, request, options) {
|
|
|
4449
4442
|
guidance: {
|
|
4450
4443
|
message: apiResponse.access?.reason || "Access denied by PDLSS policy",
|
|
4451
4444
|
registrationUrl: urls?.registrationUrl ?? "",
|
|
4452
|
-
documentationUrl: urls?.documentationUrl ?? ""
|
|
4445
|
+
documentationUrl: urls?.documentationUrl ?? "",
|
|
4446
|
+
// 5.1.0: anonymous callers land on this branch — steer MCP-hosted
|
|
4447
|
+
// agents to the connector (this is what the edge deny body surfaces).
|
|
4448
|
+
...mcpGuidance(urls) && { mcp: mcpGuidance(urls) }
|
|
4453
4449
|
},
|
|
4454
4450
|
verifiedAt: /* @__PURE__ */ new Date(),
|
|
4455
4451
|
// Extract sessionId so decisions can be recorded for denials too
|
|
@@ -4487,7 +4483,6 @@ async function verify(config, request, options) {
|
|
|
4487
4483
|
trustScore: apiResponse.organization.trustScore
|
|
4488
4484
|
} : void 0;
|
|
4489
4485
|
const verificationContext = apiResponse.verificationContext;
|
|
4490
|
-
const accessLevel = apiResponse.access?.accessLevel ?? "standard";
|
|
4491
4486
|
const result = {
|
|
4492
4487
|
// 4.5.0 (probe F1): read idVerified from verificationContext with the
|
|
4493
4488
|
// SAME absent⇒false default as the deny branch. The previous `!== false`
|
|
@@ -4499,7 +4494,6 @@ async function verify(config, request, options) {
|
|
|
4499
4494
|
// this load-bearing must never be defaulted on.
|
|
4500
4495
|
identityVerified: apiResponse.verificationContext?.idVerified === true,
|
|
4501
4496
|
policyAllowed: true,
|
|
4502
|
-
accessLevel,
|
|
4503
4497
|
agent,
|
|
4504
4498
|
developer,
|
|
4505
4499
|
organization,
|
|
@@ -4526,7 +4520,6 @@ async function verify(config, request, options) {
|
|
|
4526
4520
|
};
|
|
4527
4521
|
if (result.recommendation === "deny") {
|
|
4528
4522
|
result.policyAllowed = false;
|
|
4529
|
-
result.accessLevel = "none";
|
|
4530
4523
|
result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Access denied by AstraSync recommendation"];
|
|
4531
4524
|
result.guidance = result.runtimeChallenge ? {
|
|
4532
4525
|
message: `Verification failed: ${result.runtimeChallenge.reason || "runtime challenge failed"}`,
|
|
@@ -4639,7 +4632,6 @@ function toGatewayConfig(config) {
|
|
|
4639
4632
|
return {
|
|
4640
4633
|
apiBaseUrl: config.apiBaseUrl || "https://api.astrasync.ai",
|
|
4641
4634
|
apiKey: config.apiKey,
|
|
4642
|
-
defaultAccessLevel: config.defaultAccessLevel,
|
|
4643
4635
|
minTrustScore: config.minTrustScore,
|
|
4644
4636
|
minTrustScoreForFull: config.minTrustScoreForFull,
|
|
4645
4637
|
cacheTtl: config.cacheTtl,
|
|
@@ -4667,7 +4659,7 @@ function toDecision(result) {
|
|
|
4667
4659
|
if (result.identityVerified && result.policyAllowed) {
|
|
4668
4660
|
return {
|
|
4669
4661
|
recommendation: "ALLOW",
|
|
4670
|
-
reason: `Verified
|
|
4662
|
+
reason: result.agent?.trustScore ? `Verified (trust score ${result.agent.trustScore})` : "Verified",
|
|
4671
4663
|
trustScore: result.agent?.trustScore,
|
|
4672
4664
|
sessionId: "sessionId" in result ? result.sessionId : void 0
|
|
4673
4665
|
};
|