@astrasyncai/verification-gateway 5.18.0 → 5.19.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/CHANGELOG.md +178 -0
- package/README.md +168 -4
- package/dist/adapters/express.d.mts +9 -1
- package/dist/adapters/express.d.ts +9 -1
- package/dist/adapters/express.js +96 -37
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +96 -37
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/http-pdlss.d.mts +7 -1
- package/dist/adapters/http-pdlss.d.ts +7 -1
- package/dist/adapters/http-pdlss.js +18 -2
- package/dist/adapters/http-pdlss.js.map +1 -1
- package/dist/adapters/http-pdlss.mjs +16 -1
- package/dist/adapters/http-pdlss.mjs.map +1 -1
- package/dist/adapters/kit-express.d.mts +93 -1
- package/dist/adapters/kit-express.d.ts +93 -1
- package/dist/adapters/kit-express.js +181 -2
- package/dist/adapters/kit-express.js.map +1 -1
- package/dist/adapters/kit-express.mjs +180 -2
- package/dist/adapters/kit-express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +80 -9
- package/dist/adapters/mcp.d.ts +80 -9
- package/dist/adapters/mcp.js +153 -5
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +151 -5
- 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 +41 -4
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +41 -4
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +44 -1
- package/dist/adapters/sdk.d.ts +44 -1
- package/dist/adapters/sdk.js +76 -2
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +76 -2
- package/dist/adapters/sdk.mjs.map +1 -1
- 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 +46 -6
- package/dist/bin/astrasync-codex-hook.js +46 -6
- package/dist/bin/astrasync-guard.js +375 -117
- package/dist/bin/astrasync.js +417 -117
- package/dist/browser/background.js +46 -6
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +46 -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 +46 -6
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +46 -6
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/extension.js +46 -6
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +46 -6
- 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 +1 -1
- package/dist/edge-core/index.d.ts +1 -1
- package/dist/edge-core/index.js +21 -2
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +21 -2
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/gateway/gateway.js +46 -6
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +46 -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 +542 -30
- package/dist/index.d.ts +542 -30
- package/dist/index.js +1171 -183
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1157 -173
- package/dist/index.mjs.map +1 -1
- package/dist/registration/index.d.mts +1 -1
- package/dist/registration/index.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/transport/index.js +3 -2
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +3 -2
- package/dist/transport/index.mjs.map +1 -1
- package/dist/{types-3ObBpsnf.d.mts → types-BoGjyon0.d.mts} +81 -2
- package/dist/{types-Cns4l8gX.d.mts → types-DqWPkiYl.d.mts} +90 -12
- package/dist/{types-Cns4l8gX.d.ts → types-DqWPkiYl.d.ts} +90 -12
- package/dist/{types-BoxZEYPS.d.ts → types-eWyZuz-3.d.ts} +81 -2
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/verify.d.mts +23 -2
- package/dist/verify.d.ts +23 -2
- package/dist/verify.js +23 -4
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +23 -4
- package/dist/verify.mjs.map +1 -1
- package/dist/webhooks.d.mts +16 -3
- package/dist/webhooks.d.ts +16 -3
- package/dist/webhooks.js +24 -13
- package/dist/webhooks.js.map +1 -1
- package/dist/webhooks.mjs +24 -13
- package/dist/webhooks.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -3752,7 +3752,7 @@ function getTrustLevel(score) {
|
|
|
3752
3752
|
}
|
|
3753
3753
|
|
|
3754
3754
|
// src/version.ts
|
|
3755
|
-
var SDK_VERSION = "5.
|
|
3755
|
+
var SDK_VERSION = "5.19.0";
|
|
3756
3756
|
|
|
3757
3757
|
// src/http.ts
|
|
3758
3758
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -3907,7 +3907,12 @@ function getCacheKey(request, counterpartyId) {
|
|
|
3907
3907
|
// its start_checkout quote was served the cached quote-leg grant (no
|
|
3908
3908
|
// settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
|
|
3909
3909
|
request.commercePhase || "",
|
|
3910
|
-
request.checkoutSessionId || ""
|
|
3910
|
+
request.checkoutSessionId || "",
|
|
3911
|
+
// 5.19.0: a route_config purpose claim is checked server-side against
|
|
3912
|
+
// the stored rule for this method + path, so it changes the verdict.
|
|
3913
|
+
request.purposeSource || "",
|
|
3914
|
+
request.requestMethod || "",
|
|
3915
|
+
request.requestPath || ""
|
|
3911
3916
|
].join("|");
|
|
3912
3917
|
}
|
|
3913
3918
|
function getCachedResult(request, counterpartyId) {
|
|
@@ -4081,6 +4086,11 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4081
4086
|
if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
|
|
4082
4087
|
if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
|
|
4083
4088
|
if (requestData.attemptId) body.attemptId = requestData.attemptId;
|
|
4089
|
+
if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
|
|
4090
|
+
if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
|
|
4091
|
+
if (requestData.metadata) body.metadata = requestData.metadata;
|
|
4092
|
+
if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
|
|
4093
|
+
if (requestData.requestPath) body.requestPath = requestData.requestPath;
|
|
4084
4094
|
if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
|
|
4085
4095
|
body.sdkVersion = SDK_VERSION;
|
|
4086
4096
|
if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
|
|
@@ -4270,9 +4280,18 @@ async function verify(config, request, options) {
|
|
|
4270
4280
|
if (!apiResponse.access?.allowed) {
|
|
4271
4281
|
const aggregatedFailures = apiResponse.access?.failures;
|
|
4272
4282
|
const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
|
|
4283
|
+
const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
|
|
4284
|
+
astraId: apiResponse.agent.astraId,
|
|
4285
|
+
name: apiResponse.agent.name,
|
|
4286
|
+
trustScore: apiResponse.agent.trustScore,
|
|
4287
|
+
trustLevel: getTrustLevel(apiResponse.agent.trustScore),
|
|
4288
|
+
blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
|
|
4289
|
+
status: apiResponse.agent.agentStatus
|
|
4290
|
+
} : void 0;
|
|
4273
4291
|
const result2 = {
|
|
4274
4292
|
identityVerified: idVerifiedFromBackend,
|
|
4275
4293
|
policyAllowed: false,
|
|
4294
|
+
...denyAgent && { agent: denyAgent },
|
|
4276
4295
|
// 3.6.0: the server now emits top-level denialReasons on every deny
|
|
4277
4296
|
// path — prefer it verbatim; the failure-message reconstruction remains
|
|
4278
4297
|
// as the fallback for older backends.
|
|
@@ -4418,6 +4437,9 @@ var MAX_TOTAL_BYTES = 16 * 1024;
|
|
|
4418
4437
|
// src/adapters/commerce-detect.ts
|
|
4419
4438
|
var MAX_BODY_BYTES = 64 * 1024;
|
|
4420
4439
|
|
|
4440
|
+
// src/adapters/routes-cache.ts
|
|
4441
|
+
var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
|
|
4442
|
+
|
|
4421
4443
|
// src/edge-config.ts
|
|
4422
4444
|
var DEFAULT_EDGE_CONFIG = Object.freeze({
|
|
4423
4445
|
version: 1,
|
|
@@ -4659,9 +4681,6 @@ var BeaconBuffer = class {
|
|
|
4659
4681
|
};
|
|
4660
4682
|
var beaconBuffer = new BeaconBuffer();
|
|
4661
4683
|
|
|
4662
|
-
// src/adapters/express.ts
|
|
4663
|
-
var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
|
|
4664
|
-
|
|
4665
4684
|
// src/adapters/nextjs.ts
|
|
4666
4685
|
var DEFAULT_ROUTES_REFRESH_MS2 = 5 * 60 * 1e3;
|
|
4667
4686
|
|
|
@@ -4747,6 +4766,25 @@ var import_jose2 = require("jose");
|
|
|
4747
4766
|
// src/idempotency/index.ts
|
|
4748
4767
|
var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
4749
4768
|
|
|
4769
|
+
// src/ucp/approval-events.ts
|
|
4770
|
+
var MemorySeenEvents = class {
|
|
4771
|
+
constructor(max = 1e4) {
|
|
4772
|
+
this.max = max;
|
|
4773
|
+
this.ids = /* @__PURE__ */ new Set();
|
|
4774
|
+
}
|
|
4775
|
+
async has(eventId) {
|
|
4776
|
+
return this.ids.has(eventId);
|
|
4777
|
+
}
|
|
4778
|
+
async add(eventId) {
|
|
4779
|
+
if (this.ids.size >= this.max) {
|
|
4780
|
+
const first = this.ids.values().next().value;
|
|
4781
|
+
if (first !== void 0) this.ids.delete(first);
|
|
4782
|
+
}
|
|
4783
|
+
this.ids.add(eventId);
|
|
4784
|
+
}
|
|
4785
|
+
};
|
|
4786
|
+
var defaultSeen = new MemorySeenEvents();
|
|
4787
|
+
|
|
4750
4788
|
// src/payments/kyapay.ts
|
|
4751
4789
|
var import_jose4 = require("jose");
|
|
4752
4790
|
|
|
@@ -4786,7 +4824,9 @@ function toDecision(result) {
|
|
|
4786
4824
|
if (result.identityVerified && result.policyAllowed) {
|
|
4787
4825
|
return {
|
|
4788
4826
|
recommendation: "ALLOW",
|
|
4789
|
-
|
|
4827
|
+
// 5.19.0: the score is on `trustScore` for the merchant; `reason` is
|
|
4828
|
+
// text a merchant may relay to the agent, so it never embeds the number.
|
|
4829
|
+
reason: "Verified",
|
|
4790
4830
|
trustScore: result.agent?.trustScore,
|
|
4791
4831
|
sessionId: "sessionId" in result ? result.sessionId : void 0
|
|
4792
4832
|
};
|
|
@@ -3751,7 +3751,7 @@ function getTrustLevel(score) {
|
|
|
3751
3751
|
}
|
|
3752
3752
|
|
|
3753
3753
|
// src/version.ts
|
|
3754
|
-
var SDK_VERSION = "5.
|
|
3754
|
+
var SDK_VERSION = "5.19.0";
|
|
3755
3755
|
|
|
3756
3756
|
// src/http.ts
|
|
3757
3757
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -3906,7 +3906,12 @@ function getCacheKey(request, counterpartyId) {
|
|
|
3906
3906
|
// its start_checkout quote was served the cached quote-leg grant (no
|
|
3907
3907
|
// settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
|
|
3908
3908
|
request.commercePhase || "",
|
|
3909
|
-
request.checkoutSessionId || ""
|
|
3909
|
+
request.checkoutSessionId || "",
|
|
3910
|
+
// 5.19.0: a route_config purpose claim is checked server-side against
|
|
3911
|
+
// the stored rule for this method + path, so it changes the verdict.
|
|
3912
|
+
request.purposeSource || "",
|
|
3913
|
+
request.requestMethod || "",
|
|
3914
|
+
request.requestPath || ""
|
|
3910
3915
|
].join("|");
|
|
3911
3916
|
}
|
|
3912
3917
|
function getCachedResult(request, counterpartyId) {
|
|
@@ -4080,6 +4085,11 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4080
4085
|
if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
|
|
4081
4086
|
if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
|
|
4082
4087
|
if (requestData.attemptId) body.attemptId = requestData.attemptId;
|
|
4088
|
+
if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
|
|
4089
|
+
if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
|
|
4090
|
+
if (requestData.metadata) body.metadata = requestData.metadata;
|
|
4091
|
+
if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
|
|
4092
|
+
if (requestData.requestPath) body.requestPath = requestData.requestPath;
|
|
4083
4093
|
if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
|
|
4084
4094
|
body.sdkVersion = SDK_VERSION;
|
|
4085
4095
|
if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
|
|
@@ -4269,9 +4279,18 @@ async function verify(config, request, options) {
|
|
|
4269
4279
|
if (!apiResponse.access?.allowed) {
|
|
4270
4280
|
const aggregatedFailures = apiResponse.access?.failures;
|
|
4271
4281
|
const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
|
|
4282
|
+
const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
|
|
4283
|
+
astraId: apiResponse.agent.astraId,
|
|
4284
|
+
name: apiResponse.agent.name,
|
|
4285
|
+
trustScore: apiResponse.agent.trustScore,
|
|
4286
|
+
trustLevel: getTrustLevel(apiResponse.agent.trustScore),
|
|
4287
|
+
blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
|
|
4288
|
+
status: apiResponse.agent.agentStatus
|
|
4289
|
+
} : void 0;
|
|
4272
4290
|
const result2 = {
|
|
4273
4291
|
identityVerified: idVerifiedFromBackend,
|
|
4274
4292
|
policyAllowed: false,
|
|
4293
|
+
...denyAgent && { agent: denyAgent },
|
|
4275
4294
|
// 3.6.0: the server now emits top-level denialReasons on every deny
|
|
4276
4295
|
// path — prefer it verbatim; the failure-message reconstruction remains
|
|
4277
4296
|
// as the fallback for older backends.
|
|
@@ -4417,6 +4436,9 @@ var MAX_TOTAL_BYTES = 16 * 1024;
|
|
|
4417
4436
|
// src/adapters/commerce-detect.ts
|
|
4418
4437
|
var MAX_BODY_BYTES = 64 * 1024;
|
|
4419
4438
|
|
|
4439
|
+
// src/adapters/routes-cache.ts
|
|
4440
|
+
var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
|
|
4441
|
+
|
|
4420
4442
|
// src/edge-config.ts
|
|
4421
4443
|
var DEFAULT_EDGE_CONFIG = Object.freeze({
|
|
4422
4444
|
version: 1,
|
|
@@ -4658,9 +4680,6 @@ var BeaconBuffer = class {
|
|
|
4658
4680
|
};
|
|
4659
4681
|
var beaconBuffer = new BeaconBuffer();
|
|
4660
4682
|
|
|
4661
|
-
// src/adapters/express.ts
|
|
4662
|
-
var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
|
|
4663
|
-
|
|
4664
4683
|
// src/adapters/nextjs.ts
|
|
4665
4684
|
var DEFAULT_ROUTES_REFRESH_MS2 = 5 * 60 * 1e3;
|
|
4666
4685
|
|
|
@@ -4746,6 +4765,25 @@ var import_jose2 = require("jose");
|
|
|
4746
4765
|
// src/idempotency/index.ts
|
|
4747
4766
|
var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
4748
4767
|
|
|
4768
|
+
// src/ucp/approval-events.ts
|
|
4769
|
+
var MemorySeenEvents = class {
|
|
4770
|
+
constructor(max = 1e4) {
|
|
4771
|
+
this.max = max;
|
|
4772
|
+
this.ids = /* @__PURE__ */ new Set();
|
|
4773
|
+
}
|
|
4774
|
+
async has(eventId) {
|
|
4775
|
+
return this.ids.has(eventId);
|
|
4776
|
+
}
|
|
4777
|
+
async add(eventId) {
|
|
4778
|
+
if (this.ids.size >= this.max) {
|
|
4779
|
+
const first = this.ids.values().next().value;
|
|
4780
|
+
if (first !== void 0) this.ids.delete(first);
|
|
4781
|
+
}
|
|
4782
|
+
this.ids.add(eventId);
|
|
4783
|
+
}
|
|
4784
|
+
};
|
|
4785
|
+
var defaultSeen = new MemorySeenEvents();
|
|
4786
|
+
|
|
4749
4787
|
// src/payments/kyapay.ts
|
|
4750
4788
|
var import_jose4 = require("jose");
|
|
4751
4789
|
|
|
@@ -4785,7 +4823,9 @@ function toDecision(result) {
|
|
|
4785
4823
|
if (result.identityVerified && result.policyAllowed) {
|
|
4786
4824
|
return {
|
|
4787
4825
|
recommendation: "ALLOW",
|
|
4788
|
-
|
|
4826
|
+
// 5.19.0: the score is on `trustScore` for the merchant; `reason` is
|
|
4827
|
+
// text a merchant may relay to the agent, so it never embeds the number.
|
|
4828
|
+
reason: "Verified",
|
|
4789
4829
|
trustScore: result.agent?.trustScore,
|
|
4790
4830
|
sessionId: "sessionId" in result ? result.sessionId : void 0
|
|
4791
4831
|
};
|