@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PlatformAdapter, AdapterConfig } from '../adapter-interface/interface.mjs';
|
|
2
|
-
import { P as PDLSSContext, V as VerificationDecision, A as AgentAction, I as InterceptResult } from '../types-
|
|
2
|
+
import { P as PDLSSContext, V as VerificationDecision, A as AgentAction, I as InterceptResult } from '../types-CoDjpbVY.mjs';
|
|
3
3
|
import '../gateway/gateway.mjs';
|
|
4
|
-
import '../types-
|
|
4
|
+
import '../types-CSHcByFX.mjs';
|
|
5
5
|
import '../metadata-capture.mjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PlatformAdapter, AdapterConfig } from '../adapter-interface/interface.js';
|
|
2
|
-
import { P as PDLSSContext, V as VerificationDecision, A as AgentAction, I as InterceptResult } from '../types-
|
|
2
|
+
import { P as PDLSSContext, V as VerificationDecision, A as AgentAction, I as InterceptResult } from '../types-3UV7IZx7.js';
|
|
3
3
|
import '../gateway/gateway.js';
|
|
4
|
-
import '../types-
|
|
4
|
+
import '../types-CNBaZKxY.js';
|
|
5
5
|
import '../metadata-capture.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VSCodeAPI } from './cursor-adapter.mjs';
|
|
2
2
|
import '../adapter-interface/interface.mjs';
|
|
3
3
|
import '../gateway/gateway.mjs';
|
|
4
|
-
import '../types-
|
|
5
|
-
import '../types-
|
|
4
|
+
import '../types-CoDjpbVY.mjs';
|
|
5
|
+
import '../types-CSHcByFX.mjs';
|
|
6
6
|
import '../metadata-capture.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VSCodeAPI } from './cursor-adapter.js';
|
|
2
2
|
import '../adapter-interface/interface.js';
|
|
3
3
|
import '../gateway/gateway.js';
|
|
4
|
-
import '../types-
|
|
5
|
-
import '../types-
|
|
4
|
+
import '../types-3UV7IZx7.js';
|
|
5
|
+
import '../types-CNBaZKxY.js';
|
|
6
6
|
import '../metadata-capture.js';
|
|
7
7
|
|
|
8
8
|
/**
|
package/dist/cursor/extension.js
CHANGED
|
@@ -3975,7 +3975,7 @@ function verifyLocal(evaluator, context) {
|
|
|
3975
3975
|
return evaluator.evaluate(context);
|
|
3976
3976
|
}
|
|
3977
3977
|
|
|
3978
|
-
// src/
|
|
3978
|
+
// src/trust-levels.ts
|
|
3979
3979
|
function getTrustLevel(score) {
|
|
3980
3980
|
if (score >= 80) return "PLATINUM";
|
|
3981
3981
|
if (score >= 60) return "GOLD";
|
|
@@ -3984,7 +3984,7 @@ function getTrustLevel(score) {
|
|
|
3984
3984
|
}
|
|
3985
3985
|
|
|
3986
3986
|
// src/version.ts
|
|
3987
|
-
var SDK_VERSION = "
|
|
3987
|
+
var SDK_VERSION = "5.0.0";
|
|
3988
3988
|
|
|
3989
3989
|
// src/http.ts
|
|
3990
3990
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -4014,11 +4014,6 @@ function getCachedWellKnownUrls(apiBaseUrl) {
|
|
|
4014
4014
|
// src/verify.ts
|
|
4015
4015
|
var DEFAULT_CONFIG = {
|
|
4016
4016
|
apiBaseUrl: "https://astrasync.ai/api",
|
|
4017
|
-
// v2.3.9 (defect #30): default for unconfigured callers is `'none'` (no
|
|
4018
|
-
// access). Pre-rename this defaulted to `'guidance'`, which combined with
|
|
4019
|
-
// a route gated at `'guidance'` to silently let unverified traffic
|
|
4020
|
-
// through (`hasMinimumAccess('guidance', 'guidance') === true`).
|
|
4021
|
-
defaultAccessLevel: "none",
|
|
4022
4017
|
// minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
|
|
4023
4018
|
// cacheTtl deliberately unset. When undefined, cacheResult applies the 60s
|
|
4024
4019
|
// default; the caller's explicit value is honoured for cacheable results.
|
|
@@ -4141,6 +4136,14 @@ function cacheResult(request, result, configuredTtl, counterpartyId) {
|
|
|
4141
4136
|
expiresAt: Date.now() + ttlSeconds * 1e3
|
|
4142
4137
|
});
|
|
4143
4138
|
}
|
|
4139
|
+
function mcpGuidance(urls) {
|
|
4140
|
+
if (!urls?.mcpEndpoint) return void 0;
|
|
4141
|
+
return {
|
|
4142
|
+
endpoint: urls.mcpEndpoint,
|
|
4143
|
+
discoveryUrl: urls.mcpDiscoveryUrl,
|
|
4144
|
+
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."
|
|
4145
|
+
};
|
|
4146
|
+
}
|
|
4144
4147
|
function createGuidanceResponse(_config, reason, options = {}) {
|
|
4145
4148
|
const source = options.source ?? "no_credentials";
|
|
4146
4149
|
const isApiError = source === "api_error";
|
|
@@ -4167,11 +4170,17 @@ function createGuidanceResponse(_config, reason, options = {}) {
|
|
|
4167
4170
|
registrationUrl: urls?.registrationUrl ?? "",
|
|
4168
4171
|
documentationUrl: urls?.documentationUrl ?? "",
|
|
4169
4172
|
steps: [
|
|
4173
|
+
// MCP steering leads when the hosted bridge is advertised — the
|
|
4174
|
+
// connector is the agent-actionable path (keyless, human-approved).
|
|
4175
|
+
...urls?.mcpEndpoint ? [
|
|
4176
|
+
`Fastest path (inside an MCP host): add the AstraSync MCP connector at ${urls.mcpEndpoint} \u2014 keyless, human-approved registration`
|
|
4177
|
+
] : [],
|
|
4170
4178
|
"Register for an AstraSync account",
|
|
4171
4179
|
"Create and register your agent",
|
|
4172
4180
|
"Add your ASTRA-ID to request headers",
|
|
4173
4181
|
"Retry your request"
|
|
4174
|
-
]
|
|
4182
|
+
],
|
|
4183
|
+
...mcpGuidance(urls) && { mcp: mcpGuidance(urls) }
|
|
4175
4184
|
};
|
|
4176
4185
|
return {
|
|
4177
4186
|
// Round-18 G4: createGuidanceResponse fires for unverified-agent path or
|
|
@@ -4179,13 +4188,6 @@ function createGuidanceResponse(_config, reason, options = {}) {
|
|
|
4179
4188
|
// policy is not evaluated (we never reached the gate).
|
|
4180
4189
|
identityVerified: false,
|
|
4181
4190
|
policyAllowed: false,
|
|
4182
|
-
// v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
|
|
4183
|
-
// Adapters additionally short-circuit on `!identityVerified ||
|
|
4184
|
-
// !policyAllowed` before the gate check, but the access level still has
|
|
4185
|
-
// to be honest at the data layer so downstream consumers (SDK adapters
|
|
4186
|
-
// in other languages, custom integrations) inherit the correct
|
|
4187
|
-
// semantics.
|
|
4188
|
-
accessLevel: "none",
|
|
4189
4191
|
guidance,
|
|
4190
4192
|
denialReasons: reason ? [reason] : ["No valid agent credentials provided"],
|
|
4191
4193
|
// Round-10 (#47, O5): on API-error fallback, surface a typed failure so
|
|
@@ -4279,7 +4281,6 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4279
4281
|
attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
|
|
4280
4282
|
access: {
|
|
4281
4283
|
allowed: false,
|
|
4282
|
-
accessLevel: "none",
|
|
4283
4284
|
reason: "endpoint_deactivated",
|
|
4284
4285
|
failures: [
|
|
4285
4286
|
{
|
|
@@ -4342,7 +4343,7 @@ async function verify(config, request, options) {
|
|
|
4342
4343
|
if (!deprecationWarningShown && (config.minTrustScore !== void 0 || config.minTrustScoreForFull !== void 0)) {
|
|
4343
4344
|
deprecationWarningShown = true;
|
|
4344
4345
|
console.warn(
|
|
4345
|
-
"[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access
|
|
4346
|
+
"[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."
|
|
4346
4347
|
);
|
|
4347
4348
|
}
|
|
4348
4349
|
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
|
|
@@ -4388,14 +4389,6 @@ async function verify(config, request, options) {
|
|
|
4388
4389
|
const result2 = {
|
|
4389
4390
|
identityVerified: idVerifiedFromBackend,
|
|
4390
4391
|
policyAllowed: false,
|
|
4391
|
-
// v2.3.9 (defect #30): denials grant `'none'`, NEVER a positive band.
|
|
4392
|
-
// Pre-rename this hardcoded `'guidance'`, which conflated with the
|
|
4393
|
-
// colocated `guidance: {...}` help-payload object below and let
|
|
4394
|
-
// denied requests pass any route gated at `'guidance'` because
|
|
4395
|
-
// `hasMinimumAccess('guidance', 'guidance') === true`. Adapters now
|
|
4396
|
-
// ALSO short-circuit on `!identityVerified || !policyAllowed` before
|
|
4397
|
-
// the gate check — belt-and-braces.
|
|
4398
|
-
accessLevel: "none",
|
|
4399
4392
|
// 3.6.0: the server now emits top-level denialReasons on every deny
|
|
4400
4393
|
// path — prefer it verbatim; the failure-message reconstruction remains
|
|
4401
4394
|
// as the fallback for older backends.
|
|
@@ -4406,7 +4399,10 @@ async function verify(config, request, options) {
|
|
|
4406
4399
|
guidance: {
|
|
4407
4400
|
message: apiResponse.access?.reason || "Access denied by PDLSS policy",
|
|
4408
4401
|
registrationUrl: urls?.registrationUrl ?? "",
|
|
4409
|
-
documentationUrl: urls?.documentationUrl ?? ""
|
|
4402
|
+
documentationUrl: urls?.documentationUrl ?? "",
|
|
4403
|
+
// 5.1.0: anonymous callers land on this branch — steer MCP-hosted
|
|
4404
|
+
// agents to the connector (this is what the edge deny body surfaces).
|
|
4405
|
+
...mcpGuidance(urls) && { mcp: mcpGuidance(urls) }
|
|
4410
4406
|
},
|
|
4411
4407
|
verifiedAt: /* @__PURE__ */ new Date(),
|
|
4412
4408
|
// Extract sessionId so decisions can be recorded for denials too
|
|
@@ -4444,7 +4440,6 @@ async function verify(config, request, options) {
|
|
|
4444
4440
|
trustScore: apiResponse.organization.trustScore
|
|
4445
4441
|
} : void 0;
|
|
4446
4442
|
const verificationContext = apiResponse.verificationContext;
|
|
4447
|
-
const accessLevel = apiResponse.access?.accessLevel ?? "standard";
|
|
4448
4443
|
const result = {
|
|
4449
4444
|
// 4.5.0 (probe F1): read idVerified from verificationContext with the
|
|
4450
4445
|
// SAME absent⇒false default as the deny branch. The previous `!== false`
|
|
@@ -4456,7 +4451,6 @@ async function verify(config, request, options) {
|
|
|
4456
4451
|
// this load-bearing must never be defaulted on.
|
|
4457
4452
|
identityVerified: apiResponse.verificationContext?.idVerified === true,
|
|
4458
4453
|
policyAllowed: true,
|
|
4459
|
-
accessLevel,
|
|
4460
4454
|
agent,
|
|
4461
4455
|
developer,
|
|
4462
4456
|
organization,
|
|
@@ -4483,7 +4477,6 @@ async function verify(config, request, options) {
|
|
|
4483
4477
|
};
|
|
4484
4478
|
if (result.recommendation === "deny") {
|
|
4485
4479
|
result.policyAllowed = false;
|
|
4486
|
-
result.accessLevel = "none";
|
|
4487
4480
|
result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Access denied by AstraSync recommendation"];
|
|
4488
4481
|
result.guidance = result.runtimeChallenge ? {
|
|
4489
4482
|
message: `Verification failed: ${result.runtimeChallenge.reason || "runtime challenge failed"}`,
|
|
@@ -4596,7 +4589,6 @@ function toGatewayConfig(config) {
|
|
|
4596
4589
|
return {
|
|
4597
4590
|
apiBaseUrl: config.apiBaseUrl || "https://api.astrasync.ai",
|
|
4598
4591
|
apiKey: config.apiKey,
|
|
4599
|
-
defaultAccessLevel: config.defaultAccessLevel,
|
|
4600
4592
|
minTrustScore: config.minTrustScore,
|
|
4601
4593
|
minTrustScoreForFull: config.minTrustScoreForFull,
|
|
4602
4594
|
cacheTtl: config.cacheTtl,
|
|
@@ -4624,7 +4616,7 @@ function toDecision(result) {
|
|
|
4624
4616
|
if (result.identityVerified && result.policyAllowed) {
|
|
4625
4617
|
return {
|
|
4626
4618
|
recommendation: "ALLOW",
|
|
4627
|
-
reason: `Verified
|
|
4619
|
+
reason: result.agent?.trustScore ? `Verified (trust score ${result.agent.trustScore})` : "Verified",
|
|
4628
4620
|
trustScore: result.agent?.trustScore,
|
|
4629
4621
|
sessionId: "sessionId" in result ? result.sessionId : void 0
|
|
4630
4622
|
};
|