@kaleidorg/mind 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/funnel.d.ts +19 -0
- package/dist/funnel.d.ts.map +1 -1
- package/dist/funnel.js +48 -10
- package/dist/funnel.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/kaleidoswap/contract.d.ts +3 -3
- package/dist/kaleidoswap/contract.d.ts.map +1 -1
- package/dist/kaleidoswap/contract.js +16 -4
- package/dist/kaleidoswap/contract.js.map +1 -1
- package/dist/knowledge/bitcoin-copilot.d.ts.map +1 -1
- package/dist/knowledge/bitcoin-copilot.js +102 -0
- package/dist/knowledge/bitcoin-copilot.js.map +1 -1
- package/dist/knowledge/btc-map.d.ts +14 -17
- package/dist/knowledge/btc-map.d.ts.map +1 -1
- package/dist/knowledge/btc-map.js +66 -266
- package/dist/knowledge/btc-map.js.map +1 -1
- package/dist/lsps1/contract.d.ts.map +1 -1
- package/dist/lsps1/contract.js +28 -10
- package/dist/lsps1/contract.js.map +1 -1
- package/dist/qvac/assistant.d.ts +73 -0
- package/dist/qvac/assistant.d.ts.map +1 -0
- package/dist/qvac/assistant.js +97 -0
- package/dist/qvac/assistant.js.map +1 -0
- package/dist/qvac/config.d.ts +64 -0
- package/dist/qvac/config.d.ts.map +1 -0
- package/dist/qvac/config.js +71 -0
- package/dist/qvac/config.js.map +1 -0
- package/dist/qvac/delegate.d.ts +48 -0
- package/dist/qvac/delegate.d.ts.map +1 -0
- package/dist/qvac/delegate.js +51 -0
- package/dist/qvac/delegate.js.map +1 -0
- package/dist/qvac/index.d.ts +19 -0
- package/dist/qvac/index.d.ts.map +1 -0
- package/dist/qvac/index.js +19 -0
- package/dist/qvac/index.js.map +1 -0
- package/dist/qvac/parse.d.ts +44 -0
- package/dist/qvac/parse.d.ts.map +1 -0
- package/dist/qvac/parse.js +28 -0
- package/dist/qvac/parse.js.map +1 -0
- package/dist/qvac/provider.d.ts +49 -0
- package/dist/qvac/provider.d.ts.map +1 -0
- package/dist/qvac/provider.js +68 -0
- package/dist/qvac/provider.js.map +1 -0
- package/dist/qvac/stream.d.ts +37 -0
- package/dist/qvac/stream.d.ts.map +1 -0
- package/dist/qvac/stream.js +29 -0
- package/dist/qvac/stream.js.map +1 -0
- package/dist/qvac/text.d.ts +19 -0
- package/dist/qvac/text.d.ts.map +1 -0
- package/dist/qvac/text.js +56 -0
- package/dist/qvac/text.js.map +1 -0
- package/dist/qvac/voice.d.ts +69 -0
- package/dist/qvac/voice.d.ts.map +1 -0
- package/dist/qvac/voice.js +51 -0
- package/dist/qvac/voice.js.map +1 -0
- package/dist/recipe/buy-asset-channel.d.ts +26 -0
- package/dist/recipe/buy-asset-channel.d.ts.map +1 -0
- package/dist/recipe/buy-asset-channel.js +112 -0
- package/dist/recipe/buy-asset-channel.js.map +1 -0
- package/dist/recipe/kaleidoswap-atomic.d.ts +26 -18
- package/dist/recipe/kaleidoswap-atomic.d.ts.map +1 -1
- package/dist/recipe/kaleidoswap-atomic.js +101 -63
- package/dist/recipe/kaleidoswap-atomic.js.map +1 -1
- package/dist/recipe/kaleidoswap-channel-order.d.ts +35 -0
- package/dist/recipe/kaleidoswap-channel-order.d.ts.map +1 -0
- package/dist/recipe/kaleidoswap-channel-order.js +493 -0
- package/dist/recipe/kaleidoswap-channel-order.js.map +1 -0
- package/dist/recipe/kaleidoswap-price.d.ts +21 -0
- package/dist/recipe/kaleidoswap-price.d.ts.map +1 -0
- package/dist/recipe/kaleidoswap-price.js +57 -0
- package/dist/recipe/kaleidoswap-price.js.map +1 -0
- package/dist/recipe/runner.d.ts +7 -1
- package/dist/recipe/runner.d.ts.map +1 -1
- package/dist/recipe/runner.js +115 -29
- package/dist/recipe/runner.js.map +1 -1
- package/dist/recipe/swap.d.ts +26 -1
- package/dist/recipe/swap.d.ts.map +1 -1
- package/dist/recipe/swap.js +108 -13
- package/dist/recipe/swap.js.map +1 -1
- package/dist/recipe/types.d.ts +25 -1
- package/dist/recipe/types.d.ts.map +1 -1
- package/dist/skills/registry.d.ts +33 -1
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +45 -1
- package/dist/skills/registry.js.map +1 -1
- package/package.json +15 -1
- package/skills/README.md +3 -0
- package/skills/kaleido-lsps/SKILL.md +101 -43
- package/skills/kaleido-trading/SKILL.md +81 -31
- package/skills/merchant-finder/SKILL.md +96 -66
- package/skills/rgb-lightning-node/SKILL.md +108 -0
- package/skills/wallet-assistant/SKILL.md +32 -21
- package/src/funnel.ts +66 -11
- package/src/index.ts +14 -2
- package/src/kaleidoswap/contract.test.ts +7 -2
- package/src/kaleidoswap/contract.ts +27 -5
- package/src/knowledge/bitcoin-copilot.ts +111 -0
- package/src/knowledge/btc-map.test.ts +53 -96
- package/src/knowledge/btc-map.ts +72 -287
- package/src/lsps1/contract.ts +32 -14
- package/src/qvac/assistant.test.ts +132 -0
- package/src/qvac/assistant.ts +146 -0
- package/src/qvac/config.test.ts +44 -0
- package/src/qvac/config.ts +76 -0
- package/src/qvac/delegate.test.ts +68 -0
- package/src/qvac/delegate.ts +71 -0
- package/src/qvac/index.ts +72 -0
- package/src/qvac/parse.test.ts +52 -0
- package/src/qvac/parse.ts +57 -0
- package/src/qvac/provider.test.ts +107 -0
- package/src/qvac/provider.ts +124 -0
- package/src/qvac/stream.test.ts +79 -0
- package/src/qvac/stream.ts +56 -0
- package/src/qvac/text.test.ts +70 -0
- package/src/qvac/text.ts +60 -0
- package/src/qvac/voice.test.ts +151 -0
- package/src/qvac/voice.ts +122 -0
- package/src/recipe/buy-asset-channel.test.ts +148 -0
- package/src/recipe/buy-asset-channel.ts +118 -0
- package/src/recipe/kaleidoswap-atomic.test.ts +134 -61
- package/src/recipe/kaleidoswap-atomic.ts +112 -66
- package/src/recipe/kaleidoswap-channel-order.test.ts +333 -0
- package/src/recipe/kaleidoswap-channel-order.ts +548 -0
- package/src/recipe/kaleidoswap-price.ts +68 -0
- package/src/recipe/recipe.test.ts +61 -5
- package/src/recipe/runner.ts +128 -31
- package/src/recipe/swap.ts +109 -13
- package/src/recipe/types.ts +25 -1
- package/src/skills/registry.ts +52 -1
package/dist/funnel.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ import type { FastIntent } from './fastpath/fastpath.js';
|
|
|
23
23
|
import type { Recipe } from './recipe/types.js';
|
|
24
24
|
import type { Skill } from './skills/types.js';
|
|
25
25
|
import type { LLMProvider } from './providers/types.js';
|
|
26
|
+
import type { Retriever } from './rag/retriever.js';
|
|
26
27
|
import type { ConfirmDecision, Message, ToolResult } from './types.js';
|
|
27
28
|
/** Base system prompt for the wallet assistant. Hosts may override. */
|
|
28
29
|
export declare const DEFAULT_WALLET_SYSTEM: string;
|
|
@@ -62,11 +63,14 @@ export interface FunnelCallbacks {
|
|
|
62
63
|
onConfirm?: (call: {
|
|
63
64
|
name: string;
|
|
64
65
|
arguments: Record<string, unknown>;
|
|
66
|
+
summary?: string;
|
|
65
67
|
}) => Promise<ConfirmDecision>;
|
|
66
68
|
}
|
|
67
69
|
export interface FunnelResult {
|
|
68
70
|
text: string;
|
|
69
71
|
tier: 'fast' | 'recipe' | 'agentic';
|
|
72
|
+
/** What handled the turn: the intent (fast), recipe name (recipe), or skill name (agentic). */
|
|
73
|
+
route?: string;
|
|
70
74
|
/** Fast tier only: the matched intent + raw tool result (e.g. for a balance card). */
|
|
71
75
|
intent?: string;
|
|
72
76
|
data?: unknown;
|
|
@@ -94,6 +98,19 @@ export interface FunnelOptions {
|
|
|
94
98
|
renderFast?: (intent: string, result: unknown) => string;
|
|
95
99
|
/** Diagnostics sink (tier routing, tool calls). Default: silent. */
|
|
96
100
|
log?: (message: string) => void;
|
|
101
|
+
/**
|
|
102
|
+
* Optional retriever for AUTO-injecting relevant knowledge chunks into the
|
|
103
|
+
* agentic-tier system prompt (T1 only — recipes/fast-path are deterministic
|
|
104
|
+
* and don't need it). When set, the top-`topKRag` chunks for the user's
|
|
105
|
+
* query are prepended as `## Relevant context`. Default: no auto-inject
|
|
106
|
+
* (the `search_knowledge` tool stays available for on-demand lookups).
|
|
107
|
+
*
|
|
108
|
+
* Small models often don't choose to call search_knowledge; auto-inject
|
|
109
|
+
* makes the corpus useful by default without the model having to opt in.
|
|
110
|
+
*/
|
|
111
|
+
retriever?: Retriever;
|
|
112
|
+
/** How many chunks to auto-inject when `retriever` is set. Default 3. */
|
|
113
|
+
topKRag?: number;
|
|
97
114
|
}
|
|
98
115
|
export declare class Funnel {
|
|
99
116
|
private readonly provider;
|
|
@@ -106,6 +123,8 @@ export declare class Funnel {
|
|
|
106
123
|
private readonly getSettings;
|
|
107
124
|
private readonly renderFast;
|
|
108
125
|
private readonly log;
|
|
126
|
+
private readonly retriever?;
|
|
127
|
+
private readonly topKRag;
|
|
109
128
|
/** Skill registry, rebuilt only when the disabled-skills set changes. */
|
|
110
129
|
private skillsCache;
|
|
111
130
|
constructor(opts: FunnelOptions);
|
package/dist/funnel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel.d.ts","sourceRoot":"","sources":["../src/funnel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEvE,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"funnel.d.ts","sourceRoot":"","sources":["../src/funnel.ts"],"names":[],"mappings":"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"}
|
package/dist/funnel.js
CHANGED
|
@@ -45,6 +45,16 @@ export const DEFAULT_WALLET_SYSTEM = [
|
|
|
45
45
|
' the required field missing.',
|
|
46
46
|
'5. All BTC amounts are in satoshis. Asset codes are case-insensitive but the',
|
|
47
47
|
' canonical forms are BTC, USDT, XAUT — do not silently shorten to USD, XAU.',
|
|
48
|
+
'6. NEVER name a tool, function, endpoint, or argument key in your reply.',
|
|
49
|
+
' Tools are private plumbing. Bad: "use kaleidoswap_get_quote with amount 1".',
|
|
50
|
+
' Good: "I can quote that for you — one moment." If you need information',
|
|
51
|
+
' from the user (like an amount), ASK in plain English without referencing',
|
|
52
|
+
' how the system will use it.',
|
|
53
|
+
'7. A price/rate question (e.g. "price of USDT", "BTC price", "how much is',
|
|
54
|
+
' 1 USDT") is a UNIT QUOTE — answer with the value of 1 of the named asset',
|
|
55
|
+
' in the denomination the user asked for (default: sats when pricing USDT/',
|
|
56
|
+
' XAUT, USDT when pricing BTC). Never ask the user "how much do you want"',
|
|
57
|
+
' for a price question.',
|
|
48
58
|
'',
|
|
49
59
|
'Keep replies short and friendly. When a tool returns multiple fields, surface',
|
|
50
60
|
"the ones that matter — never collapse a structured result to a single number",
|
|
@@ -77,6 +87,8 @@ export class Funnel {
|
|
|
77
87
|
getSettings;
|
|
78
88
|
renderFast;
|
|
79
89
|
log;
|
|
90
|
+
retriever;
|
|
91
|
+
topKRag;
|
|
80
92
|
/** Skill registry, rebuilt only when the disabled-skills set changes. */
|
|
81
93
|
skillsCache = null;
|
|
82
94
|
constructor(opts) {
|
|
@@ -94,6 +106,9 @@ export class Funnel {
|
|
|
94
106
|
this.getSettings = opts.getSettings ?? (() => ({}));
|
|
95
107
|
this.renderFast = opts.renderFast ?? defaultRenderFast;
|
|
96
108
|
this.log = opts.log ?? (() => { });
|
|
109
|
+
if (opts.retriever)
|
|
110
|
+
this.retriever = opts.retriever;
|
|
111
|
+
this.topKRag = opts.topKRag ?? 3;
|
|
97
112
|
}
|
|
98
113
|
/** Skills currently enabled (e.g. for a skills sheet). */
|
|
99
114
|
listSkills() {
|
|
@@ -119,16 +134,21 @@ export class Funnel {
|
|
|
119
134
|
if (fast && (await this.registry.getDef(fast.tool))) {
|
|
120
135
|
this.log(`tier=fast-path → ${fast.tool}`);
|
|
121
136
|
const r = await this.registry.execute(fast.tool, fast.args);
|
|
122
|
-
return { text: this.renderFast(fast.intent.name, r), tier: 'fast', intent: fast.intent.name, data: r };
|
|
137
|
+
return { text: this.renderFast(fast.intent.name, r), tier: 'fast', route: fast.intent.name, intent: fast.intent.name, data: r };
|
|
123
138
|
}
|
|
124
|
-
// ── T2: recipe multi-step — fires
|
|
125
|
-
//
|
|
126
|
-
//
|
|
139
|
+
// ── T2: recipe multi-step — fires when:
|
|
140
|
+
// (a) the recipe is confident given its deterministic slots, OR
|
|
141
|
+
// (b) `forceModelExtract` is on — the LLM does the actual extraction
|
|
142
|
+
// inside runRecipe, so we don't gate on the regex result. If the
|
|
143
|
+
// LLM still doesn't yield enough, runRecipe returns status:
|
|
144
|
+
// 'needs-info' with a friendly "please specify X" instead of
|
|
145
|
+
// running steps with bad data.
|
|
146
|
+
// Either way the registry must implement the recipe's final action.
|
|
127
147
|
const recipe = this.recipes.select(text);
|
|
128
148
|
const slots = recipe?.extract?.(text) ?? null;
|
|
149
|
+
const deterministicallyConfident = !!slots && (recipe?.confident ? recipe.confident(slots) : Object.keys(slots).length > 0);
|
|
129
150
|
const fires = !!recipe &&
|
|
130
|
-
|
|
131
|
-
(recipe.confident ? recipe.confident(slots) : Object.keys(slots).length > 0) &&
|
|
151
|
+
(recipe.forceModelExtract === true || deterministicallyConfident) &&
|
|
132
152
|
!!(await this.registry.getDef(recipe.final.tool));
|
|
133
153
|
if (recipe && fires) {
|
|
134
154
|
this.log(`tier=recipe:${recipe.name} slots=${JSON.stringify(slots)}`);
|
|
@@ -141,17 +161,35 @@ export class Funnel {
|
|
|
141
161
|
cbs.onStep?.(name);
|
|
142
162
|
},
|
|
143
163
|
});
|
|
144
|
-
return { text: res.text, tier: 'recipe' };
|
|
164
|
+
return { text: res.text, tier: 'recipe', route: recipe.name };
|
|
145
165
|
}
|
|
146
166
|
// ── T1: skill-scoped agentic loop ──
|
|
147
167
|
const skills = this.skillsFor(settings.disabledSkills);
|
|
148
168
|
const skill = skills.select(text);
|
|
149
|
-
|
|
169
|
+
let base = settings.persona ? `${this.system}\n\n## Your persona\n${settings.persona}` : this.system;
|
|
170
|
+
// Auto-inject relevant knowledge chunks (best-effort — corpus is grounding
|
|
171
|
+
// truth, history is conversational context; both reach the model but the
|
|
172
|
+
// RAG block sits above history so the model treats it as authoritative).
|
|
173
|
+
// Only fires for agentic turns and only when the host opts in via
|
|
174
|
+
// `retriever` AND the user hasn't disabled RAG in settings.
|
|
175
|
+
const ragOn = settings.ragEnabled !== false;
|
|
176
|
+
if (this.retriever && ragOn && this.topKRag > 0) {
|
|
177
|
+
try {
|
|
178
|
+
const hits = await this.retriever.search(text, this.topKRag);
|
|
179
|
+
if (hits.length) {
|
|
180
|
+
const chunks = hits.map((h) => `- ${h.text}`).join('\n');
|
|
181
|
+
base = `${base}\n\n## Relevant context (read first; trust this over conversation history)\n${chunks}`;
|
|
182
|
+
this.log(`rag injected ${hits.length} chunks`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch (e) {
|
|
186
|
+
this.log(`rag failed: ${e?.message ?? e}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
150
189
|
const { system, allowedTools } = skills.compose(base, skill);
|
|
151
190
|
// Ambient tools stay available even when a skill narrows the set — gated
|
|
152
191
|
// by the user's memory/knowledge toggles (default on).
|
|
153
192
|
const memoryOn = settings.memoryEnabled !== false;
|
|
154
|
-
const ragOn = settings.ragEnabled !== false;
|
|
155
193
|
const ambient = [...(memoryOn ? AMBIENT_MEMORY : []), ...(ragOn ? AMBIENT_RAG : [])];
|
|
156
194
|
const disabledAmbient = [...(memoryOn ? [] : AMBIENT_MEMORY), ...(ragOn ? [] : AMBIENT_RAG)];
|
|
157
195
|
let scoped;
|
|
@@ -189,7 +227,7 @@ export class Funnel {
|
|
|
189
227
|
onToolResult: cbs.onToolResult,
|
|
190
228
|
onConfirm: cbs.onConfirm,
|
|
191
229
|
});
|
|
192
|
-
return { text: res.text ?? '', tier: 'agentic', toolCalls: res.toolCalls, turns: res.turns };
|
|
230
|
+
return { text: res.text ?? '', tier: 'agentic', route: skill?.name, toolCalls: res.toolCalls, turns: res.turns };
|
|
193
231
|
}
|
|
194
232
|
}
|
|
195
233
|
//# sourceMappingURL=funnel.js.map
|
package/dist/funnel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel.js","sourceRoot":"","sources":["../src/funnel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"funnel.js","sourceRoot":"","sources":["../src/funnel.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -24,7 +24,10 @@ export { KALEIDOSWAP_TOOLS, KALEIDOSWAP_SPEND_TOOLS, isKaleidoswapSpendTool, get
|
|
|
24
24
|
export type { KaleidoswapGroup, KaleidoswapToolDef, KaleidoswapHandler, BindKaleidoswapOptions, } from './kaleidoswap/contract.js';
|
|
25
25
|
export { LSPS1_TOOLS, LSPS1_SPEND_TOOLS, isLsps1SpendTool, getLsps1Tool, bindLsps1Tools, } from './lsps1/contract.js';
|
|
26
26
|
export type { Lsps1ToolDef, Lsps1Handler, BindLsps1Options, } from './lsps1/contract.js';
|
|
27
|
+
export { kaleidoswapPriceRecipe } from './recipe/kaleidoswap-price.js';
|
|
27
28
|
export { kaleidoswapAtomicRecipe } from './recipe/kaleidoswap-atomic.js';
|
|
29
|
+
export { kaleidoswapChannelOrderRecipe, extractChannelOrder, } from './recipe/kaleidoswap-channel-order.js';
|
|
30
|
+
export { buyAssetChannelRecipe, extractBuyAsset } from './recipe/buy-asset-channel.js';
|
|
28
31
|
export { runRecipe, extractSlots, RecipeRegistry } from './recipe/runner.js';
|
|
29
32
|
export type { RunRecipeOptions } from './recipe/runner.js';
|
|
30
33
|
export { paymentsRecipe, extractPayment } from './recipe/payments.js';
|
|
@@ -55,13 +58,13 @@ export { walletHistoryToDocuments, contactsToDocuments } from './knowledge/walle
|
|
|
55
58
|
export type { WalletTx, Contact } from './knowledge/wallet.js';
|
|
56
59
|
export { merchantsToDocuments } from './knowledge/merchants.js';
|
|
57
60
|
export type { Merchant } from './knowledge/merchants.js';
|
|
58
|
-
export { createBtcMapToolSource
|
|
61
|
+
export { createBtcMapToolSource } from './knowledge/btc-map.js';
|
|
59
62
|
export type { BtcMapToolOptions, BtcMapMerchant, BtcMapFetch, LocationProvider, LatLng, } from './knowledge/btc-map.js';
|
|
60
63
|
export { Engine } from './engine.js';
|
|
61
64
|
export type { EngineOptions, AgenticOptions, AgenticResult } from './engine.js';
|
|
62
65
|
export { Funnel, DEFAULT_WALLET_SYSTEM } from './funnel.js';
|
|
63
66
|
export type { FunnelOptions, FunnelSettings, FunnelCallbacks, FunnelResult } from './funnel.js';
|
|
64
|
-
export { SkillRegistry, parseSkill, keywordSelector, READ_REFERENCE_TOOL, } from './skills/registry.js';
|
|
67
|
+
export { SkillRegistry, parseSkill, keywordSelector, createEmbeddingSkillSelector, READ_REFERENCE_TOOL, } from './skills/registry.js';
|
|
65
68
|
export { createSkillReferenceToolSource } from './skills/reference-source.js';
|
|
66
69
|
export { skillsFromBundle } from './skills/bundle.js';
|
|
67
70
|
export type { SkillBundle, BundledSkill } from './skills/bundle.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE/E,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGnF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,8 +18,15 @@ export { confirmReadback } from './wallet/confirm.js';
|
|
|
18
18
|
export { KALEIDOSWAP_TOOLS, KALEIDOSWAP_SPEND_TOOLS, isKaleidoswapSpendTool, getKaleidoswapTool, kaleidoswapTools, bindKaleidoswapTools, } from './kaleidoswap/contract.js';
|
|
19
19
|
// ── LSPS1 (Lightning Service Provider channel orders) ───────────────────────
|
|
20
20
|
export { LSPS1_TOOLS, LSPS1_SPEND_TOOLS, isLsps1SpendTool, getLsps1Tool, bindLsps1Tools, } from './lsps1/contract.js';
|
|
21
|
-
// ── KaleidoSwap
|
|
21
|
+
// ── KaleidoSwap recipes (opt-in — register via Funnel.recipes) ──
|
|
22
|
+
// price recipe is read-only (quote-only); atomic recipe runs the full swap.
|
|
23
|
+
// Register the price recipe FIRST so phrasings like "BTC price" are answered
|
|
24
|
+
// without firing any spend.
|
|
25
|
+
export { kaleidoswapPriceRecipe } from './recipe/kaleidoswap-price.js';
|
|
22
26
|
export { kaleidoswapAtomicRecipe } from './recipe/kaleidoswap-atomic.js';
|
|
27
|
+
export { kaleidoswapChannelOrderRecipe, extractChannelOrder, } from './recipe/kaleidoswap-channel-order.js';
|
|
28
|
+
// ── Buy-an-asset-channel recipe (opt-in — register via Funnel.recipes) ─────
|
|
29
|
+
export { buyAssetChannelRecipe, extractBuyAsset } from './recipe/buy-asset-channel.js';
|
|
23
30
|
// ── Recipes (mobile multi-step: "recipes, not planning") ───────────────────
|
|
24
31
|
export { runRecipe, extractSlots, RecipeRegistry } from './recipe/runner.js';
|
|
25
32
|
export { paymentsRecipe, extractPayment } from './recipe/payments.js';
|
|
@@ -43,11 +50,11 @@ export { capabilityProfile } from './capabilities.js';
|
|
|
43
50
|
export { BITCOIN_COPILOT_DOCS } from './knowledge/bitcoin-copilot.js';
|
|
44
51
|
export { walletHistoryToDocuments, contactsToDocuments } from './knowledge/wallet.js';
|
|
45
52
|
export { merchantsToDocuments } from './knowledge/merchants.js';
|
|
46
|
-
export { createBtcMapToolSource
|
|
53
|
+
export { createBtcMapToolSource } from './knowledge/btc-map.js';
|
|
47
54
|
export { Engine } from './engine.js';
|
|
48
55
|
// ── Funnel (T0 fast-path → T2 recipe → T1 agentic — the tiered agent) ───────
|
|
49
56
|
export { Funnel, DEFAULT_WALLET_SYSTEM } from './funnel.js';
|
|
50
|
-
export { SkillRegistry, parseSkill, keywordSelector, READ_REFERENCE_TOOL, } from './skills/registry.js';
|
|
57
|
+
export { SkillRegistry, parseSkill, keywordSelector, createEmbeddingSkillSelector, READ_REFERENCE_TOOL, } from './skills/registry.js';
|
|
51
58
|
export { createSkillReferenceToolSource } from './skills/reference-source.js';
|
|
52
59
|
export { skillsFromBundle } from './skills/bundle.js';
|
|
53
60
|
export { TurnLogger, defaultMask } from './logger.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhE,8EAA8E;AAC9E,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,+EAA+E;AAC/E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAQnC,+EAA+E;AAC/E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC;AAO7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhE,8EAA8E;AAC9E,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,+EAA+E;AAC/E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAQnC,+EAA+E;AAC/E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC;AAO7B,mEAAmE;AACnE,4EAA4E;AAC5E,6EAA6E;AAC7E,4BAA4B;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAE/C,8EAA8E;AAC9E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEvF,8EAA8E;AAC9E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG3E,8EAA8E;AAC9E,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGvE,4EAA4E;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAY1D,4EAA4E;AAC5E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAWpD,8EAA8E;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,8EAA8E;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAShE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,+EAA+E;AAC/E,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EACL,aAAa,EACb,UAAU,EACV,eAAe,EACf,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -9,8 +9,8 @@
|
|
|
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
|
|
13
|
-
* so a host can expose a read-only subset for sandbox/eval modes.
|
|
12
|
+
* model comparison is honest. Tools are grouped (`market`, `orders`, `atomic`,
|
|
13
|
+
* `liquidity`) so a host can expose a read-only subset for sandbox/eval modes.
|
|
14
14
|
*
|
|
15
15
|
* Spend tools (place an order, init/execute an atomic swap) carry
|
|
16
16
|
* `spend: true` → `requiresConfirmation: true`, so the Engine always pauses
|
|
@@ -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';
|
|
24
|
+
export type KaleidoswapGroup = 'market' | 'orders' | 'atomic' | 'liquidity';
|
|
25
25
|
export interface KaleidoswapToolDef extends ToolDef {
|
|
26
26
|
/** Functional group — lets a host expose a subset. */
|
|
27
27
|
group: KaleidoswapGroup;
|
|
@@ -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,CAAC;
|
|
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"}
|
|
@@ -9,8 +9,8 @@
|
|
|
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
|
|
13
|
-
* so a host can expose a read-only subset for sandbox/eval modes.
|
|
12
|
+
* model comparison is honest. Tools are grouped (`market`, `orders`, `atomic`,
|
|
13
|
+
* `liquidity`) so a host can expose a read-only subset for sandbox/eval modes.
|
|
14
14
|
*
|
|
15
15
|
* Spend tools (place an order, init/execute an atomic swap) carry
|
|
16
16
|
* `spend: true` → `requiresConfirmation: true`, so the Engine always pauses
|
|
@@ -46,12 +46,13 @@ export const KALEIDOSWAP_TOOLS = [
|
|
|
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
48
|
// ─── orders (orderbook / market-order flow) ─────────────────────────────
|
|
49
|
-
t('orders', 'kaleidoswap_place_order', 'Place an order using an executable quote. Returns
|
|
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
50
|
quote_id: { type: 'string', description: 'The quote id returned by kaleidoswap_get_quote (must still be valid).' },
|
|
51
51
|
}, ['quote_id'],
|
|
52
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.', {
|
|
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
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.' },
|
|
55
56
|
}, ['order_id']),
|
|
56
57
|
t('orders', 'kaleidoswap_get_order_history', "Get the user's recent KaleidoSwap orders for context (last N, paginated). Read-only.", {
|
|
57
58
|
limit: { type: 'number', description: 'Max rows (default 20, max 100).' },
|
|
@@ -70,6 +71,17 @@ export const KALEIDOSWAP_TOOLS = [
|
|
|
70
71
|
t('atomic', 'kaleidoswap_atomic_status', 'Poll the status of an atomic swap — pending_payment / paid / settling / completed / failed / expired. Use this in a loop after execute until it terminates.', {
|
|
71
72
|
atomic_id: { type: 'string', description: 'The atomic id from kaleidoswap_atomic_init.' },
|
|
72
73
|
}, ['atomic_id']),
|
|
74
|
+
// ─── liquidity (buy a NEW channel pre-loaded with an asset — onboarding) ──
|
|
75
|
+
t('liquidity', 'kaleidoswap_lsp_quote_asset_channel', 'Quote buying a NEW Lightning channel pre-loaded with an RGB asset (e.g. USDT, XAUT) from the maker LSP. This is the onboarding path for a user who has on-chain BTC but no channel yet and wants to hold an asset — they pay once to receive a channel that already holds the asset. Read-only: returns an rfq_id, the BTC price in sats, the channel/setup fee, the total to pay, and when the quote expires. Re-quote rather than reusing a stale rfq_id.', {
|
|
76
|
+
asset: { type: 'string', description: 'RGB asset to receive in the channel, e.g. "USDT" or "XAUT".' },
|
|
77
|
+
asset_amount: { type: 'number', description: 'How much of the asset to load into the channel, in the asset’s display units (e.g. 100 for 100 USDT).' },
|
|
78
|
+
}, ['asset', 'asset_amount']),
|
|
79
|
+
t('liquidity', 'kaleidoswap_lsp_create_asset_channel', 'Order a new Lightning channel pre-loaded with an RGB asset from the maker LSP, using a fresh rfq_id from kaleidoswap_lsp_quote_asset_channel. SPEND: confirmation-gated. Returns an order id and the payment (on-chain address or Lightning invoice) the user pays to open the channel; the channel opens only after the payment confirms. Poll kaleidoswap_lsp_get_order to track it.', {
|
|
80
|
+
asset: { type: 'string', description: 'RGB asset to receive (must match the quote).' },
|
|
81
|
+
asset_amount: { type: 'number', description: 'Asset amount in display units (must match the quote).' },
|
|
82
|
+
rfq_id: { type: 'string', description: 'The rfq_id from kaleidoswap_lsp_quote_asset_channel (must still be valid).' },
|
|
83
|
+
}, ['asset', 'asset_amount', 'rfq_id'],
|
|
84
|
+
/* spend */ true),
|
|
73
85
|
];
|
|
74
86
|
/** All tool names that move funds (confirmation-gated). */
|
|
75
87
|
export const KALEIDOSWAP_SPEND_TOOLS = new Set(KALEIDOSWAP_TOOLS.filter((t) => t.spend).map((t) => t.name));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/kaleidoswap/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAe7D,SAAS,CAAC,CACR,KAAuB,EACvB,IAAY,EACZ,WAAmB,EACnB,aAAoB,EAAE,EACtB,WAAqB,EAAE,EACvB,KAAK,GAAG,KAAK;IAEb,OAAO;QACL,KAAK;QACL,IAAI;QACJ,WAAW;QACX,KAAK;QACL,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE;KACrD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAyB;IACrD,0EAA0E;IAC1E,CAAC,CAAC,QAAQ,EACR,wBAAwB,EACxB,2KAA2K,CAAC;IAE9K,CAAC,CAAC,QAAQ,EACR,uBAAuB,EACvB,4LAA4L,CAAC;IAE/L,CAAC,CAAC,QAAQ,EACR,uBAAuB,EACvB,6PAA6P,EAC7P;QACE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;QACpF,QAAQ,EAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;QACtF,MAAM,EAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iGAAiG,EAAE;QAC9I,IAAI,EAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,2HAA2H,EAAE;KAChM,EACD,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEvC,CAAC,CAAC,QAAQ,EACR,0BAA0B,EAC1B,uKAAuK,CAAC;IAE1K,2EAA2E;IAC3E,CAAC,CAAC,QAAQ,EACR,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/kaleidoswap/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitcoin-copilot.d.ts","sourceRoot":"","sources":["../../src/knowledge/bitcoin-copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,oBAAoB,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"bitcoin-copilot.d.ts","sourceRoot":"","sources":["../../src/knowledge/bitcoin-copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,oBAAoB,EAAE,WAAW,EAoR7C,CAAC"}
|
|
@@ -151,5 +151,107 @@ export const BITCOIN_COPILOT_DOCS = [
|
|
|
151
151
|
'accumulate BTC or an asset over time without timing the market.',
|
|
152
152
|
metadata: { topic: 'trading' },
|
|
153
153
|
},
|
|
154
|
+
{
|
|
155
|
+
id: 'spend-vs-receive-capacity',
|
|
156
|
+
text: 'Two completely different numbers, often confused: your SPEND capacity ' +
|
|
157
|
+
'(outbound, local balance — what you can send right now) and your ' +
|
|
158
|
+
'RECEIVE capacity (inbound, remote balance — what others can pay you ' +
|
|
159
|
+
'without opening a new channel). Knowing local_balance does NOT tell ' +
|
|
160
|
+
'you receive capacity, and vice versa. "How much can I spend?" → local ' +
|
|
161
|
+
'balance. "How much can I receive?" → inbound, derived from channels ' +
|
|
162
|
+
'or bought from an LSP.',
|
|
163
|
+
metadata: { topic: 'liquidity' },
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: 'nodeinfo-fields',
|
|
167
|
+
text: 'Common RGB Lightning Node fields and what they actually mean: pubkey ' +
|
|
168
|
+
'(your node identity); num_channels (total channels, including unusable ' +
|
|
169
|
+
'ones); num_usable_channels (subset that can route — what you spend ' +
|
|
170
|
+
'with); local_balance_sat (sats YOU own across all channels — your ' +
|
|
171
|
+
'spend / outbound capacity); pending_outbound_payments_sat (in-flight, ' +
|
|
172
|
+
'temporarily locked); eventual_close_fees_sat (cost if you close every ' +
|
|
173
|
+
'channel now); num_peers (connected peers). local_balance_sat is NOT ' +
|
|
174
|
+
'receive capacity and NOT total channel capacity.',
|
|
175
|
+
metadata: { topic: 'lightning' },
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
id: 'channel-two-sided',
|
|
179
|
+
text: 'Every Lightning channel has TWO balances: your side (local — what you ' +
|
|
180
|
+
'can spend) and the peer\'s side (remote — what they can spend, which ' +
|
|
181
|
+
'is what YOU can receive). Total channel capacity = local + remote and ' +
|
|
182
|
+
'is fixed at open time. Routing a payment moves sats from one side to ' +
|
|
183
|
+
'the other; it does NOT change total capacity. So if you "have 2 ' +
|
|
184
|
+
'channels with 1,000,000 sats total capacity", that does NOT mean you ' +
|
|
185
|
+
'can spend 1M and receive 1M — only the split tells you.',
|
|
186
|
+
metadata: { topic: 'channels' },
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: 'lsp-info-meaning',
|
|
190
|
+
text: 'The LSPS1 `get_info` endpoint returns the LSP\'s OFFER (min/max ' +
|
|
191
|
+
'channel size you can buy, fees, accepted payment options). It is NOT ' +
|
|
192
|
+
'your current inbound capacity — it describes what the LSP is willing ' +
|
|
193
|
+
'to sell you. To learn your CURRENT receive capacity, sum the remote ' +
|
|
194
|
+
'balance of your existing channels; to BUY MORE, use lsp_get_info and ' +
|
|
195
|
+
'lsp_create_order.',
|
|
196
|
+
metadata: { topic: 'channels' },
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
id: 'asset-channels',
|
|
200
|
+
text: 'RGB asset channels (colored channels) carry one specific asset like ' +
|
|
201
|
+
'USDT or XAUT alongside the BTC funding. Asset capacity is SEPARATE per ' +
|
|
202
|
+
'asset — having 100,000 sats spendable in BTC channels does not give ' +
|
|
203
|
+
'you USDT spendable; you need a USDT channel (or buy one via LSPS1). ' +
|
|
204
|
+
'Likewise, USDT inbound and BTC inbound are independent numbers.',
|
|
205
|
+
metadata: { topic: 'rgb' },
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
id: 'swap-vs-payment',
|
|
209
|
+
text: 'Swap and payment are different actions. A SWAP trades one asset for ' +
|
|
210
|
+
'another via the KaleidoSwap maker (quote → init → execute). A PAYMENT ' +
|
|
211
|
+
'moves an existing balance to a recipient over Lightning or on-chain ' +
|
|
212
|
+
'(no maker). "Send 10 USDT to Alice" is a payment; "swap 10 USDT to ' +
|
|
213
|
+
'BTC" is a swap. They use different tools, different fees, and a swap ' +
|
|
214
|
+
'is always between two assets the maker prices.',
|
|
215
|
+
metadata: { topic: 'usage' },
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: 'asset-channel-prereq',
|
|
219
|
+
text: 'Why you must buy a channel BEFORE swapping an RGB asset. An RGB ' +
|
|
220
|
+
'Lightning swap moves an asset (USDT, XAUT, …) across a channel that ' +
|
|
221
|
+
'already carries that asset. If you have no USDT channel, the maker ' +
|
|
222
|
+
'cannot pay you USDT over Lightning — there is no rail to push it ' +
|
|
223
|
+
"down. Open a USDT channel from the LSP first (LSPS1 with `asset_id`, " +
|
|
224
|
+
'`lsp_asset_amount`) — the LSP funds the asset on their side, you get ' +
|
|
225
|
+
'inbound USDT capacity, and afterwards a BTC→USDT swap can settle into ' +
|
|
226
|
+
'that channel. Same for XAUT or any other RGB asset. You need ONE ' +
|
|
227
|
+
'channel per asset you want to receive over Lightning.',
|
|
228
|
+
metadata: { topic: 'rgb-channels' },
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
id: 'asset-channel-buy',
|
|
232
|
+
text: "Buying a channel that already has an asset inside. Use LSPS1 with " +
|
|
233
|
+
"`asset_id` to ask the LSP to open a channel that's pre-funded on the " +
|
|
234
|
+
"LSP side with a specific RGB asset. `lsp_asset_amount` is the asset " +
|
|
235
|
+
"units the LSP commits on their side (your future inbound capacity " +
|
|
236
|
+
"in that asset). `lsp_balance_sat` is the sats the LSP commits for " +
|
|
237
|
+
"fees/anchor; `client_balance_sat` is what you push in sats. Common " +
|
|
238
|
+
"shape: lsp_balance_sat 5_000_000, client_balance_sat 100_000, " +
|
|
239
|
+
"asset_id <USDT id>, lsp_asset_amount 100_000_000 micro-USDT (= 100 " +
|
|
240
|
+
"USDT). Pay the resulting Lightning invoice and the channel opens " +
|
|
241
|
+
"with the asset pre-loaded.",
|
|
242
|
+
metadata: { topic: 'rgb-channels' },
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
id: 'asset-channel-with-push',
|
|
246
|
+
text: "Receiving an asset balance ON your side at channel open. Beyond the " +
|
|
247
|
+
"LSP-funded asset, you can request the LSP push some asset balance to " +
|
|
248
|
+
"YOUR side during the open via `client_asset_amount`. This costs sats " +
|
|
249
|
+
"(BTC → asset at the maker rate), so the maker requires a fresh " +
|
|
250
|
+
"`rfq_id` from `kaleidoswap_get_quote(BTC → asset)` to lock the " +
|
|
251
|
+
"price. The order then charges the BTC equivalent on top of the " +
|
|
252
|
+
"channel fee. Use when you want spendable asset balance immediately " +
|
|
253
|
+
"(not just inbound capacity).",
|
|
254
|
+
metadata: { topic: 'rgb-channels' },
|
|
255
|
+
},
|
|
154
256
|
];
|
|
155
257
|
//# sourceMappingURL=bitcoin-copilot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitcoin-copilot.js","sourceRoot":"","sources":["../../src/knowledge/bitcoin-copilot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bitcoin-copilot.js","sourceRoot":"","sources":["../../src/knowledge/bitcoin-copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* BTC Map tool source — exposes `find_merchant_locations`
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* BTC Map tool source — exposes `find_merchant_locations` so the agent can
|
|
3
|
+
* answer "where can I spend Bitcoin near me?" using the SAME tool name on
|
|
4
|
+
* every surface.
|
|
5
5
|
*
|
|
6
6
|
* - mobile → injects device GPS + a live BTC Map fetch
|
|
7
7
|
* - desktop → injects a live fetch (or a server-side cache)
|
|
8
|
-
* - eval / playground → no injection, falls back to the bundled offline list
|
|
9
8
|
*
|
|
10
9
|
* Pure data + orchestration — NO network in core. The host injects the
|
|
11
|
-
* `location` resolver and the `fetch` adapter
|
|
12
|
-
*
|
|
10
|
+
* `location` resolver and the `fetch` adapter. Without them the tool returns
|
|
11
|
+
* a clear error: there is NO offline / sample fallback (intentional — fake
|
|
12
|
+
* data is worse than a clean failure that tells the user what's wrong).
|
|
13
13
|
*
|
|
14
14
|
* The result shape mirrors what rate's host returns today, so a mobile host
|
|
15
15
|
* can swap its bespoke merchant tools for this factory verbatim.
|
|
@@ -27,8 +27,9 @@ export interface LatLng {
|
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Host-injected location resolver. Core is platform-agnostic — RN has GPS,
|
|
30
|
-
* Node typically doesn't. When
|
|
31
|
-
*
|
|
30
|
+
* Node typically doesn't. When the host can't resolve a location (no GPS, no
|
|
31
|
+
* geocoder, or `near_address` won't geocode), the tool returns a clean
|
|
32
|
+
* `success:false` error instead of falling back to fake data.
|
|
32
33
|
*/
|
|
33
34
|
export interface LocationProvider {
|
|
34
35
|
/** Resolve "near me" — the device location, or null if unavailable. */
|
|
@@ -65,23 +66,19 @@ export interface BtcMapToolOptions {
|
|
|
65
66
|
location?: LocationProvider;
|
|
66
67
|
/** Hit a live BTC Map (or your own cache). Host-injected — no network in core. */
|
|
67
68
|
fetch?: BtcMapFetch;
|
|
68
|
-
/** Offline list used when no location/fetch is available. Defaults to BTC_MAP_SAMPLE. */
|
|
69
|
-
offlineMerchants?: Merchant[];
|
|
70
69
|
/** Default for `limit` when the caller doesn't set one. Default 10. */
|
|
71
70
|
k?: number;
|
|
72
71
|
}
|
|
73
|
-
/** A tiny, hand-curated sample so the skill works offline out of the box. */
|
|
74
|
-
export declare const BTC_MAP_SAMPLE: Merchant[];
|
|
75
72
|
/**
|
|
76
|
-
* Build a ToolSource exposing `find_merchant_locations
|
|
73
|
+
* Build a ToolSource exposing `find_merchant_locations`.
|
|
77
74
|
*
|
|
78
|
-
* Resolution order
|
|
75
|
+
* Resolution order:
|
|
79
76
|
* 1. `near_address` provided → opts.location.geocode → opts.fetch (live)
|
|
80
77
|
* 2. opts.location.getCurrent → opts.fetch (live)
|
|
81
|
-
* 3. fall through to offline substring search over opts.offlineMerchants
|
|
82
78
|
*
|
|
83
|
-
* Any step that fails
|
|
84
|
-
*
|
|
79
|
+
* Any step that fails returns `{success:false, error}` with a message that
|
|
80
|
+
* tells the user (and the model) what's actually wrong — no fake-data
|
|
81
|
+
* fallback. Either we have a real merchant list or we say we don't.
|
|
85
82
|
*/
|
|
86
83
|
export declare function createBtcMapToolSource(opts?: BtcMapToolOptions): ToolSource;
|
|
87
84
|
//# sourceMappingURL=btc-map.d.ts.map
|