@astrasyncai/verification-gateway 5.14.0 → 5.16.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 +36 -18
- package/dist/adapters/express.d.mts +1 -1
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.js +492 -240
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +492 -240
- 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 +23 -6
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +23 -6
- package/dist/adapters/mcp.mjs.map +1 -1
- package/dist/adapters/nextjs.d.mts +1 -1
- package/dist/adapters/nextjs.d.ts +1 -1
- package/dist/adapters/nextjs.js +475 -239
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +475 -239
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +18 -10
- package/dist/adapters/sdk.d.ts +18 -10
- package/dist/adapters/sdk.js +83 -23
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +83 -23
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.d.mts +69 -54
- package/dist/agent/index.d.ts +69 -54
- package/dist/agent/index.js +24 -14
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/index.mjs +24 -14
- package/dist/agent/index.mjs.map +1 -1
- package/dist/bin/astrasync-claude-hook.js +58 -11
- package/dist/bin/astrasync-codex-hook.js +58 -11
- package/dist/bin/astrasync-guard.js +177 -11
- package/dist/bin/astrasync.js +433 -38
- package/dist/browser/background.js +53 -6
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +63 -6
- package/dist/browser/background.mjs.map +1 -1
- 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.js +58 -11
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +68 -11
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/extension.js +58 -11
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +68 -11
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/edge-config.d.mts +31 -2
- package/dist/edge-config.d.ts +31 -2
- package/dist/edge-config.js +35 -5
- package/dist/edge-config.js.map +1 -1
- package/dist/edge-config.mjs +32 -4
- package/dist/edge-config.mjs.map +1 -1
- package/dist/edge-core/index.d.mts +11 -2
- package/dist/edge-core/index.d.ts +11 -2
- package/dist/edge-core/index.js +97 -11
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +95 -11
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/gateway/gateway.js +53 -6
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +63 -6
- package/dist/gateway/gateway.mjs.map +1 -1
- package/dist/git-trigger/git-hooks.d.mts +1 -1
- package/dist/git-trigger/git-hooks.d.ts +1 -1
- package/dist/index.d.mts +1407 -88
- package/dist/index.d.ts +1407 -88
- package/dist/index.js +5148 -2616
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5094 -2618
- package/dist/index.mjs.map +1 -1
- package/dist/registration/index.d.mts +28 -2
- package/dist/registration/index.d.ts +28 -2
- package/dist/registration/index.js +18 -3
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +15 -2
- package/dist/registration/index.mjs.map +1 -1
- package/dist/transport/index.d.mts +7 -5
- package/dist/transport/index.d.ts +7 -5
- package/dist/transport/index.js +61 -5
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +67 -11
- package/dist/transport/index.mjs.map +1 -1
- package/dist/{types-BCkwBA84.d.mts → types-Blz520bR.d.mts} +116 -12
- package/dist/{types-BCkwBA84.d.ts → types-Blz520bR.d.ts} +116 -12
- package/dist/{types-C_b4QTyO.d.ts → types-Bm1QvGqI.d.ts} +114 -10
- package/dist/{types-DlshIIR-.d.mts → types-DBe4hgfT.d.mts} +114 -10
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/verify.d.mts +1 -1
- package/dist/verify.d.ts +1 -1
- package/dist/verify.js +23 -6
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +23 -6
- package/dist/verify.mjs.map +1 -1
- package/package.json +1 -1
package/dist/codex/index.js
CHANGED
|
@@ -4036,7 +4036,7 @@ function getTrustLevel(score) {
|
|
|
4036
4036
|
}
|
|
4037
4037
|
|
|
4038
4038
|
// src/version.ts
|
|
4039
|
-
var SDK_VERSION = "5.
|
|
4039
|
+
var SDK_VERSION = "5.16.0";
|
|
4040
4040
|
|
|
4041
4041
|
// src/http.ts
|
|
4042
4042
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -4173,6 +4173,8 @@ function getCacheKey(request, counterpartyId) {
|
|
|
4173
4173
|
request.durationRequired ?? "",
|
|
4174
4174
|
request.invocationProtocol || "",
|
|
4175
4175
|
request.enableRuntimeChallenge ? "1" : "0",
|
|
4176
|
+
// 5.16.0: route policy changes the verdict (owners / challenge).
|
|
4177
|
+
request.routePolicy ? JSON.stringify(request.routePolicy) : "",
|
|
4176
4178
|
// callerMetadata fields contribute to risk model; include the ones
|
|
4177
4179
|
// backend reads. sourceIp/userAgent/forwardedFor change per-request
|
|
4178
4180
|
// so their inclusion effectively forces a re-check for any varying
|
|
@@ -4345,6 +4347,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4345
4347
|
if (requestData.subAgentDepth !== void 0) body.subAgentDepth = requestData.subAgentDepth;
|
|
4346
4348
|
if (requestData.enableRuntimeChallenge)
|
|
4347
4349
|
body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
|
|
4350
|
+
if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
|
|
4348
4351
|
if (requestData.createSession) body.createSession = requestData.createSession;
|
|
4349
4352
|
if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
|
|
4350
4353
|
if (requestData.counterpartyType) body.counterpartyType = requestData.counterpartyType;
|
|
@@ -4355,6 +4358,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4355
4358
|
if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
|
|
4356
4359
|
if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
|
|
4357
4360
|
if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
|
|
4361
|
+
if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
|
|
4358
4362
|
if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
|
|
4359
4363
|
if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
|
|
4360
4364
|
if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
|
|
@@ -4505,7 +4509,8 @@ async function verify(config, request, options) {
|
|
|
4505
4509
|
"[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."
|
|
4506
4510
|
);
|
|
4507
4511
|
}
|
|
4508
|
-
|
|
4512
|
+
const uncacheable = Boolean(request.commerceArtifacts);
|
|
4513
|
+
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
|
|
4509
4514
|
const cached = getCachedResult(request, mergedConfig.counterpartyId);
|
|
4510
4515
|
if (cached) {
|
|
4511
4516
|
if (mergedConfig.debug) {
|
|
@@ -4586,7 +4591,10 @@ async function verify(config, request, options) {
|
|
|
4586
4591
|
// MERCHANT caller only (bridge callers strip it before the agent plane).
|
|
4587
4592
|
settlementToken: apiResponse.settlementToken,
|
|
4588
4593
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4589
|
-
fulfilment: apiResponse.fulfilment
|
|
4594
|
+
fulfilment: apiResponse.fulfilment,
|
|
4595
|
+
mandates: apiResponse.mandates,
|
|
4596
|
+
kyaToken: apiResponse.kyaToken,
|
|
4597
|
+
aep: apiResponse.aep
|
|
4590
4598
|
};
|
|
4591
4599
|
return result2;
|
|
4592
4600
|
}
|
|
@@ -4596,7 +4604,10 @@ async function verify(config, request, options) {
|
|
|
4596
4604
|
trustScore: apiResponse.agent.trustScore,
|
|
4597
4605
|
trustLevel: getTrustLevel(apiResponse.agent.trustScore),
|
|
4598
4606
|
blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
|
|
4599
|
-
status: apiResponse.agent.agentStatus
|
|
4607
|
+
status: apiResponse.agent.agentStatus,
|
|
4608
|
+
...apiResponse.agent.protocolIdentities && {
|
|
4609
|
+
protocolIdentities: apiResponse.agent.protocolIdentities
|
|
4610
|
+
}
|
|
4600
4611
|
} : void 0;
|
|
4601
4612
|
const developer = apiResponse.developer ? {
|
|
4602
4613
|
astradId: apiResponse.developer.kyaOwnerId,
|
|
@@ -4647,7 +4658,11 @@ async function verify(config, request, options) {
|
|
|
4647
4658
|
settlementOutcome: apiResponse.settlementOutcome,
|
|
4648
4659
|
settlementToken: apiResponse.settlementToken,
|
|
4649
4660
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4650
|
-
fulfilment: apiResponse.fulfilment
|
|
4661
|
+
fulfilment: apiResponse.fulfilment,
|
|
4662
|
+
// 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
|
|
4663
|
+
mandates: apiResponse.mandates,
|
|
4664
|
+
kyaToken: apiResponse.kyaToken,
|
|
4665
|
+
aep: apiResponse.aep
|
|
4651
4666
|
};
|
|
4652
4667
|
if (result.recommendation === "deny") {
|
|
4653
4668
|
result.policyAllowed = false;
|
|
@@ -4667,7 +4682,9 @@ async function verify(config, request, options) {
|
|
|
4667
4682
|
}
|
|
4668
4683
|
const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
|
|
4669
4684
|
if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
|
|
4670
|
-
|
|
4685
|
+
if (!uncacheable) {
|
|
4686
|
+
cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
|
|
4687
|
+
}
|
|
4671
4688
|
}
|
|
4672
4689
|
return result;
|
|
4673
4690
|
}
|
|
@@ -4678,6 +4695,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
|
|
|
4678
4695
|
// src/metadata-capture.ts
|
|
4679
4696
|
var MAX_TOTAL_BYTES = 16 * 1024;
|
|
4680
4697
|
|
|
4698
|
+
// src/adapters/commerce-detect.ts
|
|
4699
|
+
var MAX_BODY_BYTES = 64 * 1024;
|
|
4700
|
+
|
|
4681
4701
|
// src/edge-config.ts
|
|
4682
4702
|
var DEFAULT_EDGE_CONFIG = Object.freeze({
|
|
4683
4703
|
version: 1,
|
|
@@ -4987,6 +5007,33 @@ var import_node_crypto4 = require("crypto");
|
|
|
4987
5007
|
// src/transport/registry/visa.ts
|
|
4988
5008
|
var import_jose = require("jose");
|
|
4989
5009
|
|
|
5010
|
+
// src/ucp/profile.ts
|
|
5011
|
+
var UCP_VERSION = "2026-08-25";
|
|
5012
|
+
var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
|
|
5013
|
+
var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
|
|
5014
|
+
|
|
5015
|
+
// src/ucp/signatures.ts
|
|
5016
|
+
var import_http_message_signatures3 = require("http-message-signatures");
|
|
5017
|
+
|
|
5018
|
+
// src/http-signatures/sign.ts
|
|
5019
|
+
var import_http_message_signatures2 = require("http-message-signatures");
|
|
5020
|
+
|
|
5021
|
+
// src/ucp/checkout-kit.ts
|
|
5022
|
+
var import_jose3 = require("jose");
|
|
5023
|
+
|
|
5024
|
+
// src/mandates/sd-jwt.ts
|
|
5025
|
+
var import_jose2 = require("jose");
|
|
5026
|
+
|
|
5027
|
+
// src/idempotency/index.ts
|
|
5028
|
+
var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
5029
|
+
|
|
5030
|
+
// src/payments/kyapay.ts
|
|
5031
|
+
var import_jose4 = require("jose");
|
|
5032
|
+
|
|
5033
|
+
// src/aep/core.ts
|
|
5034
|
+
var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
|
|
5035
|
+
var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
5036
|
+
|
|
4990
5037
|
// src/gateway/modes/online.ts
|
|
4991
5038
|
function toGatewayConfig(config) {
|
|
4992
5039
|
return {
|
|
@@ -5724,7 +5771,7 @@ async function sendHeartbeat(enrolment, request, timeoutMs = 1500) {
|
|
|
5724
5771
|
|
|
5725
5772
|
// src/fleet/policy-verify.ts
|
|
5726
5773
|
var import_crypto = require("crypto");
|
|
5727
|
-
var
|
|
5774
|
+
var import_jose5 = require("jose");
|
|
5728
5775
|
|
|
5729
5776
|
// src/fleet/types.ts
|
|
5730
5777
|
var FLEET_POLICY_TYP = "fleet-policy+jwt";
|
|
@@ -5773,8 +5820,8 @@ async function verifyFleetPolicy(jws, jwks, options) {
|
|
|
5773
5820
|
let payloadBytes;
|
|
5774
5821
|
let header;
|
|
5775
5822
|
try {
|
|
5776
|
-
const keySet = (0,
|
|
5777
|
-
const result = await (0,
|
|
5823
|
+
const keySet = (0, import_jose5.createLocalJWKSet)(jwks);
|
|
5824
|
+
const result = await (0, import_jose5.compactVerify)(jws, keySet, { algorithms: ["ES256"] });
|
|
5778
5825
|
payloadBytes = result.payload;
|
|
5779
5826
|
header = result.protectedHeader;
|
|
5780
5827
|
} catch (err) {
|
|
@@ -5820,9 +5867,9 @@ async function resolveFleetJwks(pinned, chain, ownerId) {
|
|
|
5820
5867
|
let lastSeq = 0;
|
|
5821
5868
|
for (const link of chain) {
|
|
5822
5869
|
try {
|
|
5823
|
-
const { payload, protectedHeader } = await (0,
|
|
5870
|
+
const { payload, protectedHeader } = await (0, import_jose5.compactVerify)(
|
|
5824
5871
|
link,
|
|
5825
|
-
(0,
|
|
5872
|
+
(0, import_jose5.createLocalJWKSet)(trusted),
|
|
5826
5873
|
{ algorithms: ["ES256"] }
|
|
5827
5874
|
);
|
|
5828
5875
|
if (protectedHeader.typ !== FLEET_KEYS_TYP) continue;
|