@kaleidorg/mind 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +96 -8
  2. package/dist/context/compress.d.ts.map +1 -1
  3. package/dist/context/compress.js +1 -0
  4. package/dist/context/compress.js.map +1 -1
  5. package/dist/context/rgb-units.d.ts +18 -0
  6. package/dist/context/rgb-units.d.ts.map +1 -0
  7. package/dist/context/rgb-units.js +86 -0
  8. package/dist/context/rgb-units.js.map +1 -0
  9. package/dist/engine.d.ts +53 -1
  10. package/dist/engine.d.ts.map +1 -1
  11. package/dist/engine.js +179 -17
  12. package/dist/engine.js.map +1 -1
  13. package/dist/funnel.d.ts.map +1 -1
  14. package/dist/funnel.js +23 -4
  15. package/dist/funnel.js.map +1 -1
  16. package/dist/guards.d.ts +63 -0
  17. package/dist/guards.d.ts.map +1 -0
  18. package/dist/guards.js +284 -0
  19. package/dist/guards.js.map +1 -0
  20. package/dist/index.d.ts +9 -2
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +7 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/kaleidoswap/contract.d.ts +3 -4
  25. package/dist/kaleidoswap/contract.d.ts.map +1 -1
  26. package/dist/kaleidoswap/contract.js +3 -17
  27. package/dist/kaleidoswap/contract.js.map +1 -1
  28. package/dist/providers/openai.d.ts +64 -0
  29. package/dist/providers/openai.d.ts.map +1 -0
  30. package/dist/providers/openai.js +233 -0
  31. package/dist/providers/openai.js.map +1 -0
  32. package/dist/providers/types.d.ts +20 -0
  33. package/dist/providers/types.d.ts.map +1 -1
  34. package/dist/qvac/config.d.ts +1 -1
  35. package/dist/qvac/config.js +1 -1
  36. package/dist/qvac/index.d.ts +1 -0
  37. package/dist/qvac/index.d.ts.map +1 -1
  38. package/dist/qvac/index.js +1 -0
  39. package/dist/qvac/index.js.map +1 -1
  40. package/dist/qvac/models.d.ts +31 -0
  41. package/dist/qvac/models.d.ts.map +1 -0
  42. package/dist/qvac/models.js +80 -0
  43. package/dist/qvac/models.js.map +1 -0
  44. package/dist/qvac/parse.d.ts +11 -0
  45. package/dist/qvac/parse.d.ts.map +1 -1
  46. package/dist/qvac/parse.js +29 -7
  47. package/dist/qvac/parse.js.map +1 -1
  48. package/dist/qvac/provider.d.ts +5 -4
  49. package/dist/qvac/provider.d.ts.map +1 -1
  50. package/dist/qvac/provider.js +22 -8
  51. package/dist/qvac/provider.js.map +1 -1
  52. package/dist/qvac/stream.d.ts +3 -5
  53. package/dist/qvac/stream.d.ts.map +1 -1
  54. package/dist/qvac/stream.js.map +1 -1
  55. package/dist/qvac/tools.d.ts +5 -0
  56. package/dist/qvac/tools.d.ts.map +1 -1
  57. package/dist/qvac/tools.js +10 -0
  58. package/dist/qvac/tools.js.map +1 -1
  59. package/dist/recipe/issue-asset.d.ts.map +1 -1
  60. package/dist/recipe/issue-asset.js +42 -16
  61. package/dist/recipe/issue-asset.js.map +1 -1
  62. package/dist/recipe/runner.d.ts.map +1 -1
  63. package/dist/recipe/runner.js +1 -0
  64. package/dist/recipe/runner.js.map +1 -1
  65. package/dist/recipe/submarine-pay.d.ts +17 -0
  66. package/dist/recipe/submarine-pay.d.ts.map +1 -0
  67. package/dist/recipe/submarine-pay.js +79 -0
  68. package/dist/recipe/submarine-pay.js.map +1 -0
  69. package/dist/skills/registry.js +1 -1
  70. package/dist/skills/select.d.ts +20 -0
  71. package/dist/skills/select.d.ts.map +1 -0
  72. package/dist/skills/select.js +32 -0
  73. package/dist/skills/select.js.map +1 -0
  74. package/dist/submarine/contract.d.ts +42 -0
  75. package/dist/submarine/contract.d.ts.map +1 -0
  76. package/dist/submarine/contract.js +73 -0
  77. package/dist/submarine/contract.js.map +1 -0
  78. package/dist/testing/mock-wallet.d.ts +24 -0
  79. package/dist/testing/mock-wallet.d.ts.map +1 -1
  80. package/dist/testing/mock-wallet.js +75 -6
  81. package/dist/testing/mock-wallet.js.map +1 -1
  82. package/dist/wallet/confirm.d.ts.map +1 -1
  83. package/dist/wallet/confirm.js +27 -9
  84. package/dist/wallet/confirm.js.map +1 -1
  85. package/package.json +6 -1
  86. package/skills/README.md +1 -0
  87. package/skills/kaleido-trading/SKILL.md +22 -28
  88. package/skills/kaleido-trading/references/api.md +3 -3
  89. package/skills/rgb-lightning-node/SKILL.md +32 -12
  90. package/skills/spark-wallet/SKILL.md +1 -0
  91. package/skills/submarine-swaps/SKILL.md +48 -0
  92. package/src/context/compress.ts +1 -0
  93. package/src/context/rgb-units.test.ts +42 -0
  94. package/src/context/rgb-units.ts +89 -0
  95. package/src/engine.test.ts +94 -3
  96. package/src/engine.ts +234 -19
  97. package/src/funnel.mind.test.ts +4 -2
  98. package/src/funnel.ts +23 -4
  99. package/src/guards.test.ts +399 -0
  100. package/src/guards.ts +299 -0
  101. package/src/index.ts +37 -1
  102. package/src/kaleidoswap/contract.test.ts +8 -16
  103. package/src/kaleidoswap/contract.ts +4 -32
  104. package/src/providers/openai.test.ts +127 -0
  105. package/src/providers/openai.ts +282 -0
  106. package/src/providers/types.ts +22 -0
  107. package/src/qvac/config.ts +1 -1
  108. package/src/qvac/index.ts +10 -0
  109. package/src/qvac/models.ts +98 -0
  110. package/src/qvac/parse.test.ts +7 -0
  111. package/src/qvac/parse.ts +33 -1
  112. package/src/qvac/provider.test.ts +34 -1
  113. package/src/qvac/provider.ts +30 -13
  114. package/src/qvac/stream.ts +3 -5
  115. package/src/qvac/tools.ts +10 -0
  116. package/src/recipe/issue-asset.test.ts +39 -0
  117. package/src/recipe/issue-asset.ts +41 -13
  118. package/src/recipe/runner.ts +1 -0
  119. package/src/recipe/submarine-pay.test.ts +87 -0
  120. package/src/recipe/submarine-pay.ts +78 -0
  121. package/src/skills/registry.ts +1 -1
  122. package/src/skills/select.ts +41 -0
  123. package/src/submarine/contract.ts +112 -0
  124. package/src/testing/mock-wallet.ts +73 -6
  125. package/src/wallet/confirm.ts +27 -9
