@kaleidorg/mind 0.10.7 → 0.10.9

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/engine.js CHANGED
@@ -228,7 +228,7 @@ export class Engine {
228
228
  }
229
229
  else if (def.requiresConfirmation) {
230
230
  args = check.args;
231
- const summary = confirmReadback({ name: call.name, arguments: args }) ?? undefined;
231
+ const summary = confirmReadback({ name: call.name, arguments: args }, { results: state.executed }) ?? undefined;
232
232
  const decision = opts.onConfirm
233
233
  ? await opts.onConfirm({ name: call.name, arguments: args, ...(summary ? { summary } : {}) })
234
234
  : { approved: false, reason: 'no confirmation handler available' };
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,13 @@ interface QuoteResult {
49
49
  to_amount_display?: string;
50
50
  fee_display?: string;
51
51
  }
52
+ /**
53
+ * `kaleidoswap_get_quote` takes display units (0.0005 BTC). The slots carry
54
+ * what the user said: a BTC amount said in sats ("2500 sats") is converted;
55
+ * one said in BTC ("0.001 btc") is kept. Without a unit word, below 1 reads as
56
+ * BTC and 1 or more as sats.
57
+ */
58
+ export declare function quoteAmount(asset: unknown, amount: unknown, text?: string): unknown;
52
59
  /** RLN's minimum HTLC for RGB payments when the node doesn't report one (rgb_htlc_min_msat). */
53
60
  export declare const RLN_HTLC_MIN_MSAT = 3000000;
54
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"kaleidoswap-atomic.d.ts","sourceRoot":"","sources":["../../src/recipe/kaleidoswap-atomic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,YAAY,CAAC;AAsCxD,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,UAAY,CAAC;AAwC3C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,QAAQ,EAAE,OAAO,EACjB,WAAW,GAAE,MAA0B,GACtC,MAAM,GAAG,IAAI,CAkDf;AAED,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,+BAAyB,CAAC;AASxD,eAAO,MAAM,uBAAuB,EAAE,MAyHrC,CAAC"}
1
+ {"version":3,"file":"kaleidoswap-atomic.d.ts","sourceRoot":"","sources":["../../src/recipe/kaleidoswap-atomic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,YAAY,CAAC;AAsCxD,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,SAAK,GAAG,OAAO,CAO/E;AAKD,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,UAAY,CAAC;AAwC3C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,QAAQ,EAAE,OAAO,EACjB,WAAW,GAAE,MAA0B,GACtC,MAAM,GAAG,IAAI,CAwDf;AAED,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,+BAAyB,CAAC;AA4BxD,eAAO,MAAM,uBAAuB,EAAE,MA6IrC,CAAC"}
@@ -72,6 +72,23 @@ const SWAP_INTENT = (t) => {
72
72
  // KaleidoSwap atomic is a BTC ↔ RGB venue: BTC settles on Lightning, RGB
73
73
  // assets on RGB-over-Lightning. The maker/MCP layer is derived from the asset.
74
74
  const layerFor = (asset) => /^btc$/i.test(String(asset)) ? 'BTC_LN' : 'RGB_LN';
75
+ /**
76
+ * `kaleidoswap_get_quote` takes display units (0.0005 BTC). The slots carry
77
+ * what the user said: a BTC amount said in sats ("2500 sats") is converted;
78
+ * one said in BTC ("0.001 btc") is kept. Without a unit word, below 1 reads as
79
+ * BTC and 1 or more as sats.
80
+ */
81
+ export function quoteAmount(asset, amount, text = '') {
82
+ const n = Number(amount);
83
+ if (!/^(btc|sats?|bitcoin)$/i.test(String(asset ?? '').trim()) || !Number.isFinite(n))
84
+ return amount;
85
+ const saidSats = /\b(sats?|satoshis?)\b/i.test(text);
86
+ const saidBtc = /\b(btc|bitcoins?)\b/i.test(text.replace(/\b(sats?|satoshis?)\b/gi, ''));
87
+ const inSats = saidSats || (!saidBtc && n >= 1);
88
+ return inSats ? n / 1e8 : n;
89
+ }
90
+ /** "swap|convert|exchange|trade|sell <N> <asset> for|to|into <asset>": nothing for a model to resolve. */
91
+ const EXPLICIT_SWAP = /\b(?:swap|convert|exchange|trade|sell)\s+\d[\d,]*(?:\.\d+)?\s*(?:sats?|satoshis?|btc|bitcoin|usdt|xaut)\s+(?:for|to|into)\s+(?:sats?|btc|bitcoin|usdt|xaut)\b/i;
75
92
  /** RLN's minimum HTLC for RGB payments when the node doesn't report one (rgb_htlc_min_msat). */
76
93
  export const RLN_HTLC_MIN_MSAT = 3_000_000;
77
94
  const isBtc = (leg) => leg?.layer === 'BTC_LN' || (!leg?.layer && String(leg?.ticker ?? '').toUpperCase() === 'BTC');
@@ -132,17 +149,23 @@ export function swapLiquidityShortfall(q, channels, htlcMinMsat = RLN_HTLC_MIN_M
132
149
  return `this swap runs over Lightning and you have no channels. Buy a channel first.`;
133
150
  const usable = rows.filter((c) => c.is_usable !== false && c.ready !== false);
134
151
  const hasAssetData = rows.some((c) => 'asset_id' in c);
152
+ // Channels name assets by rgb: id; a ticker in the quote can't be matched.
153
+ const assetIdKnown = (leg) => hasAssetData && String(leg?.asset_id ?? '').startsWith('rgb:');
135
154
  if (fromBtc) {
136
155
  const amount = num(from?.amount_raw);
137
156
  const maxOut = maxOver(rows, outbound);
138
157
  if (amount !== undefined && maxOut !== undefined && maxOut < amount + htlcMinMsat) {
139
158
  const need = amount + htlcMinMsat;
140
- return maxOut === 0
141
- ? `this swap needs a Lightning channel that can send ${fmtSats(need)} (the amount plus the ${min} HTLC minimum), and none can send right now. Buy a channel with at least that much outbound first.`
142
- : `your channels can send at most ${fmtSats(maxOut)}, and this swap needs ${fmtSats(need)} (the amount plus the ${min} HTLC minimum). Swap at most ${fmtSats(Math.max(0, maxOut - htlcMinMsat))}, or buy a bigger channel.`;
159
+ if (maxOut === 0) {
160
+ return `this swap needs a Lightning channel that can send ${fmtSats(need)} (the amount plus the ${min} HTLC minimum), and none can send right now. Buy a channel with at least that much outbound first.`;
161
+ }
162
+ if (maxOut <= htlcMinMsat) {
163
+ return `your channels can send at most ${fmtSats(maxOut)}, which only covers the ${min} HTLC minimum, so no BTC swap fits. This one needs ${fmtSats(need)}: buy a channel with more outbound.`;
164
+ }
165
+ return `your channels can send at most ${fmtSats(maxOut)}, and this swap needs ${fmtSats(need)} (the amount plus the ${min} HTLC minimum). Swap at most ${fmtSats(Math.max(0, maxOut - htlcMinMsat))}, or buy a bigger channel.`;
143
166
  }
144
167
  const want = num(to?.amount_raw);
145
- if (hasAssetData && want !== undefined) {
168
+ if (assetIdKnown(to) && want !== undefined) {
146
169
  const ok = usable.some((c) => c.asset_id === to?.asset_id && (num(c.asset_remote_amount) ?? 0) >= want && (inbound(c) ?? Infinity) >= htlcMinMsat);
147
170
  if (!ok) {
148
171
  return `no channel can receive ${legText(to)}: you need a ${to?.ticker ?? 'asset'} channel with at least that much inbound and ${min} of BTC inbound. Buy an asset channel from the LSP first.`;
@@ -152,7 +175,7 @@ export function swapLiquidityShortfall(q, channels, htlcMinMsat = RLN_HTLC_MIN_M
152
175
  }
153
176
  // asset → BTC
154
177
  const have = num(from?.amount_raw);
155
- if (hasAssetData && have !== undefined) {
178
+ if (assetIdKnown(from) && have !== undefined) {
156
179
  const ok = usable.some((c) => c.asset_id === from?.asset_id && (num(c.asset_local_amount) ?? 0) >= have && (outbound(c) ?? Infinity) >= htlcMinMsat);
157
180
  if (!ok) {
158
181
  return `no channel can send ${legText(from)}: you need a ${from?.ticker ?? 'asset'} channel holding at least that much, with ${min} of BTC outbound.`;
@@ -167,9 +190,29 @@ export function swapLiquidityShortfall(q, channels, htlcMinMsat = RLN_HTLC_MIN_M
167
190
  }
168
191
  /** @deprecated Use `swapLiquidityShortfall`. */
169
192
  export const outboundShortfall = swapLiquidityShortfall;
170
- // Render a quote leg as "<amount> <TICKER>" from the MCP quote echo, or undefined
171
- // if the leg is missing (callers fall back to the user's slot values).
172
- const quoteLeg = (leg) => leg?.amount_display != null ? `${leg.amount_display}${leg.ticker ? ` ${leg.ticker}` : ''}` : undefined;
193
+ // Render a quote leg as "<amount> <TICKER>". BTC reads in sats from the raw
194
+ // msat amount (the maker's display is in BTC, e.g. 0.000025).
195
+ const quoteLeg = (leg) => {
196
+ if (isBtc(leg) && Number.isFinite(Number(leg?.amount_raw)))
197
+ return `${Math.floor(Number(leg.amount_raw) / 1000).toLocaleString('en-US')} sats`;
198
+ return leg?.amount_display != null ? `${leg.amount_display}${leg.ticker ? ` ${leg.ticker}` : ''}` : undefined;
199
+ };
200
+ const FINAL_SWAP_STATUS = new Set(['Succeeded', 'Expired', 'Failed']);
201
+ /** The maker's swap status (`{ swap: { status } }`), or undefined. */
202
+ function swapStatus(result) {
203
+ let r = result;
204
+ if (typeof r === 'string') {
205
+ try {
206
+ r = JSON.parse(r);
207
+ }
208
+ catch {
209
+ return undefined;
210
+ }
211
+ }
212
+ const o = r;
213
+ const st = o?.swap?.status ?? o?.status;
214
+ return typeof st === 'string' ? st : undefined;
215
+ }
173
216
  export const kaleidoswapAtomicRecipe = {
174
217
  name: 'kaleidoswap-atomic',
175
218
  description: 'Swap between BTC and an RGB asset on KaleidoSwap: quote, confirm once, then init (maker) → whitelist (node) → execute (maker).',
@@ -187,6 +230,9 @@ export const kaleidoswapAtomicRecipe = {
187
230
  // always ask the model to produce the actual slots used for execution.
188
231
  extract: extractSwap,
189
232
  forceModelExtract: true,
233
+ // An explicit amount + both assets needs no model, which small models
234
+ // otherwise misread ("2500 sats into USDT" as 2,500 USDT).
235
+ trustExtract: (text) => EXPLICIT_SWAP.test(text),
190
236
  confident: (s) => !!s.from_asset && !!s.to_asset && !!s.amount,
191
237
  steps: [
192
238
  // 1. MAKER quotes the swap (read-only). Returns rfq_id + full asset specs
@@ -205,9 +251,9 @@ export const kaleidoswapAtomicRecipe = {
205
251
  from_layer: layerFor(ctx.slots.from_asset),
206
252
  to_layer: layerFor(ctx.slots.to_asset),
207
253
  };
208
- return side === 'to'
209
- ? { ...base, to_amount: ctx.slots.amount }
210
- : { ...base, from_amount: ctx.slots.amount };
254
+ const asset = side === 'to' ? ctx.slots.to_asset : ctx.slots.from_asset;
255
+ const amount = quoteAmount(asset, ctx.slots.amount, ctx.text);
256
+ return side === 'to' ? { ...base, to_amount: amount } : { ...base, from_amount: amount };
211
257
  },
212
258
  },
213
259
  // 1b. NODE: pubkey for execute, and the node's RGB HTLC minimum.
@@ -268,6 +314,19 @@ export const kaleidoswapAtomicRecipe = {
268
314
  };
269
315
  },
270
316
  },
317
+ // 6. Follow the swap until the maker reports a final status. The status
318
+ // needs the per-swap access_token that only init returns.
319
+ poll: {
320
+ tool: 'kaleidoswap_atomic_status',
321
+ as: 'status',
322
+ args: (ctx) => {
323
+ const init = ctx.results.init;
324
+ return { payment_hash: init?.payment_hash, ...(init?.access_token ? { access_token: init.access_token } : {}) };
325
+ },
326
+ done: (result) => FINAL_SWAP_STATUS.has(swapStatus(result) ?? ''),
327
+ intervalMs: 3000,
328
+ timeoutMs: 90_000,
329
+ },
271
330
  // ONE confirmation, fired after the quote / before init, with the real numbers.
272
331
  confirm: (ctx) => {
273
332
  const q = ctx.results.quote;
@@ -281,9 +340,15 @@ export const kaleidoswapAtomicRecipe = {
281
340
  const from = quoteLeg(q?.from_asset) ?? `${ctx.slots.amount} ${ctx.slots.from_asset}`;
282
341
  const to = quoteLeg(q?.to_asset) ?? String(ctx.slots.to_asset);
283
342
  const init = ctx.results.init;
284
- const id = init?.atomic_id || init?.payment_hash || '?';
285
- return `remember: atomic swap atomic_id=${id} (for later kaleidoswap_atomic_status checks).
286
- Swap submitted: ${from} → ${to}. To check status later, call: kaleidoswap_atomic_status(atomic_id=${id}). Say "check my swap status" and I will recall + poll automatically.`;
343
+ const hash = init?.payment_hash || init?.atomic_id || '?';
344
+ const token = init?.access_token ? `, access_token=${init.access_token}` : '';
345
+ const status = swapStatus(ctx.results.status);
346
+ if (status === 'Succeeded')
347
+ return `Swap completed: you sent ${from} and received ${to}.`;
348
+ if (status === 'Expired' || status === 'Failed')
349
+ return `The swap ${status.toLowerCase()}: ${from} → ${to} did not complete, and nothing was exchanged.`;
350
+ return `remember: atomic swap payment_hash=${hash}${token} (for kaleidoswap_atomic_status checks).
351
+ Swap submitted: ${from} → ${to}, status ${status ?? 'unknown'}. Check it with kaleidoswap_atomic_status(payment_hash=${hash}${token}), or say "check my swap status".`;
287
352
  },
288
353
  };
289
354
  //# sourceMappingURL=kaleidoswap-atomic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kaleidoswap-atomic.js","sourceRoot":"","sources":["../../src/recipe/kaleidoswap-atomic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kaleidoswap-atomic.js","sourceRoot":"","sources":["../../src/recipe/kaleidoswap-atomic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,2EAA2E;AAC3E,8EAA8E;AAC9E,6CAA6C;AAC7C,kEAAkE;AAClE,8EAA8E;AAC9E,+EAA+E;AAC/E,oDAAoD;AACpD,MAAM,OAAO,GAAG,6DAA6D,CAAC;AAC9E,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAClD,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,EAAE;IAChC,4EAA4E;IAC5E,qCAAqC;IACrC,IAAI,6EAA6E,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACxG,+DAA+D;IAC/D,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,0EAA0E;IAC1E,6EAA6E;IAC7E,yEAAyE;IACzE,IAAI,4DAA4D,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,4FAA4F,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACvH,MAAM,QAAQ,GAAG,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GACX,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,wEAAwE;QACxE,yEAAyE;QACzE,CAAC,2FAA2F,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvG,4EAA4E;IAC5E,2EAA2E;IAC3E,IAAI,QAAQ,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAaF,yEAAyE;AACzE,+EAA+E;AAC/E,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAU,EAAE,CAC1C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,MAAe,EAAE,IAAI,GAAG,EAAE;IACpE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACrG,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,0GAA0G;AAC1G,MAAM,aAAa,GAAG,gKAAgK,CAAC;AAEvL,gGAAgG;AAChG,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAK3C,MAAM,KAAK,GAAG,CAAC,GAAS,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;AAC3H,MAAM,GAAG,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/H,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AAC5F,MAAM,OAAO,GAAG,CAAC,GAAS,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC;AAE1L,SAAS,WAAW,CAAC,QAAiB;IACpC,IAAI,IAAI,GAAY,QAAQ,CAAC;IAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAA+B,EAAE,QAAQ,CAAC;IACrF,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,0FAA0F;AAC1F,SAAS,OAAO,CAAC,IAAe,EAAE,IAAwC;IACxE,IAAI,IAAwB,CAAC;IAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QAC9B,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK;YAAE,SAAS;QACzD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC;AACjG,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,CAA0B,EAC1B,QAAiB,EACjB,WAAW,GAAW,iBAAiB;IAEvC,MAAM,IAAI,GAAG,CAAC,EAAE,UAA6B,CAAC;IAC9C,MAAM,EAAE,GAAG,CAAC,EAAE,QAA2B,CAAC;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,8EAA8E,CAAC;IACxG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACvD,2EAA2E;IAC3E,MAAM,YAAY,GAAG,CAAC,GAAS,EAAE,EAAE,CAAC,YAAY,IAAI,MAAM,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAEnG,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;YAClF,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC;YAClC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,OAAO,qDAAqD,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,oGAAoG,CAAC;YAC5M,CAAC;YACD,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC1B,OAAO,kCAAkC,OAAO,CAAC,MAAM,CAAC,2BAA2B,GAAG,sDAAsD,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC;YACjM,CAAC;YACD,OAAO,kCAAkC,OAAO,CAAC,MAAM,CAAC,yBAAyB,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,gCAAgC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,4BAA4B,CAAC;QACnO,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACjC,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,WAAW,CAC3H,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,0BAA0B,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,MAAM,IAAI,OAAO,gDAAgD,GAAG,2DAA2D,CAAC;YAClM,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;IACd,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,WAAW,CAC7H,CAAC;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,uBAAuB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,MAAM,IAAI,OAAO,6CAA6C,GAAG,mBAAmB,CAAC;QACxJ,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;QAChF,OAAO,qCAAqC,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,yBAAyB,GAAG,yDAAyD,CAAC;IAC3M,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAExD,4EAA4E;AAC5E,8DAA8D;AAC9D,MAAM,QAAQ,GAAG,CAAC,GAAuF,EAAsB,EAAE;IAC/H,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;IAChJ,OAAO,GAAG,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChH,CAAC,CAAC;AAIF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtE,sEAAsE;AACtE,SAAS,UAAU,CAAC,MAAe;IACjC,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAG,CAAkE,CAAC;IAC7E,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC;IACxC,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAW;IAC7C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,gIAAgI;IAClI,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;IACjE,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sFAAsF,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3J,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6EAA6E,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChJ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0IAA0I,EAAE;QAC3L,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0HAA0H,EAAE;KACjL;IACD,6EAA6E;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,OAAO,EAAE,WAAW;IACpB,iBAAiB,EAAE,IAAI;IACvB,sEAAsE;IACtE,2DAA2D;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;IAC9D,KAAK,EAAE;QACL,0EAA0E;QAC1E,6EAA6E;QAC7E;YACE,IAAI,EAAE,uBAAuB;YAC7B,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,uEAAuE;gBACvE,oEAAoE;gBACpE,yDAAyD;gBACzD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC;gBAC7C,MAAM,IAAI,GAAG;oBACX,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU;oBACnC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;oBAC/B,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;oBAC1C,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACvC,CAAC;gBACF,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9D,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;YAC3F,CAAC;SACF;QACD,iEAAiE;QACjE;YACE,IAAI,EAAE,mBAAmB;YACzB,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;SACjB;QACD,wEAAwE;QACxE,0EAA0E;QAC1E,2EAA2E;QAC3E;YACE,IAAI,EAAE,mBAAmB;YACzB,EAAE,EAAE,UAAU;YACd,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;YAChB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CACb,sBAAsB,CACpB,GAAG,CAAC,OAAO,CAAC,KAAgC,EAC5C,GAAG,CAAC,OAAO,CAAC,QAAQ,EACpB,GAAG,CAAE,GAAG,CAAC,OAAO,CAAC,IAAoD,EAAE,iBAAiB,CAAC,IAAI,iBAAiB,CAC/G;SACJ;QACD,uEAAuE;QACvE,uEAAuE;QACvE,4EAA4E;QAC5E;YACE,IAAI,EAAE,yBAAyB;YAC/B,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAgC,CAAC;gBACvD,OAAO;oBACL,MAAM,EAAE,CAAC,EAAE,MAAM;oBACjB,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ;oBACtC,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU;oBAC1C,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ;oBAClC,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU;iBACvC,CAAC;YACJ,CAAC;SACF;QACD,0EAA0E;QAC1E,6EAA6E;QAC7E,oDAAoD;QACpD;YACE,IAAI,EAAE,kBAAkB;YACxB,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAA8B,CAAC;gBACxD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC1C,CAAC;SACF;KACF;IACD,6EAA6E;IAC7E,KAAK,EAAE;QACL,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAA8B,CAAC;YACxD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAA4B,CAAC;YACtD,OAAO;gBACL,UAAU,EAAE,IAAI,EAAE,UAAU;gBAC5B,YAAY,EAAE,IAAI,EAAE,MAAM;gBAC1B,YAAY,EAAE,IAAI,EAAE,YAAY;aACjC,CAAC;QACJ,CAAC;KACF;IACD,wEAAwE;IACxE,6DAA6D;IAC7D,IAAI,EAAE;QACJ,IAAI,EAAE,2BAA2B;QACjC,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAA8B,CAAC;YACxD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAClH,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjE,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,MAAM;KAClB;IACD,gFAAgF;IAChF,OAAO,EAAE,CAAC,GAAkB,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAgC,CAAC;QACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtF,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,QAAQ,IAAI,MAAM,EAAE,GAAG,GAAG,2BAA2B,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAgC,CAAC;QACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtF,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAA8B,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,EAAE,YAAY,IAAI,IAAI,EAAE,SAAS,IAAI,GAAG,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,4BAA4B,IAAI,iBAAiB,EAAE,GAAG,CAAC;QAC1F,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,YAAY,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,MAAM,EAAE,+CAA+C,CAAC;QACzJ,OAAO,sCAAsC,IAAI,GAAG,KAAK;kBAC3C,IAAI,MAAM,EAAE,YAAY,MAAM,IAAI,SAAS,0DAA0D,IAAI,GAAG,KAAK,mCAAmC,CAAC;IACrK,CAAC;CACF,CAAC"}
@@ -26,6 +26,10 @@ export interface RunRecipeOptions {
26
26
  onStep?: (name: string, args: Record<string, unknown>, result: unknown) => void;
27
27
  /** Skip extraction and use these slots (deterministic Tier-0 / tests). */
28
28
  slots?: Record<string, unknown>;
29
+ /** Override the recipe's poll interval (tests). */
30
+ pollIntervalMs?: number;
31
+ /** Override the recipe's poll timeout (tests). */
32
+ pollTimeoutMs?: number;
29
33
  signal?: AbortSignal;
30
34
  }
31
35
  /** Extract the recipe's slots — deterministic regex first, else ONE LLM call. */
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/recipe/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAC;AAItE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACvH,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAChF,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAuCD,iFAAiF;AACjF,wBAAsB,YAAY,CAChC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAqGjE;AAED,oFAAoF;AACpF,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CA+G3G;AAED,wFAAwF;AACxF,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAW;IAC1B,YAAY,OAAO,GAAE,MAAM,EAAO,EAEjC;IACD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAExB;IACD,IAAI,IAAI,MAAM,EAAE,CAEf;IACD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpC;IACD,mEAAmE;IACnE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlC;CACF"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/recipe/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAC;AAItE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACvH,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAChF,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAuCD,iFAAiF;AACjF,wBAAsB,YAAY,CAChC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAqGjE;AAED,oFAAoF;AACpF,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAoI3G;AAED,wFAAwF;AACxF,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAW;IAC1B,YAAY,OAAO,GAAE,MAAM,EAAO,EAEjC;IACD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAExB;IACD,IAAI,IAAI,MAAM,EAAE,CAEf;IACD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpC;IACD,mEAAmE;IACnE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlC;CACF"}
@@ -41,7 +41,7 @@ function failedResult(recipe, ctx, inferences, message) {
41
41
  export async function extractSlots(provider, recipe, text, signal) {
42
42
  const det = recipe.extract?.(text);
43
43
  const detValid = det && Object.values(det).some((v) => v !== undefined && v !== null && v !== '');
44
- if (detValid && !recipe.forceModelExtract) {
44
+ if (detValid && (!recipe.forceModelExtract || recipe.trustExtract?.(text))) {
45
45
  return { slots: det, inferences: 0 };
46
46
  }
47
47
  // Build a richer extraction prompt + tool schema so small models have a
@@ -248,6 +248,29 @@ export async function runRecipe(recipe, text, opts) {
248
248
  const failure = toolFailure(finalResult);
249
249
  if (failure)
250
250
  return failedResult(recipe, ctx, inferences, failure);
251
+ // Nothing to follow on a host without the status tool.
252
+ if (recipe.poll && (await opts.tools.getDef(recipe.poll.tool))) {
253
+ const poll = recipe.poll;
254
+ const interval = opts.pollIntervalMs ?? poll.intervalMs ?? 3000;
255
+ const deadline = Date.now() + (opts.pollTimeoutMs ?? poll.timeoutMs ?? 120_000);
256
+ for (;;) {
257
+ if (opts.signal?.aborted)
258
+ break;
259
+ const args = poll.args(ctx);
260
+ let result;
261
+ try {
262
+ result = await opts.tools.execute(poll.tool, args);
263
+ }
264
+ catch (e) {
265
+ result = { error: e instanceof Error ? e.message : String(e) };
266
+ }
267
+ ctx.results[poll.as ?? poll.tool] = result;
268
+ opts.onStep?.(poll.tool, args, result);
269
+ if (poll.done(result) || Date.now() + interval > deadline)
270
+ break;
271
+ await new Promise((r) => setTimeout(r, interval));
272
+ }
273
+ }
251
274
  const out = recipe.summary?.(ctx, finalResult) ?? 'Done.';
252
275
  return { recipe: recipe.name, slots: ctx.slots, results: ctx.results, final: finalResult, text: out, status: 'done', inferences };
253
276
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/recipe/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/recipe/runner.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,11 @@ export interface Recipe {
58
58
  * reliable multi-step execution plan and single-confirmation safety.
59
59
  */
60
60
  forceModelExtract?: boolean;
61
+ /**
62
+ * With `forceModelExtract`, use the deterministic extraction anyway when this
63
+ * returns true for the request (an unambiguous phrasing).
64
+ */
65
+ trustExtract?: (text: string) => boolean;
61
66
  /**
62
67
  * Whether the recipe is confident enough to RUN deterministically given the
63
68
  * extracted slots (vs falling back to the agentic loop). e.g. payments needs a
@@ -68,6 +73,19 @@ export interface Recipe {
68
73
  steps: RecipeStep[];
69
74
  /** The terminal action (usually a spend → confirmation-gated by its tool). */
70
75
  final: RecipeStep;
76
+ /**
77
+ * After the final action, call `tool` until `done(result)` (or the timeout),
78
+ * e.g. a swap's status until it settles. The last result is stored under
79
+ * `as` for `summary`.
80
+ */
81
+ poll?: {
82
+ tool: string;
83
+ args: (ctx: RecipeContext) => Record<string, unknown>;
84
+ as?: string;
85
+ done: (result: unknown) => boolean;
86
+ intervalMs?: number;
87
+ timeoutMs?: number;
88
+ };
71
89
  /** Render the outcome for the user. */
72
90
  summary?: (ctx: RecipeContext, finalResult: unknown) => string;
73
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/recipe/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,gEAAgE;IAChE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC;IACzC,wFAAwF;IACxF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6DAA6D;IAC7D,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3D;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IACxD,sEAAsE;IACtE,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,8EAA8E;IAC9E,KAAK,EAAE,UAAU,CAAC;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,KAAK,MAAM,CAAC;IAC/D;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;AAEzE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/recipe/types.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,15 @@
5
5
  * identical on every surface, and impossible for the model to phrase around.
6
6
  */
7
7
  /** A spoken confirmation ending in "Confirm?", or null for non-spend tools. */
8
+ /** What earlier calls in the same run returned, for readbacks that depend on them. */
9
+ export interface ReadbackContext {
10
+ results?: Array<{
11
+ name: string;
12
+ result: unknown;
13
+ }>;
14
+ }
8
15
  export declare function confirmReadback(call: {
9
16
  name: string;
10
17
  arguments: Record<string, unknown>;
11
- }): string | null;
18
+ }, context?: ReadbackContext): string | null;
12
19
  //# sourceMappingURL=confirm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/wallet/confirm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2DH,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAwDzG"}
1
+ {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/wallet/confirm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2DH,+EAA+E;AAC/E,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpD;AAmFD,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CA6DpI"}
@@ -55,8 +55,78 @@ const asset = (amount, ticker) => {
55
55
  const n = num(amount);
56
56
  return n === undefined ? `an unspecified amount of ${label(ticker)}` : `${fmtNum(n)} ${label(ticker)}`;
57
57
  };
58
- /** A spoken confirmation ending in "Confirm?", or null for non-spend tools. */
59
- export function confirmReadback(call) {
58
+ const isBtcLeg = (leg) => leg?.layer === 'BTC_LN' || (!leg?.layer && String(leg?.ticker ?? '').toUpperCase() === 'BTC');
59
+ // BTC reads in sats from the raw msat amount (the maker's display is in BTC).
60
+ const legText = (leg) => isBtcLeg(leg) && Number.isFinite(Number(leg?.amount_raw))
61
+ ? sats(Math.floor(Number(leg.amount_raw) / 1000))
62
+ : leg?.amount_display
63
+ ? `${leg.amount_display}${leg.ticker && !/sats?$/i.test(leg.amount_display) ? ` ${leg.ticker}` : ''}`
64
+ : undefined;
65
+ const lastResult = (ctx, re) => {
66
+ const hit = [...(ctx?.results ?? [])].reverse().find((r) => re.test(r.name));
67
+ let r = hit?.result;
68
+ if (typeof r === 'string') {
69
+ try {
70
+ r = JSON.parse(r);
71
+ }
72
+ catch {
73
+ return undefined;
74
+ }
75
+ }
76
+ return r && typeof r === 'object' ? r : undefined;
77
+ };
78
+ /** RLN swapstring: qty_from/from_asset/qty_to/to_asset/expiry/payment_hash (BTC in msat). */
79
+ function swapstringLegs(swapstring) {
80
+ const [qtyFrom, from, qtyTo, to] = swapstring.split('/');
81
+ if (!qtyFrom || !from || !qtyTo || !to || !/^\d+$/.test(qtyFrom) || !/^\d+$/.test(qtyTo))
82
+ return undefined;
83
+ const leg = (qty, asset) => asset === 'btc' ? sats(Math.floor(Number(qty) / 1000)) : `${Number(qty).toLocaleString('en-US')} units of ${shortRef(asset)}`;
84
+ return `${leg(qtyFrom, from)} ⇄ ${leg(qtyTo, to)}`;
85
+ }
86
+ function expiresIn(expiresAt) {
87
+ const t = Number(expiresAt);
88
+ if (!Number.isFinite(t) || t <= 0)
89
+ return '';
90
+ const secs = Math.round((t > 1e12 ? t : t * 1000) / 1000 - Date.now() / 1000);
91
+ return secs > 0 ? ` (quote expires in ${secs}s)` : ' (the quote has expired)';
92
+ }
93
+ /** One leg from init args alone: BTC raw is msat; an asset's raw units without its precision. */
94
+ function rawLeg(assetId, raw) {
95
+ const n = Number(raw);
96
+ if (!Number.isFinite(n))
97
+ return String(assetId ?? '?');
98
+ return /^(btc|sats?)$/i.test(String(assetId ?? '')) ? sats(Math.floor(n / 1000)) : `${n.toLocaleString('en-US')} raw units of ${shortRef(String(assetId ?? '?'))}`;
99
+ }
100
+ function atomicInitReadback(a, ctx) {
101
+ const quote = lastResult(ctx, /(^|_)get_quote$/);
102
+ const from = legText(quote?.from_asset);
103
+ const to = legText(quote?.to_asset);
104
+ if (quote && from && to && (!a.rfq_id || !quote.rfq_id || a.rfq_id === quote.rfq_id)) {
105
+ const differs = (a.from_amount_raw != null && quote.from_asset?.amount_raw != null && Number(a.from_amount_raw) !== Number(quote.from_asset.amount_raw)) ||
106
+ (a.to_amount_raw != null && quote.to_asset?.amount_raw != null && Number(a.to_amount_raw) !== Number(quote.to_asset.amount_raw));
107
+ return `Swap ${from} for ${to} on KaleidoSwap${expiresIn(quote.expires_at)}${differs ? ' (the amounts sent differ from the quote)' : ''}`;
108
+ }
109
+ return `Swap ${rawLeg(a.from_asset_id, a.from_amount_raw)} for ${rawLeg(a.to_asset_id, a.to_amount_raw)} on KaleidoSwap (no quote in this conversation)`;
110
+ }
111
+ function atomicExecuteReadback(ctx) {
112
+ const quote = lastResult(ctx, /(^|_)get_quote$/);
113
+ const from = legText(quote?.from_asset);
114
+ const to = legText(quote?.to_asset);
115
+ return from && to ? `Settle the KaleidoSwap swap: you send ${from}, you receive ${to}` : 'Settle the KaleidoSwap atomic swap';
116
+ }
117
+ function atomicTakerReadback(swapstring, ctx) {
118
+ const quote = lastResult(ctx, /(^|_)get_quote$/);
119
+ const init = lastResult(ctx, /(^|_)atomic_init$/);
120
+ const from = legText(quote?.from_asset);
121
+ const to = legText(quote?.to_asset);
122
+ if (from && to) {
123
+ const other = init?.swapstring && init.swapstring !== swapstring ? ' (this is not the swap just created)' : '';
124
+ return `Accept the atomic swap: you send ${from}, you receive ${to}${other}`;
125
+ }
126
+ const legs = swapstringLegs(swapstring);
127
+ return legs ? `Accept atomic swap ${legs} (${shortRef(swapstring)})` : `Accept atomic swap ${shortRef(swapstring)}`;
128
+ }
129
+ export function confirmReadback(call, context) {
60
130
  const { name, arguments: a } = call;
61
131
  const to = (k = 'to') => shortRef(String(a[k] ?? ''));
62
132
  const ask = (s) => `${s}. Confirm?`;
@@ -94,8 +164,13 @@ export function confirmReadback(call) {
94
164
  }
95
165
  case 'rln_close_channel':
96
166
  return ask(`${a.force ? 'Force-close' : 'Close'} channel ${shortRef(String(a.channel_id ?? ''))}`);
167
+ case 'kaleidoswap_atomic_init':
168
+ return ask(atomicInitReadback(a, context));
169
+ case 'kaleidoswap_atomic_execute':
170
+ return ask(atomicExecuteReadback(context));
97
171
  case 'rln_atomic_taker':
98
- return ask(`Accept atomic swap ${shortRef(String(a.swapstring ?? ''))} on your node`);
172
+ case 'wdk_atomic_taker':
173
+ return ask(atomicTakerReadback(String(a.swapstring ?? ''), context));
99
174
  case 'execute_swap':
100
175
  return ask(`Swap ${asset(a.amount, a.from_asset)} for ${label(a.to_asset)}`);
101
176
  // The order total is only known once the LSP creates the order; the
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/wallet/confirm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/wallet/confirm.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaleidorg/mind",
3
- "version": "0.10.7",
3
+ "version": "0.10.9",
4
4
  "description": "Local-first reasoning + function-calling engine for KaleidoSwap. QVAC-powered.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
package/src/engine.ts CHANGED
@@ -367,7 +367,7 @@ export class Engine {
367
367
  };
368
368
  } else if (def.requiresConfirmation) {
369
369
  args = check.args;
370
- const summary = confirmReadback({ name: call.name, arguments: args }) ?? undefined;
370
+ const summary = confirmReadback({ name: call.name, arguments: args }, { results: state.executed }) ?? undefined;
371
371
  const decision = opts.onConfirm
372
372
  ? await opts.onConfirm({ name: call.name, arguments: args, ...(summary ? { summary } : {}) })
373
373
  : { approved: false, reason: 'no confirmation handler available' };
@@ -339,6 +339,9 @@ describe('kaleidoswapAtomicRecipe — channel liquidity preflight', () => {
339
339
  'your channels can send at most 51,000 sats, and this swap needs 53,000 sats (the amount plus the 3,000 sats HTLC minimum). Swap at most 48,000 sats, or buy a bigger channel.',
340
340
  );
341
341
  expect(swapLiquidityShortfall(btcToUsdt as never, { channels: [usdtChannel()] })).toBeNull();
342
+ expect(swapLiquidityShortfall(btcToUsdt as never, { channels: [usdtChannel({ next_outbound_htlc_limit_msat: 3_000_000 })] })).toBe(
343
+ 'your channels can send at most 3,000 sats, which only covers the 3,000 sats HTLC minimum, so no BTC swap fits. This one needs 53,000 sats: buy a channel with more outbound.',
344
+ );
342
345
  expect(swapLiquidityShortfall(btcToUsdt as never, { channels: [] })).toMatch(/no channels/);
343
346
  expect(swapLiquidityShortfall(btcToUsdt as never, { channels: [usdtChannel({ ready: false })] })).toMatch(/none can send right now/);
344
347
  });
@@ -432,3 +435,104 @@ describe('kaleidoswapAtomicRecipe — outbound preflight (BTC leg + RLN HTLC min
432
435
  expect(confirms).toEqual([]);
433
436
  });
434
437
  });
438
+
439
+ describe('kaleidoswapAtomicRecipe — amounts and the deterministic path', () => {
440
+ it('converts a BTC amount said in sats to display units for the quote', async () => {
441
+ const { quoteAmount } = await import('./kaleidoswap-atomic.js');
442
+ expect(quoteAmount('BTC', 2500, 'Swap 2500 sats into USDT')).toBe(0.000025);
443
+ expect(quoteAmount('BTC', 0.001, 'swap 0.001 btc to usdt')).toBe(0.001);
444
+ expect(quoteAmount('BTC', 100000, 'swap 100000 into usdt')).toBe(0.001);
445
+ expect(quoteAmount('USDT', 10, 'swap 10 usdt for btc')).toBe(10);
446
+ });
447
+
448
+ it('runs "Swap 2500 sats into USDT" without a model, quoting 0.000025 BTC', async () => {
449
+ const quoteArgs: unknown[] = [];
450
+ const tools = new ToolRegistry([
451
+ new InProcessToolSource('k', [
452
+ {
453
+ name: 'kaleidoswap_get_quote',
454
+ description: 'q',
455
+ parameters: { type: 'object', properties: {} },
456
+ handler: async (a: Record<string, unknown>) => {
457
+ quoteArgs.push(a);
458
+ return { error: 'stop here' };
459
+ },
460
+ },
461
+ ]),
462
+ ]);
463
+ const res = await runRecipe(kaleidoswapAtomicRecipe, 'Swap 2500 sats into USDT on KaleidoSwap', {
464
+ provider: { name: 'none', async runTurn() { throw new Error('the model must not be called'); } } as LLMProvider,
465
+ tools,
466
+ });
467
+ expect(res.inferences).toBe(0);
468
+ expect(quoteArgs[0]).toMatchObject({ from_asset_id: 'BTC', to_asset_id: 'USDT', from_amount: 0.000025 });
469
+ });
470
+ });
471
+
472
+ describe('kaleidoswapAtomicRecipe — follows the swap to a final status', () => {
473
+ const quote = {
474
+ rfq_id: 'rfq-7',
475
+ from_asset: { asset_id: 'BTC', ticker: 'BTC', layer: 'BTC_LN', amount_raw: 2_500_000, amount_display: '0.000025' },
476
+ to_asset: { asset_id: 'rgb:usdt', ticker: 'USDT', layer: 'RGB_LN', amount_raw: 2_020_173, amount_display: '2.020173' },
477
+ };
478
+ function setup(statuses: string[]) {
479
+ const statusArgs: unknown[] = [];
480
+ const confirms: string[] = [];
481
+ const t = (name: string, handler: (a: any) => unknown, spend = false) => ({
482
+ name, description: name, parameters: { type: 'object', properties: {} }, requiresConfirmation: spend, handler: async (a: any) => handler(a),
483
+ });
484
+ const tools = new ToolRegistry([
485
+ new InProcessToolSource('k', [
486
+ t('kaleidoswap_get_quote', () => quote),
487
+ t('kaleidoswap_atomic_init', () => ({ swapstring: 's', payment_hash: 'ph-7', access_token: 'tok-7' }), true),
488
+ t('kaleidoswap_atomic_execute', () => ({ status: 200 }), true),
489
+ t('kaleidoswap_atomic_status', (a) => {
490
+ statusArgs.push(a);
491
+ return { swap: { status: statuses[Math.min(statusArgs.length - 1, statuses.length - 1)] } };
492
+ }),
493
+ ]),
494
+ new InProcessToolSource('rln', [t('rln_get_node_info', () => ({ pubkey: '03' })), t('rln_atomic_taker', () => ({ ok: true }), true)]),
495
+ ]);
496
+ return { tools, statusArgs, confirms };
497
+ }
498
+ const run = (tools: ToolRegistry, confirms: string[], extra: Record<string, unknown> = {}) =>
499
+ runRecipe(kaleidoswapAtomicRecipe, 'swap 2500 sats into usdt', {
500
+ provider: { name: 'none', async runTurn() { throw new Error('unused'); } } as LLMProvider,
501
+ tools,
502
+ pollIntervalMs: 1,
503
+ onConfirm: async (c) => { confirms.push(c.summary ?? ''); return { approved: true }; },
504
+ ...extra,
505
+ });
506
+
507
+ it('polls with the access token until the swap succeeds, showing BTC in sats', async () => {
508
+ const { tools, statusArgs, confirms } = setup(['Waiting', 'Pending', 'Succeeded']);
509
+ const res = await run(tools, confirms);
510
+ expect(statusArgs).toEqual([
511
+ { payment_hash: 'ph-7', access_token: 'tok-7' },
512
+ { payment_hash: 'ph-7', access_token: 'tok-7' },
513
+ { payment_hash: 'ph-7', access_token: 'tok-7' },
514
+ ]);
515
+ expect(confirms[0]).toMatch(/^Swap 2,500 sats → 2\.020173 USDT/);
516
+ expect(res.text).toBe('Swap completed: you sent 2,500 sats and received 2.020173 USDT.');
517
+ });
518
+
519
+ it('reports a failed swap, and how to check one that is not final yet', async () => {
520
+ const failed = setup(['Pending', 'Expired']);
521
+ expect((await run(failed.tools, failed.confirms)).text).toMatch(/^The swap expired: 2,500 sats → 2\.020173 USDT did not complete/);
522
+ const pending = setup(['Pending']);
523
+ const res = await run(pending.tools, pending.confirms, { pollTimeoutMs: 20 });
524
+ expect(res.text).toMatch(/status Pending\. Check it with kaleidoswap_atomic_status\(payment_hash=ph-7, access_token=tok-7\)/);
525
+ });
526
+ });
527
+
528
+ describe('swapLiquidityShortfall — a ticker instead of an rgb: id', () => {
529
+ it("doesn't block on the asset leg it can't match", async () => {
530
+ const { swapLiquidityShortfall } = await import('./kaleidoswap-atomic.js');
531
+ const q = {
532
+ from_asset: { asset_id: 'BTC', layer: 'BTC_LN', amount_raw: 2_500_000 },
533
+ to_asset: { asset_id: 'USDT', ticker: 'USDT', layer: 'RGB_LN', amount_raw: 2_000_000 },
534
+ };
535
+ const ch = { ready: true, asset_id: 'rgb:usdt', asset_remote_amount: 1, next_outbound_htlc_limit_msat: 9_000_000, inbound_balance_msat: 9_000_000 };
536
+ expect(swapLiquidityShortfall(q as never, { channels: [ch] })).toBeNull();
537
+ });
538
+ });
@@ -85,6 +85,24 @@ interface QuoteResult {
85
85
  const layerFor = (asset: unknown): string =>
86
86
  /^btc$/i.test(String(asset)) ? 'BTC_LN' : 'RGB_LN';
87
87
 
88
+ /**
89
+ * `kaleidoswap_get_quote` takes display units (0.0005 BTC). The slots carry
90
+ * what the user said: a BTC amount said in sats ("2500 sats") is converted;
91
+ * one said in BTC ("0.001 btc") is kept. Without a unit word, below 1 reads as
92
+ * BTC and 1 or more as sats.
93
+ */
94
+ export function quoteAmount(asset: unknown, amount: unknown, text = ''): unknown {
95
+ const n = Number(amount);
96
+ if (!/^(btc|sats?|bitcoin)$/i.test(String(asset ?? '').trim()) || !Number.isFinite(n)) return amount;
97
+ const saidSats = /\b(sats?|satoshis?)\b/i.test(text);
98
+ const saidBtc = /\b(btc|bitcoins?)\b/i.test(text.replace(/\b(sats?|satoshis?)\b/gi, ''));
99
+ const inSats = saidSats || (!saidBtc && n >= 1);
100
+ return inSats ? n / 1e8 : n;
101
+ }
102
+
103
+ /** "swap|convert|exchange|trade|sell <N> <asset> for|to|into <asset>": nothing for a model to resolve. */
104
+ const EXPLICIT_SWAP = /\b(?:swap|convert|exchange|trade|sell)\s+\d[\d,]*(?:\.\d+)?\s*(?:sats?|satoshis?|btc|bitcoin|usdt|xaut)\s+(?:for|to|into)\s+(?:sats?|btc|bitcoin|usdt|xaut)\b/i;
105
+
88
106
  /** RLN's minimum HTLC for RGB payments when the node doesn't report one (rgb_htlc_min_msat). */
89
107
  export const RLN_HTLC_MIN_MSAT = 3_000_000;
90
108
 
@@ -151,18 +169,24 @@ export function swapLiquidityShortfall(
151
169
  if (!rows.length) return `this swap runs over Lightning and you have no channels. Buy a channel first.`;
152
170
  const usable = rows.filter((c) => c.is_usable !== false && c.ready !== false);
153
171
  const hasAssetData = rows.some((c) => 'asset_id' in c);
172
+ // Channels name assets by rgb: id; a ticker in the quote can't be matched.
173
+ const assetIdKnown = (leg?: Leg) => hasAssetData && String(leg?.asset_id ?? '').startsWith('rgb:');
154
174
 
155
175
  if (fromBtc) {
156
176
  const amount = num(from?.amount_raw);
157
177
  const maxOut = maxOver(rows, outbound);
158
178
  if (amount !== undefined && maxOut !== undefined && maxOut < amount + htlcMinMsat) {
159
179
  const need = amount + htlcMinMsat;
160
- return maxOut === 0
161
- ? `this swap needs a Lightning channel that can send ${fmtSats(need)} (the amount plus the ${min} HTLC minimum), and none can send right now. Buy a channel with at least that much outbound first.`
162
- : `your channels can send at most ${fmtSats(maxOut)}, and this swap needs ${fmtSats(need)} (the amount plus the ${min} HTLC minimum). Swap at most ${fmtSats(Math.max(0, maxOut - htlcMinMsat))}, or buy a bigger channel.`;
180
+ if (maxOut === 0) {
181
+ return `this swap needs a Lightning channel that can send ${fmtSats(need)} (the amount plus the ${min} HTLC minimum), and none can send right now. Buy a channel with at least that much outbound first.`;
182
+ }
183
+ if (maxOut <= htlcMinMsat) {
184
+ return `your channels can send at most ${fmtSats(maxOut)}, which only covers the ${min} HTLC minimum, so no BTC swap fits. This one needs ${fmtSats(need)}: buy a channel with more outbound.`;
185
+ }
186
+ return `your channels can send at most ${fmtSats(maxOut)}, and this swap needs ${fmtSats(need)} (the amount plus the ${min} HTLC minimum). Swap at most ${fmtSats(Math.max(0, maxOut - htlcMinMsat))}, or buy a bigger channel.`;
163
187
  }
164
188
  const want = num(to?.amount_raw);
165
- if (hasAssetData && want !== undefined) {
189
+ if (assetIdKnown(to) && want !== undefined) {
166
190
  const ok = usable.some(
167
191
  (c) => c.asset_id === to?.asset_id && (num(c.asset_remote_amount) ?? 0) >= want && (inbound(c) ?? Infinity) >= htlcMinMsat,
168
192
  );
@@ -175,7 +199,7 @@ export function swapLiquidityShortfall(
175
199
 
176
200
  // asset → BTC
177
201
  const have = num(from?.amount_raw);
178
- if (hasAssetData && have !== undefined) {
202
+ if (assetIdKnown(from) && have !== undefined) {
179
203
  const ok = usable.some(
180
204
  (c) => c.asset_id === from?.asset_id && (num(c.asset_local_amount) ?? 0) >= have && (outbound(c) ?? Infinity) >= htlcMinMsat,
181
205
  );
@@ -194,13 +218,32 @@ export function swapLiquidityShortfall(
194
218
  /** @deprecated Use `swapLiquidityShortfall`. */
195
219
  export const outboundShortfall = swapLiquidityShortfall;
196
220
 
197
- // Render a quote leg as "<amount> <TICKER>" from the MCP quote echo, or undefined
198
- // if the leg is missing (callers fall back to the user's slot values).
199
- const quoteLeg = (leg?: { ticker?: string; amount_display?: string }): string | undefined =>
200
- leg?.amount_display != null ? `${leg.amount_display}${leg.ticker ? ` ${leg.ticker}` : ''}` : undefined;
201
- interface InitResult { swapstring?: string; payment_hash?: string; atomic_id?: string }
221
+ // Render a quote leg as "<amount> <TICKER>". BTC reads in sats from the raw
222
+ // msat amount (the maker's display is in BTC, e.g. 0.000025).
223
+ const quoteLeg = (leg?: { ticker?: string; layer?: string; amount_raw?: number; amount_display?: string }): string | undefined => {
224
+ if (isBtc(leg) && Number.isFinite(Number(leg?.amount_raw))) return `${Math.floor(Number(leg!.amount_raw) / 1000).toLocaleString('en-US')} sats`;
225
+ return leg?.amount_display != null ? `${leg.amount_display}${leg.ticker ? ` ${leg.ticker}` : ''}` : undefined;
226
+ };
227
+ interface InitResult { swapstring?: string; payment_hash?: string; atomic_id?: string; access_token?: string }
202
228
  interface NodeInfo { pubkey?: string }
203
229
 
230
+ const FINAL_SWAP_STATUS = new Set(['Succeeded', 'Expired', 'Failed']);
231
+
232
+ /** The maker's swap status (`{ swap: { status } }`), or undefined. */
233
+ function swapStatus(result: unknown): string | undefined {
234
+ let r = result;
235
+ if (typeof r === 'string') {
236
+ try {
237
+ r = JSON.parse(r);
238
+ } catch {
239
+ return undefined;
240
+ }
241
+ }
242
+ const o = r as { swap?: { status?: unknown }; status?: unknown } | undefined;
243
+ const st = o?.swap?.status ?? o?.status;
244
+ return typeof st === 'string' ? st : undefined;
245
+ }
246
+
204
247
  export const kaleidoswapAtomicRecipe: Recipe = {
205
248
  name: 'kaleidoswap-atomic',
206
249
  description:
@@ -219,6 +262,9 @@ export const kaleidoswapAtomicRecipe: Recipe = {
219
262
  // always ask the model to produce the actual slots used for execution.
220
263
  extract: extractSwap,
221
264
  forceModelExtract: true,
265
+ // An explicit amount + both assets needs no model, which small models
266
+ // otherwise misread ("2500 sats into USDT" as 2,500 USDT).
267
+ trustExtract: (text) => EXPLICIT_SWAP.test(text),
222
268
  confident: (s) => !!s.from_asset && !!s.to_asset && !!s.amount,
223
269
  steps: [
224
270
  // 1. MAKER quotes the swap (read-only). Returns rfq_id + full asset specs
@@ -237,9 +283,9 @@ export const kaleidoswapAtomicRecipe: Recipe = {
237
283
  from_layer: layerFor(ctx.slots.from_asset),
238
284
  to_layer: layerFor(ctx.slots.to_asset),
239
285
  };
240
- return side === 'to'
241
- ? { ...base, to_amount: ctx.slots.amount }
242
- : { ...base, from_amount: ctx.slots.amount };
286
+ const asset = side === 'to' ? ctx.slots.to_asset : ctx.slots.from_asset;
287
+ const amount = quoteAmount(asset, ctx.slots.amount, ctx.text);
288
+ return side === 'to' ? { ...base, to_amount: amount } : { ...base, from_amount: amount };
243
289
  },
244
290
  },
245
291
  // 1b. NODE: pubkey for execute, and the node's RGB HTLC minimum.
@@ -305,6 +351,19 @@ export const kaleidoswapAtomicRecipe: Recipe = {
305
351
  };
306
352
  },
307
353
  },
354
+ // 6. Follow the swap until the maker reports a final status. The status
355
+ // needs the per-swap access_token that only init returns.
356
+ poll: {
357
+ tool: 'kaleidoswap_atomic_status',
358
+ as: 'status',
359
+ args: (ctx) => {
360
+ const init = ctx.results.init as InitResult | undefined;
361
+ return { payment_hash: init?.payment_hash, ...(init?.access_token ? { access_token: init.access_token } : {}) };
362
+ },
363
+ done: (result) => FINAL_SWAP_STATUS.has(swapStatus(result) ?? ''),
364
+ intervalMs: 3000,
365
+ timeoutMs: 90_000,
366
+ },
308
367
  // ONE confirmation, fired after the quote / before init, with the real numbers.
309
368
  confirm: (ctx: RecipeContext) => {
310
369
  const q = ctx.results.quote as QuoteResult | undefined;
@@ -318,8 +377,12 @@ export const kaleidoswapAtomicRecipe: Recipe = {
318
377
  const from = quoteLeg(q?.from_asset) ?? `${ctx.slots.amount} ${ctx.slots.from_asset}`;
319
378
  const to = quoteLeg(q?.to_asset) ?? String(ctx.slots.to_asset);
320
379
  const init = ctx.results.init as InitResult | undefined;
321
- const id = init?.atomic_id || init?.payment_hash || '?';
322
- return `remember: atomic swap atomic_id=${id} (for later kaleidoswap_atomic_status checks).
323
- Swap submitted: ${from} → ${to}. To check status later, call: kaleidoswap_atomic_status(atomic_id=${id}). Say "check my swap status" and I will recall + poll automatically.`;
380
+ const hash = init?.payment_hash || init?.atomic_id || '?';
381
+ const token = init?.access_token ? `, access_token=${init.access_token}` : '';
382
+ const status = swapStatus(ctx.results.status);
383
+ if (status === 'Succeeded') return `Swap completed: you sent ${from} and received ${to}.`;
384
+ if (status === 'Expired' || status === 'Failed') return `The swap ${status.toLowerCase()}: ${from} → ${to} did not complete, and nothing was exchanged.`;
385
+ return `remember: atomic swap payment_hash=${hash}${token} (for kaleidoswap_atomic_status checks).
386
+ Swap submitted: ${from} → ${to}, status ${status ?? 'unknown'}. Check it with kaleidoswap_atomic_status(payment_hash=${hash}${token}), or say "check my swap status".`;
324
387
  },
325
388
  };
@@ -26,6 +26,10 @@ export interface RunRecipeOptions {
26
26
  onStep?: (name: string, args: Record<string, unknown>, result: unknown) => void;
27
27
  /** Skip extraction and use these slots (deterministic Tier-0 / tests). */
28
28
  slots?: Record<string, unknown>;
29
+ /** Override the recipe's poll interval (tests). */
30
+ pollIntervalMs?: number;
31
+ /** Override the recipe's poll timeout (tests). */
32
+ pollTimeoutMs?: number;
29
33
  signal?: AbortSignal;
30
34
  }
31
35
 
@@ -76,7 +80,7 @@ export async function extractSlots(
76
80
  const det = recipe.extract?.(text);
77
81
  const detValid = det && Object.values(det).some((v) => v !== undefined && v !== null && v !== '');
78
82
 
79
- if (detValid && !recipe.forceModelExtract) {
83
+ if (detValid && (!recipe.forceModelExtract || recipe.trustExtract?.(text))) {
80
84
  return { slots: det, inferences: 0 };
81
85
  }
82
86
 
@@ -278,6 +282,27 @@ export async function runRecipe(recipe: Recipe, text: string, opts: RunRecipeOpt
278
282
  const failure = toolFailure(finalResult);
279
283
  if (failure) return failedResult(recipe, ctx, inferences, failure);
280
284
 
285
+ // Nothing to follow on a host without the status tool.
286
+ if (recipe.poll && (await opts.tools.getDef(recipe.poll.tool))) {
287
+ const poll = recipe.poll;
288
+ const interval = opts.pollIntervalMs ?? poll.intervalMs ?? 3000;
289
+ const deadline = Date.now() + (opts.pollTimeoutMs ?? poll.timeoutMs ?? 120_000);
290
+ for (;;) {
291
+ if (opts.signal?.aborted) break;
292
+ const args = poll.args(ctx);
293
+ let result: unknown;
294
+ try {
295
+ result = await opts.tools.execute(poll.tool, args);
296
+ } catch (e) {
297
+ result = { error: e instanceof Error ? e.message : String(e) };
298
+ }
299
+ ctx.results[poll.as ?? poll.tool] = result;
300
+ opts.onStep?.(poll.tool, args, result);
301
+ if (poll.done(result) || Date.now() + interval > deadline) break;
302
+ await new Promise((r) => setTimeout(r, interval));
303
+ }
304
+ }
305
+
281
306
  const out = recipe.summary?.(ctx, finalResult) ?? 'Done.';
282
307
  return { recipe: recipe.name, slots: ctx.slots, results: ctx.results, final: finalResult, text: out, status: 'done', inferences };
283
308
  } catch (e) {
@@ -62,6 +62,11 @@ export interface Recipe {
62
62
  * reliable multi-step execution plan and single-confirmation safety.
63
63
  */
64
64
  forceModelExtract?: boolean;
65
+ /**
66
+ * With `forceModelExtract`, use the deterministic extraction anyway when this
67
+ * returns true for the request (an unambiguous phrasing).
68
+ */
69
+ trustExtract?: (text: string) => boolean;
65
70
  /**
66
71
  * Whether the recipe is confident enough to RUN deterministically given the
67
72
  * extracted slots (vs falling back to the agentic loop). e.g. payments needs a
@@ -72,6 +77,19 @@ export interface Recipe {
72
77
  steps: RecipeStep[];
73
78
  /** The terminal action (usually a spend → confirmation-gated by its tool). */
74
79
  final: RecipeStep;
80
+ /**
81
+ * After the final action, call `tool` until `done(result)` (or the timeout),
82
+ * e.g. a swap's status until it settles. The last result is stored under
83
+ * `as` for `summary`.
84
+ */
85
+ poll?: {
86
+ tool: string;
87
+ args: (ctx: RecipeContext) => Record<string, unknown>;
88
+ as?: string;
89
+ done: (result: unknown) => boolean;
90
+ intervalMs?: number;
91
+ timeoutMs?: number;
92
+ };
75
93
  /** Render the outcome for the user. */
76
94
  summary?: (ctx: RecipeContext, finalResult: unknown) => string;
77
95
  /**
@@ -60,8 +60,8 @@ describe('confirmReadback', () => {
60
60
  .toBe('Open a 100,000 sats channel to 03abcd…6789. Confirm?');
61
61
  expect(confirmReadback({ name: 'rln_close_channel', arguments: { channel_id: 'chan0123456789abcdef0123', peer_pubkey: 'x', force: true } }))
62
62
  .toBe('Force-close channel chan01…0123. Confirm?');
63
- expect(confirmReadback({ name: 'rln_atomic_taker', arguments: { swapstring: '30/rgb:asset/10/btc/3600/abcdef0123456789' } }))
64
- .toBe('Accept atomic swap 30/rgb…6789 on your node. Confirm?');
63
+ expect(confirmReadback({ name: 'rln_atomic_taker', arguments: { swapstring: '30/rgb:asset/10000/btc/3600/abcdef0123456789' } }))
64
+ .toBe('Accept atomic swap 30 units of rgb:asset ⇄ 10 sats (30/rgb…6789). Confirm?');
65
65
  });
66
66
 
67
67
  it('execute_swap: from → to with amount', () => {
@@ -90,3 +90,62 @@ describe('confirmReadback: LSP orders', () => {
90
90
  ).toBe('Order a channel from the LSP with 10 USDT inbound. The order total is paid in a separate step. Confirm?');
91
91
  });
92
92
  });
93
+
94
+ describe('confirmReadback: accepting an atomic swap', () => {
95
+ const swapstring = '2500000/btc/1500000/rgb:usdt-abcdefgh/1791400000/ph1';
96
+ const quote = {
97
+ name: 'kaleidoswap_get_quote',
98
+ result: { from_asset: { ticker: 'BTC', amount_display: '2,500 sats' }, to_asset: { ticker: 'USDT', amount_display: '1.5' } },
99
+ };
100
+
101
+ it("shows the run's quote amounts", () => {
102
+ const init = { name: 'kaleidoswap_atomic_init', result: { swapstring, payment_hash: 'ph1' } };
103
+ expect(confirmReadback({ name: 'rln_atomic_taker', arguments: { swapstring } }, { results: [quote, init] })).toBe(
104
+ 'Accept the atomic swap: you send 2,500 sats, you receive 1.5 USDT. Confirm?',
105
+ );
106
+ });
107
+
108
+ it('flags a swapstring that is not the one just created', () => {
109
+ const init = { name: 'kaleidoswap_atomic_init', result: { swapstring: 'other/btc/1/btc/1/x' } };
110
+ expect(confirmReadback({ name: 'rln_atomic_taker', arguments: { swapstring } }, { results: [quote, init] })).toMatch(
111
+ /\(this is not the swap just created\)\. Confirm\?$/,
112
+ );
113
+ });
114
+
115
+ it('decodes the swapstring when there is no quote', () => {
116
+ expect(confirmReadback({ name: 'wdk_atomic_taker', arguments: { swapstring } })).toMatch(
117
+ /^Accept atomic swap 2,500 sats ⇄ 1,500,000 units of rgb:/,
118
+ );
119
+ });
120
+ });
121
+
122
+ describe('confirmReadback: starting a KaleidoSwap swap', () => {
123
+ const quote = {
124
+ name: 'kaleidoswap_get_quote',
125
+ result: {
126
+ rfq_id: 'rfq-9',
127
+ from_asset: { ticker: 'BTC', amount_display: '2,500 sats', amount_raw: 2_500_000 },
128
+ to_asset: { ticker: 'USDT', amount_display: '2.020975', amount_raw: 2_020_975 },
129
+ expires_at: Math.floor(Date.now() / 1000) + 45,
130
+ },
131
+ };
132
+ const args = { rfq_id: 'rfq-9', from_asset_id: 'BTC', from_amount_raw: 2_500_000, to_asset_id: 'rgb:usdt', to_amount_raw: 2_020_975 };
133
+
134
+ it('reads the quote amounts and expiry', () => {
135
+ expect(confirmReadback({ name: 'kaleidoswap_atomic_init', arguments: args }, { results: [quote] })).toMatch(
136
+ /^Swap 2,500 sats for 2\.020975 USDT on KaleidoSwap \(quote expires in 4[0-9]s\)\. Confirm\?$/,
137
+ );
138
+ expect(confirmReadback({ name: 'kaleidoswap_atomic_execute', arguments: {} }, { results: [quote] })).toBe(
139
+ 'Settle the KaleidoSwap swap: you send 2,500 sats, you receive 2.020975 USDT. Confirm?',
140
+ );
141
+ });
142
+
143
+ it('flags amounts that differ from the quote, and reads raw amounts without one', () => {
144
+ expect(confirmReadback({ name: 'kaleidoswap_atomic_init', arguments: { ...args, to_amount_raw: 1 } }, { results: [quote] })).toMatch(
145
+ /\(the amounts sent differ from the quote\)\. Confirm\?$/,
146
+ );
147
+ expect(confirmReadback({ name: 'kaleidoswap_atomic_init', arguments: args })).toBe(
148
+ 'Swap 2,500 sats for 2,020,975 raw units of rgb:usdt on KaleidoSwap (no quote in this conversation). Confirm?',
149
+ );
150
+ });
151
+ });
@@ -63,7 +63,93 @@ const asset = (amount: unknown, ticker: unknown) => {
63
63
  };
64
64
 
65
65
  /** A spoken confirmation ending in "Confirm?", or null for non-spend tools. */
66
- export function confirmReadback(call: { name: string; arguments: Record<string, unknown> }): string | null {
66
+ /** What earlier calls in the same run returned, for readbacks that depend on them. */
67
+ export interface ReadbackContext {
68
+ results?: Array<{ name: string; result: unknown }>;
69
+ }
70
+
71
+ type QuoteLeg = { ticker?: string; layer?: string; amount_raw?: number; amount_display?: string };
72
+
73
+ const isBtcLeg = (leg?: QuoteLeg) => leg?.layer === 'BTC_LN' || (!leg?.layer && String(leg?.ticker ?? '').toUpperCase() === 'BTC');
74
+
75
+ // BTC reads in sats from the raw msat amount (the maker's display is in BTC).
76
+ const legText = (leg?: QuoteLeg) =>
77
+ isBtcLeg(leg) && Number.isFinite(Number(leg?.amount_raw))
78
+ ? sats(Math.floor(Number(leg!.amount_raw) / 1000))
79
+ : leg?.amount_display
80
+ ? `${leg.amount_display}${leg.ticker && !/sats?$/i.test(leg.amount_display) ? ` ${leg.ticker}` : ''}`
81
+ : undefined;
82
+
83
+ const lastResult = (ctx: ReadbackContext | undefined, re: RegExp): Record<string, any> | undefined => {
84
+ const hit = [...(ctx?.results ?? [])].reverse().find((r) => re.test(r.name));
85
+ let r = hit?.result;
86
+ if (typeof r === 'string') {
87
+ try {
88
+ r = JSON.parse(r);
89
+ } catch {
90
+ return undefined;
91
+ }
92
+ }
93
+ return r && typeof r === 'object' ? (r as Record<string, any>) : undefined;
94
+ };
95
+
96
+ /** RLN swapstring: qty_from/from_asset/qty_to/to_asset/expiry/payment_hash (BTC in msat). */
97
+ function swapstringLegs(swapstring: string): string | undefined {
98
+ const [qtyFrom, from, qtyTo, to] = swapstring.split('/');
99
+ if (!qtyFrom || !from || !qtyTo || !to || !/^\d+$/.test(qtyFrom) || !/^\d+$/.test(qtyTo)) return undefined;
100
+ const leg = (qty: string, asset: string) =>
101
+ asset === 'btc' ? sats(Math.floor(Number(qty) / 1000)) : `${Number(qty).toLocaleString('en-US')} units of ${shortRef(asset)}`;
102
+ return `${leg(qtyFrom, from)} ⇄ ${leg(qtyTo, to)}`;
103
+ }
104
+
105
+ function expiresIn(expiresAt: unknown): string {
106
+ const t = Number(expiresAt);
107
+ if (!Number.isFinite(t) || t <= 0) return '';
108
+ const secs = Math.round((t > 1e12 ? t : t * 1000) / 1000 - Date.now() / 1000);
109
+ return secs > 0 ? ` (quote expires in ${secs}s)` : ' (the quote has expired)';
110
+ }
111
+
112
+ /** One leg from init args alone: BTC raw is msat; an asset's raw units without its precision. */
113
+ function rawLeg(assetId: unknown, raw: unknown): string {
114
+ const n = Number(raw);
115
+ if (!Number.isFinite(n)) return String(assetId ?? '?');
116
+ return /^(btc|sats?)$/i.test(String(assetId ?? '')) ? sats(Math.floor(n / 1000)) : `${n.toLocaleString('en-US')} raw units of ${shortRef(String(assetId ?? '?'))}`;
117
+ }
118
+
119
+ function atomicInitReadback(a: Record<string, unknown>, ctx?: ReadbackContext): string {
120
+ const quote = lastResult(ctx, /(^|_)get_quote$/);
121
+ const from = legText(quote?.from_asset);
122
+ const to = legText(quote?.to_asset);
123
+ if (quote && from && to && (!a.rfq_id || !quote.rfq_id || a.rfq_id === quote.rfq_id)) {
124
+ const differs =
125
+ (a.from_amount_raw != null && quote.from_asset?.amount_raw != null && Number(a.from_amount_raw) !== Number(quote.from_asset.amount_raw)) ||
126
+ (a.to_amount_raw != null && quote.to_asset?.amount_raw != null && Number(a.to_amount_raw) !== Number(quote.to_asset.amount_raw));
127
+ return `Swap ${from} for ${to} on KaleidoSwap${expiresIn(quote.expires_at)}${differs ? ' (the amounts sent differ from the quote)' : ''}`;
128
+ }
129
+ return `Swap ${rawLeg(a.from_asset_id, a.from_amount_raw)} for ${rawLeg(a.to_asset_id, a.to_amount_raw)} on KaleidoSwap (no quote in this conversation)`;
130
+ }
131
+
132
+ function atomicExecuteReadback(ctx?: ReadbackContext): string {
133
+ const quote = lastResult(ctx, /(^|_)get_quote$/);
134
+ const from = legText(quote?.from_asset);
135
+ const to = legText(quote?.to_asset);
136
+ return from && to ? `Settle the KaleidoSwap swap: you send ${from}, you receive ${to}` : 'Settle the KaleidoSwap atomic swap';
137
+ }
138
+
139
+ function atomicTakerReadback(swapstring: string, ctx?: ReadbackContext): string {
140
+ const quote = lastResult(ctx, /(^|_)get_quote$/);
141
+ const init = lastResult(ctx, /(^|_)atomic_init$/);
142
+ const from = legText(quote?.from_asset);
143
+ const to = legText(quote?.to_asset);
144
+ if (from && to) {
145
+ const other = init?.swapstring && init.swapstring !== swapstring ? ' (this is not the swap just created)' : '';
146
+ return `Accept the atomic swap: you send ${from}, you receive ${to}${other}`;
147
+ }
148
+ const legs = swapstringLegs(swapstring);
149
+ return legs ? `Accept atomic swap ${legs} (${shortRef(swapstring)})` : `Accept atomic swap ${shortRef(swapstring)}`;
150
+ }
151
+
152
+ export function confirmReadback(call: { name: string; arguments: Record<string, unknown> }, context?: ReadbackContext): string | null {
67
153
  const { name, arguments: a } = call;
68
154
  const to = (k = 'to') => shortRef(String(a[k] ?? ''));
69
155
  const ask = (s: string) => `${s}. Confirm?`;
@@ -102,8 +188,13 @@ export function confirmReadback(call: { name: string; arguments: Record<string,
102
188
  }
103
189
  case 'rln_close_channel':
104
190
  return ask(`${a.force ? 'Force-close' : 'Close'} channel ${shortRef(String(a.channel_id ?? ''))}`);
191
+ case 'kaleidoswap_atomic_init':
192
+ return ask(atomicInitReadback(a, context));
193
+ case 'kaleidoswap_atomic_execute':
194
+ return ask(atomicExecuteReadback(context));
105
195
  case 'rln_atomic_taker':
106
- return ask(`Accept atomic swap ${shortRef(String(a.swapstring ?? ''))} on your node`);
196
+ case 'wdk_atomic_taker':
197
+ return ask(atomicTakerReadback(String(a.swapstring ?? ''), context));
107
198
  case 'execute_swap':
108
199
  return ask(`Swap ${asset(a.amount, a.from_asset)} for ${label(a.to_asset)}`);
109
200
  // The order total is only known once the LSP creates the order; the