@kaleidorg/mind 0.8.1 → 0.10.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 (133) hide show
  1. package/README.md +7 -5
  2. package/dist/bitrefill/index.d.ts +4 -0
  3. package/dist/bitrefill/index.d.ts.map +1 -0
  4. package/dist/bitrefill/index.js +3 -0
  5. package/dist/bitrefill/index.js.map +1 -0
  6. package/dist/capabilities.d.ts +3 -3
  7. package/dist/capabilities.d.ts.map +1 -1
  8. package/dist/capabilities.js +4 -4
  9. package/dist/capabilities.js.map +1 -1
  10. package/dist/engine/answer.d.ts +37 -0
  11. package/dist/engine/answer.d.ts.map +1 -0
  12. package/dist/engine/answer.js +35 -0
  13. package/dist/engine/answer.js.map +1 -0
  14. package/dist/engine.d.ts +9 -3
  15. package/dist/engine.d.ts.map +1 -1
  16. package/dist/engine.js +159 -175
  17. package/dist/engine.js.map +1 -1
  18. package/dist/evidence.d.ts +1 -1
  19. package/dist/evidence.d.ts.map +1 -1
  20. package/dist/flashnet/index.d.ts +5 -0
  21. package/dist/flashnet/index.d.ts.map +1 -0
  22. package/dist/flashnet/index.js +4 -0
  23. package/dist/flashnet/index.js.map +1 -0
  24. package/dist/guards.d.ts.map +1 -1
  25. package/dist/guards.js +20 -0
  26. package/dist/guards.js.map +1 -1
  27. package/dist/index.d.ts +7 -24
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +11 -28
  30. package/dist/index.js.map +1 -1
  31. package/dist/kaleidoswap/contract.d.ts +7 -0
  32. package/dist/kaleidoswap/contract.d.ts.map +1 -1
  33. package/dist/kaleidoswap/contract.js +71 -17
  34. package/dist/kaleidoswap/contract.js.map +1 -1
  35. package/dist/kaleidoswap/index.d.ts +8 -0
  36. package/dist/kaleidoswap/index.d.ts.map +1 -0
  37. package/dist/kaleidoswap/index.js +7 -0
  38. package/dist/kaleidoswap/index.js.map +1 -0
  39. package/dist/knowledge/index.d.ts +9 -0
  40. package/dist/knowledge/index.d.ts.map +1 -0
  41. package/dist/knowledge/index.js +6 -0
  42. package/dist/knowledge/index.js.map +1 -0
  43. package/dist/lsps1/index.d.ts +4 -0
  44. package/dist/lsps1/index.d.ts.map +1 -0
  45. package/dist/lsps1/index.js +3 -0
  46. package/dist/lsps1/index.js.map +1 -0
  47. package/dist/providers/types.d.ts +3 -3
  48. package/dist/providers/types.js +3 -3
  49. package/dist/qvac/index.d.ts +0 -1
  50. package/dist/qvac/index.d.ts.map +1 -1
  51. package/dist/qvac/index.js +0 -1
  52. package/dist/qvac/index.js.map +1 -1
  53. package/dist/qvac/provider.d.ts +9 -9
  54. package/dist/qvac/provider.d.ts.map +1 -1
  55. package/dist/qvac/provider.js +115 -109
  56. package/dist/qvac/provider.js.map +1 -1
  57. package/dist/qvac/stream.d.ts +4 -3
  58. package/dist/qvac/stream.d.ts.map +1 -1
  59. package/dist/qvac/stream.js.map +1 -1
  60. package/dist/qvac/voice.d.ts +1 -1
  61. package/dist/recipe/asset-send.js +1 -1
  62. package/dist/recipe/asset-send.js.map +1 -1
  63. package/dist/submarine/index.d.ts +5 -0
  64. package/dist/submarine/index.d.ts.map +1 -0
  65. package/dist/submarine/index.js +4 -0
  66. package/dist/submarine/index.js.map +1 -0
  67. package/dist/testing/mock-wallet.d.ts.map +1 -1
  68. package/dist/testing/mock-wallet.js +6 -0
  69. package/dist/testing/mock-wallet.js.map +1 -1
  70. package/dist/tools/in-process.d.ts +2 -2
  71. package/dist/tools/in-process.js +2 -2
  72. package/dist/wallet/contract.d.ts +5 -0
  73. package/dist/wallet/contract.d.ts.map +1 -1
  74. package/dist/wallet/contract.js +39 -6
  75. package/dist/wallet/contract.js.map +1 -1
  76. package/package.json +32 -2
  77. package/scripts/snapshot-mcp-tools.mjs +38 -0
  78. package/skills/README.md +98 -64
  79. package/skills/bitrefill/SKILL.md +30 -157
  80. package/skills/channel-manager/SKILL.md +31 -52
  81. package/skills/flashnet-swaps/SKILL.md +24 -150
  82. package/skills/kaleido-node/SKILL.md +25 -55
  83. package/skills/kaleido-trading/SKILL.md +28 -172
  84. package/skills/kaleido-trading/references/assets.md +4 -4
  85. package/skills/kaleido-trading/references/atomic.md +5 -7
  86. package/skills/merchant-finder/SKILL.md +25 -108
  87. package/skills/paid-data/SKILL.md +25 -58
  88. package/skills/portfolio-manager/SKILL.md +26 -60
  89. package/skills/rgb-lightning-node/SKILL.md +37 -255
  90. package/skills/rgb-lightning-node/references/channels.md +34 -0
  91. package/skills/spark-wallet/SKILL.md +26 -228
  92. package/skills/submarine-swaps/SKILL.md +19 -37
  93. package/skills/wallet-assistant/SKILL.md +26 -44
  94. package/src/bitrefill/index.ts +13 -0
  95. package/src/capabilities.ts +7 -7
  96. package/src/context/context.test.ts +2 -2
  97. package/src/engine/answer.ts +66 -0
  98. package/src/engine.ts +185 -194
  99. package/src/evidence.ts +1 -1
  100. package/src/flashnet/index.ts +14 -0
  101. package/src/funnel.mind.test.ts +6 -5
  102. package/src/guards.test.ts +12 -0
  103. package/src/guards.ts +20 -0
  104. package/src/index.ts +11 -107
  105. package/src/kaleidoswap/contract.test.ts +32 -3
  106. package/src/kaleidoswap/contract.ts +65 -17
  107. package/src/kaleidoswap/index.ts +20 -0
  108. package/src/knowledge/index.ts +14 -0
  109. package/src/lsps1/index.ts +13 -0
  110. package/src/providers/types.ts +3 -3
  111. package/src/qvac/index.ts +0 -8
  112. package/src/qvac/provider.test.ts +17 -17
  113. package/src/qvac/provider.ts +33 -31
  114. package/src/qvac/stream.ts +4 -3
  115. package/src/qvac/voice.ts +1 -1
  116. package/src/recipe/asset-send.ts +1 -1
  117. package/src/recipe/recipe.test.ts +1 -1
  118. package/src/skills/catalog.test.ts +215 -0
  119. package/src/skills/mcp-tools.snapshot.json +1938 -0
  120. package/src/submarine/index.ts +17 -0
  121. package/src/testing/mock-wallet.ts +6 -0
  122. package/src/tools/in-process.ts +2 -2
  123. package/src/wallet/contract.test.ts +20 -1
  124. package/src/wallet/contract.ts +36 -6
  125. package/dist/qvac/delegate.d.ts +0 -50
  126. package/dist/qvac/delegate.d.ts.map +0 -1
  127. package/dist/qvac/delegate.js +0 -53
  128. package/dist/qvac/delegate.js.map +0 -1
  129. package/skills/dca/SKILL.md +0 -48
  130. package/skills/kaleido-lsps/SKILL.md +0 -131
  131. package/skills/liquidity-optimizer/SKILL.md +0 -91
  132. package/src/qvac/delegate.test.ts +0 -68
  133. package/src/qvac/delegate.ts +0 -73
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/wallet/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/wallet/contract.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.8.1",
3
+ "version": "0.10.0",
4
4
  "description": "Local-first reasoning + function-calling engine for KaleidoSwap. QVAC-powered.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -45,6 +45,36 @@
