@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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aifp1.js","sourceRoot":"","sources":["../src/aifp1.ts"],"names":[],"mappings":"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"}
@@ -51,14 +51,6 @@ export interface BridgeReceipt {
51
51
  status: "submitted" | "pending" | "done" | "failed";
52
52
  dest_tx?: string;
53
53
  }
54
- /**
55
- * Submit the source-chain transaction returned by `bridgeQuote()`.
56
- * Caller supplies a viem walletClient connected to the SOURCE chain (the
57
- * agent's wallet on `opts.fromChain`). We don't switch chains for the
58
- * caller — that's an explicit choice to keep this primitive small.
59
- *
60
- * The agent signs and submits. AiFinPay never touches the funds.
61
- */
62
54
  export declare function bridgeExecute(quote: BridgeQuote, walletClient: WalletClient, publicClient: PublicClient): Promise<BridgeReceipt>;
63
55
  /**
64
56
  * Poll LiFi's /v1/status for cross-chain arrival. Stargate/Across typically
@@ -1 +1 @@
1
- {"version":3,"file":"crossChain.d.ts","sourceRoot":"","sources":["../src/crossChain.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAOvD,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,UAAU,CAAC;AAInD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAO3D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC,CAGrE,CAAC;AAIF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAK,YAAY,CAAC;IAC3B,OAAO,EAAO,YAAY,CAAC;IAC3B,SAAS,EAAK,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAO,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAI,MAAM,CAAC;IACrB,WAAW,EAAG,KAAK,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAK,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAG,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,WAAW;IAE1B,IAAI,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,EAAE,EAAI;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,WAAW,EAAG,MAAM,CAAC;IACrB,WAAW,EAAG,MAAM,CAAC;IAErB,SAAS,EAAK,OAAO,CAAC;CACvB;AA8BD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwChF;AAID,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAM,KAAK,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAG,YAAY,CAAC;IAC5B,UAAU,EAAK,YAAY,CAAC;IAC5B,WAAW,EAAI,MAAM,CAAC;IACtB,MAAM,EAAS,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAG3D,OAAO,CAAC,EAAO,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAW,WAAW,EAC3B,YAAY,EAAI,YAAY,EAC5B,YAAY,EAAI,YAAY,GAC3B,OAAO,CAAC,aAAa,CAAC,CAmDxB;AAID;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAG,KAAK,MAAM,EAAE,EAC5B,IAAI,GAAE;IACJ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAO,MAAM,CAAC;CACpB,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBxE"}
1
+ {"version":3,"file":"crossChain.d.ts","sourceRoot":"","sources":["../src/crossChain.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAOvD,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,UAAU,CAAC;AAInD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAO3D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC,CAGrE,CAAC;AAIF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAK,YAAY,CAAC;IAC3B,OAAO,EAAO,YAAY,CAAC;IAC3B,SAAS,EAAK,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAO,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAI,MAAM,CAAC;IACrB,WAAW,EAAG,KAAK,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAK,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAG,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,WAAW;IAE1B,IAAI,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,EAAE,EAAI;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,WAAW,EAAG,MAAM,CAAC;IACrB,WAAW,EAAG,MAAM,CAAC;IAErB,SAAS,EAAK,OAAO,CAAC;CACvB;AA8BD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwChF;AAID,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAM,KAAK,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAG,YAAY,CAAC;IAC5B,UAAU,EAAK,YAAY,CAAC;IAC5B,WAAW,EAAI,MAAM,CAAC;IACtB,MAAM,EAAS,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAG3D,OAAO,CAAC,EAAO,MAAM,CAAC;CACvB;AA4FD,wBAAsB,aAAa,CACjC,KAAK,EAAW,WAAW,EAC3B,YAAY,EAAI,YAAY,EAC5B,YAAY,EAAI,YAAY,GAC3B,OAAO,CAAC,aAAa,CAAC,CAqDxB;AAID;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAG,KAAK,MAAM,EAAE,EAC5B,IAAI,GAAE;IACJ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAO,MAAM,CAAC;CACpB,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBxE"}
@@ -70,6 +70,71 @@ export async function bridgeQuote(opts) {
70
70
  *
71
71
  * The agent signs and submits. AiFinPay never touches the funds.
72
72
  */