package/dist/guards.js ADDED
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Agent guards — deterministic checks around the model's tool use, so a small
3
+ * local model can't turn a bad tool call into a bad user experience:
4
+ *
5
+ * - validateToolArgs: check a call against the tool's JSON Schema (or Zod
6
+ * schema) before it reaches the confirmation gate.
7
+ * - findUngroundedPaymentData: payment requests/addresses in a reply that no
8
+ * tool returned and the user never typed — i.e. made up by the model.
9
+ * - detectWalletAction / hasCapableTool: refuse a wallet action up front when
10
+ * no tool in scope can perform it.
11
+ */
12
+ function isZodLike(p) {
13
+ return !!p && typeof p === 'object' && typeof p.safeParse === 'function';
14
+ }
15
+ function schemaType(s) {
16
+ if (Array.isArray(s.type))
17
+ return s.type.find((t) => t !== 'null');
18
+ if (typeof s.type === 'string')
19
+ return s.type;
20
+ for (const alt of [...(s.anyOf ?? []), ...(s.oneOf ?? [])]) {
21
+ if (alt && typeof alt === 'object' && alt.type !== 'null')
22
+ return schemaType(alt);
23
+ }
24
+ return undefined;
25
+ }
26
+ function checkValue(key, value, s) {
27
+ const type = schemaType(s);
28
+ let v = value;
29
+ if (type === 'number' || type === 'integer') {
30
+ if (typeof v === 'string' && v.trim() !== '' && Number.isFinite(Number(v)))
31
+ v = Number(v);
32
+ if (typeof v !== 'number' || !Number.isFinite(v))
33
+ return { value, error: `"${key}" must be a finite number` };
34
+ if (type === 'integer' && !Number.isInteger(v))
35
+ return { value, error: `"${key}" must be an integer` };
36
+ if (typeof s.minimum === 'number' && v < s.minimum)
37
+ return { value, error: `"${key}" must be ≥ ${s.minimum}` };
38
+ if (typeof s.maximum === 'number' && v > s.maximum)
39
+ return { value, error: `"${key}" must be ≤ ${s.maximum}` };
40
+ }
41
+ else if (type === 'boolean') {
42
+ if (typeof v === 'string' && /^(true|false)$/i.test(v.trim()))
43
+ v = v.trim().toLowerCase() === 'true';
44
+ if (typeof v !== 'boolean')
45
+ return { value, error: `"${key}" must be true or false` };
46
+ }
47
+ else if (type === 'string') {
48
+ if (typeof v !== 'string')
49
+ return { value, error: `"${key}" must be a string` };
50
+ if (typeof s.pattern === 'string' && !new RegExp(s.pattern).test(v)) {
51
+ return { value, error: `"${key}" does not match the expected format` };
52
+ }
53
+ }
54
+ else if (type === 'array') {
55
+ if (!Array.isArray(v))
56
+ return { value, error: `"${key}" must be an array` };
57
+ }
58
+ else if (type === 'object') {
59
+ if (!v || typeof v !== 'object' || Array.isArray(v))
60
+ return { value, error: `"${key}" must be an object` };
61
+ }
62
+ if (Array.isArray(s.enum) && !s.enum.includes(v)) {
63
+ return { value, error: `"${key}" must be one of ${s.enum.map((e) => JSON.stringify(e)).join(', ')}` };
64
+ }
65
+ return { value: v };
66
+ }
67
+ /** Tool-specific rules the published schemas can't express (conditional requirements). */
68
+ const SEMANTIC_RULES = {
69
+ rln_issue_asset: (a) => {
70
+ const errors = [];
71
+ const schema = String(a.schema ?? 'NIA').toUpperCase();
72
+ if (schema !== 'UDA' && a.amount == null)
73
+ errors.push('"amount" (total supply) is required for NIA and CFA assets');
74
+ if (schema !== 'CFA') {
75
+ if (a.ticker == null)
76
+ errors.push('"ticker" is required for NIA and UDA assets');
77
+ else if (!/^[A-Z0-9]{1,8}$/.test(String(a.ticker)))
78
+ errors.push('"ticker" must be 1–8 uppercase letters or digits');
79
+ }
80
+ if (typeof a.amount === 'number' && a.amount <= 0)
81
+ errors.push('"amount" must be greater than 0');
82
+ return errors;
83
+ },
84
+ };
85
+ SEMANTIC_RULES.wdk_issue_asset = SEMANTIC_RULES.rln_issue_asset;
86
+ /**
87
+ * Validate (and lightly coerce) a tool call's arguments against its schema.
88
+ * Unknown schema shapes pass through unchanged.
89
+ */
90
+ export function validateToolArgs(def, rawArgs) {
91
+ const args = rawArgs && typeof rawArgs === 'object' && !Array.isArray(rawArgs) ? { ...rawArgs } : {};
92
+ if (rawArgs != null && (typeof rawArgs !== 'object' || Array.isArray(rawArgs))) {
93
+ return { ok: false, args, errors: ['arguments must be a JSON object'] };
94
+ }
95
+ const p = def.parameters;
96
+ const errors = [];
97
+ if (isZodLike(p)) {
98
+ const r = p.safeParse(args);
99
+ if (!r.success) {
100
+ const issues = r.error?.issues ?? [];
101
+ errors.push(...(issues.length
102
+ ? issues.map((i) => `${(i.path ?? []).join('.') || 'arguments'}: ${i.message}`)
103
+ : ['arguments do not match the tool schema']));
104
+ }
105
+ }
106
+ else if (p && typeof p === 'object' && (p.properties || p.required)) {
107
+ const props = p.properties ?? {};
108
+ for (const key of Array.isArray(p.required) ? p.required : []) {
109
+ if (args[key] == null || args[key] === '')
110
+ errors.push(`"${key}" is required`);
111
+ }
112
+ for (const [key, value] of Object.entries(args)) {
113
+ const s = props[key];
114
+ if (value == null)
115
+ continue;
116
+ if (!s) {
117
+ if (p.additionalProperties === false)
118
+ errors.push(`unknown argument "${key}"`);
119
+ continue;
120
+ }
121
+ const r = checkValue(key, value, s);
122
+ if (r.error)
123
+ errors.push(r.error);
124
+ else
125
+ args[key] = r.value;
126
+ }
127
+ }
128
+ for (const [key, value] of Object.entries(args)) {
129
+ if (typeof value === 'number' && !Number.isFinite(value))
130
+ errors.push(`"${key}" must be a finite number`);
131
+ }
132
+ const rule = SEMANTIC_RULES[def.name];
133
+ if (rule && errors.length === 0)
134
+ errors.push(...rule(args));
135
+ return { ok: errors.length === 0, args, errors: [...new Set(errors)] };
136
+ }
137
+ /** Payment requests and addresses a model must never make up. */
138
+ const PAYMENT_DATA = [
139
+ { kind: 'Lightning invoice', re: /\bln(?:bc|tb|bcrt|tbs|sb)[0-9a-z]{20,}\b/gi },
140
+ { kind: 'Lightning offer', re: /\blno1[0-9a-z]{20,}\b/gi },
141
+ { kind: 'LNURL', re: /\blnurl1[0-9a-z]{20,}\b/gi },
142
+ // An RGB invoice carries a "/" path or a utxob:/wvout: beneficiary; plain
143
+ // `rgb:` asset ids (contract ids) are not payment data.
144
+ { kind: 'RGB invoice', re: /\brgb:[^\s`'"<>)|]*(?:\/|utxob:|wvout:)[^\s`'"<>)|]*/gi },
145
+ { kind: 'blinded UTXO', re: /\butxob:[^\s`'"<>)|]{10,}/gi },
146
+ { kind: 'Spark address', re: /\bspark(?:rt|t|s)?1[0-9a-z]{20,}\b/gi },
147
+ { kind: 'Ark address', re: /\b(?:t?ark)1[0-9a-z]{20,}\b/gi },
148
+ { kind: 'Liquid address', re: /\b(?:lq1|ex1|tlq1|tex1|el1|ert1)[0-9a-z]{20,}\b/gi },
149
+ { kind: 'Bitcoin address', re: /\b(?:bc1|tb1|bcrt1)[0-9a-z]{20,}\b/gi },
150
+ ];
151
+ /**
152
+ * Payment strings in `text` that do not occur in any of the `sources` (tool
153
+ * results, user and history messages). Comparison is case-insensitive.
154
+ */
155
+ export function findUngroundedPaymentData(text, sources) {
156
+ if (!text)
157
+ return [];
158
+ const haystack = sources
159
+ .map((s) => (typeof s === 'string' ? s : (() => { try {
160
+ return JSON.stringify(s);
161
+ }
162
+ catch {
163
+ return '';
164
+ } })()))
165
+ .join('\n')
166
+ .toLowerCase();
167
+ const out = [];
168
+ const seen = new Set();
169
+ for (const { kind, re } of PAYMENT_DATA) {
170
+ for (const m of text.matchAll(re)) {
171
+ const value = m[0].replace(/[.,;:!?*]+$/, '');
172
+ const key = value.toLowerCase();
173
+ if (seen.has(key))
174
+ continue;
175
+ seen.add(key);
176
+ if (!haystack.includes(key))
177
+ out.push({ kind, value });
178
+ }
179
+ }
180
+ return out;
181
+ }
182
+ export function ungroundedReply(items) {
183
+ const kinds = [...new Set(items.map((i) => i.kind))].join(' / ');
184
+ return `I can't give you that ${kinds}: no tool produced it in this conversation, and I won't make one up. ` +
185
+ 'Make sure the wallet that should create it is connected, then ask again.';
186
+ }
187
+ const NUM = String.raw `(\d[\d,]*(?:\.\d+)?)`;
188
+ const SATS = String.raw `(?:sats?|satoshis)`;
189
+ // `[*_]*` lets markdown emphasis sit between the parts: **300,000 sats** (3 BTC).
190
+ const SATS_THEN_BTC = new RegExp(String.raw `${NUM}\s*${SATS}([*_]*\s*\(\s*~?\s*)${NUM}(\s*BTC\b)`, 'gi');
191
+ const BTC_THEN_SATS = new RegExp(String.raw `${NUM}(\s*BTC[*_]*\s*\(\s*~?\s*)${NUM}(\s*${SATS}\b)`, 'gi');
192
+ const toNumber = (s) => Number(s.replace(/,/g, ''));
193
+ /** Sats as a BTC decimal string, without trailing zeros. */
194
+ export function formatSatsAsBtc(sats) {
195
+ return (sats / 1e8).toFixed(8).replace(/\.?0+$/, '');
196
+ }
197
+ const sameBtc = (btc, sats) => Math.abs(btc * 1e8 - sats) < 0.5;
198
+ /**
199
+ * Small models get sats↔BTC conversions wrong ("4,277 sats (42.77 BTC)").
200
+ * Where the answer pairs a sats amount with a BTC amount, recompute the BTC
201
+ * figure from the sats figure, which is the one copied from the tool result.
202
+ */
203
+ export function fixSatsBtcConversions(text) {
204
+ return text
205
+ .replace(SATS_THEN_BTC, (m, sats, mid, btc, unit) => sameBtc(toNumber(btc), toNumber(sats)) ? m : m.replace(`${mid}${btc}${unit}`, `${mid}${formatSatsAsBtc(toNumber(sats))}${unit}`))
206
+ .replace(BTC_THEN_SATS, (m, btc, _mid, sats) => sameBtc(toNumber(btc), toNumber(sats)) ? m : `${formatSatsAsBtc(toNumber(sats))}${m.slice(btc.length)}`);
207
+ }
208
+ const WALLET_ACTIONS = [
209
+ {
210
+ id: 'receive-invoice',
211
+ label: 'creating an invoice',
212
+ request: /\b(create|make|generate|new|give me|get me|send me|i need|request)\b[^.?!]*\binvoice\b|\binvoice\b[^.?!]*\bfor\s+\d/i,
213
+ tool: /(^|_)create_(ln_|lightning_|rgb_)?invoice$|(^|_)receive(_|$)|_invoice_create$/i,
214
+ },
215
+ {
216
+ id: 'receive-address',
217
+ label: 'getting a receive address',
218
+ request: /\b(my|new|receive|receiving|deposit|funding|give me|get me|show me)\b[^.?!]*\baddress\b/i,
219
+ tool: /address/i,
220
+ },
221
+ {
222
+ id: 'pay',
223
+ label: 'paying an invoice',
224
+ request: /\bpay\b[^.?!]*\b(invoice|lnbc|lntb|lnbcrt|lno1|bolt11|bolt12|offer)/i,
225
+ tool: /pay/i,
226
+ },
227
+ {
228
+ id: 'send',
229
+ label: 'sending funds',
230
+ request: /\bsend\b[^.?!]*\b(\d|sats?|btc|usdt|xaut|asset|to)\b/i,
231
+ tool: /send|pay|transfer/i,
232
+ },
233
+ {
234
+ id: 'issue-asset',
235
+ label: 'issuing an asset',
236
+ request: /\b(issue|mint|create)\b[^.?!]*\b(asset|token|coin|nia|cfa|uda)\b/i,
237
+ tool: /issue_asset/i,
238
+ },
239
+ ];
240
+ const HOW_TO_QUESTION = /^\s*(how|what|why|when|where|which|who)\b/i;
241
+ /**
242
+ * True when the request is a wallet action the model should act on with a
243
+ * tool right away — not a question about how such an action works.
244
+ */
245
+ export function wantsToolCall(text) {
246
+ return detectWalletAction(text) !== null && !HOW_TO_QUESTION.test(text);
247
+ }
248
+ /** The wallet action a request asks for, or null. Payment tools from commerce sources don't count. */
249
+ export function detectWalletAction(text) {
250
+ const hit = WALLET_ACTIONS.find((a) => a.request.test(text));
251
+ return hit ? { id: hit.id, label: hit.label, tool: hit.tool } : null;
252
+ }
253
+ const NON_WALLET_PREFIXES = /^(bitrefill_|l402_|mpp_|search_|read_skill_reference$|remember$|recall$)/;
254
+ export function hasCapableTool(action, toolNames) {
255
+ return toolNames.some((n) => !NON_WALLET_PREFIXES.test(n) && action.tool.test(n));
256
+ }
257
+ export function noToolReply(action) {
258
+ return `I can't do that here: no tool for ${action.label} is available, so I won't make anything up. ` +
259
+ 'Connect a wallet that supports it and ask again.';
260
+ }
261
+ /** The text fed back to the model when the user declines at the confirmation gate. */
262
+ export const DECLINED_TOOL_MESSAGE = 'Cancelled by the user: the user said no at the confirmation prompt, so this action was not run. ' +
263
+ 'Nothing was sent or changed. Tell the user it was cancelled at their request. ' +
264
+ 'Do not say that the node, the wallet, the recipient or anyone else declined it, and do not retry it.';
265
+ /** Tool result for a call the user declined — the same shape for every confirm-gated tool. */
266
+ export function declinedToolResult(tool, reason) {
267
+ return {
268
+ status: 'cancelled_by_user',
269
+ declined_by: 'user',
270
+ tool,
271
+ message: DECLINED_TOOL_MESSAGE,
272
+ ...(reason ? { host_reason: reason } : {}),
273
+ };
274
+ }
275
+ /** Stable key for a tool call: name + canonical JSON of its arguments. */
276
+ export function callKey(name, args) {
277
+ const canon = (v) => Array.isArray(v)
278
+ ? v.map(canon)
279
+ : v && typeof v === 'object'
280
+ ? Object.fromEntries(Object.keys(v).sort().map((k) => [k, canon(v[k])]))
281
+ : v;
282
+ return `${name}:${JSON.stringify(canon(args ?? {}))}`;
283
+ }
284
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  * and get the shared agentic loop, identical on mobile / desktop / agent.
9
9
  */
10
10
  export type { Role, Message, ToolDef, ToolCall, ToolResult, ConfirmDecision, } from './types.js';
11
- export type { InferenceMetrics, LLMProvider, TurnInput, TurnOutput, } from './providers/types.js';
11
+ export type { InferenceMetrics, LLMProvider, ToolCallError, ToolChoice, TurnInput, TurnOutput, } from './providers/types.js';
12
12
  export type { ToolSource } from './tools/source.js';
13
13
  export { InProcessToolSource } from './tools/in-process.js';
14
14
  export type { InProcessTool } from './tools/in-process.js';
@@ -20,10 +20,15 @@ export type { CliToolOptions, CommandRunner, CommandResult } from './tools/cli.j
20
20
  export { WALLET_TOOLS, WALLET_LAYERS, SPEND_TOOLS, isSpendTool, getWalletTool, walletTools, toToolDefs, bindWalletTools, } from './wallet/contract.js';
21
21
  export type { WalletLayer, WalletToolDef, WalletHandler, BindWalletOptions, } from './wallet/contract.js';
22
22
  export { confirmReadback } from './wallet/confirm.js';
23
+ export { validateToolArgs, findUngroundedPaymentData, detectWalletAction, hasCapableTool, wantsToolCall, fixSatsBtcConversions, formatSatsAsBtc, DECLINED_TOOL_MESSAGE, declinedToolResult, } from './guards.js';
24
+ export { annotateRgbBalances, fixRgbBalanceUnits, formatRgbAmount } from './context/rgb-units.js';
25
+ export type { ArgValidation, UngroundedItem, WalletAction } from './guards.js';
23
26
  export { KALEIDOSWAP_TOOLS, KALEIDOSWAP_SPEND_TOOLS, isKaleidoswapSpendTool, getKaleidoswapTool, kaleidoswapTools, bindKaleidoswapTools, } from './kaleidoswap/contract.js';
24
27
  export type { KaleidoswapGroup, KaleidoswapToolDef, KaleidoswapHandler, BindKaleidoswapOptions, } from './kaleidoswap/contract.js';
25
28
  export { LSPS1_TOOLS, LSPS1_SPEND_TOOLS, isLsps1SpendTool, getLsps1Tool, bindLsps1Tools, } from './lsps1/contract.js';
26
29
  export type { Lsps1ToolDef, Lsps1Handler, BindLsps1Options, } from './lsps1/contract.js';
30
+ export { SUBMARINE_TOOLS, SUBMARINE_SPEND_TOOLS, SUBMARINE_FROM_ASSETS, isSubmarineSpendTool, getSubmarineTool, formatSubmarineAmount, bindSubmarineTools, } from './submarine/contract.js';
31
+ export type { SubmarineToolDef, SubmarineFromAsset, SubmarineHandler, BindSubmarineOptions, } from './submarine/contract.js';
27
32
  export { BITREFILL_TOOLS, BITREFILL_SPEND_TOOLS, isBitrefillSpendTool, getBitrefillTool, bindBitrefillTools, } from './bitrefill/contract.js';
28
33
  export type { BitrefillToolDef, BitrefillHandler, BindBitrefillOptions, } from './bitrefill/contract.js';
29
34
  export { FLASHNET_TOOLS, FLASHNET_SPEND_TOOLS, isFlashnetSpendTool, getFlashnetTool, bindFlashnetTools, } from './flashnet/contract.js';
@@ -34,6 +39,7 @@ export { flashnetSwapRecipe } from './recipe/flashnet-swap.js';
34
39
  export { kaleidoswapChannelOrderRecipe, extractChannelOrder, } from './recipe/kaleidoswap-channel-order.js';
35
40
  export { buyAssetChannelRecipe, extractBuyAsset } from './recipe/buy-asset-channel.js';
36
41
  export { issueAssetRecipe, extractIssueAsset } from './recipe/issue-asset.js';
42
+ export { submarinePayRecipe, extractSubmarinePay } from './recipe/submarine-pay.js';
37
43
  export { runRecipe, extractSlots, RecipeRegistry } from './recipe/runner.js';
38
44
  export type { RunRecipeOptions } from './recipe/runner.js';
39
45
  export { paymentsRecipe, extractPayment } from './recipe/payments.js';
@@ -69,8 +75,9 @@ export type { Merchant } from './knowledge/merchants.js';
69
75
  export { createBtcMapToolSource } from './knowledge/btc-map.js';
70
76
  export type { BtcMapToolOptions, BtcMapMerchant, BtcMapFetch, LocationProvider, LatLng, } from './knowledge/btc-map.js';
71
77
  export { Engine } from './engine.js';
72
- export type { EngineOptions, AgenticOptions, AgenticResult } from './engine.js';
78
+ export type { EngineOptions, AgenticOptions, AgenticResult, ComposedSkill } from './engine.js';
73
79
  export { Funnel, DEFAULT_WALLET_SYSTEM } from './funnel.js';
80
+ export { skillAvailable, selectAvailableSkill } from './skills/select.js';
74
81
  export type { FunnelOptions, FunnelSettings, FunnelCallbacks, FunnelResult } from './funnel.js';
75
82
  export { SkillRegistry, parseSkill, keywordSelector, createEmbeddingSkillSelector, READ_REFERENCE_TOOL, } from './skills/registry.js';
76
83
  export { createSkillReferenceToolSource } from './skills/reference-source.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,10 +14,14 @@ export { createCliToolSource, isAllowed } from './tools/cli.js';
14
14
  // ── Multi-L2 wallet tool contract (single source of truth) ─────────────────
15
15
  export { WALLET_TOOLS, WALLET_LAYERS, SPEND_TOOLS, isSpendTool, getWalletTool, walletTools, toToolDefs, bindWalletTools, } from './wallet/contract.js';
16
16
  export { confirmReadback } from './wallet/confirm.js';
17
+ export { validateToolArgs, findUngroundedPaymentData, detectWalletAction, hasCapableTool, wantsToolCall, fixSatsBtcConversions, formatSatsAsBtc, DECLINED_TOOL_MESSAGE, declinedToolResult, } from './guards.js';
18
+ export { annotateRgbBalances, fixRgbBalanceUnits, formatRgbAmount } from './context/rgb-units.js';
17
19
  // ── KaleidoSwap maker tool contract (single source of truth) ────────────────
18
20
  export { KALEIDOSWAP_TOOLS, KALEIDOSWAP_SPEND_TOOLS, isKaleidoswapSpendTool, getKaleidoswapTool, kaleidoswapTools, bindKaleidoswapTools, } from './kaleidoswap/contract.js';
19
21
  // ── LSPS1 (Lightning Service Provider channel orders) ───────────────────────
20
22
  export { LSPS1_TOOLS, LSPS1_SPEND_TOOLS, isLsps1SpendTool, getLsps1Tool, bindLsps1Tools, } from './lsps1/contract.js';
23
+ // ── KaleidoSwap /v2 submarine swaps (pay Lightning from Liquid) ─────────────
24
+ export { SUBMARINE_TOOLS, SUBMARINE_SPEND_TOOLS, SUBMARINE_FROM_ASSETS, isSubmarineSpendTool, getSubmarineTool, formatSubmarineAmount, bindSubmarineTools, } from './submarine/contract.js';
21
25
  // ── Bitrefill (gift cards / mobile top-ups / eSIMs) ─────────────────────────
22
26
  export { BITREFILL_TOOLS, BITREFILL_SPEND_TOOLS, isBitrefillSpendTool, getBitrefillTool, bindBitrefillTools, } from './bitrefill/contract.js';
23
27
  // ── Flashnet (Spark-native AMM — swaps over Spark) ──────────────────────────
@@ -34,6 +38,8 @@ export { kaleidoswapChannelOrderRecipe, extractChannelOrder, } from './recipe/ka
34
38
  export { buyAssetChannelRecipe, extractBuyAsset } from './recipe/buy-asset-channel.js';
35
39
  // ── Issue-an-RGB-asset recipe (opt-in — register via Funnel.recipes) ───────
36
40
  export { issueAssetRecipe, extractIssueAsset } from './recipe/issue-asset.js';
41
+ // ── Submarine-pay recipe (opt-in — register via Funnel.recipes, before payments) ──
42
+ export { submarinePayRecipe, extractSubmarinePay } from './recipe/submarine-pay.js';
37
43
  // ── Recipes (mobile multi-step: "recipes, not planning") ───────────────────
38
44
  export { runRecipe, extractSlots, RecipeRegistry } from './recipe/runner.js';
39
45
  export { paymentsRecipe, extractPayment } from './recipe/payments.js';
@@ -62,6 +68,7 @@ export { createBtcMapToolSource } from './knowledge/btc-map.js';
62
68
  export { Engine } from './engine.js';
63
69
  // ── Funnel (T0 fast-path → T2 recipe → T1 agentic — the tiered agent) ───────
64
70
  export { Funnel, DEFAULT_WALLET_SYSTEM } from './funnel.js';
71
+ export { skillAvailable, selectAvailableSkill } from './skills/select.js';
65
72
  export { SkillRegistry, parseSkill, keywordSelector, createEmbeddingSkillSelector, READ_REFERENCE_TOOL, } from './skills/registry.js';
66
73
  export { createSkillReferenceToolSource } from './skills/reference-source.js';
67
74
  export { skillsFromBundle } from './skills/bundle.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,10 @@
9
9
  * - eval → stub handlers, also via `bindKaleidoswapTools`
10
10
  *
11
11
  * Because the schemas are identical everywhere, skills are portable and the
12
- * model comparison is honest. Tools are grouped (`market`, `orders`, `atomic`,
12
+ * model comparison is honest. Tools are grouped (`market`, `atomic`,
13
13
  * `liquidity`) so a host can expose a read-only subset for sandbox/eval modes.
14
14
  *
15
- * Spend tools (place an order, init/execute an atomic swap) carry
15
+ * Spend tools (init/execute an atomic swap, buy an asset channel) carry
16
16
  * `spend: true` → `requiresConfirmation: true`, so the Engine always pauses
17
17
  * for the host's confirm gate before executing.
18
18
  *
@@ -21,7 +21,7 @@
21
21
  import type { ToolDef } from '../types.js';
22
22
  import { InProcessToolSource } from '../tools/in-process.js';
23
23
  /** Functional grouping for selective binding (e.g. read-only sandbox). */
24
- export type KaleidoswapGroup = 'market' | 'orders' | 'atomic' | 'liquidity';
24
+ export type KaleidoswapGroup = 'market' | 'atomic' | 'liquidity';
25
25
  export interface KaleidoswapToolDef extends ToolDef {
26
26
  /** Functional group — lets a host expose a subset. */
27
27
  group: KaleidoswapGroup;
@@ -63,7 +63,6 @@ export interface BindKaleidoswapOptions {
63
63
  *
64
64
  * const source = bindKaleidoswapTools({
65
65
  * kaleidoswap_get_quote: async (args) => makerSdk.quote(args),
66
- * kaleidoswap_place_order: async ({ quote_id }) => makerSdk.placeOrder({ quoteId: quote_id }),
67
66
  * // …
68
67
  * });
69
68
  * tools.register(source);
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/kaleidoswap/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE5E,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,sDAAsD;IACtD,KAAK,EAAE,gBAAgB,CAAC;IACxB,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,EAoGjD,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAE/C,CAAC;AAEF,oBAAoB;AACpB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,oBAAoB;AACpB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAE/E;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAAO,GACzC,kBAAkB,EAAE,CAItB;AAED,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8DAA8D;IAC9D,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC5C,IAAI,GAAE,sBAA2B,GAChC,mBAAmB,CAkBrB"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/kaleidoswap/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEjE,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,sDAAsD;IACtD,KAAK,EAAE,gBAAgB,CAAC;IACxB,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,EAyEjD,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAE/C,CAAC;AAEF,oBAAoB;AACpB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,oBAAoB;AACpB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAE/E;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAAO,GACzC,kBAAkB,EAAE,CAItB;AAED,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8DAA8D;IAC9D,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC5C,IAAI,GAAE,sBAA2B,GAChC,mBAAmB,CAkBrB"}
@@ -9,10 +9,10 @@
9
9
  * - eval → stub handlers, also via `bindKaleidoswapTools`
10
10
  *
11
11
  * Because the schemas are identical everywhere, skills are portable and the
12
- * model comparison is honest. Tools are grouped (`market`, `orders`, `atomic`,
12
+ * model comparison is honest. Tools are grouped (`market`, `atomic`,
13
13
  * `liquidity`) so a host can expose a read-only subset for sandbox/eval modes.
14
14
  *
15
- * Spend tools (place an order, init/execute an atomic swap) carry
15
+ * Spend tools (init/execute an atomic swap, buy an asset channel) carry
16
16
  * `spend: true` → `requiresConfirmation: true`, so the Engine always pauses
17
17
  * for the host's confirm gate before executing.
18
18
  *
@@ -38,26 +38,13 @@ export const KALEIDOSWAP_TOOLS = [
38
38
  // ─── market (read) ─────────────────────────────────────────────────────
39
39
  t('market', 'kaleidoswap_get_assets', 'List the assets KaleidoSwap supports — BTC plus the RGB assets the maker has inventory for (e.g. USDT, XAUT). Returns symbol, precision, and issuer/contract id. No args.'),
40
40
  t('market', 'kaleidoswap_get_pairs', 'List the trading pairs currently quoted by the maker, with the latest bid/ask and the minimum/maximum executable size on each side. Use this before quoting to pick a valid pair. No args.'),
41
- t('market', 'kaleidoswap_get_quote', 'Get an executable quote for swapping a specific amount on one pair. Returns a quote id (use it with place_order or atomic_init), the expected receive amount, fees, slippage, and how long the quote is valid for. Re-quote rather than reusing a stale id.', {
41
+ t('market', 'kaleidoswap_get_quote', 'Get an executable quote for swapping a specific amount on one pair. Returns a quote id (use it with atomic_init), the expected receive amount, fees, slippage, and how long the quote is valid for. Re-quote rather than reusing a stale id.', {
42
42
  from_asset: { type: 'string', description: 'Asset to spend, e.g. "BTC" or "USDT".' },
43
43
  to_asset: { type: 'string', description: 'Asset to receive, e.g. "USDT" or "BTC".' },
44
44
  amount: { type: 'number', description: 'Amount of from_asset to swap. BTC is in satoshis; RGB assets use their asset-defined precision.' },
45
45
  side: { type: 'string', enum: ['buy', 'sell'], description: 'Default "sell" (you sell from_asset). Use "buy" only when from_asset is the quote currency you spend to acquire to_asset.' },
46
46
  }, ['from_asset', 'to_asset', 'amount']),
47
47
  t('market', 'kaleidoswap_get_nodeinfo', "Get info about the maker's Lightning node — pubkey, host, port, connect URI. Useful before opening a channel or when the user wants to see the counterparty. No args."),
48
- // ─── orders (orderbook / market-order flow) ─────────────────────────────
49
- t('orders', 'kaleidoswap_place_order', 'Place an order using an executable quote. Returns order_id + access_token (save the token — required for get_order_status). SPEND: the host pauses for user confirmation before the maker is called. Use only after kaleidoswap_get_quote and only when the user has explicitly approved the amount + destination.', {
50
- quote_id: { type: 'string', description: 'The quote id returned by kaleidoswap_get_quote (must still be valid).' },
51
- }, ['quote_id'],
52
- /* spend */ true),
53
- t('orders', 'kaleidoswap_get_order_status', 'Check the status of an order by id — pending / settling / completed / failed. Poll this after place_order until the order settles. Requires the access_token returned by place_order for authenticated orders.', {
54
- order_id: { type: 'string', description: 'The order id returned by kaleidoswap_place_order.' },
55
- access_token: { type: 'string', description: 'The per-order access token returned by kaleidoswap_place_order. Required for status checks on the order.' },
56
- }, ['order_id', 'access_token']),
57
- t('orders', 'kaleidoswap_get_order_history', "Get the user's recent KaleidoSwap orders for context (last N, paginated). Read-only.", {
58
- limit: { type: 'number', description: 'Max rows (default 20, max 100).' },
59
- cursor: { type: 'string', description: 'Pagination cursor from a previous call.' },
60
- }),
61
48
  // ─── atomic (the trust-minimised swap chain — used by the recipe) ───────
62
49
  t('atomic', 'kaleidoswap_atomic_init', "Initialise an atomic swap from a quote. Requires the receiver's RGB/LN invoice so the maker can lock the outgoing leg. SPEND: confirmation-gated. Returns the maker's invoice for the user to pay and an atomic id to track.", {
63
50
  quote_id: { type: 'string', description: 'The quote id from kaleidoswap_get_quote.' },
@@ -109,7 +96,6 @@ export function kaleidoswapTools(opts = {}) {
109
96
  *
110
97
  * const source = bindKaleidoswapTools({
111
98
  * kaleidoswap_get_quote: async (args) => makerSdk.quote(args),
112
- * kaleidoswap_place_order: async ({ quote_id }) => makerSdk.placeOrder({ quoteId: quote_id }),
113
99
  * // …
114
100
  * });
115
101
  * tools.register(source);
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/kaleidoswap/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/kaleidoswap/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * createOpenAICompatibleProvider — an LLMProvider over any server that speaks
3
+ * the OpenAI Chat Completions API with tool calling: Ollama, llama.cpp
4
+ * `llama-server`, LM Studio, vLLM, `qvac serve`, or a hosted API.
5
+ *
6
+ * No dependencies: it uses `fetch` (pass your own for older runtimes or tests).
7
+ *
8
+ * The Engine keeps history as plain `{ role, content }` messages. Tool calls
9
+ * are written into the assistant's `rawContent` as `<tool_call>{json}</tool_call>`
10
+ * blocks and turned back into `tool_calls` / `tool_call_id` pairs on the next
11
+ * request, so the server always receives a valid tool-calling conversation.
12
+ */
13
+ import type { Message, ToolCall } from '../types.js';
14
+ import type { LLMProvider, TurnInput } from './types.js';
15
+ export interface OpenAICompatibleOptions {
16
+ /** API root including the version, e.g. `http://localhost:11434/v1`. */
17
+ baseUrl: string;
18
+ /** Model name as the server knows it, e.g. `qwen3.5:4b`. */
19
+ model: string;
20
+ /** Sent as `Authorization: Bearer …` when set. */
21
+ apiKey?: string;
22
+ defaultTemperature?: number;
23
+ defaultMaxTokens?: number;
24
+ /** Stream tokens (default true). Set false for servers without SSE. */
25
+ stream?: boolean;
26
+ /** Extra JSON merged into every request body (e.g. `{ reasoning_effort: 'low' }`). */
27
+ extraBody?: Record<string, unknown>;
28
+ /** Extra request headers. */
29
+ headers?: Record<string, string>;
30
+ /** Reasoning deltas (`reasoning_content` / `reasoning`), when the server sends them. */
31
+ onThinking?: (token: string) => void;
32
+ fetch?: typeof fetch;
33
+ }
34
+ export interface OpenAITurnInput extends TurnInput {
35
+ temperature?: number;
36
+ maxTokens?: number;
37
+ }
38
+ type WireMessage = {
39
+ role: 'system' | 'user';
40
+ content: string;
41
+ } | {
42
+ role: 'assistant';
43
+ content: string | null;
44
+ tool_calls?: WireToolCall[];
45
+ } | {
46
+ role: 'tool';
47
+ content: string;
48
+ tool_call_id: string;
49
+ };
50
+ interface WireToolCall {
51
+ id: string;
52
+ type: 'function';
53
+ function: {
54
+ name: string;
55
+ arguments: string;
56
+ };
57
+ }
58
+ /** The assistant frame the Engine stores: visible text plus one block per call. */
59
+ export declare function encodeToolCalls(text: string, calls: ToolCall[]): string;
60
+ /** Engine history → Chat Completions messages, with ids pairing calls and results. */
61
+ export declare function toWireMessages(messages: Message[], system?: string): WireMessage[];
62
+ export declare function createOpenAICompatibleProvider(options: OpenAICompatibleOptions): LLMProvider;
63
+ export {};
64
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAoB,WAAW,EAA6B,SAAS,EAAc,MAAM,YAAY,CAAC;AAIlH,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,wFAAwF;IACxF,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,WAAW,GACZ;IAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAID,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAGvE;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAgClF;AAqDD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,uBAAuB,GAAG,WAAW,CAsI5F"}