@rubicon-caliga/agent-sdk 0.1.2 → 0.1.4
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 +28 -24
- package/dist/agent-client.d.ts +41 -5
- package/dist/agent-client.d.ts.map +1 -1
- package/dist/agent-client.js +120 -4
- package/dist/agent-client.js.map +1 -1
- package/dist/agent-client.test.js +229 -3
- package/dist/agent-client.test.js.map +1 -1
- package/dist/circle-agent-wallet.d.ts +10 -6
- package/dist/circle-agent-wallet.d.ts.map +1 -1
- package/dist/circle-agent-wallet.js +46 -8
- package/dist/circle-agent-wallet.js.map +1 -1
- package/dist/circle-cli-gateway-payment.d.ts +8 -4
- package/dist/circle-cli-gateway-payment.d.ts.map +1 -1
- package/dist/circle-cli-gateway-payment.js +43 -5
- package/dist/circle-cli-gateway-payment.js.map +1 -1
- package/dist/payment-engine.d.ts +17 -5
- package/dist/payment-engine.d.ts.map +1 -1
- package/dist/payment-engine.js +30 -2
- package/dist/payment-engine.js.map +1 -1
- package/package.json +2 -2
- package/src/agent-client.test.ts +241 -3
- package/src/agent-client.ts +148 -4
- package/src/circle-agent-wallet.ts +55 -12
- package/src/circle-cli-gateway-payment.ts +50 -5
- package/src/payment-engine.ts +39 -5
|
@@ -6,6 +6,17 @@ const paymentEngine = {
|
|
|
6
6
|
return { paymentPayload: { ok: true } };
|
|
7
7
|
},
|
|
8
8
|
};
|
|
9
|
+
const chunkPaymentEngine = {
|
|
10
|
+
async createWordPayment() {
|
|
11
|
+
throw new Error("word fallback should not be used");
|
|
12
|
+
},
|
|
13
|
+
async createChunkPayment(_session, input) {
|
|
14
|
+
return {
|
|
15
|
+
paymentPayload: { amountAtomic: `${input.maxWords}` },
|
|
16
|
+
maxWords: input.maxWords,
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
};
|
|
9
20
|
test("run receipt preserves Gateway settlement receipt fields", async () => {
|
|
10
21
|
const fetcher = (async (input) => {
|
|
11
22
|
const url = String(input);
|
|
@@ -73,13 +84,215 @@ test("run receipt preserves Gateway settlement receipt fields", async () => {
|
|
|
73
84
|
assert.equal(receipt.sellerPayTo, "0x3333333333333333333333333333333333333333");
|
|
74
85
|
assert.equal(receipt.network, "eip155:5042002");
|
|
75
86
|
});
|
|
87
|
+
test("run can consume chunk stream while preserving per-word receipt fields", async () => {
|
|
88
|
+
const fetcher = (async (input, init) => {
|
|
89
|
+
const url = String(input);
|
|
90
|
+
if (url.endsWith("/v1/sessions")) {
|
|
91
|
+
return jsonResponse({
|
|
92
|
+
sessionId: "session_1",
|
|
93
|
+
state: "active",
|
|
94
|
+
article: article(3),
|
|
95
|
+
navigation: navigation(),
|
|
96
|
+
pricePerWordAtomic: "1",
|
|
97
|
+
maxArticlePriceAtomic: "10",
|
|
98
|
+
conversationId: "conversation_1",
|
|
99
|
+
wordPaymentAtomic: "1",
|
|
100
|
+
gatewayFeeBps: 0,
|
|
101
|
+
paymentRequired: { accepts: [{ amount: "1" }] },
|
|
102
|
+
expiresAt: "2026-06-18T12:00:00.000Z",
|
|
103
|
+
wordsPaid: 0,
|
|
104
|
+
wordsDelivered: 0,
|
|
105
|
+
paidAtomic: "0",
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (url.endsWith("/v1/sessions/session_1/stream")) {
|
|
109
|
+
const body = JSON.parse(String(init?.body));
|
|
110
|
+
assert.equal(body.maxWords, 3);
|
|
111
|
+
return jsonResponse({
|
|
112
|
+
accepted: true,
|
|
113
|
+
words: [
|
|
114
|
+
{ sequence: 0, word: "Rubicon", priceAtomic: "1" },
|
|
115
|
+
{ sequence: 1, word: "streams", priceAtomic: "1" },
|
|
116
|
+
{ sequence: 2, word: "chunks", priceAtomic: "1" },
|
|
117
|
+
],
|
|
118
|
+
text: "Rubicon streams chunks",
|
|
119
|
+
wordsPaid: 3,
|
|
120
|
+
wordsDelivered: 3,
|
|
121
|
+
paidAtomic: "3",
|
|
122
|
+
completed: true,
|
|
123
|
+
settlementIds: ["settlement_chunk"],
|
|
124
|
+
payment: {
|
|
125
|
+
...payment(0, "Rubicon streams chunks"),
|
|
126
|
+
amountAtomic: "3",
|
|
127
|
+
bundleSequence: 0,
|
|
128
|
+
wordsDelivered: 3,
|
|
129
|
+
pricePerWordAtomic: "1",
|
|
130
|
+
text: "Rubicon streams chunks",
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
throw new Error(`Unexpected fetch: ${url}`);
|
|
135
|
+
});
|
|
136
|
+
const client = new RubiconClient({
|
|
137
|
+
baseUrl: "http://rubicon.test",
|
|
138
|
+
paymentEngine: chunkPaymentEngine,
|
|
139
|
+
fetch: fetcher,
|
|
140
|
+
});
|
|
141
|
+
const receipt = await client.run({
|
|
142
|
+
articleId: "article_1",
|
|
143
|
+
maxSpendAtomic: "10",
|
|
144
|
+
chunkWords: 3,
|
|
145
|
+
});
|
|
146
|
+
assert.equal(receipt.text, "Rubicon streams chunks");
|
|
147
|
+
assert.equal(receipt.wordsRead, 3);
|
|
148
|
+
assert.equal(receipt.amountPaidAtomic, "3");
|
|
149
|
+
assert.equal(receipt.payments.length, 1);
|
|
150
|
+
assert.equal(receipt.payments[0]?.amountAtomic, "3");
|
|
151
|
+
assert.equal(receipt.payments[0]?.wordsDelivered, 3);
|
|
152
|
+
assert.deepEqual(receipt.settlementIds, ["settlement_chunk"]);
|
|
153
|
+
});
|
|
154
|
+
test("read defaults to bundled mode and clamps bundle size to remaining article words", async () => {
|
|
155
|
+
const fetcher = (async (input, init) => {
|
|
156
|
+
const url = String(input);
|
|
157
|
+
if (url.endsWith("/v1/sessions")) {
|
|
158
|
+
return jsonResponse({
|
|
159
|
+
sessionId: "session_1",
|
|
160
|
+
state: "active",
|
|
161
|
+
article: article(15),
|
|
162
|
+
navigation: navigation(),
|
|
163
|
+
pricePerWordAtomic: "1",
|
|
164
|
+
maxArticlePriceAtomic: "15",
|
|
165
|
+
conversationId: "conversation_1",
|
|
166
|
+
wordPaymentAtomic: "1",
|
|
167
|
+
gatewayFeeBps: 0,
|
|
168
|
+
paymentRequired: { accepts: [{ amount: "1" }] },
|
|
169
|
+
expiresAt: "2026-06-18T12:00:00.000Z",
|
|
170
|
+
wordsPaid: 0,
|
|
171
|
+
wordsDelivered: 0,
|
|
172
|
+
paidAtomic: "0",
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
if (url.endsWith("/v1/sessions/session_1/stream")) {
|
|
176
|
+
const body = JSON.parse(String(init?.body));
|
|
177
|
+
assert.equal(body.maxWords, 15);
|
|
178
|
+
return jsonResponse({
|
|
179
|
+
accepted: true,
|
|
180
|
+
words: Array.from({ length: 15 }, (_, sequence) => ({ sequence, word: `w${sequence + 1}`, priceAtomic: "1" })),
|
|
181
|
+
text: Array.from({ length: 15 }, (_, index) => `w${index + 1}`).join(" "),
|
|
182
|
+
wordsPaid: 15,
|
|
183
|
+
wordsDelivered: 15,
|
|
184
|
+
paidAtomic: "15",
|
|
185
|
+
completed: true,
|
|
186
|
+
payment: { ...payment(0, "bundle"), amountAtomic: "15", wordsDelivered: 15, pricePerWordAtomic: "1" },
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
throw new Error(`Unexpected fetch: ${url}`);
|
|
190
|
+
});
|
|
191
|
+
const client = new RubiconClient({ baseUrl: "http://rubicon.test", paymentEngine: { ...chunkPaymentEngine, createWordPayment: paymentEngine.createWordPayment }, fetch: fetcher });
|
|
192
|
+
const events = [];
|
|
193
|
+
for await (const event of client.read({ articleId: "article_1", maxSpendAtomic: "100" })) {
|
|
194
|
+
events.push(event.type);
|
|
195
|
+
}
|
|
196
|
+
assert.deepEqual(events, ["session.started", "article.bundle", "article.usage", "article.completed"]);
|
|
197
|
+
});
|
|
198
|
+
test("bundled mode clamps bundle size to budget and max words", async () => {
|
|
199
|
+
const seenMaxWords = [];
|
|
200
|
+
const fetcher = (async (input, init) => {
|
|
201
|
+
const url = String(input);
|
|
202
|
+
if (url.endsWith("/v1/sessions")) {
|
|
203
|
+
return jsonResponse({
|
|
204
|
+
sessionId: "session_1",
|
|
205
|
+
state: "active",
|
|
206
|
+
article: article(100),
|
|
207
|
+
navigation: navigation(),
|
|
208
|
+
pricePerWordAtomic: "2",
|
|
209
|
+
maxArticlePriceAtomic: "200",
|
|
210
|
+
conversationId: "conversation_1",
|
|
211
|
+
wordPaymentAtomic: "2",
|
|
212
|
+
gatewayFeeBps: 0,
|
|
213
|
+
paymentRequired: { accepts: [{ amount: "2" }] },
|
|
214
|
+
expiresAt: "2026-06-18T12:00:00.000Z",
|
|
215
|
+
wordsPaid: 0,
|
|
216
|
+
wordsDelivered: 0,
|
|
217
|
+
paidAtomic: "0",
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
if (url.endsWith("/v1/sessions/session_1/stream")) {
|
|
221
|
+
const body = JSON.parse(String(init?.body));
|
|
222
|
+
seenMaxWords.push(body.maxWords);
|
|
223
|
+
return jsonResponse({
|
|
224
|
+
accepted: true,
|
|
225
|
+
words: Array.from({ length: body.maxWords }, (_, sequence) => ({ sequence, word: `w${sequence + 1}`, priceAtomic: "2" })),
|
|
226
|
+
text: "ok",
|
|
227
|
+
wordsPaid: body.maxWords,
|
|
228
|
+
wordsDelivered: body.maxWords,
|
|
229
|
+
paidAtomic: `${body.maxWords * 2}`,
|
|
230
|
+
completed: true,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
throw new Error(`Unexpected fetch: ${url}`);
|
|
234
|
+
});
|
|
235
|
+
const client = new RubiconClient({
|
|
236
|
+
baseUrl: "http://rubicon.test",
|
|
237
|
+
paymentEngine: { ...chunkPaymentEngine, createWordPayment: paymentEngine.createWordPayment },
|
|
238
|
+
fetch: fetcher,
|
|
239
|
+
});
|
|
240
|
+
await client.run({ articleId: "article_1", maxSpendAtomic: "12", maxWords: 10 });
|
|
241
|
+
assert.deepEqual(seenMaxWords, [6]);
|
|
242
|
+
});
|
|
243
|
+
test("explicit word stream mode keeps legacy word events", async () => {
|
|
244
|
+
const fetcher = (async (input) => {
|
|
245
|
+
const url = String(input);
|
|
246
|
+
if (url.endsWith("/v1/sessions")) {
|
|
247
|
+
return jsonResponse({
|
|
248
|
+
sessionId: "session_1",
|
|
249
|
+
state: "active",
|
|
250
|
+
article: article(1),
|
|
251
|
+
navigation: navigation(),
|
|
252
|
+
pricePerWordAtomic: "1",
|
|
253
|
+
maxArticlePriceAtomic: "1",
|
|
254
|
+
conversationId: "conversation_1",
|
|
255
|
+
wordPaymentAtomic: "1",
|
|
256
|
+
gatewayFeeBps: 0,
|
|
257
|
+
paymentRequired: { accepts: [{ amount: "1" }] },
|
|
258
|
+
expiresAt: "2026-06-18T12:00:00.000Z",
|
|
259
|
+
wordsPaid: 0,
|
|
260
|
+
wordsDelivered: 0,
|
|
261
|
+
paidAtomic: "0",
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
if (url.endsWith("/v1/sessions/session_1/payments")) {
|
|
265
|
+
return jsonResponse({
|
|
266
|
+
accepted: true,
|
|
267
|
+
sequence: 0,
|
|
268
|
+
word: "Rubicon",
|
|
269
|
+
priceAtomic: "1",
|
|
270
|
+
wordsPaid: 1,
|
|
271
|
+
wordsDelivered: 1,
|
|
272
|
+
paidAtomic: "1",
|
|
273
|
+
completed: true,
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
throw new Error(`Unexpected fetch: ${url}`);
|
|
277
|
+
});
|
|
278
|
+
const client = new RubiconClient({
|
|
279
|
+
baseUrl: "http://rubicon.test",
|
|
280
|
+
paymentEngine: { ...chunkPaymentEngine, createWordPayment: paymentEngine.createWordPayment },
|
|
281
|
+
fetch: fetcher,
|
|
282
|
+
});
|
|
283
|
+
const events = [];
|
|
284
|
+
for await (const event of client.read({ articleId: "article_1", maxSpendAtomic: "10", streamMode: "word" })) {
|
|
285
|
+
events.push(event.type);
|
|
286
|
+
}
|
|
287
|
+
assert.deepEqual(events, ["session.started", "article.word", "article.usage", "article.completed"]);
|
|
288
|
+
});
|
|
76
289
|
function jsonResponse(body) {
|
|
77
290
|
return new Response(JSON.stringify(body), {
|
|
78
291
|
status: 200,
|
|
79
292
|
headers: { "content-type": "application/json" },
|
|
80
293
|
});
|
|
81
294
|
}
|
|
82
|
-
function article() {
|
|
295
|
+
function article(totalWords = 1) {
|
|
83
296
|
return {
|
|
84
297
|
articleId: "article_1",
|
|
85
298
|
creatorId: "creator_1",
|
|
@@ -87,9 +300,9 @@ function article() {
|
|
|
87
300
|
title: "Title",
|
|
88
301
|
author: "Author",
|
|
89
302
|
state: "published",
|
|
90
|
-
totalWords
|
|
303
|
+
totalWords,
|
|
91
304
|
pricePerWordAtomic: "1",
|
|
92
|
-
maxArticlePriceAtomic:
|
|
305
|
+
maxArticlePriceAtomic: `${totalWords}`,
|
|
93
306
|
sections: [],
|
|
94
307
|
};
|
|
95
308
|
}
|
|
@@ -107,4 +320,17 @@ function navigation() {
|
|
|
107
320
|
stopConditions: [],
|
|
108
321
|
};
|
|
109
322
|
}
|
|
323
|
+
function payment(sequence, word) {
|
|
324
|
+
return {
|
|
325
|
+
paymentId: `payment_${sequence}`,
|
|
326
|
+
sessionId: "session_1",
|
|
327
|
+
articleId: "article_1",
|
|
328
|
+
sequence,
|
|
329
|
+
meteringUnit: "word",
|
|
330
|
+
amountAtomic: "1",
|
|
331
|
+
currency: "USDC",
|
|
332
|
+
settledAt: "2026-06-18T12:00:00.000Z",
|
|
333
|
+
word,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
110
336
|
//# sourceMappingURL=agent-client.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-client.test.js","sourceRoot":"","sources":["../src/agent-client.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-client.test.js","sourceRoot":"","sources":["../src/agent-client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { StartSessionResponse, StreamPaymentRequest } from "@rubicon-caliga/core";
|
|
2
|
-
import {
|
|
2
|
+
import type { CircleDeveloperControlledWalletsClient } from "@circle-fin/developer-controlled-wallets";
|
|
3
3
|
import type { AgentPaymentEngine } from "./payment-engine.js";
|
|
4
4
|
export interface CircleAgentWalletEngineOptions {
|
|
5
5
|
/** Circle API key that controls the Agent Wallet. */
|
|
6
6
|
apiKey: string;
|
|
7
7
|
/** Entity secret registered for the Circle developer account. */
|
|
8
8
|
entitySecret: string;
|
|
9
|
-
/** The Agent Wallet that holds USDC and signs
|
|
9
|
+
/** The Agent Wallet that holds USDC and signs Circle / Arc authorizations. */
|
|
10
10
|
walletId: string;
|
|
11
11
|
/**
|
|
12
12
|
* The wallet's on-chain address. Optional — when omitted it is resolved once
|
|
@@ -26,16 +26,20 @@ interface TypedDataRequest {
|
|
|
26
26
|
message: Record<string, unknown>;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
* Circle Agent Wallet engine. Signs
|
|
30
|
-
* custodial Circle Agent Wallet
|
|
31
|
-
*
|
|
32
|
-
*
|
|
29
|
+
* Circle Agent Wallet engine. Signs gateway authorization terms with a
|
|
30
|
+
* custodial Circle Agent Wallet so the buyer agent never handles a local
|
|
31
|
+
* signing key. Current gateways may still call the legacy one-word method as a
|
|
32
|
+
* chunk-compatibility path.
|
|
33
33
|
*/
|
|
34
34
|
export declare class CircleAgentWalletEngine implements AgentPaymentEngine {
|
|
35
35
|
private readonly x402;
|
|
36
36
|
private readonly signer;
|
|
37
37
|
constructor(options: CircleAgentWalletEngineOptions);
|
|
38
38
|
createWordPayment(session: StartSessionResponse): Promise<StreamPaymentRequest>;
|
|
39
|
+
createChunkPayment(session: StartSessionResponse, input: {
|
|
40
|
+
nextSequence: number;
|
|
41
|
+
maxWords: number;
|
|
42
|
+
}): Promise<StreamPaymentRequest>;
|
|
39
43
|
}
|
|
40
44
|
/**
|
|
41
45
|
* Circle's signTypedData API expects a complete EIP-712 document as a JSON
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circle-agent-wallet.d.ts","sourceRoot":"","sources":["../src/circle-agent-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"circle-agent-wallet.d.ts","sourceRoot":"","sources":["../src/circle-agent-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKvF,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,WAAW,8BAA8B;IAC7C,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,MAAM,CAAC,EAAE,sCAAsC,CAAC;CACjD;AAED,6EAA6E;AAC7E,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AA0DD;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,OAAO,EAAE,8BAA8B;IAiB7C,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAY/E,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAkB1I;AAED;;;;;;GAMG;AACH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,MAAM,CAIpF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB;;;;;;;EAYtD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { x402Client } from "@x402/core/client";
|
|
2
2
|
import { registerBatchScheme } from "@circle-fin/x402-batching/client";
|
|
3
3
|
import { ExactEvmScheme } from "@x402/evm/exact/client";
|
|
4
|
-
import
|
|
4
|
+
import * as CircleWallets from "@circle-fin/developer-controlled-wallets";
|
|
5
5
|
/**
|
|
6
6
|
* viem-shaped signer (`{ address, signTypedData }`) that delegates EIP-712
|
|
7
7
|
* signing to a Circle Agent Wallet over the API instead of holding a raw
|
|
@@ -46,7 +46,7 @@ class CircleAgentWalletSigner {
|
|
|
46
46
|
const res = await this.client.signTypedData({
|
|
47
47
|
walletId: this.walletId,
|
|
48
48
|
data: serializeTypedData(toEip712Payload(typed)),
|
|
49
|
-
memo: "Rubicon
|
|
49
|
+
memo: "Rubicon reading authorization",
|
|
50
50
|
});
|
|
51
51
|
const signature = res.data?.signature;
|
|
52
52
|
if (!signature) {
|
|
@@ -56,17 +56,17 @@ class CircleAgentWalletSigner {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
* Circle Agent Wallet engine. Signs
|
|
60
|
-
* custodial Circle Agent Wallet
|
|
61
|
-
*
|
|
62
|
-
*
|
|
59
|
+
* Circle Agent Wallet engine. Signs gateway authorization terms with a
|
|
60
|
+
* custodial Circle Agent Wallet so the buyer agent never handles a local
|
|
61
|
+
* signing key. Current gateways may still call the legacy one-word method as a
|
|
62
|
+
* chunk-compatibility path.
|
|
63
63
|
*/
|
|
64
64
|
export class CircleAgentWalletEngine {
|
|
65
65
|
x402 = new x402Client();
|
|
66
66
|
signer;
|
|
67
67
|
constructor(options) {
|
|
68
68
|
const client = options.client ??
|
|
69
|
-
initiateDeveloperControlledWalletsClient({
|
|
69
|
+
CircleWallets.initiateDeveloperControlledWalletsClient({
|
|
70
70
|
apiKey: options.apiKey,
|
|
71
71
|
entitySecret: options.entitySecret,
|
|
72
72
|
...(options.baseUrl ? { baseUrl: options.baseUrl } : {}),
|
|
@@ -81,7 +81,7 @@ export class CircleAgentWalletEngine {
|
|
|
81
81
|
}
|
|
82
82
|
async createWordPayment(session) {
|
|
83
83
|
if (!session.paymentRequired) {
|
|
84
|
-
throw new Error("Session did not include
|
|
84
|
+
throw new Error("Session did not include a legacy x402 payment requirement");
|
|
85
85
|
}
|
|
86
86
|
// Resolve the wallet address up front so the synchronous `address` read
|
|
87
87
|
// inside createPaymentPayload sees a real value.
|
|
@@ -90,6 +90,22 @@ export class CircleAgentWalletEngine {
|
|
|
90
90
|
paymentPayload: await this.x402.createPaymentPayload(session.paymentRequired),
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
+
async createChunkPayment(session, input) {
|
|
94
|
+
if (!session.paymentRequired) {
|
|
95
|
+
throw new Error("Session did not include an x402 payment requirement");
|
|
96
|
+
}
|
|
97
|
+
await this.signer.ensureAddress();
|
|
98
|
+
const amountAtomic = BigInt(session.wordPaymentAtomic) * BigInt(input.maxWords);
|
|
99
|
+
return {
|
|
100
|
+
paymentPayload: await this.x402.createPaymentPayload(withChunkRequirement(session.paymentRequired, {
|
|
101
|
+
amountAtomic: `${amountAtomic}`,
|
|
102
|
+
maxWords: input.maxWords,
|
|
103
|
+
nextSequence: input.nextSequence,
|
|
104
|
+
sessionId: session.sessionId,
|
|
105
|
+
})),
|
|
106
|
+
maxWords: input.maxWords,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
93
109
|
}
|
|
94
110
|
/**
|
|
95
111
|
* Circle's signTypedData API expects a complete EIP-712 document as a JSON
|
|
@@ -153,4 +169,26 @@ function isEip712Field(field) {
|
|
|
153
169
|
typeof field.name === "string" &&
|
|
154
170
|
typeof field.type === "string");
|
|
155
171
|
}
|
|
172
|
+
function withChunkRequirement(paymentRequired, chunk) {
|
|
173
|
+
const source = paymentRequired;
|
|
174
|
+
if (!Array.isArray(source.accepts)) {
|
|
175
|
+
return paymentRequired;
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
...paymentRequired,
|
|
179
|
+
accepts: source.accepts.map((accept) => ({
|
|
180
|
+
...accept,
|
|
181
|
+
amount: chunk.amountAtomic,
|
|
182
|
+
extra: {
|
|
183
|
+
...(accept.extra ?? {}),
|
|
184
|
+
amountAtomic: chunk.amountAtomic,
|
|
185
|
+
maxWords: chunk.maxWords,
|
|
186
|
+
sequence: chunk.nextSequence,
|
|
187
|
+
authorizationMode: "chunk",
|
|
188
|
+
nonce: `${chunk.sessionId}:${chunk.nextSequence}:${chunk.maxWords}`,
|
|
189
|
+
idempotencyKey: `${chunk.sessionId}:${chunk.nextSequence}:${chunk.maxWords}`,
|
|
190
|
+
},
|
|
191
|
+
})),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
156
194
|
//# sourceMappingURL=circle-agent-wallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circle-agent-wallet.js","sourceRoot":"","sources":["../src/circle-agent-wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"circle-agent-wallet.js","sourceRoot":"","sources":["../src/circle-agent-wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,16 +37,20 @@ interface TypedDataRequest {
|
|
|
37
37
|
message: Record<string, unknown>;
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
|
-
* Circle CLI / Agent Wallet payment engine. It
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
40
|
+
* Circle CLI / Agent Wallet payment engine. It delegates EIP-712 signing to
|
|
41
|
+
* `circle wallet sign typed-data`, so agents never need raw private keys or
|
|
42
|
+
* hand-built Circle / Arc payloads. Current gateways may call the legacy
|
|
43
|
+
* one-word method as a chunk-compatibility path.
|
|
44
44
|
*/
|
|
45
45
|
export declare class CircleCliGatewayPaymentEngine implements AgentPaymentEngine {
|
|
46
46
|
private readonly x402;
|
|
47
47
|
private readonly signer;
|
|
48
48
|
constructor(options?: CircleCliGatewayPaymentEngineOptions);
|
|
49
49
|
createWordPayment(session: StartSessionResponse): Promise<StreamPaymentRequest>;
|
|
50
|
+
createChunkPayment(session: StartSessionResponse, input: {
|
|
51
|
+
nextSequence: number;
|
|
52
|
+
maxWords: number;
|
|
53
|
+
}): Promise<StreamPaymentRequest>;
|
|
50
54
|
}
|
|
51
55
|
export declare class CircleCliGatewaySigner {
|
|
52
56
|
private readonly options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circle-cli-gateway-payment.d.ts","sourceRoot":"","sources":["../src/circle-cli-gateway-payment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnF,MAAM,WAAW,oCAAoC;IACnD;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,sCAAsC;IACtC,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,qBAAa,6BAA8B,YAAW,kBAAkB;IACtE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,OAAO,GAAE,oCAAyC;IAcxD,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"circle-cli-gateway-payment.d.ts","sourceRoot":"","sources":["../src/circle-cli-gateway-payment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnF,MAAM,WAAW,oCAAoC;IACnD;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,sCAAsC;IACtC,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,qBAAa,6BAA8B,YAAW,kBAAkB;IACtE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,OAAO,GAAE,oCAAyC;IAcxD,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAU/E,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAkB1I;AAED,qBAAa,sBAAsB;IAO/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,kBAAkB,EAAE,KAAK,MAAM,EAAE,CAAgD;IACjF,OAAO,EAAE,KAAK,MAAM,EAAE,CAAgD;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAC,CAAgB;gBAGf,OAAO,EAAE;QACxB,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QACnC,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QACnC,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,eAAe,CAAC;KACzB;IAaG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;YAgBtD,cAAc;YASd,yBAAyB;YAczB,iBAAiB;CAahC;AAgBD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAiBrE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAezE;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAO1E"}
|
|
@@ -6,10 +6,10 @@ import { ExactEvmScheme } from "@x402/evm/exact/client";
|
|
|
6
6
|
import { serializeTypedData, toEip712Payload } from "./circle-agent-wallet.js";
|
|
7
7
|
const execFileAsync = promisify(execFile);
|
|
8
8
|
/**
|
|
9
|
-
* Circle CLI / Agent Wallet payment engine. It
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* Circle CLI / Agent Wallet payment engine. It delegates EIP-712 signing to
|
|
10
|
+
* `circle wallet sign typed-data`, so agents never need raw private keys or
|
|
11
|
+
* hand-built Circle / Arc payloads. Current gateways may call the legacy
|
|
12
|
+
* one-word method as a chunk-compatibility path.
|
|
13
13
|
*/
|
|
14
14
|
export class CircleCliGatewayPaymentEngine {
|
|
15
15
|
x402 = new x402Client();
|
|
@@ -29,13 +29,29 @@ export class CircleCliGatewayPaymentEngine {
|
|
|
29
29
|
}
|
|
30
30
|
async createWordPayment(session) {
|
|
31
31
|
if (!session.paymentRequired) {
|
|
32
|
-
throw new Error("Session did not include
|
|
32
|
+
throw new Error("Session did not include a legacy x402 payment requirement");
|
|
33
33
|
}
|
|
34
34
|
await this.signer.ensureAddress();
|
|
35
35
|
return {
|
|
36
36
|
paymentPayload: await this.x402.createPaymentPayload(session.paymentRequired),
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
+
async createChunkPayment(session, input) {
|
|
40
|
+
if (!session.paymentRequired) {
|
|
41
|
+
throw new Error("Session did not include an x402 payment requirement");
|
|
42
|
+
}
|
|
43
|
+
await this.signer.ensureAddress();
|
|
44
|
+
const amountAtomic = BigInt(session.wordPaymentAtomic) * BigInt(input.maxWords);
|
|
45
|
+
return {
|
|
46
|
+
paymentPayload: await this.x402.createPaymentPayload(withChunkRequirement(session.paymentRequired, {
|
|
47
|
+
amountAtomic: `${amountAtomic}`,
|
|
48
|
+
maxWords: input.maxWords,
|
|
49
|
+
nextSequence: input.nextSequence,
|
|
50
|
+
sessionId: session.sessionId,
|
|
51
|
+
})),
|
|
52
|
+
maxWords: input.maxWords,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
39
55
|
}
|
|
40
56
|
export class CircleCliGatewaySigner {
|
|
41
57
|
options;
|
|
@@ -198,6 +214,28 @@ function findString(value, keys) {
|
|
|
198
214
|
}
|
|
199
215
|
return undefined;
|
|
200
216
|
}
|
|
217
|
+
function withChunkRequirement(paymentRequired, chunk) {
|
|
218
|
+
const source = paymentRequired;
|
|
219
|
+
if (!Array.isArray(source.accepts)) {
|
|
220
|
+
return paymentRequired;
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
...paymentRequired,
|
|
224
|
+
accepts: source.accepts.map((accept) => ({
|
|
225
|
+
...accept,
|
|
226
|
+
amount: chunk.amountAtomic,
|
|
227
|
+
extra: {
|
|
228
|
+
...(accept.extra ?? {}),
|
|
229
|
+
amountAtomic: chunk.amountAtomic,
|
|
230
|
+
maxWords: chunk.maxWords,
|
|
231
|
+
sequence: chunk.nextSequence,
|
|
232
|
+
authorizationMode: "chunk",
|
|
233
|
+
nonce: `${chunk.sessionId}:${chunk.nextSequence}:${chunk.maxWords}`,
|
|
234
|
+
idempotencyKey: `${chunk.sessionId}:${chunk.nextSequence}:${chunk.maxWords}`,
|
|
235
|
+
},
|
|
236
|
+
})),
|
|
237
|
+
};
|
|
238
|
+
}
|
|
201
239
|
function parseJson(value) {
|
|
202
240
|
try {
|
|
203
241
|
return JSON.parse(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circle-cli-gateway-payment.js","sourceRoot":"","sources":["../src/circle-cli-gateway-payment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE/E,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAyC1C;;;;;GAKG;AACH,MAAM,OAAO,6BAA6B;IACvB,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;IACxB,MAAM,CAAyB;IAEhD,YAAY,UAAgD,EAAE;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAsB,CAAC;YACvC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,aAAa;YACvE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,UAAU;YACpE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,aAAa;YACrC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,YAAY;SACvC,CAAC,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAA6B;QACnD,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"circle-cli-gateway-payment.js","sourceRoot":"","sources":["../src/circle-cli-gateway-payment.ts"],"names":[],"mappings":"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"}
|