73
+ // LiFi's sentinel for "the chain's own coin", plus the zero address some
74
+ // integrators use for the same thing.
75
+ const NATIVE_SENTINELS = new Set([
76
+ "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
77
+ "0x0000000000000000000000000000000000000000",
78
+ ]);
79
+ // A bridge of this size should never need more than this much gas. The cap is
80
+ // generous — real LiFi routes land far below it — and exists so a quote cannot
81
+ // name a number that empties the wallet through the fee alone.
82
+ const MAX_BRIDGE_GAS = 3000000n;
83
+ /**
84
+ * Refuse to sign a transaction that does not match the quote it came with.
85
+ *
86
+ * bridgeExecute() previously took `to`, `data`, `value` and `gasLimit` straight
87
+ * from `raw_quote.transactionRequest` and checked only the chain id. Since
88
+ * bridgeExecute() accepts any object shaped like a BridgeQuote, and since
89
+ * raw_quote is whatever an HTTP response said, the effect was that an
90
+ * attacker-supplied or tampered quote could have the agent sign a transfer of
91
+ * its own funds to any address.
92
+ *
93
+ * The calldata is not something this SDK can meaningfully validate — it is a
94
+ * router's business. What it can do is refuse the shapes that move money in
95
+ * ways the quote never described:
96
+ *
97
+ * Bridging an ERC-20 sends no native value at all. Any value on such a quote
98
+ * is money leaving by a route the human-readable summary does not mention.
99
+ *
100
+ * Bridging the native coin sends exactly the amount quoted. More than that
101
+ * is, again, unquoted.
102
+ *
103
+ * The destination must be a contract. A router is one; an attacker's wallet
104
+ * is not, and a plain transfer to an address is the simplest form of this
105
+ * attack.
106
+ */
107
+ async function assertQuoteMatchesTransaction(quote, tx, publicClient) {
108
+ const value = BigInt(tx.value || "0x0");
109
+ const fromToken = String(quote.from?.token ?? "").toLowerCase();
110
+ const quotedAmount = BigInt(quote.from?.amount ?? "0");
111
+ const bridgingNative = NATIVE_SENTINELS.has(fromToken);
112
+ if (!bridgingNative && value !== 0n) {
113
+ throw new AiFinPayError(`bridgeExecute: quote bridges token ${quote.from?.token} but the transaction sends ` +
114
+ `${value} native units. A token bridge sends no native value — refusing to sign.`);
115
+ }
116
+ if (bridgingNative && value > quotedAmount) {
117
+ throw new AiFinPayError(`bridgeExecute: transaction sends ${value} native units but the quote is for ` +
118
+ `${quotedAmount} — refusing to sign for more than was quoted.`);
119
+ }
120
+ const gas = tx.gasLimit ? BigInt(tx.gasLimit) : 0n;
121
+ if (gas > MAX_BRIDGE_GAS) {
122
+ throw new AiFinPayError(`bridgeExecute: quote asks for ${gas} gas, above the ${MAX_BRIDGE_GAS} ceiling — refusing to sign.`);
123
+ }
124
+ let code;
125
+ try {
126
+ code = await publicClient.getBytecode({ address: tx.to });
127
+ }
128
+ catch {
129
+ // An RPC that will not answer is not evidence of an attack; let the send
130
+ // fail on its own terms rather than inventing a security verdict.
131
+ return;
132
+ }
133
+ if (!code || code === "0x") {
134
+ throw new AiFinPayError(`bridgeExecute: quote sends funds to ${tx.to}, which has no code. Bridge routers are ` +
135
+ `contracts — refusing to sign a transfer to a plain address.`);
136
+ }
137
+ }
73
138
  export async function bridgeExecute(quote, walletClient, publicClient) {
74
139
  const raw = quote.raw_quote;
75
140
  const tx = raw.transactionRequest;
@@ -85,6 +150,7 @@ export async function bridgeExecute(quote, walletClient, publicClient) {
85
150
  if (!account) {
86
151
  throw new AiFinPayError(`bridgeExecute: walletClient has no account — pass account: at creation`);
87
152
  }
153
+ await assertQuoteMatchesTransaction(quote, tx, publicClient);
88
154
  const hash = await walletClient.sendTransaction({
89
155
  account,
90
156
  to: tx.to,
@@ -1 +1 @@
1
- {"version":3,"file":"crossChain.js","sourceRoot":"","sources":["../src/crossChain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossChain.js","sourceRoot":"","sources":["../src/crossChain.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -21,6 +21,9 @@
21
21
  export { AiFinPayAgent, SPLITTER_DEPLOYMENTS, paymentIdFor } from "./unifiedAgent.js";
22
22
  export type { AiFinPayAgentOptions, CallOptions, ChainId, SplitterChainName, SplitterDeployment, AnyEvmChainName, ProviderEntry, BalanceSnapshot, ReputationSnapshot, BudgetCaps, SessionHandle, SessionReceipt, NetworkAgent, } from "./unifiedAgent.js";
23
23
  export { ProviderUnknownError, WrongChainBalanceError, InsufficientFundsError, BudgetCapExceededError, SettlementError, SessionExpiredError, } from "./unifiedAgent.js";
24
+ export { aifp1Fetch, Aifp1ReceiptCache, scopeCovers, prefixHint, parseGatewayUrl, idempotencyKeyFor, } from "./aifp1.js";
25
+ export type { Aifp1Scope, Aifp1Challenge, Aifp1Quote, Aifp1PayResult, Aifp1CachedReceipt, Aifp1FetchOptions, Aifp1Deps, } from "./aifp1.js";
26
+ export { Aifp1Error, Aifp1QuoteError, Aifp1PayError, Aifp1SettlementUnsupportedError, Aifp1ReceiptRejectedError, } from "./aifp1.js";
24
27
  export { bridgeQuote, bridgeExecute, bridgeWaitForArrival, EVM_CHAINS, USDC_NATIVE, USDC_BRIDGED, } from "./crossChain.js";
25
28
  export type { BridgeQuote, BridgeReceipt, BridgeQuoteOptions, EvmChainName, } from "./crossChain.js";
26
29
  export { Agent } from "./agent.js";
@@ -28,4 +31,5 @@ export type { AgentOptions, Invoice, PayInit } from "./agent.js";
28
31
  export { AiFinPayError, FacilitatorNotImplementedError, FundingTimeoutError, PaymentTooExpensiveError, SeatNotFoundError, UnsupportedFacilitatorError, X402Error, } from "./errors.js";
29
32
  export { AiFinPayFacilitator, CoinbaseX402Facilitator, REGISTERED, detectFacilitator, } from "./facilitators/index.js";
30
33
  export type { AuthPayload, Facilitator, FacilitatorClass, PayOptions, } from "./facilitators/index.js";
34
+ export { type SpendLedger, MemorySpendLedger, FileSpendLedger, } from "./spendLedger.js";
31
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,GACX,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,KAAK,WAAW,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -21,6 +21,14 @@
21
21
  // ── Unified surface (Phase 1+) ───────────────────────────────────────────
22
22
  export { AiFinPayAgent, SPLITTER_DEPLOYMENTS, paymentIdFor } from "./unifiedAgent.js";
23
23
  export { ProviderUnknownError, WrongChainBalanceError, InsufficientFundsError, BudgetCapExceededError, SettlementError, SessionExpiredError, } from "./unifiedAgent.js";
24
+ // ── AIFP-1 merchant paywall (gateway.aifinpay.io) ────────────────────────
25
+ // The flow is normally reached as a method — `agent.fetchPaid(url)` — which
26
+ // wires in the agent's own settlement and budget caps. The pieces below are
27
+ // exported for callers who need to reason about a batch without making one:
28
+ // inspect held receipts, ask whether a scope covers a path, or drive the
29
+ // protocol from a wallet that is not an AiFinPayAgent.
30
+ export { aifp1Fetch, Aifp1ReceiptCache, scopeCovers, prefixHint, parseGatewayUrl, idempotencyKeyFor, } from "./aifp1.js";
31
+ export { Aifp1Error, Aifp1QuoteError, Aifp1PayError, Aifp1SettlementUnsupportedError, Aifp1ReceiptRejectedError, } from "./aifp1.js";
24
32
  // ── Cross-chain orchestration (Phase 1.5a — EVM↔EVM via LiFi) ────────────
25
33
  // Standalone primitives — also exposed as methods on AiFinPayAgent.
26
34
  // Use the methods (agent.bridgeQuote / agent.bridgeExecute) unless you
@@ -30,4 +38,8 @@ export { bridgeQuote, bridgeExecute, bridgeWaitForArrival, EVM_CHAINS, USDC_NATI
30
38
  export { Agent } from "./agent.js";
31
39
  export { AiFinPayError, FacilitatorNotImplementedError, FundingTimeoutError, PaymentTooExpensiveError, SeatNotFoundError, UnsupportedFacilitatorError, X402Error, } from "./errors.js";
32
40
  export { AiFinPayFacilitator, CoinbaseX402Facilitator, REGISTERED, detectFacilitator, } from "./facilitators/index.js";
41
+ // Spend accounting for the daily cap. Exported so an agent fleet spanning more
42
+ // than one host can supply a ledger that can answer for all of them — a lock
43
+ // file on one machine cannot.
44
+ export { MemorySpendLedger, FileSpendLedger, } from "./spendLedger.js";
33
45
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgBtF,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,oEAAoE;AACpE,uEAAuE;AACvE,0EAA0E;AAC1E,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC;AAQzB,2EAA2E;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgBtF,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,uDAAuD;AACvD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAUpB,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,4EAA4E;AAC5E,oEAAoE;AACpE,uEAAuE;AACvE,0EAA0E;AAC1E,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC;AAQzB,2EAA2E;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAQjC,+EAA+E;AAC/E,6EAA6E;AAC7E,8BAA8B;AAC9B,OAAO,EAEL,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,54 @@
1
+ export interface SpendLedger {
2
+ /**
3
+ * Claim `usd` of the cap, atomically, or refuse.
4
+ *
5
+ * The cap is checked here rather than by the caller because a caller that
6
+ * checks and then reserves has reintroduced the race this exists to close.
7
+ * Returns a reservation id, or null when the window total would exceed `cap`.
8
+ */
9
+ reserve(usd: number, cap: number, windowMs: number): Promise<string | null>;
10
+ /** The payment happened. `actualUsd` corrects the estimate when known. */
11
+ commit(id: string, actualUsd?: number): Promise<void>;
12
+ /** The payment did not happen. Give the budget back now, not at expiry. */
13
+ release(id: string): Promise<void>;
14
+ /** Settled plus outstanding, over the window. */
15
+ total(windowMs: number): Promise<number>;
16
+ }
17
+ /**
18
+ * In-process ledger. Correct for one process, forgotten on restart.
19
+ *
20
+ * Kept because it is the right answer when no daily cap is set — there is
21
+ * nothing to remember — and because a test should not need a filesystem.
22
+ */
23
+ export declare class MemorySpendLedger implements SpendLedger {
24
+ private entries;
25
+ reserve(usd: number, cap: number, windowMs: number): Promise<string | null>;
26
+ commit(id: string, actualUsd?: number): Promise<void>;
27
+ release(id: string): Promise<void>;
28
+ total(windowMs: number): Promise<number>;
29
+ }
30
+ /**
31
+ * A ledger on disk, so a restart does not hand the agent its allowance again.
32
+ *
33
+ * Read-modify-write is guarded by an exclusive lock file, which is atomic on a
34
+ * local filesystem: `open(..., "wx")` either creates the file or fails, with no
35
+ * window in between. That covers several processes on one host, which is what
36
+ * a restart, a cron and a worker pool actually are.
37
+ *
38
+ * It does NOT cover several hosts — a lock file on a network filesystem is not
39
+ * a lock. An agent fleet spanning machines should pass its own SpendLedger
40
+ * backed by something that can answer for all of them; that is why this is an
41
+ * interface rather than a class the SDK insists on.
42
+ */
43
+ export declare class FileSpendLedger implements SpendLedger {
44
+ private readonly path;
45
+ constructor(path: string);
46
+ /** Default location, one file per agent address. */
47
+ static forAgent(address: string): FileSpendLedger;
48
+ private withLock;
49
+ reserve(usd: number, cap: number, windowMs: number): Promise<string | null>;
50
+ commit(id: string, actualUsd?: number): Promise<void>;
51
+ release(id: string): Promise<void>;
52
+ total(windowMs: number): Promise<number>;
53
+ }
54
+ //# sourceMappingURL=spendLedger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spendLedger.d.ts","sourceRoot":"","sources":["../src/spendLedger.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5E,0EAA0E;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,2EAA2E;IAC3E,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,iDAAiD;IACjD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAkBD;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,OAAO,CAAe;IAExB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS3E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,MAAM;IAEzC,oDAAoD;IACpD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;YAKnC,QAAQ;IAiDhB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa3E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO/C"}
@@ -0,0 +1,185 @@
1
+ // Making a daily spending cap mean something.
2
+ //
3
+ // The cap was a number compared against a ring buffer in one object's memory.
4
+ // Two consequences, both of which defeat it entirely.
5
+ //
6
+ // A new process starts at zero. An agent that restarts — a crash loop, a
7
+ // deploy, a cron that runs it hourly — gets its full daily allowance again each
8
+ // time, and the "daily" cap becomes a per-process cap.
9
+ //
10
+ // And the check was separate from the record: `checkBudget()` read the total,
11
+ // the payment happened, and only then was the cost added. Two calls in flight
12
+ // at once both read the same total, both passed, and both paid. The cap held
13
+ // only for an agent making one call at a time, which is not the kind of agent
14
+ // this SDK is for.
15
+ //
16
+ // So a cap now goes through reserve → commit or release, where the reservation
17
+ // is what the next check sees. A reservation that is never resolved — the
18
+ // process died mid-payment — expires, because the alternative is an agent that
19
+ // loses its budget to a crash and cannot spend again until tomorrow.
20
+ //
21
+ // Durability is engaged only when a daily cap is actually set. A library that
22
+ // writes to a user's disk because it was imported would be rude; one that
23
+ // promises a daily limit and forgets it on restart is worse.
24
+ import { randomUUID } from "node:crypto";
25
+ import { mkdir, readFile, writeFile, rename, open, unlink } from "node:fs/promises";
26
+ import { homedir } from "node:os";
27
+ import { dirname, join } from "node:path";
28
+ /** How long a reservation survives without being committed or released. */
29
+ const RESERVATION_TTL_MS = 5 * 60_000;
30
+ function liveTotal(entries, windowMs, now) {
31
+ const cutoff = now - windowMs;
32
+ return entries
33
+ .filter((e) => e.at >= cutoff && (!e.expiresAt || e.expiresAt > now))
34
+ .reduce((s, e) => s + e.usd, 0);
35
+ }
36
+ function prune(entries, windowMs, now) {
37
+ const cutoff = now - windowMs;
38
+ // Drop what has aged out of the window, and reservations nobody resolved.
39
+ return entries.filter((e) => e.at >= cutoff && (!e.expiresAt || e.expiresAt > now));
40
+ }
41
+ /**
42
+ * In-process ledger. Correct for one process, forgotten on restart.
43
+ *
44
+ * Kept because it is the right answer when no daily cap is set — there is
45
+ * nothing to remember — and because a test should not need a filesystem.
46
+ */
47
+ export class MemorySpendLedger {
48
+ entries = [];
49
+ async reserve(usd, cap, windowMs) {
50
+ const now = Date.now();
51
+ this.entries = prune(this.entries, windowMs, now);
52
+ if (liveTotal(this.entries, windowMs, now) + usd > cap)
53
+ return null;
54
+ const id = randomUUID();
55
+ this.entries.push({ id, usd, at: now, expiresAt: now + RESERVATION_TTL_MS });
56
+ return id;
57
+ }
58
+ async commit(id, actualUsd) {
59
+ const e = this.entries.find((x) => x.id === id);
60
+ if (!e)
61
+ return;
62
+ if (typeof actualUsd === "number" && Number.isFinite(actualUsd))
63
+ e.usd = actualUsd;
64
+ delete e.expiresAt;
65
+ }
66
+ async release(id) {
67
+ this.entries = this.entries.filter((x) => x.id !== id);
68
+ }
69
+ async total(windowMs) {
70
+ return liveTotal(this.entries, windowMs, Date.now());
71
+ }
72
+ }
73
+ /**
74
+ * A ledger on disk, so a restart does not hand the agent its allowance again.
75
+ *
76
+ * Read-modify-write is guarded by an exclusive lock file, which is atomic on a
77
+ * local filesystem: `open(..., "wx")` either creates the file or fails, with no
78
+ * window in between. That covers several processes on one host, which is what
79
+ * a restart, a cron and a worker pool actually are.
80
+ *
81
+ * It does NOT cover several hosts — a lock file on a network filesystem is not
82
+ * a lock. An agent fleet spanning machines should pass its own SpendLedger
83
+ * backed by something that can answer for all of them; that is why this is an
84
+ * interface rather than a class the SDK insists on.
85
+ */
86
+ export class FileSpendLedger {
87
+ path;
88
+ constructor(path) {
89
+ this.path = path;
90
+ }
91
+ /** Default location, one file per agent address. */
92
+ static forAgent(address) {
93
+ const base = process.env.AIFINPAY_STATE_DIR || join(homedir(), ".aifinpay");
94
+ return new FileSpendLedger(join(base, "spend", `${address.toLowerCase()}.json`));
95
+ }
96
+ async withLock(fn) {
97
+ await mkdir(dirname(this.path), { recursive: true });
98
+ const lockPath = `${this.path}.lock`;
99
+ // Spin briefly rather than failing: contention here is two of our own
100
+ // calls, and they are milliseconds apart.
101
+ let handle;
102
+ const deadline = Date.now() + 5_000;
103
+ for (;;) {
104
+ try {
105
+ handle = await open(lockPath, "wx");
106
+ break;
107
+ }
108
+ catch (e) {
109
+ if (e.code !== "EEXIST")
110
+ throw e;
111
+ if (Date.now() > deadline) {
112
+ // A lock this old belongs to a process that died holding it. Breaking
113
+ // it risks a lost update; refusing to ever break it means one crash
114
+ // disables the cap permanently, which is worse.
115
+ await unlink(lockPath).catch(() => { });
116
+ continue;
117
+ }
118
+ await new Promise((r) => setTimeout(r, 5 + Math.floor(Math.random() * 15)));
119
+ }
120
+ }
121
+ try {
122
+ let entries = [];
123
+ try {
124
+ entries = JSON.parse(await readFile(this.path, "utf8"));
125
+ if (!Array.isArray(entries))
126
+ entries = [];
127
+ }
128
+ catch {
129
+ // Absent or unreadable. Starting from empty is the only option, and it
130
+ // errs toward letting a payment through rather than blocking one — the
131
+ // same direction the old in-memory behaviour erred, every restart.
132
+ entries = [];
133
+ }
134
+ const { entries: next, result } = fn(entries);
135
+ // Write to a sibling and rename: a crash mid-write leaves the previous
136
+ // ledger intact rather than a truncated one.
137
+ const tmp = `${this.path}.${process.pid}.tmp`;
138
+ await writeFile(tmp, JSON.stringify(next), "utf8");
139
+ await rename(tmp, this.path);
140
+ return result;
141
+ }
142
+ finally {
143
+ await handle.close().catch(() => { });
144
+ await unlink(lockPath).catch(() => { });
145
+ }
146
+ }
147
+ async reserve(usd, cap, windowMs) {
148
+ return this.withLock((entries) => {
149
+ const now = Date.now();
150
+ const live = prune(entries, windowMs, now);
151
+ if (liveTotal(live, windowMs, now) + usd > cap) {
152
+ return { entries: live, result: null };
153
+ }
154
+ const id = randomUUID();
155
+ live.push({ id, usd, at: now, expiresAt: now + RESERVATION_TTL_MS });
156
+ return { entries: live, result: id };
157
+ });
158
+ }
159
+ async commit(id, actualUsd) {
160
+ await this.withLock((entries) => {
161
+ for (const e of entries) {
162
+ if (e.id === id) {
163
+ if (typeof actualUsd === "number" && Number.isFinite(actualUsd))
164
+ e.usd = actualUsd;
165
+ delete e.expiresAt;
166
+ }
167
+ }
168
+ return { entries, result: undefined };
169
+ });
170
+ }
171
+ async release(id) {
172
+ await this.withLock((entries) => ({
173
+ entries: entries.filter((e) => e.id !== id),
174
+ result: undefined,
175
+ }));
176
+ }
177
+ async total(windowMs) {
178
+ return this.withLock((entries) => {
179
+ const now = Date.now();
180
+ const live = prune(entries, windowMs, now);
181
+ return { entries: live, result: liveTotal(live, windowMs, now) };
182
+ });
183
+ }
184
+ }
185
+ //# sourceMappingURL=spendLedger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spendLedger.js","sourceRoot":"","sources":["../src/spendLedger.ts"],"names":[],"mappings":"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"}