@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/cursor/extension.js
CHANGED
|
@@ -3994,7 +3994,7 @@ function getTrustLevel(score) {
|
|
|
3994
3994
|
}
|
|
3995
3995
|
|
|
3996
3996
|
// src/version.ts
|
|
3997
|
-
var SDK_VERSION = "5.
|
|
3997
|
+
var SDK_VERSION = "5.16.0";
|
|
3998
3998
|
|
|
3999
3999
|
// src/http.ts
|
|
4000
4000
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -4131,6 +4131,8 @@ function getCacheKey(request, counterpartyId) {
|
|
|
4131
4131
|
request.durationRequired ?? "",
|
|
4132
4132
|
request.invocationProtocol || "",
|
|
4133
4133
|
request.enableRuntimeChallenge ? "1" : "0",
|
|
4134
|
+
// 5.16.0: route policy changes the verdict (owners / challenge).
|
|
4135
|
+
request.routePolicy ? JSON.stringify(request.routePolicy) : "",
|
|
4134
4136
|
// callerMetadata fields contribute to risk model; include the ones
|
|
4135
4137
|
// backend reads. sourceIp/userAgent/forwardedFor change per-request
|
|
4136
4138
|
// so their inclusion effectively forces a re-check for any varying
|
|
@@ -4303,6 +4305,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4303
4305
|
if (requestData.subAgentDepth !== void 0) body.subAgentDepth = requestData.subAgentDepth;
|
|
4304
4306
|
if (requestData.enableRuntimeChallenge)
|
|
4305
4307
|
body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
|
|
4308
|
+
if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
|
|
4306
4309
|
if (requestData.createSession) body.createSession = requestData.createSession;
|
|
4307
4310
|
if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
|
|
4308
4311
|
if (requestData.counterpartyType) body.counterpartyType = requestData.counterpartyType;
|
|
@@ -4313,6 +4316,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4313
4316
|
if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
|
|
4314
4317
|
if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
|
|
4315
4318
|
if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
|
|
4319
|
+
if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
|
|
4316
4320
|
if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
|
|
4317
4321
|
if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
|
|
4318
4322
|
if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
|
|
@@ -4463,7 +4467,8 @@ async function verify(config, request, options) {
|
|
|
4463
4467
|
"[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."
|
|
4464
4468
|
);
|
|
4465
4469
|
}
|
|
4466
|
-
|
|
4470
|
+
const uncacheable = Boolean(request.commerceArtifacts);
|
|
4471
|
+
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
|
|
4467
4472
|
const cached = getCachedResult(request, mergedConfig.counterpartyId);
|
|
4468
4473
|
if (cached) {
|
|
4469
4474
|
if (mergedConfig.debug) {
|
|
@@ -4544,7 +4549,10 @@ async function verify(config, request, options) {
|
|
|
4544
4549
|
// MERCHANT caller only (bridge callers strip it before the agent plane).
|
|
4545
4550
|
settlementToken: apiResponse.settlementToken,
|
|
4546
4551
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4547
|
-
fulfilment: apiResponse.fulfilment
|
|
4552
|
+
fulfilment: apiResponse.fulfilment,
|
|
4553
|
+
mandates: apiResponse.mandates,
|
|
4554
|
+
kyaToken: apiResponse.kyaToken,
|
|
4555
|
+
aep: apiResponse.aep
|
|
4548
4556
|
};
|
|
4549
4557
|
return result2;
|
|
4550
4558
|
}
|
|
@@ -4554,7 +4562,10 @@ async function verify(config, request, options) {
|
|
|
4554
4562
|
trustScore: apiResponse.agent.trustScore,
|
|
4555
4563
|
trustLevel: getTrustLevel(apiResponse.agent.trustScore),
|
|
4556
4564
|
blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
|
|
4557
|
-
status: apiResponse.agent.agentStatus
|
|
4565
|
+
status: apiResponse.agent.agentStatus,
|
|
4566
|
+
...apiResponse.agent.protocolIdentities && {
|
|
4567
|
+
protocolIdentities: apiResponse.agent.protocolIdentities
|
|
4568
|
+
}
|
|
4558
4569
|
} : void 0;
|
|
4559
4570
|
const developer = apiResponse.developer ? {
|
|
4560
4571
|
astradId: apiResponse.developer.kyaOwnerId,
|
|
@@ -4605,7 +4616,11 @@ async function verify(config, request, options) {
|
|
|
4605
4616
|
settlementOutcome: apiResponse.settlementOutcome,
|
|
4606
4617
|
settlementToken: apiResponse.settlementToken,
|
|
4607
4618
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4608
|
-
fulfilment: apiResponse.fulfilment
|
|
4619
|
+
fulfilment: apiResponse.fulfilment,
|
|
4620
|
+
// 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
|
|
4621
|
+
mandates: apiResponse.mandates,
|
|
4622
|
+
kyaToken: apiResponse.kyaToken,
|
|
4623
|
+
aep: apiResponse.aep
|
|
4609
4624
|
};
|
|
4610
4625
|
if (result.recommendation === "deny") {
|
|
4611
4626
|
result.policyAllowed = false;
|
|
@@ -4625,7 +4640,9 @@ async function verify(config, request, options) {
|
|
|
4625
4640
|
}
|
|
4626
4641
|
const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
|
|
4627
4642
|
if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
|
|
4628
|
-
|
|
4643
|
+
if (!uncacheable) {
|
|
4644
|
+
cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
|
|
4645
|
+
}
|
|
4629
4646
|
}
|
|
4630
4647
|
return result;
|
|
4631
4648
|
}
|
|
@@ -4636,6 +4653,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
|
|
|
4636
4653
|
// src/metadata-capture.ts
|
|
4637
4654
|
var MAX_TOTAL_BYTES = 16 * 1024;
|
|
4638
4655
|
|
|
4656
|
+
// src/adapters/commerce-detect.ts
|
|
4657
|
+
var MAX_BODY_BYTES = 64 * 1024;
|
|
4658
|
+
|
|
4639
4659
|
// src/edge-config.ts
|
|
4640
4660
|
var DEFAULT_EDGE_CONFIG = Object.freeze({
|
|
4641
4661
|
version: 1,
|
|
@@ -4945,6 +4965,33 @@ var import_node_crypto4 = require("crypto");
|
|
|
4945
4965
|
// src/transport/registry/visa.ts
|
|
4946
4966
|
var import_jose = require("jose");
|
|
4947
4967
|
|
|
4968
|
+
// src/ucp/profile.ts
|
|
4969
|
+
var UCP_VERSION = "2026-08-25";
|
|
4970
|
+
var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
|
|
4971
|
+
var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
|
|
4972
|
+
|
|
4973
|
+
// src/ucp/signatures.ts
|
|
4974
|
+
var import_http_message_signatures3 = require("http-message-signatures");
|
|
4975
|
+
|
|
4976
|
+
// src/http-signatures/sign.ts
|
|
4977
|
+
var import_http_message_signatures2 = require("http-message-signatures");
|
|
4978
|
+
|
|
4979
|
+
// src/ucp/checkout-kit.ts
|
|
4980
|
+
var import_jose3 = require("jose");
|
|
4981
|
+
|
|
4982
|
+
// src/mandates/sd-jwt.ts
|
|
4983
|
+
var import_jose2 = require("jose");
|
|
4984
|
+
|
|
4985
|
+
// src/idempotency/index.ts
|
|
4986
|
+
var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
4987
|
+
|
|
4988
|
+
// src/payments/kyapay.ts
|
|
4989
|
+
var import_jose4 = require("jose");
|
|
4990
|
+
|
|
4991
|
+
// src/aep/core.ts
|
|
4992
|
+
var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
|
|
4993
|
+
var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
4994
|
+
|
|
4948
4995
|
// src/gateway/modes/online.ts
|
|
4949
4996
|
function toGatewayConfig(config) {
|
|
4950
4997
|
return {
|
|
@@ -5656,7 +5703,7 @@ async function sendHeartbeat(enrolment, request, timeoutMs = 1500) {
|
|
|
5656
5703
|
|
|
5657
5704
|
// src/fleet/policy-verify.ts
|
|
5658
5705
|
var import_crypto = require("crypto");
|
|
5659
|
-
var
|
|
5706
|
+
var import_jose5 = require("jose");
|
|
5660
5707
|
|
|
5661
5708
|
// src/fleet/types.ts
|
|
5662
5709
|
var FLEET_POLICY_TYP = "fleet-policy+jwt";
|
|
@@ -5705,8 +5752,8 @@ async function verifyFleetPolicy(jws, jwks, options) {
|
|
|
5705
5752
|
let payloadBytes;
|
|
5706
5753
|
let header;
|
|
5707
5754
|
try {
|
|
5708
|
-
const keySet = (0,
|
|
5709
|
-
const result = await (0,
|
|
5755
|
+
const keySet = (0, import_jose5.createLocalJWKSet)(jwks);
|
|
5756
|
+
const result = await (0, import_jose5.compactVerify)(jws, keySet, { algorithms: ["ES256"] });
|
|
5710
5757
|
payloadBytes = result.payload;
|
|
5711
5758
|
header = result.protectedHeader;
|
|
5712
5759
|
} catch (err) {
|
|
@@ -5752,9 +5799,9 @@ async function resolveFleetJwks(pinned, chain, ownerId) {
|
|
|
5752
5799
|
let lastSeq = 0;
|
|
5753
5800
|
for (const link of chain) {
|
|
5754
5801
|
try {
|
|
5755
|
-
const { payload, protectedHeader } = await (0,
|
|
5802
|
+
const { payload, protectedHeader } = await (0, import_jose5.compactVerify)(
|
|
5756
5803
|
link,
|
|
5757
|
-
(0,
|
|
5804
|
+
(0, import_jose5.createLocalJWKSet)(trusted),
|
|
5758
5805
|
{ algorithms: ["ES256"] }
|
|
5759
5806
|
);
|
|
5760
5807
|
if (protectedHeader.typ !== FLEET_KEYS_TYP) continue;
|