@astrasyncai/verification-gateway 4.5.0 → 4.6.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 +1 -1
- 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 +6 -1
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +6 -1
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +3 -394
- package/dist/adapters/mcp.d.ts +3 -394
- package/dist/adapters/mcp.js +6 -1
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +6 -1
- 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 +6 -1
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +6 -1
- 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 +6 -1
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +6 -1
- 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 +60 -13
- package/dist/bin/astrasync-codex-hook.js +60 -13
- package/dist/bin/astrasync-guard.js +60 -13
- package/dist/bin/astrasync.js +68 -15
- package/dist/browser/background.js +60 -13
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +60 -13
- 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 +33 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +33 -6
- 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 +60 -13
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +60 -13
- 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 +60 -13
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +60 -13
- 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 +6 -1
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +6 -1
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/{express-DaqL11tx.d.ts → express-D-8Ks2Uo.d.ts} +1 -1
- package/dist/{express-CR6F3njD.d.mts → express-DBtPKXOL.d.mts} +1 -1
- package/dist/gateway/gateway.d.mts +2 -2
- package/dist/gateway/gateway.d.ts +2 -2
- package/dist/gateway/gateway.js +60 -13
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +60 -13
- 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-BfIxCYIZ.d.ts → index-BND3kQev.d.ts} +1 -2
- package/dist/{index-CwAh7Tln.d.mts → index-CUfmJ1Dq.d.mts} +1 -2
- package/dist/{index-B5Ts1WtM.d.ts → index-DlZORQsb.d.ts} +1 -1
- package/dist/{index-Cub7lK-T.d.mts → index-kGCGWd5x.d.mts} +1 -1
- package/dist/index.d.mts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +12 -1
- 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 +22 -7
- package/dist/local-evaluator/evaluator.js.map +1 -1
- package/dist/local-evaluator/evaluator.mjs +22 -7
- package/dist/local-evaluator/evaluator.mjs.map +1 -1
- package/dist/mcp-DToTlwIn.d.ts +396 -0
- package/dist/mcp-ZRN4kY3b.d.mts +396 -0
- package/dist/{nextjs-DlX6xwbU.d.mts → nextjs-C0KASOy_.d.mts} +1 -1
- package/dist/{nextjs-DL6uE1ye.d.ts → nextjs-lwNvWYWT.d.ts} +1 -1
- package/dist/registration/index.d.mts +5 -1
- package/dist/registration/index.d.ts +5 -1
- package/dist/registration/index.js +2 -1
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +2 -1
- package/dist/registration/index.mjs.map +1 -1
- package/dist/{sdk-C6SASmsh.d.ts → sdk-B4aodEwj.d.ts} +1 -1
- package/dist/{sdk-Bbh9B_dw.d.mts → sdk-B9dSwum7.d.mts} +1 -1
- 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-DwSfO7Sb.d.ts → types-CGPU7HLi.d.ts} +8 -0
- package/dist/{types-nIh3HtuA.d.ts → types-CfSJLS4i.d.mts} +14 -1
- package/dist/{types-C0zfSXMB.d.mts → types-Cx9hTpKI.d.mts} +8 -0
- package/dist/{types-C7Rb-w0d.d.mts → types-DhhJxKIC.d.ts} +14 -1
- 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 +6 -1
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +6 -1
- package/dist/verify.mjs.map +1 -1
- package/package.json +1 -1
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-CfSJLS4i.mjs';
|
|
3
3
|
import { AstraSyncGateway } from '../gateway/gateway.mjs';
|
|
4
|
-
import '../types-
|
|
4
|
+
import '../types-Cx9hTpKI.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-DhhJxKIC.js';
|
|
3
3
|
import { AstraSyncGateway } from '../gateway/gateway.js';
|
|
4
|
-
import '../types-
|
|
4
|
+
import '../types-CGPU7HLi.js';
|
|
5
5
|
import '../metadata-capture.js';
|
|
6
6
|
|
|
7
7
|
/**
|
package/dist/codex/index.js
CHANGED
|
@@ -544,9 +544,9 @@ var LocalEvaluator = class {
|
|
|
544
544
|
if (scopeBlock) {
|
|
545
545
|
return { recommendation: "DENY", reason: scopeBlock };
|
|
546
546
|
}
|
|
547
|
-
const
|
|
548
|
-
if (
|
|
549
|
-
return
|
|
547
|
+
const limitDecision = this.checkLimits(context);
|
|
548
|
+
if (limitDecision) {
|
|
549
|
+
return limitDecision;
|
|
550
550
|
}
|
|
551
551
|
if (context.purpose === "sub_agent.spawn" && this.policy.selfInstantiation) {
|
|
552
552
|
if (!this.policy.selfInstantiation.allowed) {
|
|
@@ -611,9 +611,21 @@ var LocalEvaluator = class {
|
|
|
611
611
|
checkLimits(context) {
|
|
612
612
|
const limits = this.policy.limits;
|
|
613
613
|
if (!limits) return null;
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
614
|
+
const value = context.transactionValue;
|
|
615
|
+
if (value !== void 0 && value > 0 && (limits.autonomousThreshold !== void 0 || limits.maxTransactionAmount !== void 0)) {
|
|
616
|
+
const autonomousThreshold = limits.autonomousThreshold ?? 0;
|
|
617
|
+
const hardLimit = limits.maxTransactionAmount ?? limits.autonomousThreshold ?? 0;
|
|
618
|
+
if (value > autonomousThreshold) {
|
|
619
|
+
if (value >= hardLimit) {
|
|
620
|
+
return {
|
|
621
|
+
recommendation: "DENY",
|
|
622
|
+
reason: `Transaction value ${value} at or above Hard Limit ${hardLimit}`
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
return {
|
|
626
|
+
recommendation: "MANUAL_REVIEW",
|
|
627
|
+
reason: `Transaction value ${value} is in the human-approval band (${autonomousThreshold}, ${hardLimit})`
|
|
628
|
+
};
|
|
617
629
|
}
|
|
618
630
|
}
|
|
619
631
|
if (limits.maxRequestsPerHour !== void 0) {
|
|
@@ -626,7 +638,10 @@ var LocalEvaluator = class {
|
|
|
626
638
|
} else {
|
|
627
639
|
entry.count++;
|
|
628
640
|
if (entry.count > limits.maxRequestsPerHour) {
|
|
629
|
-
return
|
|
641
|
+
return {
|
|
642
|
+
recommendation: "DENY",
|
|
643
|
+
reason: `Rate limit exceeded: ${entry.count}/${limits.maxRequestsPerHour} requests per hour`
|
|
644
|
+
};
|
|
630
645
|
}
|
|
631
646
|
}
|
|
632
647
|
}
|
|
@@ -3835,10 +3850,16 @@ function validatePurpose(purpose, path) {
|
|
|
3835
3850
|
errors.push({ path: `${path}.targets`, message: "targets must be an array of strings" });
|
|
3836
3851
|
}
|
|
3837
3852
|
if (p.blockedPatterns !== void 0 && !isStringArray(p.blockedPatterns)) {
|
|
3838
|
-
errors.push({
|
|
3853
|
+
errors.push({
|
|
3854
|
+
path: `${path}.blockedPatterns`,
|
|
3855
|
+
message: "blockedPatterns must be an array of strings"
|
|
3856
|
+
});
|
|
3839
3857
|
}
|
|
3840
3858
|
if (p.requiresApproval !== void 0 && typeof p.requiresApproval !== "boolean") {
|
|
3841
|
-
errors.push({
|
|
3859
|
+
errors.push({
|
|
3860
|
+
path: `${path}.requiresApproval`,
|
|
3861
|
+
message: "requiresApproval must be a boolean"
|
|
3862
|
+
});
|
|
3842
3863
|
}
|
|
3843
3864
|
return errors;
|
|
3844
3865
|
}
|
|
@@ -3861,11 +3882,29 @@ function validateLimits(limits, path) {
|
|
|
3861
3882
|
return [{ path, message: "limits must be an object" }];
|
|
3862
3883
|
}
|
|
3863
3884
|
const l = limits;
|
|
3885
|
+
if (l.autonomousThreshold !== void 0 && typeof l.autonomousThreshold !== "number") {
|
|
3886
|
+
errors.push({
|
|
3887
|
+
path: `${path}.autonomousThreshold`,
|
|
3888
|
+
message: "autonomousThreshold must be a number"
|
|
3889
|
+
});
|
|
3890
|
+
}
|
|
3864
3891
|
if (l.maxTransactionAmount !== void 0 && typeof l.maxTransactionAmount !== "number") {
|
|
3865
|
-
errors.push({
|
|
3892
|
+
errors.push({
|
|
3893
|
+
path: `${path}.maxTransactionAmount`,
|
|
3894
|
+
message: "maxTransactionAmount must be a number"
|
|
3895
|
+
});
|
|
3896
|
+
}
|
|
3897
|
+
if (typeof l.autonomousThreshold === "number" && typeof l.maxTransactionAmount === "number" && l.autonomousThreshold > l.maxTransactionAmount) {
|
|
3898
|
+
errors.push({
|
|
3899
|
+
path: `${path}.autonomousThreshold`,
|
|
3900
|
+
message: "autonomousThreshold (Autonomous Limit) must be <= maxTransactionAmount (Hard Limit)"
|
|
3901
|
+
});
|
|
3866
3902
|
}
|
|
3867
3903
|
if (l.maxRequestsPerHour !== void 0 && typeof l.maxRequestsPerHour !== "number") {
|
|
3868
|
-
errors.push({
|
|
3904
|
+
errors.push({
|
|
3905
|
+
path: `${path}.maxRequestsPerHour`,
|
|
3906
|
+
message: "maxRequestsPerHour must be a number"
|
|
3907
|
+
});
|
|
3869
3908
|
}
|
|
3870
3909
|
if (l.currency !== void 0 && typeof l.currency !== "string") {
|
|
3871
3910
|
errors.push({ path: `${path}.currency`, message: "currency must be a string" });
|
|
@@ -3880,7 +3919,10 @@ function validateRiskThresholds(thresholds, path) {
|
|
|
3880
3919
|
const t = thresholds;
|
|
3881
3920
|
for (const range of ["autoAllow", "requireApproval", "autoBlock"]) {
|
|
3882
3921
|
if (!t[range] || typeof t[range] !== "object") {
|
|
3883
|
-
errors.push({
|
|
3922
|
+
errors.push({
|
|
3923
|
+
path: `${path}.${range}`,
|
|
3924
|
+
message: `${range} is required and must be an object with min and max`
|
|
3925
|
+
});
|
|
3884
3926
|
continue;
|
|
3885
3927
|
}
|
|
3886
3928
|
const r = t[range];
|
|
@@ -3985,7 +4027,7 @@ function getTrustLevel(score) {
|
|
|
3985
4027
|
}
|
|
3986
4028
|
|
|
3987
4029
|
// src/version.ts
|
|
3988
|
-
var SDK_VERSION = "4.
|
|
4030
|
+
var SDK_VERSION = "4.6.0";
|
|
3989
4031
|
|
|
3990
4032
|
// src/http.ts
|
|
3991
4033
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -4209,6 +4251,11 @@ function createGuidanceResponse(_config, reason, options = {}) {
|
|
|
4209
4251
|
// 4.0.0: typed marker so adapters render the misconfig envelope (503 +
|
|
4210
4252
|
// MERCHANT_VERIFICATION_MISCONFIGURED) without string-matching.
|
|
4211
4253
|
...isMisconfig && { misconfigured: true },
|
|
4254
|
+
// 4.6.0: a transient api_error is retryable — mark it so consumers surface
|
|
4255
|
+
// "temporarily unavailable, retry" (recommendation 'error') instead of
|
|
4256
|
+
// coercing the absent recommendation to a policy 'deny'. Misconfig is
|
|
4257
|
+
// deterministic and intentionally NOT marked retryable.
|
|
4258
|
+
...isApiError && { retryable: true },
|
|
4212
4259
|
correlationId: options.correlationId,
|
|
4213
4260
|
attemptId: options.attemptId,
|
|
4214
4261
|
verifiedAt: /* @__PURE__ */ new Date()
|