45
45
  "import": "./dist/providers/openai.js",
46
46
  "default": "./dist/providers/openai.js"
47
47
  },
48
+ "./kaleidoswap": {
49
+ "types": "./dist/kaleidoswap/index.d.ts",
50
+ "import": "./dist/kaleidoswap/index.js",
51
+ "default": "./dist/kaleidoswap/index.js"
52
+ },
53
+ "./lsps1": {
54
+ "types": "./dist/lsps1/index.d.ts",
55
+ "import": "./dist/lsps1/index.js",
56
+ "default": "./dist/lsps1/index.js"
57
+ },
58
+ "./submarine": {
59
+ "types": "./dist/submarine/index.d.ts",
60
+ "import": "./dist/submarine/index.js",
61
+ "default": "./dist/submarine/index.js"
62
+ },
63
+ "./bitrefill": {
64
+ "types": "./dist/bitrefill/index.d.ts",
65
+ "import": "./dist/bitrefill/index.js",
66
+ "default": "./dist/bitrefill/index.js"
67
+ },
68
+ "./flashnet": {
69
+ "types": "./dist/flashnet/index.d.ts",
70
+ "import": "./dist/flashnet/index.js",
71
+ "default": "./dist/flashnet/index.js"
72
+ },
73
+ "./knowledge": {
74
+ "types": "./dist/knowledge/index.d.ts",
75
+ "import": "./dist/knowledge/index.js",
76
+ "default": "./dist/knowledge/index.js"
77
+ },
48
78
  "./testing": {
49
79
  "types": "./dist/testing/index.d.ts",
50
80
  "import": "./dist/testing/index.js",
@@ -68,7 +98,7 @@
68
98
  "bundle-skills": "node scripts/bundle-skills.mjs"
69
99
  },
70
100
  "peerDependencies": {
71
- "@qvac/sdk": ">=0.13.1"
101
+ "@qvac/sdk": ">=0.20.0"
72
102
  },
