@compose-market/sdk 0.8.2 → 0.8.5
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/.speakeasy/a2a.arazzo.yaml +1 -1
- package/.speakeasy/memory.arazzo.yaml +1 -1
- package/.speakeasy/tests.arazzo.yaml +1 -1
- package/dist/errors.d.ts +2 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +202 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +70 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +279 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +552 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/accounts.d.ts +32 -0
- package/dist/resources/accounts.d.ts.map +1 -0
- package/dist/resources/accounts.js +128 -0
- package/dist/resources/accounts.js.map +1 -0
- package/dist/resources/agent.d.ts +46 -0
- package/dist/resources/agent.d.ts.map +1 -0
- package/dist/resources/agent.js +465 -0
- package/dist/resources/agent.js.map +1 -0
- package/dist/resources/channels.d.ts +24 -0
- package/dist/resources/channels.d.ts.map +1 -0
- package/dist/resources/channels.js +74 -0
- package/dist/resources/channels.js.map +1 -0
- package/dist/resources/directory.d.ts +43 -0
- package/dist/resources/directory.d.ts.map +1 -0
- package/dist/resources/directory.js +97 -0
- package/dist/resources/directory.js.map +1 -0
- package/dist/resources/dispenser.d.ts +25 -0
- package/dist/resources/dispenser.d.ts.map +1 -0
- package/dist/resources/dispenser.js +56 -0
- package/dist/resources/dispenser.js.map +1 -0
- package/dist/resources/feedback.d.ts +35 -0
- package/dist/resources/feedback.d.ts.map +1 -0
- package/dist/resources/feedback.js +127 -0
- package/dist/resources/feedback.js.map +1 -0
- package/dist/resources/inference.d.ts +206 -0
- package/dist/resources/inference.d.ts.map +1 -0
- package/dist/resources/inference.js +1049 -0
- package/dist/resources/inference.js.map +1 -0
- package/dist/resources/instrumentation.d.ts +29 -0
- package/dist/resources/instrumentation.d.ts.map +1 -0
- package/dist/resources/instrumentation.js +43 -0
- package/dist/resources/instrumentation.js.map +1 -0
- package/dist/resources/keys.d.ts +56 -0
- package/dist/resources/keys.d.ts.map +1 -0
- package/dist/resources/keys.js +186 -0
- package/dist/resources/keys.js.map +1 -0
- package/dist/resources/local.d.ts +56 -0
- package/dist/resources/local.d.ts.map +1 -0
- package/dist/resources/local.js +163 -0
- package/dist/resources/local.js.map +1 -0
- package/dist/resources/memory.d.ts +249 -0
- package/dist/resources/memory.d.ts.map +1 -0
- package/dist/resources/memory.js +217 -0
- package/dist/resources/memory.js.map +1 -0
- package/dist/resources/models.d.ts +45 -0
- package/dist/resources/models.d.ts.map +1 -0
- package/dist/resources/models.js +101 -0
- package/dist/resources/models.js.map +1 -0
- package/dist/resources/permissions.d.ts +23 -0
- package/dist/resources/permissions.d.ts.map +1 -0
- package/dist/resources/permissions.js +69 -0
- package/dist/resources/permissions.js.map +1 -0
- package/dist/resources/receipts.d.ts +23 -0
- package/dist/resources/receipts.d.ts.map +1 -0
- package/dist/resources/receipts.js +48 -0
- package/dist/resources/receipts.js.map +1 -0
- package/dist/resources/session-events.d.ts +51 -0
- package/dist/resources/session-events.d.ts.map +1 -0
- package/dist/resources/session-events.js +404 -0
- package/dist/resources/session-events.js.map +1 -0
- package/dist/resources/settlement.d.ts +21 -0
- package/dist/resources/settlement.d.ts.map +1 -0
- package/dist/resources/settlement.js +30 -0
- package/dist/resources/settlement.js.map +1 -0
- package/dist/resources/system.d.ts +9 -0
- package/dist/resources/system.d.ts.map +1 -0
- package/dist/resources/system.js +19 -0
- package/dist/resources/system.js.map +1 -0
- package/dist/resources/webhooks.d.ts +27 -0
- package/dist/resources/webhooks.d.ts.map +1 -0
- package/dist/resources/webhooks.js +78 -0
- package/dist/resources/webhooks.js.map +1 -0
- package/dist/resources/workflow.d.ts +43 -0
- package/dist/resources/workflow.d.ts.map +1 -0
- package/dist/resources/workflow.js +284 -0
- package/dist/resources/workflow.js.map +1 -0
- package/dist/resources/x402.d.ts +113 -0
- package/dist/resources/x402.d.ts.map +1 -0
- package/dist/resources/x402.js +231 -0
- package/dist/resources/x402.js.map +1 -0
- package/dist/tools/index.d.ts +55 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +51 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/index.d.ts +1859 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +14 -0
- package/dist/types/index.js.map +1 -0
- package/dist/version.d.ts +9 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +9 -0
- package/dist/version.js.map +1 -0
- package/generated/inference/esm/lib/config.d.ts +3 -3
- package/generated/inference/esm/lib/config.js +3 -3
- package/generated/inference/package.json +1 -1
- package/generated/inference/src/lib/config.ts +3 -3
- package/generated/manowar/esm/lib/config.d.ts +3 -3
- package/generated/manowar/esm/lib/config.js +3 -3
- package/generated/manowar/package.json +1 -1
- package/generated/manowar/src/lib/config.ts +3 -3
- package/generated/memory/esm/lib/config.d.ts +3 -3
- package/generated/memory/esm/lib/config.js +3 -3
- package/generated/memory/package.json +1 -1
- package/generated/memory/src/lib/config.ts +3 -3
- package/generated/x402/esm/lib/config.d.ts +3 -3
- package/generated/x402/esm/lib/config.js +3 -3
- package/generated/x402/package.json +1 -1
- package/generated/x402/src/lib/config.ts +3 -3
- package/package.json +6 -6
- package/specs/inference.openapi.yaml +1 -1
- package/specs/manowar.openapi.yaml +1 -1
- package/specs/memory.openapi.yaml +1 -1
- package/specs/x402.openapi.yaml +1 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import type { APIPromise, HttpClient } from "@compose-market/core/http";
|
|
2
|
+
import { type ClientEvmSigner } from "@x402/evm";
|
|
3
|
+
import type { PaymentMode, Receipt, FacilitatorChainsResponse, FacilitatorSupportedResponse, ModelMeterInput, ModelMeterQuote, PaymentAbortInput, PaymentAbortResponse, PaymentPayload, PaymentPrepareInput, PaymentPrepareResponse, PaymentRequired, PaymentRequirements, PaymentSettleInput, PaymentSettleResponse, SettleResponse, VerifyResponse, X402PaymentSigner } from "../types/index.js";
|
|
4
|
+
export declare function encodePaymentPayload(payload: PaymentPayload): string;
|
|
5
|
+
export declare function encodePaymentSignature(value: string | PaymentPayload): string;
|
|
6
|
+
export declare function createX402EvmSigner(signer: ClientEvmSigner, options?: {
|
|
7
|
+
rpcUrl?: string;
|
|
8
|
+
schemes?: Array<"batch-settlement" | "upto" | "exact">;
|
|
9
|
+
}): X402PaymentSigner;
|
|
10
|
+
export declare function createPrivateKeyX402EvmSigner(input: {
|
|
11
|
+
privateKey: string;
|
|
12
|
+
rpcUrl?: string;
|
|
13
|
+
schemes?: Array<"batch-settlement" | "upto" | "exact">;
|
|
14
|
+
}): X402PaymentSigner;
|
|
15
|
+
export declare function createPrivateKeyX402EvmWallet(input: {
|
|
16
|
+
privateKey: string;
|
|
17
|
+
rpcUrl?: string;
|
|
18
|
+
schemes?: Array<"batch-settlement" | "upto" | "exact">;
|
|
19
|
+
}): {
|
|
20
|
+
address: `0x${string}`;
|
|
21
|
+
x402Signer: X402PaymentSigner;
|
|
22
|
+
};
|
|
23
|
+
export declare class FacilitatorResource {
|
|
24
|
+
private readonly client;
|
|
25
|
+
constructor(client: HttpClient);
|
|
26
|
+
supported(): APIPromise<FacilitatorSupportedResponse>;
|
|
27
|
+
chains(): APIPromise<FacilitatorChainsResponse>;
|
|
28
|
+
verify(body: {
|
|
29
|
+
x402Version: 2;
|
|
30
|
+
paymentPayload: PaymentPayload;
|
|
31
|
+
paymentRequirements: PaymentRequirements;
|
|
32
|
+
}): APIPromise<VerifyResponse>;
|
|
33
|
+
settle(body: {
|
|
34
|
+
x402Version: 2;
|
|
35
|
+
paymentPayload: PaymentPayload;
|
|
36
|
+
paymentRequirements: PaymentRequirements;
|
|
37
|
+
}): APIPromise<SettleResponse>;
|
|
38
|
+
}
|
|
39
|
+
export declare class PaymentsResource {
|
|
40
|
+
private readonly client;
|
|
41
|
+
private readonly ctx;
|
|
42
|
+
constructor(client: HttpClient, ctx: {
|
|
43
|
+
getWalletMaybe(): {
|
|
44
|
+
address: string | null;
|
|
45
|
+
chainId: number | null;
|
|
46
|
+
};
|
|
47
|
+
getTokenMaybe(): string | null;
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Authorize a reusable Compose Key payment intent. The server owns budget
|
|
51
|
+
* reservation, idempotency, x402 challenge headers, and live budget headers.
|
|
52
|
+
*/
|
|
53
|
+
prepare(input: PaymentPrepareInput, options?: {
|
|
54
|
+
signal?: AbortSignal;
|
|
55
|
+
timeoutMs?: number;
|
|
56
|
+
}): APIPromise<PaymentPrepareResponse>;
|
|
57
|
+
/**
|
|
58
|
+
* Settle a prepared payment intent with either an explicit final amount or
|
|
59
|
+
* an authoritative meter. The API rejects settlement above the authorized
|
|
60
|
+
* cap; the SDK only forwards the typed contract.
|
|
61
|
+
*/
|
|
62
|
+
settle(input: PaymentSettleInput, options?: {
|
|
63
|
+
signal?: AbortSignal;
|
|
64
|
+
timeoutMs?: number;
|
|
65
|
+
}): APIPromise<PaymentSettleResponse>;
|
|
66
|
+
abort(input: PaymentAbortInput, options?: {
|
|
67
|
+
signal?: AbortSignal;
|
|
68
|
+
timeoutMs?: number;
|
|
69
|
+
}): APIPromise<PaymentAbortResponse>;
|
|
70
|
+
/**
|
|
71
|
+
* Ask the server to resolve the authoritative model-meter quote from the
|
|
72
|
+
* catalog and metering telemetry. No model/provider allowlists live here.
|
|
73
|
+
*/
|
|
74
|
+
meterModel(input: ModelMeterInput, options?: {
|
|
75
|
+
signal?: AbortSignal;
|
|
76
|
+
timeoutMs?: number;
|
|
77
|
+
}): APIPromise<ModelMeterQuote>;
|
|
78
|
+
}
|
|
79
|
+
export declare class X402Resource {
|
|
80
|
+
private readonly fetchWithPayment?;
|
|
81
|
+
readonly facilitator: FacilitatorResource;
|
|
82
|
+
readonly payments: PaymentsResource;
|
|
83
|
+
constructor(client: HttpClient, ctx: {
|
|
84
|
+
getWalletMaybe(): {
|
|
85
|
+
address: string | null;
|
|
86
|
+
chainId: number | null;
|
|
87
|
+
};
|
|
88
|
+
getTokenMaybe(): string | null;
|
|
89
|
+
}, fetchWithPayment?: ((input: RequestInfo | URL, init?: RequestInit & {
|
|
90
|
+
paymentMode?: PaymentMode;
|
|
91
|
+
}) => Promise<Response>) | undefined);
|
|
92
|
+
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
93
|
+
/**
|
|
94
|
+
* Decode the base64-url PAYMENT-REQUIRED header into a typed
|
|
95
|
+
* `PaymentRequired` body. Throws on malformed input.
|
|
96
|
+
*/
|
|
97
|
+
decodePaymentRequired(headerValue: string): PaymentRequired;
|
|
98
|
+
/**
|
|
99
|
+
* Decode the base64-url PAYMENT-RESPONSE header into a typed
|
|
100
|
+
* `SettleResponse` body. Throws on malformed input.
|
|
101
|
+
*/
|
|
102
|
+
decodePaymentResponse(headerValue: string): SettleResponse;
|
|
103
|
+
/**
|
|
104
|
+
* Encode a signed x402 `PaymentPayload` for the PAYMENT-SIGNATURE header.
|
|
105
|
+
* If a signer already returned a string, this returns it unchanged.
|
|
106
|
+
*/
|
|
107
|
+
encodePaymentSignature(value: string | PaymentPayload): string;
|
|
108
|
+
/**
|
|
109
|
+
* Decode the base64-url X-Receipt header. Throws on malformed input.
|
|
110
|
+
*/
|
|
111
|
+
decodeReceipt(headerValue: string): Receipt;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=x402.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../src/resources/x402.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { x402Client } from "@x402/core/client";
|
|
2
|
+
import { ExactEvmScheme, toClientEvmSigner } from "@x402/evm";
|
|
3
|
+
import { UptoEvmScheme } from "@x402/evm/upto/client";
|
|
4
|
+
import { BatchSettlementEvmScheme } from "@x402/evm/batch-settlement/client";
|
|
5
|
+
import { createPublicClient, http } from "viem";
|
|
6
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
7
|
+
import { decodeReceiptHeader } from "@compose-market/core/sse/receipt";
|
|
8
|
+
function base64UrlDecode(value) {
|
|
9
|
+
const normalized = value.replace(/-/g, "+").replace(/_/g, "/");
|
|
10
|
+
const padding = normalized.length % 4 === 0 ? "" : "=".repeat(4 - (normalized.length % 4));
|
|
11
|
+
if (typeof globalThis.atob === "function") {
|
|
12
|
+
const binary = globalThis.atob(normalized + padding);
|
|
13
|
+
const bytes = new Uint8Array(binary.length);
|
|
14
|
+
for (let i = 0; i < binary.length; i += 1)
|
|
15
|
+
bytes[i] = binary.charCodeAt(i);
|
|
16
|
+
return new TextDecoder("utf-8").decode(bytes);
|
|
17
|
+
}
|
|
18
|
+
return Buffer.from(normalized + padding, "base64").toString("utf-8");
|
|
19
|
+
}
|
|
20
|
+
function base64UrlEncode(value) {
|
|
21
|
+
if (typeof Buffer !== "undefined") {
|
|
22
|
+
return Buffer.from(value, "utf-8").toString("base64")
|
|
23
|
+
.replace(/\+/g, "-")
|
|
24
|
+
.replace(/\//g, "_")
|
|
25
|
+
.replace(/=+$/, "");
|
|
26
|
+
}
|
|
27
|
+
const bytes = new TextEncoder().encode(value);
|
|
28
|
+
let binary = "";
|
|
29
|
+
for (const byte of bytes)
|
|
30
|
+
binary += String.fromCharCode(byte);
|
|
31
|
+
return globalThis.btoa(binary)
|
|
32
|
+
.replace(/\+/g, "-")
|
|
33
|
+
.replace(/\//g, "_")
|
|
34
|
+
.replace(/=+$/, "");
|
|
35
|
+
}
|
|
36
|
+
export function encodePaymentPayload(payload) {
|
|
37
|
+
return base64UrlEncode(JSON.stringify(payload));
|
|
38
|
+
}
|
|
39
|
+
export function encodePaymentSignature(value) {
|
|
40
|
+
return typeof value === "string" ? value : encodePaymentPayload(value);
|
|
41
|
+
}
|
|
42
|
+
export function createX402EvmSigner(signer, options = {}) {
|
|
43
|
+
const schemes = options.schemes ?? ["batch-settlement", "upto", "exact"];
|
|
44
|
+
const client = new x402Client();
|
|
45
|
+
const schemeOptions = options.rpcUrl ? { rpcUrl: options.rpcUrl } : undefined;
|
|
46
|
+
if (schemes.includes("batch-settlement")) {
|
|
47
|
+
client.register("eip155:*", new BatchSettlementEvmScheme(signer, schemeOptions));
|
|
48
|
+
}
|
|
49
|
+
if (schemes.includes("upto")) {
|
|
50
|
+
client.register("eip155:*", new UptoEvmScheme(signer, schemeOptions));
|
|
51
|
+
}
|
|
52
|
+
if (schemes.includes("exact")) {
|
|
53
|
+
client.register("eip155:*", new ExactEvmScheme(signer, schemeOptions));
|
|
54
|
+
}
|
|
55
|
+
return async (request) => {
|
|
56
|
+
const paymentRequired = filterPaymentRequiredByMaxAmount(request.paymentRequired, request.maxAmountWei);
|
|
57
|
+
return client.createPaymentPayload(paymentRequired);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function createPrivateKeyX402EvmSigner(input) {
|
|
61
|
+
return createPrivateKeyX402EvmWallet(input).x402Signer;
|
|
62
|
+
}
|
|
63
|
+
export function createPrivateKeyX402EvmWallet(input) {
|
|
64
|
+
const privateKey = input.privateKey.startsWith("0x") ? input.privateKey : `0x${input.privateKey}`;
|
|
65
|
+
const account = privateKeyToAccount(privateKey);
|
|
66
|
+
const publicClient = input.rpcUrl
|
|
67
|
+
? createPublicClient({ transport: http(input.rpcUrl) })
|
|
68
|
+
: undefined;
|
|
69
|
+
const signer = toClientEvmSigner(account, publicClient);
|
|
70
|
+
return {
|
|
71
|
+
address: account.address,
|
|
72
|
+
x402Signer: createX402EvmSigner(signer, {
|
|
73
|
+
rpcUrl: input.rpcUrl,
|
|
74
|
+
schemes: input.schemes,
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function filterPaymentRequiredByMaxAmount(paymentRequired, maxAmountWei) {
|
|
79
|
+
if (!maxAmountWei)
|
|
80
|
+
return paymentRequired;
|
|
81
|
+
const max = BigInt(maxAmountWei);
|
|
82
|
+
const accepts = paymentRequired.accepts.filter((accept) => BigInt(accept.amount) <= max);
|
|
83
|
+
if (accepts.length === 0) {
|
|
84
|
+
throw new Error("No x402 payment requirement fits within x402MaxAmountWei");
|
|
85
|
+
}
|
|
86
|
+
return { ...paymentRequired, accepts };
|
|
87
|
+
}
|
|
88
|
+
export class FacilitatorResource {
|
|
89
|
+
client;
|
|
90
|
+
constructor(client) {
|
|
91
|
+
this.client = client;
|
|
92
|
+
}
|
|
93
|
+
supported() {
|
|
94
|
+
return this.client.request({
|
|
95
|
+
method: "GET",
|
|
96
|
+
path: "/api/x402/facilitator/supported",
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
chains() {
|
|
100
|
+
return this.client.request({
|
|
101
|
+
method: "GET",
|
|
102
|
+
path: "/api/x402/facilitator/chains",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
verify(body) {
|
|
106
|
+
return this.client.request({
|
|
107
|
+
method: "POST",
|
|
108
|
+
path: "/api/x402/facilitator/verify",
|
|
109
|
+
body,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
settle(body) {
|
|
113
|
+
return this.client.request({
|
|
114
|
+
method: "POST",
|
|
115
|
+
path: "/api/x402/facilitator/settle",
|
|
116
|
+
body,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export class PaymentsResource {
|
|
121
|
+
client;
|
|
122
|
+
ctx;
|
|
123
|
+
constructor(client, ctx) {
|
|
124
|
+
this.client = client;
|
|
125
|
+
this.ctx = ctx;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Authorize a reusable Compose Key payment intent. The server owns budget
|
|
129
|
+
* reservation, idempotency, x402 challenge headers, and live budget headers.
|
|
130
|
+
*/
|
|
131
|
+
prepare(input, options = {}) {
|
|
132
|
+
const wallet = this.ctx.getWalletMaybe();
|
|
133
|
+
const token = this.ctx.getTokenMaybe();
|
|
134
|
+
return this.client.request({
|
|
135
|
+
method: "POST",
|
|
136
|
+
path: "/api/payments/prepare",
|
|
137
|
+
body: input,
|
|
138
|
+
headers: {
|
|
139
|
+
key: token ?? undefined,
|
|
140
|
+
userAddress: wallet.address ?? undefined,
|
|
141
|
+
chainId: wallet.chainId ?? undefined,
|
|
142
|
+
x402MaxAmountWei: input.maxAmountWei,
|
|
143
|
+
idempotencyKey: input.idempotencyKey,
|
|
144
|
+
},
|
|
145
|
+
signal: options.signal,
|
|
146
|
+
timeoutMs: options.timeoutMs,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Settle a prepared payment intent with either an explicit final amount or
|
|
151
|
+
* an authoritative meter. The API rejects settlement above the authorized
|
|
152
|
+
* cap; the SDK only forwards the typed contract.
|
|
153
|
+
*/
|
|
154
|
+
settle(input, options = {}) {
|
|
155
|
+
return this.client.request({
|
|
156
|
+
method: "POST",
|
|
157
|
+
path: "/api/payments/settle",
|
|
158
|
+
body: input,
|
|
159
|
+
signal: options.signal,
|
|
160
|
+
timeoutMs: options.timeoutMs,
|
|
161
|
+
doNotRetry: true,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
abort(input, options = {}) {
|
|
165
|
+
return this.client.request({
|
|
166
|
+
method: "POST",
|
|
167
|
+
path: "/api/payments/abort",
|
|
168
|
+
body: input,
|
|
169
|
+
signal: options.signal,
|
|
170
|
+
timeoutMs: options.timeoutMs,
|
|
171
|
+
doNotRetry: true,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Ask the server to resolve the authoritative model-meter quote from the
|
|
176
|
+
* catalog and metering telemetry. No model/provider allowlists live here.
|
|
177
|
+
*/
|
|
178
|
+
meterModel(input, options = {}) {
|
|
179
|
+
return this.client.request({
|
|
180
|
+
method: "POST",
|
|
181
|
+
path: "/api/payments/meter/model",
|
|
182
|
+
body: input,
|
|
183
|
+
signal: options.signal,
|
|
184
|
+
timeoutMs: options.timeoutMs,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
export class X402Resource {
|
|
189
|
+
fetchWithPayment;
|
|
190
|
+
facilitator;
|
|
191
|
+
payments;
|
|
192
|
+
constructor(client, ctx, fetchWithPayment) {
|
|
193
|
+
this.fetchWithPayment = fetchWithPayment;
|
|
194
|
+
this.facilitator = new FacilitatorResource(client);
|
|
195
|
+
this.payments = new PaymentsResource(client, ctx);
|
|
196
|
+
}
|
|
197
|
+
fetch(input, init) {
|
|
198
|
+
if (!this.fetchWithPayment) {
|
|
199
|
+
return Promise.reject(new Error("x402.fetch is only available from a ComposeSDK instance."));
|
|
200
|
+
}
|
|
201
|
+
return this.fetchWithPayment(input, { ...(init ?? {}), paymentMode: "x402" });
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Decode the base64-url PAYMENT-REQUIRED header into a typed
|
|
205
|
+
* `PaymentRequired` body. Throws on malformed input.
|
|
206
|
+
*/
|
|
207
|
+
decodePaymentRequired(headerValue) {
|
|
208
|
+
return JSON.parse(base64UrlDecode(headerValue));
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Decode the base64-url PAYMENT-RESPONSE header into a typed
|
|
212
|
+
* `SettleResponse` body. Throws on malformed input.
|
|
213
|
+
*/
|
|
214
|
+
decodePaymentResponse(headerValue) {
|
|
215
|
+
return JSON.parse(base64UrlDecode(headerValue));
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Encode a signed x402 `PaymentPayload` for the PAYMENT-SIGNATURE header.
|
|
219
|
+
* If a signer already returned a string, this returns it unchanged.
|
|
220
|
+
*/
|
|
221
|
+
encodePaymentSignature(value) {
|
|
222
|
+
return encodePaymentSignature(value);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Decode the base64-url X-Receipt header. Throws on malformed input.
|
|
226
|
+
*/
|
|
227
|
+
decodeReceipt(headerValue) {
|
|
228
|
+
return decodeReceiptHeader(headerValue);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=x402.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../../src/resources/x402.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAwB,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAY,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAqBpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,SAAS,eAAe,CAAC,KAAa;IAClC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3F,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IAClC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAChD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;SACzB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IACxD,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAA8B;IACjE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,MAAuB,EACvB,UAAuF,EAAE;IAEzF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9E,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACrB,MAAM,eAAe,GAAG,gCAAgC,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACxG,OAAO,MAAM,CAAC,oBAAoB,CAAC,eAAwB,CAA4B,CAAC;IAC5F,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,6BAA6B,CACzC,KAAsG;IAEtG,OAAO,6BAA6B,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,6BAA6B,CACzC,KAAsG;IAEtG,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;IAClG,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAiB,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM;QAC7B,CAAC,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACxD,OAAO;QACH,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE;YACpC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;SACzB,CAAC;KACL,CAAC;AACN,CAAC;AAED,SAAS,gCAAgC,CAAC,eAAgC,EAAE,YAAqB;IAC7F,IAAI,CAAC,YAAY;QAAE,OAAO,eAAe,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IACzF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,OAAO,mBAAmB;IACC;IAA7B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAI,CAAC;IAEpD,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAA+B;YACrD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iCAAiC;SAC1C,CAAC,CAAC;IACP,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAA4B;YAClD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,8BAA8B;SACvC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,IAAkG;QACrG,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAiB;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,8BAA8B;YACpC,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,IAAkG;QACrG,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAiB;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,8BAA8B;YACpC,IAAI;SACP,CAAC,CAAC;IACP,CAAC;CACJ;AAED,MAAM,OAAO,gBAAgB;IAEJ;IACA;IAFrB,YACqB,MAAkB,EAClB,GAGhB;QAJgB,WAAM,GAAN,MAAM,CAAY;QAClB,QAAG,GAAH,GAAG,CAGnB;IACD,CAAC;IAEL;;;OAGG;IACH,OAAO,CAAC,KAA0B,EAAE,UAAwD,EAAE;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAyB;YAC/C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACL,GAAG,EAAE,KAAK,IAAI,SAAS;gBACvB,WAAW,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;gBACxC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;gBACpC,gBAAgB,EAAE,KAAK,CAAC,YAAY;gBACpC,cAAc,EAAE,KAAK,CAAC,cAAc;aACvC;YACD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAyB,EAAE,UAAwD,EAAE;QACxF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,KAAwB,EAAE,UAAwD,EAAE;QACtF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAuB;YAC7C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,KAAsB,EAAE,UAAwD,EAAE;QACzF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkB;YACxC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAC,CAAC;IACP,CAAC;CACJ;AAED,MAAM,OAAO,YAAY;IAUA;IATZ,WAAW,CAAsB;IACjC,QAAQ,CAAmB;IAEpC,YACI,MAAkB,EAClB,GAGC,EACgB,gBAAsH;QAAtH,qBAAgB,GAAhB,gBAAgB,CAAsG;QAEvI,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAwB,EAAE,IAAkB;QAC9C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,WAAmB;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAoB,CAAC;IACvE,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,WAAmB;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAmB,CAAC;IACtE,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,KAA8B;QACjD,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,WAAmB;QAC7B,OAAO,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;CACJ"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface ModelToolEvent {
|
|
2
|
+
start: boolean;
|
|
3
|
+
model: string;
|
|
4
|
+
action: string;
|
|
5
|
+
result?: unknown;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ConnectorToolEvent {
|
|
9
|
+
start: boolean;
|
|
10
|
+
connector: string;
|
|
11
|
+
action: string;
|
|
12
|
+
result?: unknown;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AgentToolEvent {
|
|
16
|
+
start: boolean;
|
|
17
|
+
agent: string;
|
|
18
|
+
action: string;
|
|
19
|
+
result?: unknown;
|
|
20
|
+
error?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface SearchToolEvent {
|
|
23
|
+
start: boolean;
|
|
24
|
+
mode: string;
|
|
25
|
+
action: string;
|
|
26
|
+
result?: unknown;
|
|
27
|
+
error?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface CatalogToolEvent {
|
|
30
|
+
start: boolean;
|
|
31
|
+
domain: string;
|
|
32
|
+
action: string;
|
|
33
|
+
result?: unknown;
|
|
34
|
+
error?: string;
|
|
35
|
+
}
|
|
36
|
+
export type ToolEvent = ModelToolEvent | ConnectorToolEvent | AgentToolEvent | SearchToolEvent | CatalogToolEvent;
|
|
37
|
+
export type ToolEventKind = "model" | "connector" | "agent" | "search" | "catalog";
|
|
38
|
+
export interface ToolEventDisplay {
|
|
39
|
+
kind: ToolEventKind;
|
|
40
|
+
name: string;
|
|
41
|
+
target?: string;
|
|
42
|
+
summary?: string;
|
|
43
|
+
details?: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
export declare function parseToolEvent(raw: {
|
|
46
|
+
type?: string;
|
|
47
|
+
toolName?: string;
|
|
48
|
+
input?: unknown;
|
|
49
|
+
output?: unknown;
|
|
50
|
+
failed?: boolean;
|
|
51
|
+
error?: string;
|
|
52
|
+
message?: string;
|
|
53
|
+
display?: ToolEventDisplay;
|
|
54
|
+
}): ToolEvent | null;
|
|
55
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GACf,cAAc,GACd,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,gBAAgB,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC9B,GAAG,SAAS,GAAG,IAAI,CAkDnB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function parseToolEvent(raw) {
|
|
2
|
+
const name = raw.toolName ?? "";
|
|
3
|
+
const isStart = raw.type === "tool_start";
|
|
4
|
+
const result = raw.output ?? raw.message;
|
|
5
|
+
const error = raw.failed ? (raw.error ?? undefined) : undefined;
|
|
6
|
+
switch (name) {
|
|
7
|
+
case "models_call":
|
|
8
|
+
return {
|
|
9
|
+
start: isStart,
|
|
10
|
+
model: String(raw.input?.prompt ?? raw.display?.name ?? "model"),
|
|
11
|
+
action: String(raw.input?.action ?? "execute"),
|
|
12
|
+
...(result !== undefined ? { result } : {}),
|
|
13
|
+
...(error ? { error } : {}),
|
|
14
|
+
};
|
|
15
|
+
case "connectors_find":
|
|
16
|
+
return {
|
|
17
|
+
start: isStart,
|
|
18
|
+
connector: String(raw.display?.name ?? raw.input?.query ?? "connector"),
|
|
19
|
+
action: "find",
|
|
20
|
+
...(result !== undefined ? { result } : {}),
|
|
21
|
+
...(error ? { error } : {}),
|
|
22
|
+
};
|
|
23
|
+
case "agent_find":
|
|
24
|
+
return {
|
|
25
|
+
start: isStart,
|
|
26
|
+
agent: String(raw.display?.name ?? raw.input?.query ?? "agent"),
|
|
27
|
+
action: "find",
|
|
28
|
+
...(result !== undefined ? { result } : {}),
|
|
29
|
+
...(error ? { error } : {}),
|
|
30
|
+
};
|
|
31
|
+
case "search_call":
|
|
32
|
+
return {
|
|
33
|
+
start: isStart,
|
|
34
|
+
mode: String(raw.input?.mode ?? "general"),
|
|
35
|
+
action: "search",
|
|
36
|
+
...(result !== undefined ? { result } : {}),
|
|
37
|
+
...(error ? { error } : {}),
|
|
38
|
+
};
|
|
39
|
+
case "query_catalog":
|
|
40
|
+
return {
|
|
41
|
+
start: isStart,
|
|
42
|
+
domain: String(raw.display?.name ?? "catalog"),
|
|
43
|
+
action: "query",
|
|
44
|
+
...(result !== undefined ? { result } : {}),
|
|
45
|
+
...(error ? { error } : {}),
|
|
46
|
+
};
|
|
47
|
+
default:
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|