@aifinpay/agent 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aifp1.d.ts +301 -0
- package/dist/aifp1.d.ts.map +1 -0
- package/dist/aifp1.js +661 -0
- package/dist/aifp1.js.map +1 -0
- package/dist/crossChain.d.ts +0 -8
- package/dist/crossChain.d.ts.map +1 -1
- package/dist/crossChain.js +66 -0
- package/dist/crossChain.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/spendLedger.d.ts +54 -0
- package/dist/spendLedger.d.ts.map +1 -0
- package/dist/spendLedger.js +185 -0
- package/dist/spendLedger.js.map +1 -0
- package/dist/unifiedAgent.d.ts +123 -2
- package/dist/unifiedAgent.d.ts.map +1 -1
- package/dist/unifiedAgent.js +452 -143
- package/dist/unifiedAgent.js.map +1 -1
- package/package.json +2 -2
package/dist/unifiedAgent.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { type PrivateKeyAccount } from "viem/accounts";
|
|
|
2
2
|
import { type Chain } from "viem/chains";
|
|
3
3
|
import { AiFinPayError } from "./errors.js";
|
|
4
4
|
import { Agent, type AgentOptions } from "./agent.js";
|
|
5
|
+
import { type SpendLedger } from "./spendLedger.js";
|
|
6
|
+
import { Aifp1ReceiptCache, type Aifp1FetchOptions } from "./aifp1.js";
|
|
5
7
|
import { type BridgeQuote, type BridgeReceipt, type EvmChainName } from "./crossChain.js";
|
|
6
8
|
/**
|
|
7
9
|
* Chains the unified agent can settle on. "solana" uses the Anchor
|
|
@@ -97,6 +99,14 @@ export interface AiFinPayAgentOptions extends AgentOptions {
|
|
|
97
99
|
budgetCaps?: BudgetCaps;
|
|
98
100
|
telemetry?: boolean;
|
|
99
101
|
polygonRpc?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Where the daily cap is remembered.
|
|
104
|
+
*
|
|
105
|
+
* Omit it and the SDK picks: a file under ~/.aifinpay (or AIFINPAY_STATE_DIR)
|
|
106
|
+
* once a daily cap is set, memory otherwise. Pass your own when the agent
|
|
107
|
+
* runs on more than one host — a lock file cannot answer for a fleet.
|
|
108
|
+
*/
|
|
109
|
+
spendLedger?: SpendLedger;
|
|
100
110
|
solanaRpc?: string;
|
|
101
111
|
/** RPC overrides for non-Polygon EVM chains — both bridge-flow chains
|
|
102
112
|
* and splitter-settlement chains (base, optimism, unichain, botchain,
|
|
@@ -138,7 +148,13 @@ export interface SplitterDeployment {
|
|
|
138
148
|
usdc?: `0x${string}`;
|
|
139
149
|
explorer: string;
|
|
140
150
|
/** Env var consulted for the native-token USD price used by the
|
|
141
|
-
* pre-sign challenge guard,
|
|
151
|
+
* pre-sign challenge guard. An operator who sets it means it, so it wins.
|
|
152
|
+
*
|
|
153
|
+
* `nativeUsdDefault` is NOT consulted by the guard any more — see
|
|
154
|
+
* nativeUsdFor(). It survives as published reference data only. A constant
|
|
155
|
+
* in a blocking guard is what made this SDK reject valid payments: POL sat
|
|
156
|
+
* at 0.70 here while trading near 0.073, so every quote looked ten times
|
|
157
|
+
* its cost and BudgetCapExceededError fired before any money moved. */
|
|
142
158
|
nativeUsdEnv: string;
|
|
143
159
|
nativeUsdDefault: number;
|
|
144
160
|
}
|
|
@@ -159,7 +175,25 @@ export declare class WrongChainBalanceError extends AiFinPayError {
|
|
|
159
175
|
export declare class InsufficientFundsError extends AiFinPayError {
|
|
160
176
|
needed_usd: number;
|
|
161
177
|
available_usd: number;
|
|
162
|
-
|
|
178
|
+
readonly details?: {
|
|
179
|
+
address: string;
|
|
180
|
+
chain: string;
|
|
181
|
+
symbol: string;
|
|
182
|
+
needed_wei: string;
|
|
183
|
+
available_wei: string;
|
|
184
|
+
} | undefined;
|
|
185
|
+
/**
|
|
186
|
+
* `details` carries the native amounts, which are what the caller acts on —
|
|
187
|
+
* the USD figures depend on a price feed that may be unavailable, and an
|
|
188
|
+
* error about missing funds is the worst possible place to invent a number.
|
|
189
|
+
*/
|
|
190
|
+
constructor(needed_usd: number, available_usd: number, msg: string, details?: {
|
|
191
|
+
address: string;
|
|
192
|
+
chain: string;
|
|
193
|
+
symbol: string;
|
|
194
|
+
needed_wei: string;
|
|
195
|
+
available_wei: string;
|
|
196
|
+
} | undefined);
|
|
163
197
|
}
|
|
164
198
|
export declare class BudgetCapExceededError extends AiFinPayError {
|
|
165
199
|
kind: "daily" | "per_call";
|
|
@@ -203,6 +237,8 @@ export declare class AiFinPayAgent {
|
|
|
203
237
|
private cachedRegistry?;
|
|
204
238
|
private budgetCaps;
|
|
205
239
|
private spend24h;
|
|
240
|
+
private _ledger?;
|
|
241
|
+
private ledgerOverride?;
|
|
206
242
|
private telemetry;
|
|
207
243
|
private _polygonPublic?;
|
|
208
244
|
private _polygonWallet?;
|
|
@@ -306,6 +342,33 @@ export declare class AiFinPayAgent {
|
|
|
306
342
|
* without submitting an on-chain tx. Throws BudgetCapExceededError
|
|
307
343
|
* in the default "throw" mode.
|
|
308
344
|
*/
|
|
345
|
+
/**
|
|
346
|
+
* The ledger that enforces the daily cap.
|
|
347
|
+
*
|
|
348
|
+
* Chosen late, because setBudget() is usually called after construction and
|
|
349
|
+
* the choice depends on whether a daily cap exists at all. Durability is
|
|
350
|
+
* engaged only when one does: a library that writes to a user's disk because
|
|
351
|
+
* it was imported would be rude, and one that promises a daily limit and
|
|
352
|
+
* forgets it on restart is worse.
|
|
353
|
+
*/
|
|
354
|
+
private get ledger();
|
|
355
|
+
/**
|
|
356
|
+
* Claim room in the daily cap before paying.
|
|
357
|
+
*
|
|
358
|
+
* Returns a reservation id, or "skip"/throws per on_limit_exceeded. The cap
|
|
359
|
+
* comparison happens inside the ledger, atomically: a caller that read the
|
|
360
|
+
* total and then reserved would have rebuilt the race this replaces, where
|
|
361
|
+
* two concurrent calls both read the same total, both passed, and both paid.
|
|
362
|
+
*/
|
|
363
|
+
private reserveDaily;
|
|
364
|
+
/**
|
|
365
|
+
* The per-call cap, which needs no ledger.
|
|
366
|
+
*
|
|
367
|
+
* It is a property of one call and cannot be raced: nothing about a
|
|
368
|
+
* concurrent call changes whether THIS one is too expensive. Only the daily
|
|
369
|
+
* cap accumulates, and only it goes through reserve/commit.
|
|
370
|
+
*/
|
|
371
|
+
private checkPerCall;
|
|
309
372
|
private checkBudget;
|
|
310
373
|
/**
|
|
311
374
|
* Current 24-hour rolling spend across all paid calls made by this
|
|
@@ -324,6 +387,36 @@ export declare class AiFinPayAgent {
|
|
|
324
387
|
*
|
|
325
388
|
* Returns false (skip) instead of throwing when on_limit_exceeded="skip".
|
|
326
389
|
*/
|
|
390
|
+
/**
|
|
391
|
+
* The native-token USD price for the pre-sign guard.
|
|
392
|
+
*
|
|
393
|
+
* Order: an explicit env var, then the protocol's own price feed, then
|
|
394
|
+
* nothing. "Nothing" is deliberate and is the whole point of this method.
|
|
395
|
+
* The guard used to fall back to a constant compiled into the SDK; POL sat
|
|
396
|
+
* at 0.70 while trading near 0.073, so a real $0.01 payment estimated at
|
|
397
|
+
* $0.096, cleared the $0.06 ceiling and threw BudgetCapExceededError. The
|
|
398
|
+
* payment never left, and the error blamed the bridge for demanding too
|
|
399
|
+
* much.
|
|
400
|
+
*
|
|
401
|
+
* A guard that blocks on a number it cannot justify is worse than no guard,
|
|
402
|
+
* so an unknown price returns NaN and guardChallengeAmount declines to
|
|
403
|
+
* block. Overpayment protection is given up only in the case where we have
|
|
404
|
+
* no basis for it, which is the honest trade.
|
|
405
|
+
*/
|
|
406
|
+
private priceCache?;
|
|
407
|
+
private nativeUsdFor;
|
|
408
|
+
/**
|
|
409
|
+
* Refuse to broadcast a transaction the account cannot pay for, and say so
|
|
410
|
+
* in terms the caller can act on.
|
|
411
|
+
*
|
|
412
|
+
* Without this the SDK handed back viem's ContractFunctionExecutionError —
|
|
413
|
+
* several paragraphs explaining that cost is `gas * gas fee + value` — for
|
|
414
|
+
* the one condition an agent operator can fix in ten seconds. Worse, the SDK
|
|
415
|
+
* has exported an InsufficientFundsError since the first release and never
|
|
416
|
+
* threw it, so anyone who wrote `catch (e instanceof InsufficientFundsError)`
|
|
417
|
+
* had a branch that could not run.
|
|
418
|
+
*/
|
|
419
|
+
private assertCanAffordNative;
|
|
327
420
|
private guardChallengeAmount;
|
|
328
421
|
/**
|
|
329
422
|
* Chain selection heuristic — see Obsidian/23 - Unified SDK Design §Routing.
|
|
@@ -411,6 +504,34 @@ export declare class AiFinPayAgent {
|
|
|
411
504
|
* silently. Default behaviour throws BudgetCapExceededError.
|
|
412
505
|
*/
|
|
413
506
|
call(opts: CallOptions): Promise<Response | null>;
|
|
507
|
+
private settleSplitterNative;
|
|
508
|
+
private readonly _aifp1Cache;
|
|
509
|
+
/**
|
|
510
|
+
* The prepaid batches this agent is holding.
|
|
511
|
+
*
|
|
512
|
+
* Exposed because a batch is money the agent has already spent and has not
|
|
513
|
+
* finished using: an operator deciding whether to shut an agent down, or a
|
|
514
|
+
* test asserting that a receipt was reused, both need to see it. The entries
|
|
515
|
+
* contain bearer JWTs — treat them like keys, and do not log them.
|
|
516
|
+
*/
|
|
517
|
+
get aifp1Receipts(): Aifp1ReceiptCache;
|
|
518
|
+
/**
|
|
519
|
+
* Fetch a paywalled URL, paying the AIFP-1 gateway if it asks.
|
|
520
|
+
*
|
|
521
|
+
* const res = await agent.fetchPaid("https://gateway.aifinpay.io/acme/articles/2026/x");
|
|
522
|
+
*
|
|
523
|
+
* A URL that is not paywalled — or that answers a 402 belonging to some
|
|
524
|
+
* other protocol — comes back untouched and costs nothing. A paywalled one
|
|
525
|
+
* is quoted, settled on-chain, exchanged for a receipt and retried, and the
|
|
526
|
+
* receipt is kept: subsequent calls it covers cost a header rather than a
|
|
527
|
+
* transaction. See aifp1.ts for why that reuse is the entire design.
|
|
528
|
+
*
|
|
529
|
+
* Returns `null` on the same terms as call(): a budget cap was hit and
|
|
530
|
+
* `budgetCaps.on_limit_exceeded` is "skip".
|
|
531
|
+
*/
|
|
532
|
+
fetchPaid(url: string, init?: RequestInit, opts?: Aifp1FetchOptions & {
|
|
533
|
+
splitter?: `0x${string}`;
|
|
534
|
+
}): Promise<Response | null>;
|
|
414
535
|
private submitSolanaB2BPayWithSplit;
|
|
415
536
|
/**
|
|
416
537
|
* TODO(phase-3): open a metered budget session.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unifiedAgent.d.ts","sourceRoot":"","sources":["../src/unifiedAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unifiedAgent.d.ts","sourceRoot":"","sources":["../src/unifiedAgent.ts"],"names":[],"mappings":"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"}
|