73
103
  "peerDependenciesMeta": {
74
104
  "@qvac/sdk": {
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ // Refresh src/skills/mcp-tools.snapshot.json from a built kaleido-mcp checkout.
3
+ //
4
+ // git clone https://github.com/kaleidoswap/kaleido-mcp && (cd kaleido-mcp && npm ci && npm run build)
5
+ // node packages/core/scripts/snapshot-mcp-tools.mjs ../kaleido-mcp
6
+ //
7
+ // Boots kaleido-mcp over stdio with a throwaway test seed (so wallet tools
8
+ // register), lists every tool and stores its name, required args and argument
9
+ // schema. The skills test checks every skill against this file.
10
+ import { readFile, writeFile } from 'node:fs/promises'
11
+ import { resolve } from 'node:path'
12
+ import { pathToFileURL } from 'node:url'
13
+
14
+ const mcpDir = resolve(process.argv[2] ?? '../kaleido-mcp')
15
+ const out = new URL('../src/skills/mcp-tools.snapshot.json', import.meta.url)
16
+ const TEST_MNEMONIC = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'
17
+
18
+ const { listTools } = await import(pathToFileURL(resolve(mcpDir, 'tests/mcp-contract-test-utils.mjs')).href)
19
+ const { version } = JSON.parse(await readFile(resolve(mcpDir, 'package.json'), 'utf8'))
20
+ const listed = await listTools({
21
+ cwd: mcpDir,
22
+ env: { WDK_SEED: TEST_MNEMONIC, LIQUID_MNEMONIC: TEST_MNEMONIC, SPARK_NETWORK: 'REGTEST' },
23
+ })
24
+
25
+ const firstLine = (s) => String(s ?? '').split(/\n/)[0].trim()
26
+ const tools = {}
27
+ for (const t of [...listed].sort((a, b) => a.name.localeCompare(b.name))) {
28
+ const props = t.inputSchema?.properties ?? {}
29
+ tools[t.name] = {
30
+ required: t.inputSchema?.required ?? [],
31
+ properties: Object.fromEntries(
32
+ Object.entries(props).map(([k, v]) => [k, { type: v.type ?? 'any', description: firstLine(v.description) }]),
33
+ ),
34
+ }
35
+ }
36
+
37
+ await writeFile(out, `${JSON.stringify({ source: 'kaleido-mcp', version, tools }, null, 2)}\n`)
38
+ process.stdout.write(`mcp-tools.snapshot.json: ${Object.keys(tools).length} tools from kaleido-mcp ${version}\n`)
package/skills/README.md CHANGED
@@ -1,83 +1,117 @@
1
1
  # Skills
2
2
 
3
- Claude-style **Agent Skills** the KaleidoMind brain (QVAC) loads at runtime.
4
- Skills are the top layer of tool use: entering one injects a focused playbook
5
- into the system prompt and (optionally) scopes the model to a subset of tools —
6
- *progressive disclosure*, so a small local model never sees every tool or
7
- instruction at once.
3
+ Agent Skills the `@kaleidorg/mind` engine loads at runtime (Anthropic Agent
4
+ Skills format, so the same folders also work as Claude Code skills). For each
5
+ query the engine picks one skill, appends its body to the system prompt and
6
+ limits the model to that skill's tools. Long reference material lives in
7
+ `references/*.md` and is read on demand with the `read_skill_reference` tool.
8
8
 
9
- Each subfolder is a skill: a `SKILL.md` (YAML frontmatter + playbook) plus
10
- optional `references/*.md` files loaded on demand. The format is the Anthropic
11
- Agent Skills spec, so skills published for Claude (e.g. `bitrefill/agents`) run
12
- the QVAC brain unchanged.
9
+ ## Shipped skills
10
+
11
+ | Skill | Use | Tools from |
12
+ |---|---|---|
13
+ | `rgb-lightning-node` | RGB holdings, issuance, RGB/Lightning invoices, sends | kaleido-mcp or in-app |
14
+ | `kaleido-trading` | KaleidoSwap quotes and atomic swaps | kaleido-mcp or in-app |
15
+ | `kaleido-node` | Start, stop, init and unlock the node | kaleido-mcp |
16
+ | `channel-manager` | Channels, liquidity, LSP channel orders, heartbeat | kaleido-mcp |
17
+ | `portfolio-manager` | Allocation, rebalancing, DCA | kaleido-mcp or in-app |
18
+ | `submarine-swaps` | Pay Lightning from Liquid (L-USDT, L-BTC) | kaleido-mcp or in-app |
19
+ | `paid-data` | L402 / MPP paywalled APIs | kaleido-mcp or in-app |
20
+ | `wallet-assistant` | In-app balances, receive, send, contacts | in-app |
21
+ | `spark-wallet` | In-app Spark wallet | in-app |
22
+ | `flashnet-swaps` | BTC ↔ Spark tokens on Flashnet | in-app |
23
+ | `merchant-finder` | Places that accept Bitcoin (BTC Map) | in-app |
24
+ | `bitrefill` | Gift cards, top-ups, eSIMs (adapted from [bitrefill/agents](https://github.com/bitrefill/agents), MIT) | in-app |
25
+
26
+ "in-app" tools come from the contracts in `src/` (`wallet/`, `kaleidoswap/`,
27
+ `submarine/`, `flashnet/`, `bitrefill/`, …). Where a tool exists both in-app
28
+ and in kaleido-mcp it takes the same arguments in the same units, so one
29
+ example fits both.
13
30
 
14
- ## Frontmatter
31
+ ## Writing a skill
15
32
 
16
- ```yaml
33
+ ```markdown
17
34
  ---
18
- name: my-skill # required — stable id
19
- description: When to use this… # required — selection signal (embed triggers here)
20
- tools: tool_a, tool_b # optional — scope the model to these tools
21
- triggers: foo, bar # optional — keywords that boost selection
22
- requires-tools: tool_a # optional — skip this skill unless ALL of these tools are live
23
- metadata: # optional — anything else (author, version, …)
24
- author: kaleidoswap
35
+ name: my-skill
36
+ description: "One sentence: what it does and when to use it. This drives selection."
37
+ tools: rln_list_assets, rln_send_asset
38
+ requires-tools: rln_list_assets
39
+ triggers: token, send token
25
40
  ---
26
- # Playbook
27
- Markdown instructions injected into the system prompt when this skill is active.
41
+ # My skill
42
+
43
+ One or two lines of context: units, where ids come from.
44
+
45
+ ## Do
46
+ - Short, factual rules about the API: which tool for which intent, which
47
+ argument comes from which earlier result, what is confirm-gated.
48
+
49
+ ## Examples
50
+ - "Send 5 SKT to rgb:…/utxob:abc" → `rln_list_assets {}` then `rln_send_asset {"asset_id":"<SKT asset_id>","recipient_id":"utxob:abc","amount":5}`
28
51
  ```
29
52
 
30
- ## Loading (same skills, every surface)
53
+ - `tools` — the only tools the model sees while the skill is active.
54
+ - `requires-tools` — the skill is skipped unless all of these are live. Use it
55
+ to keep a skill off hosts that can't run it (an in-app-only tool such as
56
+ `get_balances` keeps a skill in the app).
57
+ - `triggers` — keywords that boost selection; the description counts too.
58
+ - Examples are written as `` `tool_name {json}` `` with the exact argument names
59
+ and units of the tool schema; use `"<…>"` for values that come from an earlier
60
+ result. Keep the body under ~400 tokens and move detail to `references/`.
31
61
 
32
- **Node** (desktop sidecar, CLI, servers) — read folders from disk:
62
+ `src/skills/catalog.test.ts` checks every skill: each tool exists in the
63
+ in-app contracts or in kaleido-mcp, each example parses and uses valid argument
64
+ names (and values) on every surface that has the tool, and the body stays short.
65
+ Run it with `pnpm --filter @kaleidorg/mind test`.
33
66
 
34
- ```ts
35
- import { loadSkillsDir, packagedSkillsDir } from '@kaleidorg/mind/skills';
36
- import { SkillRegistry, createSkillReferenceToolSource } from '@kaleidorg/mind';
67
+ ## Integrate in 3 steps
37
68
 
38
- const skills = loadSkillsDir(packagedSkillsDir()); // these shipped skills
39
- const registry = new SkillRegistry(skills);
40
- const refSource = createSkillReferenceToolSource(registry); // read_skill_reference
41
- ```
69
+ 1. **Connect tools.** Start kaleido-mcp and wrap it as a tool source, and/or
70
+ bind your own handlers to a contract:
42
71
 
43
- **React Native** (rate) — no filesystem, so bundle the folders to JSON at build
44
- time and rehydrate:
72
+ ```ts
73
+ import { Engine, ToolRegistry, bindWalletTools } from '@kaleidorg/mind';
74
+ import { McpToolSource } from '@kaleidorg/mind/mcp';
45
75
 
46
- ```bash
47
- node node_modules/@kaleidorg/mind/scripts/bundle-skills.mjs \
48
- --out skills.bundle.json ./skills
49
- ```
50
- ```ts
51
- import { SkillRegistry, skillsFromBundle } from '@kaleidorg/mind';
52
- import bundle from './skills.bundle.json';
53
- const registry = new SkillRegistry(skillsFromBundle(bundle));
54
- ```
76
+ const mcp = new McpToolSource({ id: 'kaleido', transport: { kind: 'stdio', command: 'npx', args: ['-y', 'kaleido-mcp'] } });
77
+ await mcp.connect();
78
+ const engine = new Engine({ provider, tools: new ToolRegistry([mcp]) });
79
+ ```
55
80
 
56
- Then per query: `const skill = registry.select(query)` →
57
- `registry.compose(systemPrompt, skill)` → pass `{ system, allowedTools }` to
58
- `engine.runAgentic(...)`.
81
+ 2. **Load skills.** Node reads the folders; React Native ships a bundle:
59
82
 
60
- ## Adding a skill
83
+ ```ts
84
+ import { SkillRegistry } from '@kaleidorg/mind';
85
+ import { loadSkillsDir, packagedSkillsDir } from '@kaleidorg/mind/skills';
86
+ const skills = new SkillRegistry([...loadSkillsDir(packagedSkillsDir()), ...loadSkillsDir('./my-skills')]);
87
+ ```
61
88
 
62
- 1. Create `skills/<name>/SKILL.md` (and `references/*.md` if needed).
63
- 2. Node hosts pick it up automatically. For mobile, re-run the bundler.
64
- 3. That's it — no code changes. The selector routes to it by description/triggers.
89
+ ```bash
90
+ node node_modules/@kaleidorg/mind/scripts/bundle-skills.mjs --out skills.bundle.json \
91
+ node_modules/@kaleidorg/mind/skills/kaleido-trading ./skills
92
+ ```
65
93
 
66
- ## Shipped skills
94
+ 3. **Run a query.** `composeSkill` picks a skill that can act with the live
95
+ tools and returns the prompt and tool scope:
96
+
97
+ ```ts
98
+ const { system, allowedTools } = await engine.composeSkill(skills, question, basePrompt);
99
+ const res = await engine.runAgentic([{ role: 'system', content: system }, { role: 'user', content: question }], {
100
+ allowedTools,
101
+ onConfirm: async (call) => ({ approved: await askUser(call.summary) }),
102
+ });
103
+ ```
104
+
105
+ To expose the reference files, add `createSkillReferenceToolSource(skills)` to
106
+ the `ToolRegistry`.
67
107
 
68
- - **bitrefill/** — official Bitrefill agent skill (gift cards, mobile top-ups,
69
- eSIMs; pay in crypto / Lightning / USDC-x402 / balance). Capability-routes to
70
- the best channel; preferred purchase path is the Bitrefill remote MCP at
71
- `https://api.bitrefill.com/mcp` (needs `BITREFILL_API_KEY` — anonymous = 401).
72
- Source: https://github.com/bitrefill/agents (MIT). Update with
73
- `npx skills add bitrefill/agents` or re-vendor the folder.
74
- - **wallet-assistant/** — everyday wallet tasks (balance, receive, send, pay,
75
- price, fiat→sats, resolve a contact). Resolves to host-bound `wallet/contract.ts`
76
- tools (in-process WDK on mobile, MCP on desktop).
77
- - **merchant-finder/** — find Bitcoin-accepting merchants via BTC Map. Live
78
- data when the host injects a fetch + location; bundled offline list otherwise.
79
- Intentionally model-leveraging (updated playbook + pluggable selectors) for
80
- natural language understanding of vague location queries, context use,
81
- post-processing results, and hybrid RAG.
82
- - **paid-data/** — fetch L402-paywalled resources via `fetch_paid_resource`.
83
- - **kaleido-trading/** — prices, quotes, atomic swaps, LSP channels.
108
+ ## Keeping the kaleido-mcp snapshot current
109
+
110
+ `src/skills/mcp-tools.snapshot.json` lists kaleido-mcp's tools and argument
111
+ schemas. After a kaleido-mcp release:
112
+
113
+ ```bash
114
+ git clone https://github.com/kaleidoswap/kaleido-mcp ../kaleido-mcp
115
+ (cd ../kaleido-mcp && npm ci && npm run build)
116
+ node packages/core/scripts/snapshot-mcp-tools.mjs ../kaleido-mcp
117
+ ```
@@ -1,166 +1,39 @@
1
1
  ---
2
2
  name: bitrefill
3
- description: "Buy or browse Bitrefill — 1,500+ gift cards, mobile top-ups, and eSIMs across 180+ countries, payable in crypto, Lightning, USDC via x402, or pre-funded account balance. Use these tools to actually transact: bitrefill_search → bitrefill_get_product → bitrefill_create_invoice (spend, confirmed) → bitrefill_get_invoice/bitrefill_get_order for the redemption code."
4
- tools: bitrefill_search, bitrefill_get_product, bitrefill_get_balance, bitrefill_create_invoice, bitrefill_get_invoice, bitrefill_get_order, spark_pay_invoice, spark_get_balance, rln_pay_invoice
5
- triggers: bitrefill, gift card, gift cards, giftcard, voucher, vouchers, top-up, topup, top up, refill, esim, e-sim, mobile plan, mobile top-up, prepaid, amazon, steam, google play, app store, itunes, playstation, xbox, netflix, spotify, uber
6
- compatibility: "Live REST adapter on the CLI/desktop when BITREFILL_API_KEY (Personal) or BITREFILL_API_ID + BITREFILL_API_SECRET (Business) are set. Without those env vars the tools aren't registered — tell the user and stop."
3
+ description: "Buy gift cards, mobile top-ups and eSIMs on Bitrefill (1,500+ brands, 180+ countries), paid from the Bitrefill balance or over Lightning: search, pick a package, create the invoice, read the redemption code."
4
+ tools: bitrefill_search, bitrefill_get_product, bitrefill_get_balance, bitrefill_create_invoice, bitrefill_get_invoice, bitrefill_get_order, spark_pay_invoice, rln_pay_invoice
5
+ requires-tools: bitrefill_search
6
+ triggers: bitrefill, gift card, gift cards, giftcard, voucher, top-up, topup, top up, esim, e-sim, mobile plan, prepaid, amazon, steam, google play, app store, itunes, playstation, xbox, netflix, spotify, uber
7
+ compatibility: "Needs BITREFILL_API_KEY (Personal) or BITREFILL_API_ID + BITREFILL_API_SECRET (Business); without them the tools are not registered."
7
8
  metadata:
8
9
  author: bitrefill
9
- version: "3.0.0"
10
+ version: "3.1.0"
10
11
  homepage: "https://www.bitrefill.com"
11
12
  docs: "https://docs.bitrefill.com"
12
- repository: "https://github.com/bitrefill/cli"
13
+ repository: "https://github.com/bitrefill/agents"
13
14
  ---
14
-
15
15
  # Bitrefill
16
16
 
17
- Bitrefill sells digital goods (gift cards, mobile top-ups, eSIMs) across 180+
18
- countries. Codes deliver instantly after the invoice settles.
19
-
20
- This skill is **action-shaped**: when the host has the `bitrefill_*` tools
21
- wired, you transact through them directly. Don't navigate browser / MCP / CLI
22
- fallbacks unless the tools are absent.
23
-
24
- ## Critical rules (read first)
25
-
26
- 1. **Never invent product or package ids.** Every `product_id` and
27
- `package_id` MUST come from a `bitrefill_search` + `bitrefill_get_product`
28
- result in the current turn.
29
- 2. **Confirm before spending.** `bitrefill_create_invoice` is the spend — it
30
- is automatically confirmation-gated by the host. Before calling it, show
31
- the user product, denomination, total price, and payment method in plain
32
- English, then call the tool. The host will fire one confirmation; on
33
- approve, the invoice is created.
34
- 3. **Codes are cash.** When you read `redemption_info.code` from
35
- `bitrefill_get_order`, return it once, advise the user to store it
36
- securely, and **never** repeat it in summaries or future turns.
37
- 4. **No tools wired = no purchase.** If `bitrefill_search` isn't available
38
- in this session (no API key configured), say so directly: *"Bitrefill
39
- purchases need a `BITREFILL_API_KEY` env var. Set one and restart, or
40
- browse <https://www.bitrefill.com> directly."* Don't fall back to
41
- inventing products.
42
-
43
- ## Happy-path playbook
44
-
45
- For a typical buy ("a $25 Amazon US gift card with my balance"):
46
-
47
- 1. **`bitrefill_search({ query, country? })`** — find candidate products.
48
- - "amazon" → `{ query: "amazon", country: "US" }` if the user named a
49
- country, else just `{ query: "amazon" }`.
50
- - Returns a list of `{ id, name, country, category }` rows. Pick the one
51
- that matches the user's intent. If multiple plausible matches, ask the
52
- user once instead of guessing.
53
-
54
- 2. **`bitrefill_get_product({ product_id })`** — read the `packages` array
55
- for the right denomination. Each package has `{ id, value, price,
56
- currency }`. **The `package_id` is what you pass to create_invoice**, NOT
57
- the bare `value`.
58
-
59
- 3. **`bitrefill_get_balance()`** *(optional)* — when the user said "with my
60
- balance" or asked "can I afford it", verify the account has enough
61
- before creating the invoice. Skip when paying with Lightning / on-chain.
62
-
63
- 4. **`bitrefill_create_invoice({ products, payment_method, ... })`** —
64
- confirmation-gated spend. Choose `payment_method` per the user's request:
65
- - `"balance"` + `auto_pay: true` — instant settlement from account
66
- balance. **Default** when the user says "with my balance" or doesn't
67
- specify and balance is sufficient.
68
- - `"lightning"` — fastest crypto path. Response carries a BOLT11
69
- invoice the user pays out-of-band (see step 5b — Spark, if connected,
70
- pays it directly). **Requires `refund_address`** in case it expires.
71
- - `"bitcoin"`, `"usdc_base"`, `"usdc_polygon"`, `"usdt_tron"`,
72
- `"usdt_ethereum"` — same pattern, slower confirmation; also need
73
- `refund_address`.
74
-
75
- Line items: `products: [{ product_id, package_id, quantity }]`. Up to 20
76
- per invoice.
77
-
78
- 5. **Settlement.**
79
-
80
- a. **`balance` + `auto_pay:true`** — the invoice is usually `complete`
81
- on creation. Read its `order_id`(s) and skip to step 6.
82
-
83
- b. **`lightning` with Spark connected** — the response includes a BOLT11
84
- invoice (commonly under `payment.lightning_invoice`, surface whatever
85
- field the host returns). Pay it with **`spark_pay_invoice({ invoice:
86
- <bolt11> })`** — that's one extra confirmation gate, and Spark settles
87
- it in seconds. (Same pattern if RLN is the user's Lightning layer:
88
- use `rln_pay_invoice`.) Then `bitrefill_get_invoice` should already
89
- report `paid` / `complete`.
90
-
91
- c. **`lightning` or on-chain without an on-device wallet** — relay the
92
- payment URI to the user and **poll** `bitrefill_get_invoice({
93
- invoice_id })` until `status:"complete"`. Don't poll faster than
94
- every ~5s; give up after a few minutes and hand the invoice id back
95
- to the user to check later.
96
-
97
- 6. **`bitrefill_get_order({ order_id })`** — read `redemption_info`:
98
- - `.code` — the gift-card code or top-up PIN. The actual product.
99
- - `.pin` — additional PIN for prepaid cards (often present alongside
100
- the code).
101
- - `.link` — brand redemption URL when applicable.
102
- - `.instructions` — brand-specific redemption steps.
103
-
104
- Present the code in the chat ONCE, then tell the user to store it and
105
- redeem ASAP. Don't echo it in subsequent replies, summaries, or memory.
106
-
107
- ## Choosing a payment method
108
-
109
- | Method | Speed | Blast radius | Use when |
110
- |---|---|---|---|
111
- | `balance` + `auto_pay:true` | Instant | Capped at account balance | Default. User pre-funded the account; lowest risk. |
112
- | `lightning` | Seconds | Whatever's in the user's LN wallet | User asks for "pay with Lightning" or wants no pre-funding. |
113
- | `bitcoin` | 10–60 min | One on-chain UTXO | User asks for "pay on-chain" or invoice > Lightning capacity. |
114
- | `usdc_base` (x402) | Seconds | Agent USDC wallet balance | Agent has an x402-capable USDC wallet. |
115
- | Other on-chain (USDT/USDC variants) | Variable | One UTXO per network | User explicitly requested. |
116
-
117
- Default to `balance` when available; ask the user before switching to a
118
- crypto method.
119
-
120
- ## Failure handling
121
-
122
- Tool errors surface as thrown messages like `"bitrefill bitrefill_create_invoice failed: HTTP 401 ..."`. Relay them as plain English:
123
-
124
- - **401 Unauthorized** — `BITREFILL_API_KEY` is unset or wrong. Tell the
125
- user; don't retry.
126
- - **400 / validation errors** — usually a bad `package_id` or
127
- `payment_method`. Re-read the product's `packages` array and retry once,
128
- then stop and ask.
129
- - **402 Payment Required** (with `balance`) — account underfunded. Show
130
- the deficit; suggest topping up or switching payment method.
131
- - **Invoice `expired`** — re-create the invoice; an old quote isn't
132
- reusable.
133
-
134
- ## Reply style
135
-
136
- - Show the candidate product list as a short bulleted list (≤5 rows).
137
- - Before the spend, summarize in one line:
138
- `Buying: 1× Amazon US $25 — total $25.00 USD, paying with balance. Confirm?`
139
- - After settlement: one line on success, then the redemption details on a
140
- separate line so the user can copy the code.
141
- - After delivering the code, suggest redeeming ASAP and do NOT repeat the
142
- code in later turns.
143
-
144
- ## References (deep-dive, on demand)
145
-
146
- The references below cover paths and host hardening — they're for hosts
147
- that **don't** have the `bitrefill_*` tools wired (browser-only,
148
- MCP-capable client, npm CLI, raw REST). When the tools above are
149
- available, you don't need to read them.
150
-
151
- | File | When |
152
- |------|------|
153
- | [api.md](references/api.md) | Mapping the contract tools back to raw REST endpoints. |
154
- | [mcp.md](references/mcp.md) | Host has the Bitrefill remote MCP wired instead of the contract. |
155
- | [cli.md](references/cli.md) | `@bitrefill/cli` npm path (auth-bound). |
156
- | [cli-headless-auth.md](references/cli-headless-auth.md) | Magic-link auth via an agent inbox. |
157
- | [browse.md](references/browse.md) | Browser-only hosts. |
158
- | [host-openclaw.md](references/host-openclaw.md) | OpenClaw-specific path. |
159
- | [capability-matrix.md](references/capability-matrix.md) | Per-client cheat sheet. |
160
- | [safeguards.md](references/safeguards.md) | Spending policy + per-host hardening. |
161
- | [troubleshooting.md](references/troubleshooting.md) | Common errors. |
162
-
163
- ## Source of truth
164
-
165
- Skill describes the contract + playbook. For exhaustive enums (countries,
166
- payment methods, full endpoint list), see <https://docs.bitrefill.com>.
17
+ Product and package ids come from `bitrefill_search` and
18
+ `bitrefill_get_product` in this turn; never invent them.
19
+
20
+ ## Do
21
+ 1. `bitrefill_search` (`query`, optional `country`); if several products match, ask once.
22
+ 2. `bitrefill_get_product` (`product_id`); pick the package whose `value` matches
23
+ and use its `id` as `package_id`.
24
+ 3. Show product, value, total price and payment method, then
25
+ `bitrefill_create_invoice` (confirm-gated):
26
+ - default `payment_method: "balance"` with `auto_pay: true` (check
27
+ `bitrefill_get_balance` first);
28
+ - `"lightning"` needs `refund_address`; pay the returned BOLT11 with
29
+ `spark_pay_invoice` or `rln_pay_invoice`.
30
+ 4. Poll `bitrefill_get_invoice` until `complete`, then `bitrefill_get_order`.
31
+ Show `redemption_info.code` once and never repeat it.
32
+ - 401 means the API key is missing or wrong: say so and stop.
33
+
34
+ ## Examples
35
+ - "A $25 Amazon US gift card" → `bitrefill_search {"query":"amazon","country":"US"}`
36
+ - "Show the packages" → `bitrefill_get_product {"product_id":"amazon-us"}`
37
+ - "Buy it with my balance" → `bitrefill_create_invoice {"products":[{"product_id":"amazon-us","package_id":"<package id>","quantity":1}],"payment_method":"balance","auto_pay":true}`
38
+
39
+ Hosts without these tools (remote MCP, CLI, browser): see `references/`.
@@ -1,59 +1,38 @@
1
1
  ---
2
2
  name: channel-manager
3
- description: "Keep the Lightning node healthy: check node info, audit channels and liquidity, flush stuck RGB transfers, and (when allowed) buy inbound/asset channel capacity via the KaleidoSwap LSP. Triggers when the user asks about node health, channels, liquidity, or inbound capacity — and is the skill the scheduled 'heartbeat' loop runs."
4
- tools: rln_get_node_info, rln_list_channels, rln_get_balances, rln_list_assets, rln_refresh_transfers, kaleidoswap_lsp_get_info, kaleidoswap_lsp_estimate_fees, kaleidoswap_lsp_create_order, rln_pay_invoice
5
- triggers: node, channel, channels, liquidity, inbound, outbound, lsp, heartbeat, health, transfers, stuck
3
+ description: "Lightning channels and liquidity for the RGB Lightning Node: node health, channel audit, inbound/outbound balance, buying a channel or asset channel from the KaleidoSwap LSP, opening and closing channels. Runs the scheduled heartbeat."
4
+ tools: rln_get_node_info, rln_list_channels, rln_get_balances, rln_refresh_transfers, rln_connect_peer, rln_open_channel, rln_close_channel, rln_get_channel_id, rln_pay_invoice, kaleidoswap_lsp_get_info, kaleidoswap_lsp_estimate_fees, kaleidoswap_lsp_create_order, kaleidoswap_lsp_get_order, kaleidoswap_lsp_quote_asset_channel, kaleidoswap_lsp_create_asset_channel
5
+ requires-tools: rln_list_channels
6
+ triggers: channel, channels, liquidity, inbound, outbound, lsp, lsps1, capacity, rebalance channel, can't receive, open channel, close channel, channel order, heartbeat, health, stuck
6
7
  metadata:
7
8
  author: kaleidoswap
8
- version: "0.1.0"
9
+ version: "0.2.0"
9
10
  ---
10
-
11
11
  # Channel manager
12
12
 
13
- Keep the RGB Lightning node healthy and liquid. Read state every run; only buy
14
- capacity when the user allows it and it's actually needed.
15
-
16
- ## Critical rules — these override everything else
17
-
18
- - **Diagnose before acting.** `rln_get_node_info` + `rln_list_channels` +
19
- `rln_get_balances` first. Report what you see; don't guess.
20
- - **Respect `dry_run`.** When true, describe the action you *would* take (e.g.
21
- "buy 1M sat inbound") but do NOT call `kaleidoswap_lsp_create_order` or
22
- `rln_pay_invoice`.
23
- - **Buying capacity is a spend** — it routes through the host's risk gate. Never
24
- propose one that breaches the BTC reserve, and always show the LSP fee
25
- (`kaleidoswap_lsp_estimate_fees`) before recommending it.
26
-
27
- ## Health checks (run in order)
28
-
29
- 1. **Node up?** `rln_get_node_info` — pubkey, block height, synced.
30
- 2. **Channels.** `rln_list_channels` — count, capacity, outbound vs inbound. Flag
31
- any channel whose outbound is below the configured floor.
32
- 3. **Stuck transfers.** `rln_refresh_transfers` to flush pending RGB transfers;
33
- report anything still pending afterward.
34
- 4. **Liquidity verdict.** If usable inbound (or an asset's inbound) is below the
35
- threshold in the task parameters, that's the trigger to consider buying.
36
-
37
- ## Buying capacity (only when needed + allowed)
38
-
39
- 1. `kaleidoswap_lsp_get_info` — confirm the LSP is reachable + its limits.
40
- 2. `kaleidoswap_lsp_estimate_fees` — show the fee for the size you'd buy.
41
- 3. `kaleidoswap_lsp_create_order` (spend-gated) — create the order; it returns an
42
- invoice/onchain address. Pay via `rln_pay_invoice` only after approval.
43
-
44
- ## Scheduled (background) runs
45
-
46
- When run by the `heartbeat` loop, return STRICT JSON only:
47
-
48
- ```
49
- {"task":"heartbeat","timestamp":"<ISO8601>","action":"ok|flush|buy_capacity|alert","dry_run":<bool>,"reason":"<why>","details":{"channels":<n>,"outbound_sat":<n>,"inbound_sat":<n>,"pending_transfers":<n>}}
50
- ```
51
-
52
- Use `ok` when nothing needs doing, `alert` when a human should look.
53
-
54
- ## Don'ts
55
-
56
- - Don't buy capacity that isn't needed, or when within the liquidity threshold.
57
- - Don't pay an LSP invoice when `dry_run` is true.
58
- - Don't invent channel ids, balances, or fees — read them from tools.
59
- - Don't breach the BTC reserve to open a channel.
13
+ Read state first: `rln_get_node_info`, `rln_list_channels`, `rln_get_balances`.
14
+ Outbound = what the node can send; inbound = what it can receive. Report
15
+ numbers from this turn's results only.
16
+
17
+ ## Do
18
+ - Health: count usable channels, total outbound vs inbound, channels with
19
+ `is_usable: false`; `rln_refresh_transfers {}` flushes pending RGB transfers.
20
+ - Can't receive → buy inbound: `kaleidoswap_lsp_get_info` (limits and
21
+ `lsp_connection_url`), `rln_connect_peer`, `kaleidoswap_lsp_estimate_fees`
22
+ (show `total_fee`), then `kaleidoswap_lsp_create_order` with `client_pubkey`
23
+ from `rln_get_node_info`, pay its invoice with `rln_pay_invoice`, poll
24
+ `kaleidoswap_lsp_get_order` until `COMPLETED`.
25
+ - Wants an asset (USDT/XAUT) but has no channel →
26
+ `kaleidoswap_lsp_quote_asset_channel` then
27
+ `kaleidoswap_lsp_create_asset_channel` with the fresh `rfq_id`.
28
+ - Can't send → open a channel with spare on-chain BTC (`rln_open_channel`).
29
+ - Every order, open, close and payment is confirm-gated; recommend first,
30
+ execute only on an explicit request. With `dry_run` true, describe only.
31
+ - Heartbeat runs: `action` is `ok`, `flush`, `buy_capacity` or `alert`.
32
+
33
+ ## Examples
34
+ - "How healthy is my node?" → `rln_list_channels {}`
35
+ - "Fee for 500k sats inbound?" → `kaleidoswap_lsp_estimate_fees {"lsp_balance_sat":500000,"client_balance_sat":0,"channel_expiry_blocks":4320}`
36
+ - "Buy 500k inbound" → `rln_get_node_info {}` then `kaleidoswap_lsp_create_order {"client_pubkey":"<pubkey>","lsp_balance_sat":500000,"client_balance_sat":0,"channel_expiry_blocks":4320}`
37
+ - "A channel holding 100 USDT" → `kaleidoswap_lsp_quote_asset_channel {"asset":"USDT","asset_amount":100}`
38
+ - "Did order 7a1b open?" → `kaleidoswap_lsp_get_order {"order_id":"7a1b"}`