@rubicon-caliga/agent-sdk 0.1.1 → 0.1.3
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 +42 -25
- package/dist/agent-client.d.ts +20 -5
- package/dist/agent-client.d.ts.map +1 -1
- package/dist/agent-client.js +82 -4
- package/dist/agent-client.js.map +1 -1
- package/dist/agent-client.test.d.ts +2 -0
- package/dist/agent-client.test.d.ts.map +1 -0
- package/dist/agent-client.test.js +191 -0
- package/dist/agent-client.test.js.map +1 -0
- package/dist/circle-agent-wallet.d.ts +6 -6
- package/dist/circle-agent-wallet.d.ts.map +1 -1
- package/dist/circle-agent-wallet.js +8 -8
- package/dist/circle-agent-wallet.js.map +1 -1
- package/dist/circle-cli-gateway-payment.d.ts +51 -4
- package/dist/circle-cli-gateway-payment.d.ts.map +1 -1
- package/dist/circle-cli-gateway-payment.js +85 -14
- package/dist/circle-cli-gateway-payment.js.map +1 -1
- package/dist/circle-cli-gateway-payment.test.js +110 -1
- package/dist/circle-cli-gateway-payment.test.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 +205 -0
- package/src/agent-client.ts +93 -4
- package/src/circle-agent-wallet.ts +10 -12
- package/src/circle-cli-gateway-payment.test.ts +129 -0
- package/src/circle-cli-gateway-payment.ts +114 -15
- package/src/payment-engine.ts +39 -5
package/README.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# @rubicon-caliga/agent-sdk
|
|
2
2
|
|
|
3
|
-
Buyer-agent SDK for Rubicon. The agent opens a budgeted reading session
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exactly the words it
|
|
3
|
+
Buyer-agent SDK for Rubicon. The agent opens a budgeted reading session,
|
|
4
|
+
authorizes a maximum Circle / Arc spend, then pays for the **exact words** it
|
|
5
|
+
actually receives. A high-level `read()` loop runs the whole seller conversation
|
|
6
|
+
→ session authorization → metered word stream → final receipt cycle until a stop
|
|
7
|
+
condition is met, so you never run a payment flow per word by hand. The buyer
|
|
8
|
+
can stop the moment it has enough information and pays for exactly the words it
|
|
9
|
+
received.
|
|
9
10
|
|
|
10
11
|
## Quick Start
|
|
11
12
|
|
|
@@ -20,7 +21,7 @@ const hasCircleCliWallet = process.env.CIRCLE_AGENT_WALLET_ADDRESS;
|
|
|
20
21
|
const rubicon = new Rubicon({
|
|
21
22
|
paymentEngine: hasCircleCliWallet
|
|
22
23
|
? new CircleCliGatewayPaymentEngine({
|
|
23
|
-
|
|
24
|
+
agentWalletAddress: process.env.CIRCLE_AGENT_WALLET_ADDRESS as `0x${string}`,
|
|
24
25
|
})
|
|
25
26
|
: new StaticPaymentEngine(),
|
|
26
27
|
});
|
|
@@ -45,9 +46,9 @@ gateway. For real Arc Testnet settlement without raw private keys, pass
|
|
|
45
46
|
|
|
46
47
|
## `run(options)`
|
|
47
48
|
|
|
48
|
-
Runs the whole seller conversation → session
|
|
49
|
-
cycle and returns a final receipt. Use `onWord` or `onEvent`
|
|
50
|
-
progress.
|
|
49
|
+
Runs the whole seller conversation → session authorization → word-level metering
|
|
50
|
+
→ final receipt cycle and returns a final receipt. Use `onWord` or `onEvent`
|
|
51
|
+
when you want live progress.
|
|
51
52
|
|
|
52
53
|
## `read(options)`
|
|
53
54
|
|
|
@@ -55,7 +56,7 @@ Yields `session.started`, `seller.message`, `article.word`, `article.usage`,
|
|
|
55
56
|
`article.completed` (with a final receipt), and `article.error`. It handles:
|
|
56
57
|
|
|
57
58
|
- seller-agent conversation and starting-section selection
|
|
58
|
-
- session
|
|
59
|
+
- session authorization, with chunk or one-word fallback for older gateways
|
|
59
60
|
- word receipt and running usage
|
|
60
61
|
- retry idempotency (per-word idempotency keys)
|
|
61
62
|
- budget enforcement (`maxSpendAtomic` / `budget`)
|
|
@@ -71,16 +72,16 @@ for custom flows.
|
|
|
71
72
|
## Payment engines
|
|
72
73
|
|
|
73
74
|
- `StaticPaymentEngine` — no-money development engine for a dev-mode gateway.
|
|
74
|
-
- `CircleCliGatewayPaymentEngine` — **Circle CLI / Agent Wallet custody.**
|
|
75
|
-
|
|
76
|
-
SDK never holds a private key and callers never manually
|
|
77
|
-
payloads. The
|
|
78
|
-
|
|
79
|
-
- `CircleAgentWalletEngine` — **custodial, Circle-native.**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
- `CircleCliGatewayPaymentEngine` — **Circle CLI / Agent Wallet custody.**
|
|
76
|
+
Signs Circle / Arc authorization payloads through `circle wallet sign
|
|
77
|
+
typed-data`, so the SDK never holds a private key and callers never manually
|
|
78
|
+
assemble payment payloads. The target mode is one session authorization with
|
|
79
|
+
chunk fallback.
|
|
80
|
+
- `CircleAgentWalletEngine` — **custodial, Circle-native.** Signs authorization
|
|
81
|
+
payloads with a Circle Agent / Developer-Controlled Wallet through Circle's
|
|
82
|
+
API. The wallet controller provisions, funds, and sets spending policies on the
|
|
83
|
+
wallet beforehand; the SDK only consumes it and keeps enforcing the confirmed
|
|
84
|
+
budget.
|
|
84
85
|
|
|
85
86
|
```ts
|
|
86
87
|
import Rubicon, { CircleCliGatewayPaymentEngine } from "@rubicon-caliga/agent-sdk";
|
|
@@ -88,16 +89,32 @@ import Rubicon, { CircleCliGatewayPaymentEngine } from "@rubicon-caliga/agent-sd
|
|
|
88
89
|
const rubicon = new Rubicon({
|
|
89
90
|
baseUrl: process.env.RUBICON_GATEWAY_URL,
|
|
90
91
|
paymentEngine: new CircleCliGatewayPaymentEngine({
|
|
91
|
-
|
|
92
|
+
agentWalletAddress: process.env.CIRCLE_AGENT_WALLET_ADDRESS as `0x${string}` | undefined,
|
|
92
93
|
chain: "ARC-TESTNET",
|
|
93
94
|
}),
|
|
94
95
|
});
|
|
95
96
|
```
|
|
96
97
|
|
|
97
|
-
|
|
98
|
+
`CircleCliGatewayPaymentEngine` keeps two addresses distinct:
|
|
99
|
+
|
|
100
|
+
- `agentWalletAddress` is the Circle Agent Wallet passed to
|
|
101
|
+
`circle wallet sign typed-data --address`.
|
|
102
|
+
- `buyerWalletAddress` / `backingEOA` is the Gateway backing EOA used as the
|
|
103
|
+
x402 `TransferWithAuthorization.from` address.
|
|
104
|
+
|
|
105
|
+
When only `agentWalletAddress` is provided, the engine discovers the backing EOA
|
|
106
|
+
with `circle gateway balance --address <agentWalletAddress> --chain ARC-TESTNET --output json`.
|
|
107
|
+
When no address is provided, the engine first runs
|
|
98
108
|
`circle wallet list --chain ARC-TESTNET --type agent --output json` and uses the
|
|
99
|
-
sole Agent Wallet it finds
|
|
100
|
-
|
|
109
|
+
sole Agent Wallet it finds, then discovers its backing EOA with Gateway balance.
|
|
110
|
+
The older `walletAddress` option remains as an alias for `agentWalletAddress`.
|
|
111
|
+
If multiple Agent Wallets are present, pass the agent wallet explicitly.
|
|
112
|
+
|
|
113
|
+
Gateway/Nanopayments receipts may have empty `transactionHashes`. Treat
|
|
114
|
+
`settlementIds` as the primary proof of payment; scanner visibility is not
|
|
115
|
+
guaranteed because a successful nanopayment may not appear as a direct ERC-20
|
|
116
|
+
transfer to the seller. Seller dashboards should count Rubicon backend payment
|
|
117
|
+
receipts and Circle Gateway settlement IDs, not direct on-chain transfers.
|
|
101
118
|
|
|
102
119
|
The lower-level API-backed custody path is also available:
|
|
103
120
|
|
package/dist/agent-client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ArticleSummary, Budget, GatewayEvent, SendConversationMessageResponse, StartConversationResponse, StartSessionRequest, StartSessionResponse, StreamPaymentRequest, StreamPaymentResponse, WordPaymentReceipt } from "@rubicon-caliga/core";
|
|
1
|
+
import type { ArticleSummary, Budget, GatewayEvent, SendConversationMessageResponse, StartConversationResponse, StartSessionRequest, StartSessionResponse, StreamChunkResponse, StreamPaymentRequest, StreamPaymentResponse, WordPaymentReceipt } from "@rubicon-caliga/core";
|
|
2
2
|
import { type AgentPaymentEngine } from "./payment-engine.js";
|
|
3
3
|
export interface RubiconClientOptions {
|
|
4
4
|
baseUrl?: string;
|
|
@@ -49,6 +49,18 @@ export type RubiconReadEvent = {
|
|
|
49
49
|
transactionHashes?: string[];
|
|
50
50
|
payment?: WordPaymentReceipt;
|
|
51
51
|
text: string;
|
|
52
|
+
} | {
|
|
53
|
+
type: "article.chunk";
|
|
54
|
+
words: Array<{
|
|
55
|
+
sequence: number;
|
|
56
|
+
word: string;
|
|
57
|
+
priceAtomic: `${bigint}`;
|
|
58
|
+
payment?: WordPaymentReceipt;
|
|
59
|
+
}>;
|
|
60
|
+
text: string;
|
|
61
|
+
wordsRead: number;
|
|
62
|
+
amountPaidAtomic: `${bigint}`;
|
|
63
|
+
completed: boolean;
|
|
52
64
|
} | {
|
|
53
65
|
type: "article.usage";
|
|
54
66
|
wordsPaid: number;
|
|
@@ -70,6 +82,8 @@ export interface ReadOptions {
|
|
|
70
82
|
maxSpendAtomic?: `${bigint}`;
|
|
71
83
|
budget?: Budget;
|
|
72
84
|
maxWords?: number;
|
|
85
|
+
/** Number of words to authorize and deliver per gateway round trip when supported. */
|
|
86
|
+
chunkWords?: number;
|
|
73
87
|
/** Return true to stop reading once enough information has been collected. */
|
|
74
88
|
stopWhen?: (state: {
|
|
75
89
|
text: string;
|
|
@@ -88,8 +102,8 @@ export interface RunOptions extends ReadOptions {
|
|
|
88
102
|
}
|
|
89
103
|
/**
|
|
90
104
|
* High-level buyer-agent client for Rubicon. `read()` runs the entire
|
|
91
|
-
*
|
|
92
|
-
*
|
|
105
|
+
* authorize -> word -> usage loop until a stop condition is met, so application
|
|
106
|
+
* developers never drive a payment flow for every word themselves.
|
|
93
107
|
*/
|
|
94
108
|
export declare class RubiconClient {
|
|
95
109
|
private readonly options;
|
|
@@ -107,6 +121,7 @@ export declare class RubiconClient {
|
|
|
107
121
|
sendConversationMessage(conversationId: string, message: string): Promise<SendConversationMessageResponse>;
|
|
108
122
|
startSession(request: StartSessionRequest): Promise<StartSessionResponse>;
|
|
109
123
|
payForWord(sessionId: string, payment: StreamPaymentRequest): Promise<StreamPaymentResponse>;
|
|
124
|
+
streamChunk(sessionId: string, payment: StreamPaymentRequest): Promise<StreamChunkResponse>;
|
|
110
125
|
abort(sessionId: string, reason?: string): Promise<void>;
|
|
111
126
|
/** Subscribe to raw word-level server-sent events for observation/logging. */
|
|
112
127
|
streamEvents(sessionId: string, onEvent: (event: GatewayEvent) => void): () => void;
|
|
@@ -116,8 +131,8 @@ export declare class RubiconClient {
|
|
|
116
131
|
*/
|
|
117
132
|
run(options: RunOptions): Promise<ReadReceipt>;
|
|
118
133
|
/**
|
|
119
|
-
* Read an article
|
|
120
|
-
* running usage, and a final completion event carrying the receipt.
|
|
134
|
+
* Read an article with word-level metering. Yields seller messages, paid
|
|
135
|
+
* words, running usage, and a final completion event carrying the receipt.
|
|
121
136
|
*/
|
|
122
137
|
read(options: ReadOptions): AsyncGenerator<RubiconReadEvent, ReadReceipt>;
|
|
123
138
|
private headers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,YAAY,EACZ,+BAA+B,EAC/B,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEnF,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,WAAW,GAAG,SAAS,CAAC;CACjG;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1E;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,GAAG,MAAM,EAAE,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5H;AAED;;;;GAIG;AACH,qBAAa,aAAa;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEtB,OAAO,EAAE,oBAAoB;IAMpD,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI5C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQ5E,iBAAiB,CAAC,KAAK,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAUhC,uBAAuB,CAC3B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,+BAA+B,CAAC;IAarC,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAUzE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAY5F,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzE,8EAA8E;IAC9E,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI;IAiBnF;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBpD;;;OAGG;IACI,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,gBAAgB,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-client.js
CHANGED
|
@@ -2,8 +2,8 @@ import { EventSource } from "eventsource";
|
|
|
2
2
|
import { StaticPaymentEngine } from "./payment-engine.js";
|
|
3
3
|
/**
|
|
4
4
|
* High-level buyer-agent client for Rubicon. `read()` runs the entire
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* authorize -> word -> usage loop until a stop condition is met, so application
|
|
6
|
+
* developers never drive a payment flow for every word themselves.
|
|
7
7
|
*/
|
|
8
8
|
export class RubiconClient {
|
|
9
9
|
options;
|
|
@@ -58,6 +58,17 @@ export class RubiconClient {
|
|
|
58
58
|
}
|
|
59
59
|
return response.json();
|
|
60
60
|
}
|
|
61
|
+
async streamChunk(sessionId, payment) {
|
|
62
|
+
const response = await this.fetcher(`${this.baseUrl}/v1/sessions/${sessionId}/stream`, {
|
|
63
|
+
method: "POST",
|
|
64
|
+
headers: this.headers({ "content-type": "application/json" }),
|
|
65
|
+
body: JSON.stringify(payment),
|
|
66
|
+
});
|
|
67
|
+
if (!response.ok) {
|
|
68
|
+
throw new Error(`Chunk stream rejected: ${response.status} ${await response.text()}`);
|
|
69
|
+
}
|
|
70
|
+
return response.json();
|
|
71
|
+
}
|
|
61
72
|
async abort(sessionId, reason = "agent_cancelled") {
|
|
62
73
|
await this.fetcher(`${this.baseUrl}/v1/sessions/${sessionId}/abort`, {
|
|
63
74
|
method: "POST",
|
|
@@ -106,8 +117,8 @@ export class RubiconClient {
|
|
|
106
117
|
return receipt;
|
|
107
118
|
}
|
|
108
119
|
/**
|
|
109
|
-
* Read an article
|
|
110
|
-
* running usage, and a final completion event carrying the receipt.
|
|
120
|
+
* Read an article with word-level metering. Yields seller messages, paid
|
|
121
|
+
* words, running usage, and a final completion event carrying the receipt.
|
|
111
122
|
*/
|
|
112
123
|
async *read(options) {
|
|
113
124
|
const budget = options.budget ??
|
|
@@ -154,6 +165,8 @@ export class RubiconClient {
|
|
|
154
165
|
const transactionHashes = [];
|
|
155
166
|
const settlementIds = [];
|
|
156
167
|
const payments = [];
|
|
168
|
+
const chunkWords = normalizeChunkWords(options.chunkWords);
|
|
169
|
+
const useChunks = chunkWords > 1 && typeof this.paymentEngine.createChunkPayment === "function";
|
|
157
170
|
let stopReason = "article_completed";
|
|
158
171
|
let completed = false;
|
|
159
172
|
const makeReceipt = () => ({
|
|
@@ -185,6 +198,64 @@ export class RubiconClient {
|
|
|
185
198
|
stopReason = "stop_condition";
|
|
186
199
|
break;
|
|
187
200
|
}
|
|
201
|
+
if (useChunks) {
|
|
202
|
+
const remainingWords = options.maxWords === undefined ? chunkWords : Math.max(0, options.maxWords - wordsRead);
|
|
203
|
+
const affordableWords = Number((budgetAtomic - amountPaid) / wordPaymentAtomic);
|
|
204
|
+
const maxWords = Math.max(1, Math.min(chunkWords, remainingWords || chunkWords, affordableWords));
|
|
205
|
+
const payment = await this.paymentEngine.createChunkPayment(session, {
|
|
206
|
+
nextSequence: wordsRead,
|
|
207
|
+
maxWords,
|
|
208
|
+
});
|
|
209
|
+
const idempotencyKey = `${session.sessionId}:${wordsRead}:${maxWords}`;
|
|
210
|
+
let result;
|
|
211
|
+
try {
|
|
212
|
+
result = await this.streamChunk(session.sessionId, { ...payment, idempotencyKey, maxWords });
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
yield { type: "article.error", message: error instanceof Error ? error.message : String(error) };
|
|
216
|
+
stopReason = "aborted";
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
if (result.words.length === 0 && result.completed) {
|
|
220
|
+
completed = true;
|
|
221
|
+
stopReason = "article_completed";
|
|
222
|
+
const receipt = makeReceipt();
|
|
223
|
+
yield { type: "article.completed", receipt };
|
|
224
|
+
return receipt;
|
|
225
|
+
}
|
|
226
|
+
for (const entry of result.words) {
|
|
227
|
+
if (entry.payment) {
|
|
228
|
+
payments.push(entry.payment);
|
|
229
|
+
}
|
|
230
|
+
text = text ? `${text} ${entry.word}` : entry.word;
|
|
231
|
+
}
|
|
232
|
+
wordsRead = result.wordsDelivered;
|
|
233
|
+
amountPaid = BigInt(result.paidAtomic);
|
|
234
|
+
transactionHashes.push(...(result.transactionHashes ?? (result.transactionHash ? [result.transactionHash] : [])));
|
|
235
|
+
settlementIds.push(...(result.settlementIds ?? (result.settlementId ? [result.settlementId] : [])));
|
|
236
|
+
yield {
|
|
237
|
+
type: "article.chunk",
|
|
238
|
+
words: result.words,
|
|
239
|
+
text,
|
|
240
|
+
wordsRead,
|
|
241
|
+
amountPaidAtomic: `${amountPaid}`,
|
|
242
|
+
completed: result.completed,
|
|
243
|
+
};
|
|
244
|
+
yield {
|
|
245
|
+
type: "article.usage",
|
|
246
|
+
wordsPaid: result.wordsPaid,
|
|
247
|
+
wordsDelivered: result.wordsDelivered,
|
|
248
|
+
paidAtomic: result.paidAtomic,
|
|
249
|
+
};
|
|
250
|
+
if (result.completed) {
|
|
251
|
+
completed = true;
|
|
252
|
+
stopReason = "article_completed";
|
|
253
|
+
const receipt = makeReceipt();
|
|
254
|
+
yield { type: "article.completed", receipt };
|
|
255
|
+
return receipt;
|
|
256
|
+
}
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
188
259
|
const payment = await this.paymentEngine.createWordPayment(session);
|
|
189
260
|
// Idempotency key ties this payment to the specific next word; safe retries.
|
|
190
261
|
const idempotencyKey = `${session.sessionId}:${wordsRead}`;
|
|
@@ -261,4 +332,11 @@ export class RubiconClient {
|
|
|
261
332
|
}
|
|
262
333
|
/** Backwards-compatible alias. */
|
|
263
334
|
export const AgentClient = RubiconClient;
|
|
335
|
+
function normalizeChunkWords(chunkWords) {
|
|
336
|
+
if (chunkWords === undefined)
|
|
337
|
+
return 1;
|
|
338
|
+
if (!Number.isInteger(chunkWords) || chunkWords < 1)
|
|
339
|
+
return 1;
|
|
340
|
+
return Math.min(chunkWords, 256);
|
|
341
|
+
}
|
|
264
342
|
//# sourceMappingURL=agent-client.js.map
|
package/dist/agent-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-client.test.d.ts","sourceRoot":"","sources":["../src/agent-client.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { test } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { RubiconClient } from "./agent-client.js";
|
|
4
|
+
const paymentEngine = {
|
|
5
|
+
async createWordPayment() {
|
|
6
|
+
return { paymentPayload: { ok: true } };
|
|
7
|
+
},
|
|
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
|
+
};
|
|
20
|
+
test("run receipt preserves Gateway settlement receipt fields", async () => {
|
|
21
|
+
const fetcher = (async (input) => {
|
|
22
|
+
const url = String(input);
|
|
23
|
+
if (url.endsWith("/v1/sessions")) {
|
|
24
|
+
return jsonResponse({
|
|
25
|
+
sessionId: "session_1",
|
|
26
|
+
state: "active",
|
|
27
|
+
article: article(),
|
|
28
|
+
navigation: navigation(),
|
|
29
|
+
pricePerWordAtomic: "1",
|
|
30
|
+
maxArticlePriceAtomic: "10",
|
|
31
|
+
conversationId: "conversation_1",
|
|
32
|
+
wordPaymentAtomic: "1",
|
|
33
|
+
gatewayFeeBps: 0,
|
|
34
|
+
paymentRequired: { scheme: "exact" },
|
|
35
|
+
expiresAt: "2026-06-18T12:00:00.000Z",
|
|
36
|
+
wordsPaid: 0,
|
|
37
|
+
wordsDelivered: 0,
|
|
38
|
+
paidAtomic: "0",
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
if (url.endsWith("/v1/sessions/session_1/payments")) {
|
|
42
|
+
return jsonResponse({
|
|
43
|
+
accepted: true,
|
|
44
|
+
sequence: 0,
|
|
45
|
+
word: "Rubicon",
|
|
46
|
+
priceAtomic: "1",
|
|
47
|
+
wordsPaid: 1,
|
|
48
|
+
wordsDelivered: 1,
|
|
49
|
+
paidAtomic: "1",
|
|
50
|
+
completed: true,
|
|
51
|
+
transactionHashes: [],
|
|
52
|
+
settlementIds: ["settlement_1"],
|
|
53
|
+
payment: {
|
|
54
|
+
paymentId: "payment_1",
|
|
55
|
+
sessionId: "session_1",
|
|
56
|
+
articleId: "article_1",
|
|
57
|
+
sequence: 0,
|
|
58
|
+
meteringUnit: "word",
|
|
59
|
+
amountAtomic: "1",
|
|
60
|
+
currency: "USDC",
|
|
61
|
+
network: "eip155:5042002",
|
|
62
|
+
payTo: "0x3333333333333333333333333333333333333333",
|
|
63
|
+
transactionHashes: [],
|
|
64
|
+
settlementIds: ["settlement_1"],
|
|
65
|
+
buyerWalletAddress: "0x2222222222222222222222222222222222222222",
|
|
66
|
+
settledAt: "2026-06-18T12:00:00.000Z",
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
throw new Error(`Unexpected fetch: ${url}`);
|
|
71
|
+
});
|
|
72
|
+
const client = new RubiconClient({
|
|
73
|
+
baseUrl: "http://rubicon.test",
|
|
74
|
+
paymentEngine,
|
|
75
|
+
fetch: fetcher,
|
|
76
|
+
});
|
|
77
|
+
const receipt = await client.run({
|
|
78
|
+
articleId: "article_1",
|
|
79
|
+
maxSpendAtomic: "10",
|
|
80
|
+
});
|
|
81
|
+
assert.deepEqual(receipt.transactionHashes, []);
|
|
82
|
+
assert.deepEqual(receipt.settlementIds, ["settlement_1"]);
|
|
83
|
+
assert.equal(receipt.buyerWalletAddress, "0x2222222222222222222222222222222222222222");
|
|
84
|
+
assert.equal(receipt.sellerPayTo, "0x3333333333333333333333333333333333333333");
|
|
85
|
+
assert.equal(receipt.network, "eip155:5042002");
|
|
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(),
|
|
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", payment: payment(0, "Rubicon") },
|
|
115
|
+
{ sequence: 1, word: "streams", priceAtomic: "1", payment: payment(1, "streams") },
|
|
116
|
+
{ sequence: 2, word: "chunks", priceAtomic: "1", payment: payment(2, "chunks") },
|
|
117
|
+
],
|
|
118
|
+
text: "Rubicon streams chunks",
|
|
119
|
+
wordsPaid: 3,
|
|
120
|
+
wordsDelivered: 3,
|
|
121
|
+
paidAtomic: "3",
|
|
122
|
+
completed: true,
|
|
123
|
+
settlementIds: ["settlement_chunk"],
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
throw new Error(`Unexpected fetch: ${url}`);
|
|
127
|
+
});
|
|
128
|
+
const client = new RubiconClient({
|
|
129
|
+
baseUrl: "http://rubicon.test",
|
|
130
|
+
paymentEngine: chunkPaymentEngine,
|
|
131
|
+
fetch: fetcher,
|
|
132
|
+
});
|
|
133
|
+
const receipt = await client.run({
|
|
134
|
+
articleId: "article_1",
|
|
135
|
+
maxSpendAtomic: "10",
|
|
136
|
+
chunkWords: 3,
|
|
137
|
+
});
|
|
138
|
+
assert.equal(receipt.text, "Rubicon streams chunks");
|
|
139
|
+
assert.equal(receipt.wordsRead, 3);
|
|
140
|
+
assert.equal(receipt.amountPaidAtomic, "3");
|
|
141
|
+
assert.equal(receipt.payments.length, 3);
|
|
142
|
+
assert.deepEqual(receipt.settlementIds, ["settlement_chunk"]);
|
|
143
|
+
});
|
|
144
|
+
function jsonResponse(body) {
|
|
145
|
+
return new Response(JSON.stringify(body), {
|
|
146
|
+
status: 200,
|
|
147
|
+
headers: { "content-type": "application/json" },
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
function article() {
|
|
151
|
+
return {
|
|
152
|
+
articleId: "article_1",
|
|
153
|
+
creatorId: "creator_1",
|
|
154
|
+
creatorUsername: "creator",
|
|
155
|
+
title: "Title",
|
|
156
|
+
author: "Author",
|
|
157
|
+
state: "published",
|
|
158
|
+
totalWords: 1,
|
|
159
|
+
pricePerWordAtomic: "1",
|
|
160
|
+
maxArticlePriceAtomic: "1",
|
|
161
|
+
sections: [],
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function navigation() {
|
|
165
|
+
return {
|
|
166
|
+
articleId: "article_1",
|
|
167
|
+
sections: [],
|
|
168
|
+
sellerAgent: {
|
|
169
|
+
recommendedSectionId: "intro",
|
|
170
|
+
alternativeSectionIds: [],
|
|
171
|
+
rationale: "",
|
|
172
|
+
safeHints: [],
|
|
173
|
+
withheld: [],
|
|
174
|
+
},
|
|
175
|
+
stopConditions: [],
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
function payment(sequence, word) {
|
|
179
|
+
return {
|
|
180
|
+
paymentId: `payment_${sequence}`,
|
|
181
|
+
sessionId: "session_1",
|
|
182
|
+
articleId: "article_1",
|
|
183
|
+
sequence,
|
|
184
|
+
meteringUnit: "word",
|
|
185
|
+
amountAtomic: "1",
|
|
186
|
+
currency: "USDC",
|
|
187
|
+
settledAt: "2026-06-18T12:00:00.000Z",
|
|
188
|
+
word,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=agent-client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,10 +26,10 @@ 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;
|
|
@@ -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;CAWtF;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"}
|