@belticlabs/agent-risk-sdk 0.1.1 → 0.3.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-BEpzr2R3.d.ts +29 -0
- package/dist/ai/index.d.ts +5 -5
- package/dist/ai/index.js +48 -36
- package/dist/chunk-4MG6VNAU.js +276 -0
- package/dist/chunk-FAQ442YH.js +24 -0
- package/dist/{chunk-U5Z5Z2BQ.js → chunk-LM4NIYE5.js} +26 -20
- package/dist/chunk-NJVO2WIV.js +17 -0
- package/dist/{chunk-W2OY7QXV.js → chunk-OKC6VMFH.js} +15 -26
- package/dist/{chunk-SFGM7KOG.js → chunk-X3W2Z5GC.js} +3 -0
- package/dist/index.d.ts +19 -9
- package/dist/index.js +354 -161
- package/dist/mcp/index.d.ts +3 -5
- package/dist/mcp/index.js +42 -34
- package/dist/middleware-9gI0ou2i.d.ts +15 -0
- package/dist/protocol/index.d.ts +2 -3
- package/dist/seller/anti-fraud-gateway.d.ts +11 -4
- package/dist/seller/anti-fraud-gateway.js +13 -14
- package/dist/session-DsBWEP8d.d.ts +485 -0
- package/dist/{index-Bjs3BPPU.d.ts → verdict-6vCyoAHE.d.ts} +25 -1
- package/dist/x402/express.d.ts +4 -6
- package/dist/x402/express.js +8 -7
- package/dist/x402/hono.d.ts +4 -6
- package/dist/x402/hono.js +8 -7
- package/dist/x402/index.d.ts +80 -19
- package/dist/x402/index.js +109 -35
- package/package.json +1 -1
- package/dist/chunk-5TWO73OD.js +0 -35
- package/dist/chunk-VM7MK43J.js +0 -13
- package/dist/client-NxpD_384.d.ts +0 -64
- package/dist/middleware-D-ejQIoE.d.ts +0 -40
- package/dist/session-B2mfurae.d.ts +0 -196
- package/dist/verdict-BAahb5po.d.ts +0 -26
package/dist/mcp/index.js
CHANGED
|
@@ -1,52 +1,58 @@
|
|
|
1
1
|
import {
|
|
2
|
+
Sessions,
|
|
2
3
|
recordCall
|
|
3
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4MG6VNAU.js";
|
|
4
5
|
import {
|
|
5
6
|
SESSION_EXTENSION
|
|
6
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-FAQ442YH.js";
|
|
7
8
|
import {
|
|
8
9
|
uuidv7
|
|
9
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-X3W2Z5GC.js";
|
|
10
11
|
import {
|
|
11
|
-
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
Verdict
|
|
13
|
+
} from "../chunk-46QN2KEZ.js";
|
|
13
14
|
import {
|
|
14
15
|
presentedFrom
|
|
15
16
|
} from "../chunk-7G5EHNVW.js";
|
|
17
|
+
import {
|
|
18
|
+
x402Moments
|
|
19
|
+
} from "../chunk-LM4NIYE5.js";
|
|
16
20
|
import {
|
|
17
21
|
toJson,
|
|
18
22
|
toJsonObject
|
|
19
23
|
} from "../chunk-FQDHFTVR.js";
|
|
20
|
-
import {
|
|
21
|
-
Verdict
|
|
22
|
-
} from "../chunk-46QN2KEZ.js";
|
|
23
24
|
|
|
24
25
|
// src/mcp/index.ts
|
|
25
|
-
function wrapClient(
|
|
26
|
+
function wrapClient(source, client, opts = {}) {
|
|
27
|
+
if (!source) return client;
|
|
26
28
|
const original = client.callTool.bind(client);
|
|
27
|
-
const callTool = (params, ...rest) =>
|
|
28
|
-
session
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
29
|
+
const callTool = async (params, ...rest) => {
|
|
30
|
+
const session = await Sessions.resolve(source);
|
|
31
|
+
if (!session) return original(params, ...rest);
|
|
32
|
+
return recordCall(
|
|
33
|
+
session,
|
|
34
|
+
"tool_call",
|
|
35
|
+
uuidv7(),
|
|
36
|
+
{
|
|
37
|
+
toolName: params.name,
|
|
38
|
+
input: toJson(params.arguments ?? {}),
|
|
39
|
+
transport: "mcp",
|
|
40
|
+
...opts.server ? { server: opts.server } : {}
|
|
41
|
+
},
|
|
42
|
+
async () => {
|
|
43
|
+
await session.flush();
|
|
44
|
+
return original(
|
|
45
|
+
{ ...params, _meta: { ...params._meta ?? {}, [SESSION_EXTENSION]: session.id } },
|
|
46
|
+
...rest
|
|
47
|
+
);
|
|
48
|
+
},
|
|
49
|
+
async (result) => {
|
|
50
|
+
const ask = findPaymentAsk(result);
|
|
51
|
+
if (ask) await session.emit("payment.requested", ask);
|
|
52
|
+
return { output: toJson(result) };
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
};
|
|
50
56
|
return new Proxy(client, {
|
|
51
57
|
get(target, prop, receiver) {
|
|
52
58
|
return prop === "callTool" ? callTool : Reflect.get(target, prop, receiver);
|
|
@@ -85,8 +91,10 @@ function withBeltic(beltic, handler, opts) {
|
|
|
85
91
|
presentedFrom(payment, { tool: opts.toolName, args: toJson(args) })
|
|
86
92
|
);
|
|
87
93
|
const out = await beltic.evaluate(session.id, payment);
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
if (out) {
|
|
95
|
+
verdict = out.verdict;
|
|
96
|
+
reasonCodes = out.reasonCodes;
|
|
97
|
+
}
|
|
90
98
|
}
|
|
91
99
|
await session.emit("gateway.decision", {
|
|
92
100
|
gateway,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PaywallConfig } from '@x402/core/server';
|
|
2
|
+
import { A as AttachOptions } from './adapter-BEpzr2R3.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The seller half as one middleware: the framework's `@x402/*` payment
|
|
6
|
+
* middleware over an `x402HTTPResourceServer` with the Beltic hooks
|
|
7
|
+
* attached. `@belticlabs/agent-risk-sdk/hono` and `@belticlabs/agent-risk-sdk/express` differ only in
|
|
8
|
+
* which `paymentMiddlewareFromHTTPServer` they hand in.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
type GuardedMiddlewareOptions = AttachOptions & {
|
|
12
|
+
paywall?: PaywallConfig | undefined;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type { GuardedMiddlewareOptions as G };
|
package/dist/protocol/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { b as JsonValue, E as EvidenceSourceAll } from '../
|
|
2
|
-
export { A as ALL_SOURCES, c as ANOMALY_TYPES, d as Amount, e as AmountSchema, f as AnchorEntry, g as AnchorEntrySchema, h as AnchorsOutput, i as AnchorsOutputSchema, j as ApiError, k as ApiErrorSchema, C as ChainHead, l as ChainHeadSchema, m as CreatePolicyInput, n as CreatePolicyInputSchema, o as CreatePolicyOutput, p as CreatePolicyOutputSchema, q as CreateSessionInput, r as CreateSessionInputSchema, s as CreateSessionOutput, t as CreateSessionOutputSchema, D as Decision, u as DecisionSchema, v as DeclaredIntent, w as DeclaredIntentSchema, x as DigestedEnvelope, y as EvaluateInput, z as EvaluateInputSchema, B as EvaluateOutput, F as EvaluateOutputSchema, G as EventResult, H as EventResultSchema, I as EventResultStatus, K as EventResultStatusSchema, L as EvidenceAck, M as EvidenceAckSchema, N as EvidenceBatchInput, O as EvidenceBatchInputSchema, Q as EvidenceEnvelope, R as EvidenceEvent, S as EvidenceEventSchema, T as EvidenceKind, U as EvidenceKindSchema, V as EvidenceSource, W as EvidenceSourceAllSchema, X as EvidenceSourceSchema, Y as GatewayDecisionPayload, Z as GatewayDecisionPayloadSchema, _ as Hex64, $ as Hex64Schema, a0 as IntentDeclaredPayload, a1 as IntentDeclaredPayloadSchema, J as JsonObject, a2 as JsonValueSchema, a3 as LlmCallEndPayload, a4 as LlmCallEndPayloadSchema, a5 as LlmCallStartPayload, a6 as LlmCallStartPayloadSchema, a7 as MAX_BATCH_EVENTS, a8 as
|
|
1
|
+
import { b as JsonValue, E as EvidenceSourceAll } from '../verdict-6vCyoAHE.js';
|
|
2
|
+
export { A as ALL_SOURCES, c as ANOMALY_TYPES, d as Amount, e as AmountSchema, f as AnchorEntry, g as AnchorEntrySchema, h as AnchorsOutput, i as AnchorsOutputSchema, j as ApiError, k as ApiErrorSchema, C as ChainHead, l as ChainHeadSchema, m as CreatePolicyInput, n as CreatePolicyInputSchema, o as CreatePolicyOutput, p as CreatePolicyOutputSchema, q as CreateSessionInput, r as CreateSessionInputSchema, s as CreateSessionOutput, t as CreateSessionOutputSchema, D as Decision, u as DecisionSchema, v as DeclaredIntent, w as DeclaredIntentSchema, x as DigestedEnvelope, y as EvaluateInput, z as EvaluateInputSchema, B as EvaluateOutput, F as EvaluateOutputSchema, G as EventResult, H as EventResultSchema, I as EventResultStatus, K as EventResultStatusSchema, L as EvidenceAck, M as EvidenceAckSchema, N as EvidenceBatchInput, O as EvidenceBatchInputSchema, Q as EvidenceEnvelope, R as EvidenceEvent, S as EvidenceEventSchema, T as EvidenceKind, U as EvidenceKindSchema, V as EvidenceSource, W as EvidenceSourceAllSchema, X as EvidenceSourceSchema, Y as GatewayDecisionPayload, Z as GatewayDecisionPayloadSchema, _ as Hex64, $ as Hex64Schema, a0 as IntentDeclaredPayload, a1 as IntentDeclaredPayloadSchema, J as JsonObject, a2 as JsonValueSchema, a3 as LlmCallEndPayload, a4 as LlmCallEndPayloadSchema, a5 as LlmCallStartPayload, a6 as LlmCallStartPayloadSchema, a7 as MAX_BATCH_EVENTS, a8 as OnReview, a9 as PAYMENT_ARTIFACTS, aa as PLATFORM_KINDS, ab as PayloadByKind, P as PaymentMomentPayload, ac as PaymentMomentPayloadSchema, a as PaymentSummary, ad as PaymentSummarySchema, ae as PlatformAnomalyPayload, af as PlatformAnomalyPayloadSchema, ag as PlatformEvidenceKind, ah as PlatformEvidenceKindSchema, ai as PlatformObservationPayload, aj as PlatformObservationPayloadSchema, ak as SESSION_CLOSE_REASONS, al as SOURCE_ORDER, am as SeqSchema, an as SessionClosePayload, ao as SessionClosePayloadSchema, ap as SessionIdSchema, aq as SessionOpenPayload, ar as SessionOpenPayloadSchema, as as Sig, at as SigSchema, au as TimestampSchema, av as ToolCallEndPayload, aw as ToolCallEndPayloadSchema, ax as ToolCallStartPayload, ay as ToolCallStartPayloadSchema, az as TransportGapPayload, aA as TransportGapPayloadSchema, aB as Verdict, aC as WIRE_KINDS, aD as WIRE_SOURCES, aE as WireEvidenceKind, aF as WireEvidenceKindSchema, aG as compareBySessionSource, aH as compareBySourceSeq, aI as isPlatformKind, aJ as isWireKind, aK as payloadSchemaFor } from '../verdict-6vCyoAHE.js';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
export { O as OnReview, V as Verdict } from '../verdict-BAahb5po.js';
|
|
5
4
|
|
|
6
5
|
declare const PRIMITIVES: readonly ["THRESHOLD", "MEMBERSHIP", "MATCH", "PRESENCE", "FRESHNESS"];
|
|
7
6
|
declare const PrimitiveSchema: z.ZodEnum<{
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import { B as Beltic } from '../
|
|
2
|
-
import '../
|
|
1
|
+
import { B as Beltic } from '../session-DsBWEP8d.js';
|
|
2
|
+
import '../verdict-6vCyoAHE.js';
|
|
3
3
|
import 'zod';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Adapter for the anti-fraud port already in Beltic's `platform` monorepo
|
|
7
|
+
* (`x402-core/gateways/anti-fraud.gateway.interface.ts`), GAP-37. That
|
|
8
|
+
* port is binary and session-less; the mapping is lossy by construction:
|
|
9
|
+
* `REVIEW` becomes a deny unless `onReview` says otherwise, and reason
|
|
10
|
+
* codes travel joined in `reason`. The structural type is copied so this
|
|
11
|
+
* module needs no dependency on `platform`.
|
|
12
|
+
*/
|
|
6
13
|
|
|
7
14
|
interface PaymentRiskContext {
|
|
8
15
|
wallet: string;
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
x402Currency
|
|
3
|
-
} from "../chunk-U5Z5Z2BQ.js";
|
|
4
1
|
import {
|
|
5
2
|
presentedFrom
|
|
6
3
|
} from "../chunk-7G5EHNVW.js";
|
|
7
|
-
import "../chunk-FQDHFTVR.js";
|
|
8
4
|
import {
|
|
9
|
-
|
|
10
|
-
} from "../chunk-
|
|
5
|
+
x402Summary
|
|
6
|
+
} from "../chunk-LM4NIYE5.js";
|
|
7
|
+
import "../chunk-FQDHFTVR.js";
|
|
11
8
|
|
|
12
9
|
// src/seller/anti-fraud-gateway.ts
|
|
13
10
|
var BelticAntiFraudGateway = class {
|
|
@@ -16,12 +13,15 @@ var BelticAntiFraudGateway = class {
|
|
|
16
13
|
}
|
|
17
14
|
async assess(ctx) {
|
|
18
15
|
const session = await this.beltic.sessions.ensure(ctx.sessionId ?? null);
|
|
19
|
-
const payment =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
const payment = x402Summary(
|
|
17
|
+
{
|
|
18
|
+
payTo: ctx.payTo ?? ctx.resource,
|
|
19
|
+
amount: ctx.amountAtomic,
|
|
20
|
+
network: ctx.network,
|
|
21
|
+
asset: ctx.asset
|
|
22
|
+
},
|
|
23
|
+
{ payer: ctx.wallet }
|
|
24
|
+
);
|
|
25
25
|
await session.emit(
|
|
26
26
|
"payment.presented",
|
|
27
27
|
presentedFrom(payment, {
|
|
@@ -30,8 +30,7 @@ var BelticAntiFraudGateway = class {
|
|
|
30
30
|
})
|
|
31
31
|
);
|
|
32
32
|
const out = await this.beltic.evaluate(session.id, payment);
|
|
33
|
-
|
|
34
|
-
return verdict.blocks(this.beltic.onReview) ? { allow: false, reason: `${out.decision}:${out.reasonCodes.join(",")}` } : { allow: true };
|
|
33
|
+
return out?.verdict.blocks(this.beltic.onReview) ? { allow: false, reason: `${out.decision}:${out.reasonCodes.join(",")}` } : { allow: true };
|
|
35
34
|
}
|
|
36
35
|
};
|
|
37
36
|
export {
|