@naulon/wayfarer 0.1.2 → 0.2.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/agent.d.ts +48 -2
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +127 -10
- package/dist/agent.js.map +1 -1
- package/dist/appraise.d.ts +55 -0
- package/dist/appraise.d.ts.map +1 -1
- package/dist/appraise.js +106 -18
- package/dist/appraise.js.map +1 -1
- package/dist/buyer.d.ts +33 -4
- package/dist/buyer.d.ts.map +1 -1
- package/dist/buyer.js +118 -4
- package/dist/buyer.js.map +1 -1
- package/dist/decide.d.ts.map +1 -1
- package/dist/decide.js +9 -1
- package/dist/decide.js.map +1 -1
- package/dist/discovery.d.ts +12 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +25 -8
- package/dist/discovery.js.map +1 -1
- package/dist/gateway.d.ts +22 -1
- package/dist/gateway.d.ts.map +1 -1
- package/dist/gateway.js +19 -0
- package/dist/gateway.js.map +1 -1
- package/dist/lib.d.ts +8 -6
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +8 -6
- package/dist/lib.js.map +1 -1
- package/dist/memo.d.ts +39 -15
- package/dist/memo.d.ts.map +1 -1
- package/dist/memo.js +47 -10
- package/dist/memo.js.map +1 -1
- package/dist/origin-policy.d.ts +1 -1
- package/dist/origin-policy.js +1 -1
- package/dist/paidFetch.d.ts.map +1 -1
- package/dist/paidFetch.js +6 -1
- package/dist/paidFetch.js.map +1 -1
- package/dist/pay.d.ts.map +1 -1
- package/dist/pay.js +5 -1
- package/dist/pay.js.map +1 -1
- package/dist/pop.d.ts +11 -1
- package/dist/pop.d.ts.map +1 -1
- package/dist/pop.js +18 -2
- package/dist/pop.js.map +1 -1
- package/dist/rail.d.ts.map +1 -1
- package/dist/rail.js +6 -5
- package/dist/rail.js.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wallet.d.ts +2 -6
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js.map +1 -1
- package/package.json +2 -2
package/dist/buyer.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export type LegRequirements = Quoted["requirements"];
|
|
|
39
39
|
* wallet, don't re-call), while `toll_moved` / `expired` / `rejected` are transient
|
|
40
40
|
* (re-quote and try again may succeed). `not_gated` means there was nothing to pay.
|
|
41
41
|
*/
|
|
42
|
-
export type FetchErrorCode = "not_gated" | "not_found" | "toll_moved" | "insufficient_funds" | "expired" | "rejected" | "origin_error" | "needs_topup" | "grant_expired" | "settlement_ambiguous";
|
|
42
|
+
export type FetchErrorCode = "not_gated" | "not_found" | "toll_moved" | "insufficient_funds" | "expired" | "rejected" | "origin_error" | "needs_topup" | "grant_expired" | "settlement_ambiguous" | "payee_refused";
|
|
43
43
|
export interface Fetched {
|
|
44
44
|
ok: boolean;
|
|
45
45
|
content?: string;
|
|
@@ -70,6 +70,15 @@ export interface Fetched {
|
|
|
70
70
|
export interface PayGuard {
|
|
71
71
|
/** Max atomic (micro-USDC) total across all legs the buyer may pay. */
|
|
72
72
|
maxTotalAtomic: string;
|
|
73
|
+
/**
|
|
74
|
+
* Optional per-leg payee authorization, checked BEFORE any leg is signed. Given a leg's `payTo`,
|
|
75
|
+
* return false (or a rejecting promise) to refuse the whole pay — nothing is signed, the fetch
|
|
76
|
+
* resolves `payee_refused`. `undefined` ⇒ no payee check (unchanged). The caller supplies the
|
|
77
|
+
* policy: the cloud host binds it to "is this an owner-authorized payee for this origin?", so a
|
|
78
|
+
* compromised/buggy gate cannot redirect a toll to a wallet no owner declared. Endpoint identity
|
|
79
|
+
* (host==gate) is a separate concern owned by `authorizeOrigin`; this owns payee identity.
|
|
80
|
+
*/
|
|
81
|
+
authorizePayee?: (payTo: string) => boolean | Promise<boolean>;
|
|
73
82
|
}
|
|
74
83
|
export interface Buyer {
|
|
75
84
|
readonly address: string;
|
|
@@ -95,6 +104,15 @@ export declare function quotedTotalAtomic(quoted: Quoted): bigint;
|
|
|
95
104
|
* the ceiling the caller authorized.
|
|
96
105
|
*/
|
|
97
106
|
export declare function tollMovedOrNull(quoted: Quoted, guard?: PayGuard): Fetched | null;
|
|
107
|
+
/**
|
|
108
|
+
* The payee guard, sibling of {@link tollMovedOrNull}: if `guard.authorizePayee` is set, EVERY leg's
|
|
109
|
+
* `payTo` must pass it BEFORE any leg is signed. The FIRST unauthorized payee refuses the whole pay
|
|
110
|
+
* (nothing is signed) with a typed `payee_refused` Fetched; otherwise null (clear to pay). The leg set
|
|
111
|
+
* mirrors {@link assemblePayment} exactly — the `legs` array for a real multi-leg (>1) quote, else the
|
|
112
|
+
* single `requirements.payTo` — so what is CHECKED is exactly what would be SIGNED. Async: the caller's
|
|
113
|
+
* authorizer may resolve an owner-declared set over the network. No `authorizePayee` ⇒ null (opt-in).
|
|
114
|
+
*/
|
|
115
|
+
export declare function payeeRefusedOrNull(quoted: Quoted, guard?: PayGuard): Promise<Fetched | null>;
|
|
98
116
|
/**
|
|
99
117
|
* Classify a gate's payment-rejection message (BUY-1.4). The gate surfaces the real
|
|
100
118
|
* reason in its 402 body; this maps the known signals onto a typed code + a retry
|
|
@@ -110,9 +128,20 @@ export declare function tollMovedOrNull(quoted: Quoted, guard?: PayGuard): Fetch
|
|
|
110
128
|
* must NOT be run through the 402 classifier, where `grant_exceeded`/`no_session` would fall
|
|
111
129
|
* through to a retryable `rejected`, telling the agent to retry a pay that can only fail again.
|
|
112
130
|
*
|
|
113
|
-
* grant_exceeded · leg_too_large · no_session
|
|
114
|
-
*
|
|
115
|
-
*
|
|
131
|
+
* grant_exceeded · leg_too_large · no_session → needs_topup (fund the session)
|
|
132
|
+
* insufficient_on_chain · insufficient_gateway_balance → needs_topup (fund it ON THE NAMED CHAIN/RAIL)
|
|
133
|
+
* grant_expired → grant_expired (renew — funds intact)
|
|
134
|
+
* bad_from · chain_mismatch · payee_not_allowed → rejected (a config error a top-up can't fix)
|
|
135
|
+
* cross_plane → rejected (testnet vs mainnet — not fundable)
|
|
136
|
+
* funding_unreadable → origin_error (infrastructure, not the buyer)
|
|
137
|
+
*
|
|
138
|
+
* `insufficient_on_chain` / `insufficient_gateway_balance` share `needs_topup` with the grant codes
|
|
139
|
+
* because the remedy is the same ACT — put money in — but not the same PLACE, and not even the same
|
|
140
|
+
* RAIL: the grant may be healthy while the session address holds nothing on the memo-rail chain that
|
|
141
|
+
* 402 advertised (`insufficient_on_chain`), or nothing in its Circle Gateway balance for a gateway-rail
|
|
142
|
+
* chain (`insufficient_gateway_balance`) — two distinct remedies (top up the address vs. deposit into
|
|
143
|
+
* the Gateway Wallet) sharing one bucket here because BOTH are "go fund it", never "raise your grant
|
|
144
|
+
* cap". The chain is in the refusal message, and an agent relaying this must relay that message.
|
|
116
145
|
*
|
|
117
146
|
* Returns null when the message is NOT a known signer code (a real socket / unknown throw the
|
|
118
147
|
* caller should surface as `origin_error`). Never retryable: every signer refusal needs a
|
package/dist/buyer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyer.d.ts","sourceRoot":"","sources":["../src/buyer.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,QAAQ,wBAAwB,CAAC;AAEvC,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3G;;;;;;OAMG;IACH,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzE;;;0EAGsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;+DAC+D;AAC/D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,WAAW,GACX,YAAY,GACZ,oBAAoB,GACpB,SAAS,GACT,UAAU,GACV,cAAc,GAEd,aAAa,GACb,eAAe,GACf,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"buyer.d.ts","sourceRoot":"","sources":["../src/buyer.ts"],"names":[],"mappings":"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"}
|
package/dist/buyer.js
CHANGED
|
@@ -46,6 +46,32 @@ export function tollMovedOrNull(quoted, guard) {
|
|
|
46
46
|
`(the quoted total plus tolerance). Re-quote and decide again — nothing was paid.`,
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* The payee guard, sibling of {@link tollMovedOrNull}: if `guard.authorizePayee` is set, EVERY leg's
|
|
51
|
+
* `payTo` must pass it BEFORE any leg is signed. The FIRST unauthorized payee refuses the whole pay
|
|
52
|
+
* (nothing is signed) with a typed `payee_refused` Fetched; otherwise null (clear to pay). The leg set
|
|
53
|
+
* mirrors {@link assemblePayment} exactly — the `legs` array for a real multi-leg (>1) quote, else the
|
|
54
|
+
* single `requirements.payTo` — so what is CHECKED is exactly what would be SIGNED. Async: the caller's
|
|
55
|
+
* authorizer may resolve an owner-declared set over the network. No `authorizePayee` ⇒ null (opt-in).
|
|
56
|
+
*/
|
|
57
|
+
export async function payeeRefusedOrNull(quoted, guard) {
|
|
58
|
+
const authorize = guard?.authorizePayee;
|
|
59
|
+
if (!authorize)
|
|
60
|
+
return null;
|
|
61
|
+
const payTos = quoted.legs && quoted.legs.length > 1 ? quoted.legs.map((l) => l.payTo) : [quoted.requirements.payTo];
|
|
62
|
+
for (const payTo of payTos) {
|
|
63
|
+
if (!(await authorize(payTo))) {
|
|
64
|
+
return {
|
|
65
|
+
ok: false,
|
|
66
|
+
errorCode: "payee_refused",
|
|
67
|
+
retryable: false,
|
|
68
|
+
error: `Refusing to pay ${payTo}: it is not an owner-authorized payee for this origin. Nothing was ` +
|
|
69
|
+
`signed. This is a spend-safety stop, not a transient error — the same 402 will refuse again.`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
49
75
|
/**
|
|
50
76
|
* Classify a gate's payment-rejection message (BUY-1.4). The gate surfaces the real
|
|
51
77
|
* reason in its 402 body; this maps the known signals onto a typed code + a retry
|
|
@@ -61,9 +87,20 @@ export function tollMovedOrNull(quoted, guard) {
|
|
|
61
87
|
* must NOT be run through the 402 classifier, where `grant_exceeded`/`no_session` would fall
|
|
62
88
|
* through to a retryable `rejected`, telling the agent to retry a pay that can only fail again.
|
|
63
89
|
*
|
|
64
|
-
* grant_exceeded · leg_too_large · no_session
|
|
65
|
-
*
|
|
66
|
-
*
|
|
90
|
+
* grant_exceeded · leg_too_large · no_session → needs_topup (fund the session)
|
|
91
|
+
* insufficient_on_chain · insufficient_gateway_balance → needs_topup (fund it ON THE NAMED CHAIN/RAIL)
|
|
92
|
+
* grant_expired → grant_expired (renew — funds intact)
|
|
93
|
+
* bad_from · chain_mismatch · payee_not_allowed → rejected (a config error a top-up can't fix)
|
|
94
|
+
* cross_plane → rejected (testnet vs mainnet — not fundable)
|
|
95
|
+
* funding_unreadable → origin_error (infrastructure, not the buyer)
|
|
96
|
+
*
|
|
97
|
+
* `insufficient_on_chain` / `insufficient_gateway_balance` share `needs_topup` with the grant codes
|
|
98
|
+
* because the remedy is the same ACT — put money in — but not the same PLACE, and not even the same
|
|
99
|
+
* RAIL: the grant may be healthy while the session address holds nothing on the memo-rail chain that
|
|
100
|
+
* 402 advertised (`insufficient_on_chain`), or nothing in its Circle Gateway balance for a gateway-rail
|
|
101
|
+
* chain (`insufficient_gateway_balance`) — two distinct remedies (top up the address vs. deposit into
|
|
102
|
+
* the Gateway Wallet) sharing one bucket here because BOTH are "go fund it", never "raise your grant
|
|
103
|
+
* cap". The chain is in the refusal message, and an agent relaying this must relay that message.
|
|
67
104
|
*
|
|
68
105
|
* Returns null when the message is NOT a known signer code (a real socket / unknown throw the
|
|
69
106
|
* caller should surface as `origin_error`). Never retryable: every signer refusal needs a
|
|
@@ -75,12 +112,44 @@ export function classifySignerRefusal(errorText) {
|
|
|
75
112
|
case "grant_exceeded":
|
|
76
113
|
case "leg_too_large":
|
|
77
114
|
case "no_session":
|
|
115
|
+
// The reserve's spend-envelope stops (migrations 0109/0119): the token's cumulative sub-cap and the
|
|
116
|
+
// account's rolling 24h budget. The GRANT may be healthy, but this authorization can't clear the
|
|
117
|
+
// envelope — topping the grant / retrying the same amount changes nothing, so they are terminal.
|
|
118
|
+
case "sub_cap_exceeded":
|
|
119
|
+
case "daily_budget_exceeded":
|
|
120
|
+
// The session address holds too little on the chain the 402 advertised (memo rail). The GRANT may
|
|
121
|
+
// be fine — this is real coins missing at a real address, caught before the irreversible reserve
|
|
122
|
+
// debits for a payment that could never settle. Not retryable: the balance does not change by
|
|
123
|
+
// asking again.
|
|
124
|
+
case "insufficient_on_chain":
|
|
125
|
+
// The gateway-rail sibling of the above: the session's Circle Gateway balance for this chain's
|
|
126
|
+
// domain is too little. Same bucket, same reason — a top-up (deposit) is the fix either way, and
|
|
127
|
+
// leaving this unclassified was itself a bug: it fell through to `origin_error`+retryable, which
|
|
128
|
+
// re-signs (and re-debits) a payment that cannot settle instead of stopping.
|
|
129
|
+
case "insufficient_gateway_balance":
|
|
78
130
|
return { errorCode: "needs_topup", retryable: false };
|
|
131
|
+
case "funding_unreadable":
|
|
132
|
+
// The balance could NOT be read (RPC / Gateway API fault) — not a shortfall and not the buyer's
|
|
133
|
+
// fault, so it must not render as "you are out of money". Nothing was charged. Deliberately not
|
|
134
|
+
// retryable despite being transient: one skipped citation is cheap, while an auto-retry loop
|
|
135
|
+
// against a flapping endpoint spends the session's whole budget on nothing.
|
|
136
|
+
return { errorCode: "origin_error", retryable: false };
|
|
79
137
|
case "grant_expired":
|
|
80
138
|
return { errorCode: "grant_expired", retryable: false };
|
|
81
139
|
case "bad_from":
|
|
82
140
|
case "chain_mismatch":
|
|
83
141
|
case "payee_not_allowed":
|
|
142
|
+
// below_floor (the buyer's own spam floor) + nonce_reused (the nonce is committed to a DIFFERENT
|
|
143
|
+
// authorization) are equally deterministic — retrying the identical authorization only re-refuses.
|
|
144
|
+
// Left unrecognized they fell through to classifyPaymentError's retryable `rejected`, which is what
|
|
145
|
+
// made the /ask agent burn its one retry re-signing a doomed pay.
|
|
146
|
+
case "below_floor":
|
|
147
|
+
case "nonce_reused":
|
|
148
|
+
// The session and the publisher are on different MONEY PLANES (testnet vs mainnet). Belongs here
|
|
149
|
+
// and not in needs_topup: a testnet session can never hold mainnet USDC, so "fund it" is not a
|
|
150
|
+
// remedy — acting on that advice means spending real money to satisfy a test. The fix is a
|
|
151
|
+
// session on the publisher's plane, which is config, exactly what this bucket is for.
|
|
152
|
+
case "cross_plane":
|
|
84
153
|
return { errorCode: "rejected", retryable: false };
|
|
85
154
|
default:
|
|
86
155
|
return null;
|
|
@@ -96,6 +165,28 @@ export function classifyPaymentError(errorText) {
|
|
|
96
165
|
}
|
|
97
166
|
return { errorCode: "rejected", retryable: true };
|
|
98
167
|
}
|
|
168
|
+
/** Comfortably exceeds any real toll (a $1,000,000 read is 1e12 atomic units) while
|
|
169
|
+
* staying well under Number.MAX_SAFE_INTEGER's 16 digits, so every digit string this
|
|
170
|
+
* cap admits converts through `Number()` to an EXACT, finite integer — no precision
|
|
171
|
+
* loss, no overflow. This is the magnitude half of the A2-follow-up bound (see below). */
|
|
172
|
+
const MAX_ATOMIC_DIGITS = 15;
|
|
173
|
+
/** A toll `amount` is valid only as a non-negative integer string of atomic (micro-USDC)
|
|
174
|
+
* units, bounded to a sane magnitude — rejecting a negative sign, a decimal point,
|
|
175
|
+
* non-digit garbage, the empty string, AND an absurdly long digit run. Used to validate
|
|
176
|
+
* a 402's advertised amount BEFORE it is ever turned into a price: discovery (and the
|
|
177
|
+
* gates it points at) is untrusted, so a malicious/broken gate could otherwise 402 with
|
|
178
|
+
* `amount: "-100"`, `"abc"`, or (A2 follow-up) `"9".repeat(310)` — `^\d+$` alone accepts
|
|
179
|
+
* that last one, and `Number(amount)` silently overflows to `Infinity`. Whichever shape
|
|
180
|
+
* slips through, the first caller to run the bad value through `usdc()`
|
|
181
|
+
* (shared/src/types.ts, which throws on non-finite/negative) would crash — inside
|
|
182
|
+
* `run()`'s price loop (agent.ts) that abort discards every OTHER candidate's price too,
|
|
183
|
+
* an attacker-controlled batch DoS from one bad gate. The digit-length cap and the
|
|
184
|
+
* finite check are both load-bearing: the cap keeps `Number(s)` an exact safe integer,
|
|
185
|
+
* and the finite check is the belt-and-suspenders backstop against any value that would
|
|
186
|
+
* otherwise become non-finite at `Number(s)`. */
|
|
187
|
+
function isNonNegativeIntegerAtomic(s) {
|
|
188
|
+
return /^\d+$/.test(s) && s.length <= MAX_ATOMIC_DIGITS && Number.isFinite(Number(s));
|
|
189
|
+
}
|
|
99
190
|
/** Shared price probe — classify the gate's response by HTTP status, decoding the 402
|
|
100
191
|
* PAYMENT-REQUIRED header only for a real toll. Never throws: a broken 402 body or a
|
|
101
192
|
* network failure is returned as a typed outcome, not an exception. */
|
|
@@ -124,6 +215,14 @@ export async function probe(url, kind, agentId) {
|
|
|
124
215
|
const req = decoded.accepts?.[0];
|
|
125
216
|
if (!req)
|
|
126
217
|
return { status: "malformed", reason: "a 402 with no payment options (empty accepts)" };
|
|
218
|
+
// A2 — validate the toll amount at the SOURCE, before anything downstream (priceUsdc,
|
|
219
|
+
// usdc(), the price loop) ever sees it. This is the ONE place that matters: every
|
|
220
|
+
// consumer of a `probe()`/`probePrice()` gated outcome — run()'s price loop,
|
|
221
|
+
// naulon_quote, naulon_pay_and_read — inherits the guarantee from here; no call site
|
|
222
|
+
// needs its own check.
|
|
223
|
+
if (!isNonNegativeIntegerAtomic(req.amount)) {
|
|
224
|
+
return { status: "malformed", reason: "a 402 whose toll amount is not a non-negative integer" };
|
|
225
|
+
}
|
|
127
226
|
// The author leg is what the agent appraises (the content's price), so `priceUsdc`
|
|
128
227
|
// stays the author amount even when an additive fee leg makes the buyer's TOTAL
|
|
129
228
|
// higher. `legs` (when present) is the full set the buyer must sign — see assemblePayment.
|
|
@@ -228,7 +327,22 @@ proof) {
|
|
|
228
327
|
};
|
|
229
328
|
if (proof)
|
|
230
329
|
headers["x-naulon-proof"] = proof;
|
|
231
|
-
|
|
330
|
+
let res;
|
|
331
|
+
try {
|
|
332
|
+
res = await agentFetch(url, { headers });
|
|
333
|
+
}
|
|
334
|
+
catch (err) {
|
|
335
|
+
// A DNS/connection failure must not propagate as an unhandled rejection (A1) —
|
|
336
|
+
// mirrors probe()'s network-catch below. run()'s cache branch treats this like any
|
|
337
|
+
// other re-read failure: logged-and-skipped, never fatal to the whole run(), so one
|
|
338
|
+
// flaky held essay can't discard licenses already paid for earlier in the loop.
|
|
339
|
+
return {
|
|
340
|
+
ok: false,
|
|
341
|
+
errorCode: "origin_error",
|
|
342
|
+
retryable: true,
|
|
343
|
+
error: `re-read unreachable: ${err instanceof Error ? err.message : String(err)}`,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
232
346
|
if (!res.ok)
|
|
233
347
|
return { ok: false, error: `re-read returned ${res.status}` };
|
|
234
348
|
return { ok: true, content: await res.text(), paidUsdc: 0, license };
|
package/dist/buyer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyer.js","sourceRoot":"","sources":["../src/buyer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"buyer.js","sourceRoot":"","sources":["../src/buyer.ts"],"names":[],"mappings":"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"}
|
package/dist/decide.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAIhB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yFAAyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAIhB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yFAAyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoBhH;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGjH;AAED;4FAC4F;AAC5F,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,2GAA2G;IAC3G,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,YAAY,CAwCf;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,EAAE,cAG5B,CAAC;AASF,wBAAgB,MAAM,CACpB,UAAU,EAAE,kBAAkB,EAAE,EAChC,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,WAAW,CAAC,MAAM,CAAa,EACvC,MAAM,GAAE,cAA+B,EACvC,OAAO,GAAE,aAAkB,GAC1B,QAAQ,EAAE,CA2FZ"}
|
package/dist/decide.js
CHANGED
|
@@ -25,7 +25,15 @@ function normHost(host) {
|
|
|
25
25
|
* (an allowlist then denies by default).
|
|
26
26
|
*/
|
|
27
27
|
export function payUrlOf(url, gateBase, slug) {
|
|
28
|
-
|
|
28
|
+
// Mirrors agent.ts's articleUrl(base, slug) shape exactly (`${base}/essays/${slug}`, slug
|
|
29
|
+
// percent-encoded) — inlined rather than imported to avoid a decide.ts <-> agent.ts import
|
|
30
|
+
// cycle (agent.ts already imports from decide.ts). Only the host is consumed downstream today
|
|
31
|
+
// (see payHostOf / authorizeOrigin), but this function is exported and its full return value
|
|
32
|
+
// must never point at a path the pay step wouldn't actually fetch.
|
|
33
|
+
const candidates = [
|
|
34
|
+
url,
|
|
35
|
+
gateBase && slug ? `${gateBase.replace(/\/+$/, "")}/essays/${encodeURIComponent(slug)}` : undefined,
|
|
36
|
+
];
|
|
29
37
|
for (const u of candidates) {
|
|
30
38
|
if (!u)
|
|
31
39
|
continue;
|
package/dist/decide.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decide.js","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA2DrD,iGAAiG;AACjG,SAAS,QAAQ,CAAC,IAAwB;IACxC,OAAO,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAuB,EAAE,QAA4B,EAAE,IAAY;IAC1F,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"decide.js","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"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"}
|
package/dist/discovery.d.ts
CHANGED
|
@@ -19,8 +19,19 @@ export declare function catalogSource(url: string): DiscoverySource;
|
|
|
19
19
|
* `[]` (honest empty — `parseRss` is lenient, so `[]` means "no items").
|
|
20
20
|
*/
|
|
21
21
|
export declare function rssSource(rssUrl: string): DiscoverySource;
|
|
22
|
+
/**
|
|
23
|
+
* WP-2 T3 (DRY) — the discovery source URL currently in effect: RSS_URL > PUBLISHER_URL/rss.xml
|
|
24
|
+
* > CATALOG_URL. The single owner of this precedence; `selectSource()` (below) and
|
|
25
|
+
* `wayfarer-mcp`'s `naulon_status` tool both call it, so the ordering is decided in exactly one
|
|
26
|
+
* place, never duplicated. CATALOG_URL always has a default now (the live fleet directory —
|
|
27
|
+
* WP-2 T1), so this never needs to signal "unconfigured".
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolvedDiscoverySourceUrl(): string;
|
|
22
30
|
/** Pick the discovery source from config (see precedence above). Throws when
|
|
23
31
|
* none is configured — the agent has nowhere to discover, and inventing a
|
|
24
|
-
* bundled catalog would be a fail-open.
|
|
32
|
+
* bundled catalog would be a fail-open. In practice CATALOG_URL always defaults
|
|
33
|
+
* (WP-2 T1), so this throw is now a defensive guard rather than a reachable path —
|
|
34
|
+
* kept for the same "never fail open" reason the rest of this module refuses to
|
|
35
|
+
* fabricate a source. */
|
|
25
36
|
export declare function selectSource(): DiscoverySource;
|
|
26
37
|
//# sourceMappingURL=discovery.d.ts.map
|
package/dist/discovery.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CAC/C;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CAC/C;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAwB1D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAUzD;AAUD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED;;;;;0BAK0B;AAC1B,wBAAgB,YAAY,IAAI,eAAe,CAa9C"}
|
package/dist/discovery.js
CHANGED
|
@@ -41,6 +41,9 @@ export function catalogSource(url) {
|
|
|
41
41
|
const json = (await res.json());
|
|
42
42
|
if (Array.isArray(json))
|
|
43
43
|
return [...out, ...json]; // legacy shape: single page
|
|
44
|
+
if (!Array.isArray(json.entries)) {
|
|
45
|
+
throw new Error(`catalog page missing an entries array for ${u.toString()}`);
|
|
46
|
+
}
|
|
44
47
|
out.push(...json.entries);
|
|
45
48
|
cursor = json.nextCursor;
|
|
46
49
|
if (!cursor)
|
|
@@ -78,19 +81,33 @@ function rssUrlFromConfig() {
|
|
|
78
81
|
return `${cfg.PUBLISHER_URL.replace(/\/$/, "")}/rss.xml`;
|
|
79
82
|
return undefined;
|
|
80
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* WP-2 T3 (DRY) — the discovery source URL currently in effect: RSS_URL > PUBLISHER_URL/rss.xml
|
|
86
|
+
* > CATALOG_URL. The single owner of this precedence; `selectSource()` (below) and
|
|
87
|
+
* `wayfarer-mcp`'s `naulon_status` tool both call it, so the ordering is decided in exactly one
|
|
88
|
+
* place, never duplicated. CATALOG_URL always has a default now (the live fleet directory —
|
|
89
|
+
* WP-2 T1), so this never needs to signal "unconfigured".
|
|
90
|
+
*/
|
|
91
|
+
export function resolvedDiscoverySourceUrl() {
|
|
92
|
+
return rssUrlFromConfig() ?? getConfig().CATALOG_URL;
|
|
93
|
+
}
|
|
81
94
|
/** Pick the discovery source from config (see precedence above). Throws when
|
|
82
95
|
* none is configured — the agent has nowhere to discover, and inventing a
|
|
83
|
-
* bundled catalog would be a fail-open.
|
|
96
|
+
* bundled catalog would be a fail-open. In practice CATALOG_URL always defaults
|
|
97
|
+
* (WP-2 T1), so this throw is now a defensive guard rather than a reachable path —
|
|
98
|
+
* kept for the same "never fail open" reason the rest of this module refuses to
|
|
99
|
+
* fabricate a source. */
|
|
84
100
|
export function selectSource() {
|
|
85
|
-
const cfg = getConfig();
|
|
86
101
|
const rss = rssUrlFromConfig();
|
|
87
102
|
if (rss)
|
|
88
103
|
return rssSource(rss);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
104
|
+
const url = resolvedDiscoverySourceUrl();
|
|
105
|
+
if (!url) {
|
|
106
|
+
throw new Error("no discovery source configured — naulon has no catalog to search yet. " +
|
|
107
|
+
"Point it at a publisher by setting RSS_URL, PUBLISHER_URL, or CATALOG_URL, " +
|
|
108
|
+
"or connect a hosted naulon endpoint with an agent token for a turnkey corpus. " +
|
|
109
|
+
"There is no bundled demo catalog — discovery never fabricates sources.");
|
|
110
|
+
}
|
|
111
|
+
return catalogSource(url);
|
|
95
112
|
}
|
|
96
113
|
//# sourceMappingURL=discovery.js.map
|
package/dist/discovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAQvC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpC,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,KAAa;YAC1B,MAAM,GAAG,GAAgB,EAAE,CAAC;YAC5B,IAAI,MAA0B,CAAC;YAC/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC/B,IAAI,MAAM;oBAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACpF,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACzF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgE,CAAC;gBAC/F,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,4BAA4B;gBAC/E,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBACzB,IAAI,CAAC,MAAM;oBAAE,MAAM;YACrB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE;gBACnC,OAAO,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,sCAAsC,EAAE;aACpF,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,CAAC;YAC/E,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACpC,IAAI,GAAG,CAAC,aAAa;QAAE,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC;IAChF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/gateway.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* deposits via the SDK `GatewayClient` for backwards compatibility.
|
|
21
21
|
*/
|
|
22
22
|
import { type Address, type Hex, type TypedDataDomain } from "viem";
|
|
23
|
-
import type { Balances, DepositResult, SearchTransfersParams, SearchTransfersResponse, SupportedChainName, TransferResponse, TransferStatus } from "@circle-fin/x402-batching/client";
|
|
23
|
+
import type { Balances, DepositResult, SearchTransfersParams, SearchTransfersResponse, SupportedChainName, TransferResponse, TransferStatus, WithdrawResult } from "@circle-fin/x402-batching/client";
|
|
24
24
|
import { type Buyer, type Quoted } from "./buyer.ts";
|
|
25
25
|
/**
|
|
26
26
|
* The gateway signer seam — the structural twin of `MemoSigner` and of the SDK's own
|
|
@@ -75,6 +75,27 @@ export interface GatewayDepositOpts {
|
|
|
75
75
|
* script/operator calls. SDK loaded lazily so the mock/memo paths never pull it in.
|
|
76
76
|
*/
|
|
77
77
|
export declare function gatewayDeposit(opts: GatewayDepositOpts): Promise<DepositResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Withdraw from the Gateway unified balance back to a normal address. Same-chain by
|
|
80
|
+
* construction — `withdraw()` to the source chain is instant (no 7-day delay); the
|
|
81
|
+
* trustless initiate/complete pair is emergency-only, for a Circle API outage. `chain`
|
|
82
|
+
* is passed explicitly even though `withdraw()` already defaults to the source chain
|
|
83
|
+
* when `options.chain` is omitted — the same-chain intent is the whole point of this
|
|
84
|
+
* wrapper, so it stays legible and testable rather than inherited from a default.
|
|
85
|
+
* `maxFee` is left at the SDK default (2.01 USDC) — inventing a fee ceiling at this
|
|
86
|
+
* layer is a product decision this wrapper hasn't been given.
|
|
87
|
+
* NOTE: `transfer()` is a one-line deprecated alias for this same call
|
|
88
|
+
* (`transfer(amount, chain, recipient) => withdraw(amount, { chain, recipient })`) —
|
|
89
|
+
* don't "helpfully" switch back to it.
|
|
90
|
+
* SDK lazy, so the mock/memo paths never pull it in — same discipline as `gatewayDeposit`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function gatewayWithdraw(opts: {
|
|
93
|
+
chain: SupportedChainName;
|
|
94
|
+
privateKey: Hex;
|
|
95
|
+
to: Address;
|
|
96
|
+
/** USDC amount as a DECIMAL string, e.g. "10.5". */
|
|
97
|
+
amountUsdc: string;
|
|
98
|
+
}): Promise<WithdrawResult>;
|
|
78
99
|
/** Read the wallet + Gateway balances for a key — the preflight a deposit script shows before it moves
|
|
79
100
|
* funds, and the check the buyer uses to see if its unified balance covers a toll. Pass `address` to
|
|
80
101
|
* read ANOTHER account's balances (e.g. confirm the AUTHOR received a settle) — the client key only
|
package/dist/gateway.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAAE,MAAM,MAAM,CAAC;AAGpE,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAIL,KAAK,KAAK,EAGV,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AAGpB;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,eAAe,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;QAC7D,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;CAC5B;AAED;;uFAEuF;AACvF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;KAAE,CAAC;CAChF,CAAC;AAaF;;;wFAGwF;AACxF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA0BlC;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,KAAK,CA+D1D;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC;IAChB,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAIrF;AAED;;;6EAG6E;AAC7E,wBAAsB,eAAe,CACnC,IAAI,EAAE;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACtE,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,GAAG,CAAA;CAAE,GAAG,qBAAqB,GAC3E,OAAO,CAAC,uBAAuB,CAAC,CAIlC;AAED,wGAAwG;AACxG,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,sBAAsB,CAmBxF"}
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/gateway.js
CHANGED
|
@@ -129,6 +129,25 @@ export async function gatewayDeposit(opts) {
|
|
|
129
129
|
const client = new GatewayClient({ chain: opts.chain, privateKey: opts.privateKey });
|
|
130
130
|
return client.deposit(opts.amountUsdc);
|
|
131
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Withdraw from the Gateway unified balance back to a normal address. Same-chain by
|
|
134
|
+
* construction — `withdraw()` to the source chain is instant (no 7-day delay); the
|
|
135
|
+
* trustless initiate/complete pair is emergency-only, for a Circle API outage. `chain`
|
|
136
|
+
* is passed explicitly even though `withdraw()` already defaults to the source chain
|
|
137
|
+
* when `options.chain` is omitted — the same-chain intent is the whole point of this
|
|
138
|
+
* wrapper, so it stays legible and testable rather than inherited from a default.
|
|
139
|
+
* `maxFee` is left at the SDK default (2.01 USDC) — inventing a fee ceiling at this
|
|
140
|
+
* layer is a product decision this wrapper hasn't been given.
|
|
141
|
+
* NOTE: `transfer()` is a one-line deprecated alias for this same call
|
|
142
|
+
* (`transfer(amount, chain, recipient) => withdraw(amount, { chain, recipient })`) —
|
|
143
|
+
* don't "helpfully" switch back to it.
|
|
144
|
+
* SDK lazy, so the mock/memo paths never pull it in — same discipline as `gatewayDeposit`.
|
|
145
|
+
*/
|
|
146
|
+
export async function gatewayWithdraw(opts) {
|
|
147
|
+
const { GatewayClient } = await import("@circle-fin/x402-batching/client");
|
|
148
|
+
const client = new GatewayClient({ chain: opts.chain, privateKey: opts.privateKey });
|
|
149
|
+
return client.withdraw(opts.amountUsdc, { chain: opts.chain, recipient: opts.to });
|
|
150
|
+
}
|
|
132
151
|
/** Read the wallet + Gateway balances for a key — the preflight a deposit script shows before it moves
|
|
133
152
|
* funds, and the check the buyer uses to see if its unified balance covers a toll. Pass `address` to
|
|
134
153
|
* read ANOTHER account's balances (e.g. confirm the AUTHOR received a settle) — the client key only
|
package/dist/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAgD,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/lib.d.ts
CHANGED
|
@@ -13,19 +13,21 @@
|
|
|
13
13
|
*/
|
|
14
14
|
export { run } from "./agent.ts";
|
|
15
15
|
export type { Logger, RunOptions } from "./agent.ts";
|
|
16
|
-
export { tollgateBase, articleUrl, fetchJwks, verifyAgainst } from "./agent.ts";
|
|
16
|
+
export { tollgateBase, articleUrl, fetchJwks, verifyAgainst, licenseIdentityFor } from "./agent.ts";
|
|
17
17
|
export { discover } from "./discover.ts";
|
|
18
|
-
export {
|
|
18
|
+
export { resolvedDiscoverySourceUrl } from "./discovery.ts";
|
|
19
|
+
export { appraise, buildAppraisePrompt, evidenceLine, parseRelevance } from "./appraise.ts";
|
|
20
|
+
export type { AppraisalSubject, AppraisePromptOptions } from "./appraise.ts";
|
|
19
21
|
export { probe, probePrice, probeFailure, assemblePayment, rereadWithLicense, selectBuyer, quotedTotalAtomic, tollMovedOrNull, classifyPaymentError, } from "./buyer.ts";
|
|
20
22
|
export type { Buyer, Quoted, LegRequirements, Fetched, FetchErrorCode, PayGuard, ProbeOutcome } from "./buyer.ts";
|
|
21
23
|
export { mockBuyer } from "./pay.ts";
|
|
22
|
-
export { gatewayBuyer, gatewayDeposit, gatewayBalances, gatewayTransferStatus, gatewayTransfers, classifyGatewaySettlement, } from "./gateway.ts";
|
|
24
|
+
export { gatewayBuyer, gatewayDeposit, gatewayWithdraw, gatewayBalances, gatewayTransferStatus, gatewayTransfers, classifyGatewaySettlement, } from "./gateway.ts";
|
|
23
25
|
export type { GatewaySigner, GatewayDepositOpts, GatewaySettlementState } from "./gateway.ts";
|
|
24
|
-
export { memoBuyer, signMemoPayment } from "./memo.ts";
|
|
25
|
-
export type { MemoSigner } from "./memo.ts";
|
|
26
|
+
export { memoBuyer, signMemoPayment, assembleMemoPayment } from "./memo.ts";
|
|
27
|
+
export type { MemoSigner, MemoTypedData } from "./memo.ts";
|
|
26
28
|
export { railBuyer } from "./rail.ts";
|
|
27
29
|
export type { RailSigners } from "./rail.ts";
|
|
28
|
-
export { decide, DEFAULT_POLICY, spendGate } from "./decide.ts";
|
|
30
|
+
export { decide, DEFAULT_POLICY, payHostOf, spendGate } from "./decide.ts";
|
|
29
31
|
export type { DecisionPolicy, DecideContext, SpendVerdict } from "./decide.ts";
|
|
30
32
|
export { authorizeOrigin } from "./origin-policy.ts";
|
|
31
33
|
export type { OriginRequest, OriginVerdict, PayableTarget } from "./origin-policy.ts";
|
package/dist/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGpG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5F,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAG7E,OAAO,EACL,KAAK,EACL,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC3G,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,YAAY,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,GACV,MAAM,YAAY,CAAC"}
|