@lyellr88/buddy-mcp 1.4.2 → 1.4.3

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 (105) hide show
  1. package/README.md +36 -97
  2. package/assets/hero.svg +72 -83
  3. package/dist/config/pet-config.d.ts.map +1 -1
  4. package/dist/config/pet-config.js +1 -6
  5. package/dist/config/pet-config.js.map +1 -1
  6. package/dist/finder/worker.js +0 -1
  7. package/dist/finder/worker.js.map +1 -1
  8. package/dist/mcp/index.js +12 -37
  9. package/dist/mcp/index.js.map +1 -1
  10. package/dist/mcp/persistence.d.ts.map +1 -1
  11. package/dist/mcp/persistence.js +7 -17
  12. package/dist/mcp/persistence.js.map +1 -1
  13. package/dist/mcp/state.d.ts.map +1 -1
  14. package/dist/mcp/state.js +0 -1
  15. package/dist/mcp/state.js.map +1 -1
  16. package/dist/mcp/tools/auto.d.ts.map +1 -1
  17. package/dist/mcp/tools/auto.js +1 -2
  18. package/dist/mcp/tools/auto.js.map +1 -1
  19. package/dist/mcp/tools/core.js +12 -27
  20. package/dist/mcp/tools/core.js.map +1 -1
  21. package/dist/mcp/tools/export.js +2 -10
  22. package/dist/mcp/tools/export.js.map +1 -1
  23. package/dist/mcp/tools/interact.js +3 -4
  24. package/dist/mcp/tools/interact.js.map +1 -1
  25. package/dist/mcp/tools/relay.d.ts.map +1 -1
  26. package/dist/mcp/tools/relay.js +1 -3
  27. package/dist/mcp/tools/relay.js.map +1 -1
  28. package/dist/mcp/tools/stats.d.ts.map +1 -1
  29. package/dist/mcp/tools/stats.js +3 -13
  30. package/dist/mcp/tools/stats.js.map +1 -1
  31. package/dist/mcp/watcher.js +9 -12
  32. package/dist/mcp/watcher.js.map +1 -1
  33. package/dist/patcher/binary-finder.d.ts.map +1 -1
  34. package/dist/patcher/binary-finder.js +3 -9
  35. package/dist/patcher/binary-finder.js.map +1 -1
  36. package/dist/patcher/patch.d.ts.map +1 -1
  37. package/dist/patcher/patch.js +5 -14
  38. package/dist/patcher/patch.js.map +1 -1
  39. package/dist/patcher/preflight.d.ts.map +1 -1
  40. package/dist/patcher/preflight.js +2 -9
  41. package/dist/patcher/preflight.js.map +1 -1
  42. package/dist/personalities.d.ts.map +1 -1
  43. package/dist/personalities.js +0 -7
  44. package/dist/personalities.js.map +1 -1
  45. package/dist/presets.d.ts.map +1 -1
  46. package/dist/presets.js +0 -17
  47. package/dist/presets.js.map +1 -1
  48. package/dist/tui/animator.d.ts +0 -6
  49. package/dist/tui/animator.d.ts.map +1 -1
  50. package/dist/tui/animator.js +0 -6
  51. package/dist/tui/animator.js.map +1 -1
  52. package/dist/tui/apply/index.d.ts.map +1 -1
  53. package/dist/tui/apply/index.js +9 -33
  54. package/dist/tui/apply/index.js.map +1 -1
  55. package/dist/tui/builder/index.d.ts.map +1 -1
  56. package/dist/tui/builder/index.js +4 -22
  57. package/dist/tui/builder/index.js.map +1 -1
  58. package/dist/tui/builder/keyboard.d.ts.map +1 -1
  59. package/dist/tui/builder/keyboard.js +0 -1
  60. package/dist/tui/builder/keyboard.js.map +1 -1
  61. package/dist/tui/builder/preview-panel.d.ts.map +1 -1
  62. package/dist/tui/builder/preview-panel.js +3 -18
  63. package/dist/tui/builder/preview-panel.js.map +1 -1
  64. package/dist/tui/builder/selection-panel.d.ts.map +1 -1
  65. package/dist/tui/builder/selection-panel.js +0 -21
  66. package/dist/tui/builder/selection-panel.js.map +1 -1
  67. package/dist/tui/commands/buddies.d.ts.map +1 -1
  68. package/dist/tui/commands/buddies.js +5 -12
  69. package/dist/tui/commands/buddies.js.map +1 -1
  70. package/dist/tui/commands/current.js +1 -1
  71. package/dist/tui/commands/current.js.map +1 -1
  72. package/dist/tui/commands/interactive.d.ts.map +1 -1
  73. package/dist/tui/commands/interactive.js +10 -21
  74. package/dist/tui/commands/interactive.js.map +1 -1
  75. package/dist/tui/commands/preview.d.ts.map +1 -1
  76. package/dist/tui/commands/preview.js +1 -5
  77. package/dist/tui/commands/preview.js.map +1 -1
  78. package/dist/tui/commands/restore.d.ts.map +1 -1
  79. package/dist/tui/commands/restore.js +0 -1
  80. package/dist/tui/commands/restore.js.map +1 -1
  81. package/dist/tui/commands/share.d.ts.map +1 -1
  82. package/dist/tui/commands/share.js +1 -4
  83. package/dist/tui/commands/share.js.map +1 -1
  84. package/dist/tui/commands/start-screen.d.ts.map +1 -1
  85. package/dist/tui/commands/start-screen.js +3 -5
  86. package/dist/tui/commands/start-screen.js.map +1 -1
  87. package/dist/tui/gallery/index.d.ts.map +1 -1
  88. package/dist/tui/gallery/index.js +1 -9
  89. package/dist/tui/gallery/index.js.map +1 -1
  90. package/dist/tui/gallery/profile-list-panel.d.ts.map +1 -1
  91. package/dist/tui/gallery/profile-list-panel.js +0 -1
  92. package/dist/tui/gallery/profile-list-panel.js.map +1 -1
  93. package/dist/tui/gallery/profile-preview-panel.d.ts.map +1 -1
  94. package/dist/tui/gallery/profile-preview-panel.js +2 -15
  95. package/dist/tui/gallery/profile-preview-panel.js.map +1 -1
  96. package/dist/tui/presets/index.d.ts.map +1 -1
  97. package/dist/tui/presets/index.js +1 -3
  98. package/dist/tui/presets/index.js.map +1 -1
  99. package/dist/tui/prompts.d.ts.map +1 -1
  100. package/dist/tui/prompts.js +0 -1
  101. package/dist/tui/prompts.js.map +1 -1
  102. package/dist/tui/start/index.d.ts.map +1 -1
  103. package/dist/tui/start/index.js +1 -3
  104. package/dist/tui/start/index.js.map +1 -1
  105. package/package.json +26 -8
package/README.md CHANGED
@@ -1,11 +1,10 @@
1
- # buddy-mcp
2
-
3
1
  ![buddy-mcp hero](assets/hero.svg)
4
2
 
5
- [![npm version](https://img.shields.io/npm/v/@lyellr88/buddy-mcp)](https://www.npmjs.com/package/@lyellr88/buddy-mcp)
6
3
  [![CI](https://github.com/Lyellr88/buddy-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Lyellr88/buddy-mcp/actions/workflows/ci.yml)
4
+ [![npm downloads](https://img.shields.io/npm/dt/@lyellr88/buddy-mcp?color=blue&style=flat-square)](https://www.npmjs.com/package/@lyellr88/buddy-mcp)
5
+ [![npm version](https://img.shields.io/npm/v/@lyellr88/buddy-mcp?color=blue)](https://www.npmjs.com/package/@lyellr88/buddy-mcp)
6
+ [![Node >=20](https://img.shields.io/badge/node-%3E%3D20-blue)](https://nodejs.org/)
7
7
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
8
- [![Node >=20](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org/)
9
8
 
10
9
  A break from long code sessions. Stuck on a bug? Reroll a buddy, talk with them, or pet them to build affection and improve your odds at higher-tier buddies on the next roll. If enough people want it, I'll build out Battle-Buddies where you can pit your buddy against others and unlock exclusive species that sync back into your local pool.
11
10
 
@@ -19,46 +18,35 @@ A break from long code sessions. Stuck on a bug? Reroll a buddy, talk with them,
19
18
  <tr>
20
19
  <td width="33%">
21
20
 
22
- <details>
23
- <summary><strong>Interactive Builder</strong></summary>
21
+ **Interactive Builder**
22
+
24
23
  Build your perfect buddy with full control.
25
24
 
26
- <video width="100%" controls>
27
- <source src="assets/buddy_cli_builder.mp4" type="video/mp4">
28
- Your browser does not support the video tag.
29
- </video>
30
- </details>
25
+ [![Watch Video](https://img.shields.io/badge/▶%20Click%20to%20Watch-blue?style=for-the-badge)](https://github.com/user-attachments/assets/840de2d0-617b-40fd-b653-c091af9abbfc)
31
26
 
32
27
  </td>
33
28
  <td width="33%">
34
29
 
35
- <details>
36
- <summary><strong>Reroll in Action</strong></summary>
37
- Roll, close Claude, reopen—new buddy live.
30
+ **Reroll in Action**
38
31
 
39
- <video width="100%" controls>
40
- <source src="assets/buddy_reroll_action.mp4" type="video/mp4">
41
- Your browser does not support the video tag.
42
- </video>
43
- </details>
32
+ Roll, close Claude, reopen and enjoy your new buddy.
33
+
34
+ [![Watch Video](https://img.shields.io/badge/▶%20Click%20to%20Watch-blue?style=for-the-badge)](https://github.com/user-attachments/assets/83adc99e-2c49-4255-bf48-eca41d10580b)
44
35
 
45
36
  </td>
46
37
  <td width="33%">
47
38
 
48
- <details>
49
- <summary><strong>Interact with Tools</strong></summary>
39
+ **Interact with Tools**
40
+
50
41
  Talk, pet, and explore your buddy's dex.
51
42
 
52
- <video width="100%" controls>
53
- <source src="assets/buddy_tools_action.mp4" type="video/mp4">
54
- Your browser does not support the video tag.
55
- </video>
56
- </details>
43
+ [![Watch Video](https://img.shields.io/badge/▶%20Click%20to%20Watch-blue?style=for-the-badge)](https://github.com/user-attachments/assets/485c608f-55ed-40ed-a592-936814ea9601)
57
44
 
58
45
  </td>
59
46
  </tr>
60
47
  </table>
61
48
 
49
+
62
50
  ---
63
51
 
64
52
  ## How It Works
@@ -73,50 +61,11 @@ Claude Code's companion is generated from a salt string baked into the binary. b
73
61
 
74
62
  No companion server. No cloud. Just you, your binary, and the gacha gods.
75
63
 
76
- ---
77
-
78
- ## Developer Insight
79
-
80
- buddy-mcp isn’t just a UI mod. It’s a deterministic companion system layered on top of Claude Code’s binary, with:
64
+ Token footprint is kept intentionally small of 29 registered tools, Claude only ever sees ~9 at a time. The other 20 stay hidden until you reroll. See [TECHNICAL.md](TECHNICAL.md) for the full breakdown.
81
65
 
82
- - Rerollable personalities and stat-bound behaviors
83
- - Persistent state and BuddyDex tracking
84
- - Locked tool sets per roll (no session drift)
85
- - A self-healing patch pipeline that detects, restores, and reapplies across updates
86
-
87
- Lightweight by design with minimal token usage and data footprint. Most features operate inline through message augmentation rather than separate invocation flows.
88
-
89
- Built to be fast, local-first, and resilient to change.
90
-
91
- ## Patch Flow
92
-
93
- buddy-mcp patches the Claude binary directly. Here's what happens when you hit `reroll_buddy`:
66
+ ---
94
67
 
95
- ```
96
- reroll_buddy
97
-
98
- ├─ Roll random traits (species, rarity, eye, hat, shiny chance)
99
-
100
- ├─ Multi-worker salt search (up to 8 parallel Bun workers)
101
- │ └─ Each worker brute-forces salts using wyhash until traits match
102
-
103
- ├─ Try to patch binary immediately
104
- │ ├─ Success → "Close Claude and reopen"
105
- │ └─ EPERM (Claude is running) → Save pending patch + start background watcher
106
- │ └─ Watcher polls every 2s, applies patch the moment Claude closes
107
-
108
- └─ Profile saved: species, rarity, stats, name, personality
109
-
110
- On next session start (hook fires):
111
-
112
- ├─ Salt still valid → no-op (fast path)
113
-
114
- ├─ Pending patch found → apply it
115
-
116
- └─ Salt mismatch (Claude auto-updated)
117
- ├─ Try .buddy-mcp-bak (only if it contains original salt)
118
- ├─ Try .anybuddy-bak (fallback for prior patcher users)
119
- └─ Restore + re-patch automatically, no reinstall required
68
+ > 🛠️ **Looking for the technical deep-dive?** See [TECHNICAL.md](TECHNICAL.md) for the patch flow diagrams, binary patching logic, and state file reference.
120
69
 
121
70
  ---
122
71
 
@@ -239,52 +188,42 @@ Each buddy has 5 stats: **Debugging, Patience, Chaos, Wisdom, Snark**. A peak st
239
188
  ---
240
189
 
241
190
 
242
- ```
243
-
244
-
245
- ---
246
-
247
- ## State Files
248
-
249
- buddy-mcp stores everything in your home directory:
250
-
251
- | File | Purpose |
252
- |------|---------|
253
- | `~/.buddy-mcp.json` | Your buddy profiles (species, rarity, stats, name, salt) |
254
- | `~/.buddy_mcp_gacha.json` | Gacha extras: shiny count, BuddyDex, manifested tools |
255
- | `~/.buddy_mcp_pending.json` | Queued patch waiting for Claude to close |
256
-
257
- ---
258
191
 
259
192
  ## Troubleshooting
260
193
 
261
194
  ### Buddy doesn't change after reroll
262
195
 
263
- If you rerolled but your buddy didn't update on restart:
196
+ **Normal flow (Windows):** When you reroll and Claude is running:
197
+
198
+ 1. Reroll triggers a background watcher — no action needed from you
199
+ 2. Close Claude Code whenever — watcher detects it and applies the patch automatically
200
+ 3. Reopen Claude Code — your new buddy is live
264
201
 
265
- 1. **Close all Claude Code instances completely** (check Task Manager on Windows)
202
+ If it doesn't appear after reopening:
203
+
204
+ 1. **Verify Claude is fully closed** (check Task Manager on Windows)
266
205
  - Even minimized or backgrounded windows count — they keep the binary locked
267
- - Wait a few seconds for processes to fully exit
206
+ - Wait a few seconds after closing
268
207
  2. **Reopen Claude Code**
269
- - The pending patch will apply automatically via the hook
270
- - Or manually run `npm run apply` then reopen
271
-
272
- The binary stays locked as long as any Claude instance is running, preventing the patch from being applied.
208
+ - The startup hook auto-applies any pending patches
209
+ - You should see your new companion immediately
273
210
 
274
- ### Manual Apply (Fallback)
211
+ ### Prefer immediate patching?
275
212
 
276
- If the background watcher didn't fire for some reason, you can apply a pending patch manually:
213
+ If you want to guarantee a patch applies without waiting for the watcher, close Claude *before* rerolling:
277
214
 
278
215
  ```bash
279
- npm run apply
216
+ # Option 1: Use the interactive TUI builder (simplest)
217
+ buddy-mcp-build
218
+
219
+ # Option 2: Close Claude, then use the reroll_buddy tool
220
+ # (patch applies immediately without needing the watcher)
280
221
  ```
281
222
 
282
- Then restart Claude Code.
223
+ This is the only time you need manual steps — the watcher handles all other cases.
283
224
 
284
225
  ---
285
226
 
286
227
  ## Credits
287
228
 
288
229
  Forked and extended from [any-buddy](https://github.com/cpaczek/any-buddy) by cpaczek.
289
-
290
- Licensed under [WTFPL](http://www.wtfpl.net/).
package/assets/hero.svg CHANGED
@@ -1,15 +1,15 @@
1
1
  <svg viewBox="0 0 1200 700" xmlns="http://www.w3.org/2000/svg">
2
2
 
3
3
  <!-- Glowing accent lines in rarity colors -->
4
- <line x1="40" y1="40" x2="40" y2="220" stroke="#FF55FF" stroke-width="3" opacity="0.4"/>
5
- <line x1="600" y1="40" x2="600" y2="220" stroke="#FFD700" stroke-width="3" opacity="0.4"/>
6
- <line x1="1160" y1="40" x2="1160" y2="220" stroke="#5599FF" stroke-width="3" opacity="0.4"/>
4
+ <line x1="0" y1="4" x2="0" y2="220" stroke="#FF55FF" stroke-width="3" opacity="0.4"/>
5
+ <line x1="600" y1="4" x2="600" y2="220" stroke="#FFD700" stroke-width="3" opacity="0.4"/>
6
+ <line x1="1200" y1="4" x2="1200" y2="220" stroke="#5599FF" stroke-width="3" opacity="0.4"/>
7
7
 
8
8
  <!-- Top Info Section - cleaner modern style -->
9
- <rect x="40" y="40" width="1120" height="180" rx="8" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
9
+ <rect x="0" y="0" width="1200" height="220" rx="0" fill="#0d1117" stroke="none"/>
10
10
 
11
11
  <!-- Rarity color accent bar at top -->
12
- <rect x="40" y="40" width="1120" height="4" rx="2" fill="url(#rarity-gradient)"/>
12
+ <rect x="0" y="0" width="1200" height="4" rx="0" fill="url(#rarity-gradient)"/>
13
13
 
14
14
  <defs>
15
15
  <linearGradient id="rarity-gradient" x1="0%" y1="0%" x2="100%" y2="0%">
@@ -22,79 +22,79 @@
22
22
 
23
23
  <!-- Icon badges (minimal, clean) -->
24
24
  <!-- Roll badge -->
25
- <circle cx="70" cy="60" r="12" fill="none" stroke="#FF55FF" stroke-width="2" opacity="0.6"/>
26
- <text x="70" y="64" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#FF55FF" text-anchor="middle">🎲</text>
25
+ <circle cx="60" cy="60" r="12" fill="none" stroke="#FF55FF" stroke-width="2" opacity="0.6"/>
26
+ <text x="60" y="64" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#FF55FF" text-anchor="middle">🎲</text>
27
27
 
28
28
  <!-- Build badge -->
29
- <circle cx="96" cy="60" r="12" fill="none" stroke="#FFD700" stroke-width="2" opacity="0.6"/>
30
- <text x="96" y="64" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#FFD700" text-anchor="middle">✨</text>
29
+ <circle cx="100" cy="60" r="12" fill="none" stroke="#FFD700" stroke-width="2" opacity="0.6"/>
30
+ <text x="100" y="64" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#FFD700" text-anchor="middle">✨</text>
31
31
 
32
32
  <!-- Collect badge -->
33
- <circle cx="122" cy="60" r="12" fill="none" stroke="#5599FF" stroke-width="2" opacity="0.6"/>
34
- <text x="122" y="64" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#5599FF" text-anchor="middle">📖</text>
33
+ <circle cx="140" cy="60" r="12" fill="none" stroke="#5599FF" stroke-width="2" opacity="0.6"/>
34
+ <text x="140" y="64" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#5599FF" text-anchor="middle">📖</text>
35
35
 
36
36
  <!-- Heading -->
37
- <text x="60" y="130" font-family="Monaco, 'Courier New', monospace" font-size="48" font-weight="bold" fill="#79c0ff">buddy-mcp</text>
37
+ <text x="40" y="130" font-family="Monaco, 'Courier New', monospace" font-size="48" font-weight="bold" fill="#79c0ff">buddy-mcp</text>
38
38
 
39
39
  <!-- Slogan right corner -->
40
- <text x="1100" y="130" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#8b949e" text-anchor="end">Roll your buddy.</text>
41
- <text x="1100" y="155" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#8b949e" text-anchor="end">Build unique.</text>
42
- <text x="1100" y="180" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#8b949e" text-anchor="end">Collect them all.</text>
40
+ <text x="1150" y="70" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="bold" fill="#8b949e" text-anchor="end">Roll your buddy.</text>
41
+ <text x="1150" y="105" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="bold" fill="#8b949e" text-anchor="end">Build unique.</text>
42
+ <text x="1150" y="140" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="bold" fill="#8b949e" text-anchor="end">Collect them all.</text>
43
43
 
44
44
  <!-- Divider under info section -->
45
- <line x1="40" y1="220" x2="1160" y2="220" stroke="#30363d" stroke-width="1"/>
45
+ <line x1="0" y1="220" x2="1200" y2="220" stroke="#30363d" stroke-width="1"/>
46
46
 
47
47
  <!-- Main Content Section (3 Columns) -->
48
48
 
49
49
  <!-- Left Column: Roll/Gacha Concept -->
50
- <rect x="40" y="220" width="360" height="440" fill="#161b22" stroke="#30363d" stroke-width="2"/>
50
+ <rect x="0" y="220" width="400" height="480" fill="#161b22" stroke="none"/>
51
51
 
52
52
  <!-- Roll title -->
53
- <text x="220" y="260" font-family="Arial, Helvetica, sans-serif" font-size="20" font-weight="bold" fill="#79c0ff" text-anchor="middle">ROLL</text>
53
+ <text x="200" y="275" font-family="Arial, Helvetica, sans-serif" font-size="28" font-weight="bold" fill="#79c0ff" text-anchor="middle">ROLL</text>
54
54
 
55
- <!-- Dice illustration -->
56
- <g transform="translate(220, 317)">
55
+ <!-- Dice illustration scaled up -->
56
+ <g transform="translate(200, 385) scale(1.2)">
57
57
  <!-- Dice 1 -->
58
- <rect x="-45" y="-20" width="35" height="35" fill="none" stroke="#FF55FF" stroke-width="2" rx="2"/>
59
- <circle cx="-27" cy="-5" r="3" fill="#FF55FF"/>
58
+ <rect x="-55" y="-30" width="45" height="45" fill="none" stroke="#FF55FF" stroke-width="2.5" rx="2"/>
59
+ <circle cx="-32" cy="-10" r="4" fill="#FF55FF"/>
60
60
 
61
61
  <!-- Dice 2 -->
62
- <rect x="10" y="-15" width="35" height="35" fill="none" stroke="#5599FF" stroke-width="2" rx="2"/>
63
- <circle cx="22" cy="-5" r="3" fill="#5599FF"/>
64
- <circle cx="30" cy="5" r="3" fill="#5599FF"/>
62
+ <rect x="10" y="-20" width="45" height="45" fill="none" stroke="#5599FF" stroke-width="2.5" rx="2"/>
63
+ <circle cx="27" cy="-5" r="4" fill="#5599FF"/>
64
+ <circle cx="37" cy="8" r="4" fill="#5599FF"/>
65
65
 
66
66
  <!-- Dice 3 -->
67
- <rect x="-24" y="29" width="35" height="35" fill="none" stroke="#55FF55" stroke-width="2" rx="2"/>
68
- <circle cx="6" cy="33" r="3" fill="#55FF55"/>
69
- <circle cx="-7" cy="46" r="3" fill="#55FF55"/>
70
- <circle cx="-20" cy="59" r="3" fill="#55FF55"/>
67
+ <rect x="-28" y="35" width="45" height="45" fill="none" stroke="#55FF55" stroke-width="2.5" rx="2"/>
68
+ <circle cx="8" cy="42" r="4" fill="#55FF55"/>
69
+ <circle cx="-5" cy="58" r="4" fill="#55FF55"/>
70
+ <circle cx="-22" cy="74" r="4" fill="#55FF55"/>
71
71
  </g>
72
72
 
73
- <!-- Roll description -->
74
- <text x="220" y="427" font-family="Arial, Helvetica, sans-serif" font-size="13" fill="#c9d1d9" text-anchor="middle" font-style="italic">
75
- <tspan x="220" dy="0">Roll for rare buddies</tspan>
76
- <tspan x="220" dy="15">with affection tokens</tspan>
77
- <tspan x="220" dy="15">and stat-based traits.</tspan>
73
+ <!-- Roll description enlarged and centered -->
74
+ <text x="200" y="540" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#c9d1d9" text-anchor="middle" font-style="italic">
75
+ <tspan x="200" dy="0">Roll for rare buddies</tspan>
76
+ <tspan x="200" dy="22">with affection tokens</tspan>
77
+ <tspan x="200" dy="22">and stat-based traits.</tspan>
78
78
  </text>
79
79
 
80
- <!-- Roll specs -->
81
- <text x="220" y="497" font-family="Arial, Helvetica, sans-serif" font-size="12" fill="#6e7681" text-anchor="middle">
82
- <tspan x="220" dy="0">18 species • 5 rarities</tspan>
83
- <tspan x="220" dy="12">100+ stat combinations</tspan>
80
+ <!-- Roll specs enlarged -->
81
+ <text x="200" y="625" font-family="Arial, Helvetica, sans-serif" font-size="14" fill="#6e7681" text-anchor="middle">
82
+ <tspan x="200" dy="0">18 species • 5 rarities</tspan>
83
+ <tspan x="200" dy="18">100+ stat combinations</tspan>
84
84
  </text>
85
85
 
86
86
  <!-- Vertical divider between left and center -->
87
- <line x1="400" y1="220" x2="400" y2="660" stroke="#30363d" stroke-width="1"/>
87
+ <line x1="400" y1="220" x2="400" y2="700" stroke="#30363d" stroke-width="1"/>
88
88
 
89
89
  <!-- Center Column: Featured Buddy -->
90
- <rect x="400" y="220" width="400" height="440" fill="#161b22" stroke="#30363d" stroke-width="2"/>
90
+ <rect x="400" y="220" width="400" height="480" fill="#161b22" stroke="none"/>
91
91
 
92
92
  <!-- Featured buddy title -->
93
- <text x="600" y="260" font-family="Arial, Helvetica, sans-serif" font-size="20" font-weight="bold" fill="#79c0ff" text-anchor="middle">FEATURED</text>
93
+ <text x="600" y="275" font-family="Arial, Helvetica, sans-serif" font-size="28" font-weight="bold" fill="#79c0ff" text-anchor="middle">BUILD</text>
94
94
 
95
95
  <!-- Dragon sprite embedded from buddy-flumox-sprite-new.svg -->
96
- <svg x="470" y="280" width="260" height="150" viewBox="0 0 150 132" xmlns="http://www.w3.org/2000/svg">
97
- <text font-family="'Cascadia Code','Fira Code','Courier New',monospace" font-size="14" fill="#FF55FF" xml:space="preserve">
96
+ <svg x="470" y="300" width="260" height="200" viewBox="0 0 150 132" xmlns="http://www.w3.org/2000/svg">
97
+ <text font-family="'Cascadia Code','Fira Code','Courier New',monospace" font-size="16" fill="#FF55FF" xml:space="preserve">
98
98
  <tspan x="24" y="36" fill="#FF55FF"> \^^^/ </tspan>
99
99
  <tspan x="24" y="56" fill="#FF55FF"> /^\ /^\ </tspan>
100
100
  <tspan x="24" y="76" fill="#FF55FF"> &lt; ◉ ◉ &gt; </tspan>
@@ -103,70 +103,59 @@
103
103
  </text>
104
104
  </svg>
105
105
 
106
- <!-- Buddy stats display -->
107
- <text x="600" y="450" font-family="Arial, Helvetica, sans-serif" font-size="12" fill="#c9d1d9" text-anchor="middle">
106
+ <!-- Buddy stats display enlarged -->
107
+ <text x="600" y="540" font-family="Arial, Helvetica, sans-serif" font-size="16" fill="#c9d1d9" text-anchor="middle">
108
108
  <tspan x="600" dy="0">Epic Dragon • Flumox</tspan>
109
- <tspan x="600" dy="20">CHAOS 100 | DEBUG 69</tspan>
109
+ <tspan x="600" dy="28" font-weight="bold">CHAOS 100 | DEBUG 69</tspan>
110
110
  </text>
111
111
 
112
112
  <!-- Vertical divider between center and right -->
113
- <line x1="800" y1="220" x2="800" y2="660" stroke="#30363d" stroke-width="1"/>
113
+ <line x1="800" y1="220" x2="800" y2="700" stroke="#30363d" stroke-width="1"/>
114
114
 
115
115
  <!-- Right Column: Collect/Dex Concept -->
116
- <rect x="800" y="220" width="360" height="440" fill="#161b22" stroke="#30363d" stroke-width="2"/>
116
+ <rect x="800" y="220" width="400" height="480" fill="#161b22" stroke="none"/>
117
117
 
118
118
  <!-- Collect title -->
119
- <text x="980" y="260" font-family="Arial, Helvetica, sans-serif" font-size="20" font-weight="bold" fill="#79c0ff" text-anchor="middle">COLLECT</text>
119
+ <text x="1000" y="268" font-family="Arial, Helvetica, sans-serif" font-size="28" font-weight="bold" fill="#79c0ff" text-anchor="middle">COLLECT</text>
120
120
 
121
- <!-- Dex border box -->
122
- <rect x="825" y="303" width="310" height="220" fill="none" stroke="#30363d" stroke-width="2" rx="4"/>
121
+ <!-- Dex border box resized -->
122
+ <rect x="820" y="315" width="360" height="240" fill="none" stroke="#30363d" stroke-width="2" rx="4"/>
123
123
 
124
124
  <!-- Dex header line -->
125
- <line x1="835" y1="318" x2="1125" y2="318" stroke="#79c0ff" stroke-width="1" opacity="0.5"/>
125
+ <line x1="835" y1="330" x2="1165" y2="330" stroke="#79c0ff" stroke-width="1" opacity="0.5"/>
126
126
 
127
- <!-- Alternating row backgrounds -->
128
- <rect x="830" y="323" width="300" height="14" fill="#1f2632" opacity="0.3"/>
129
- <rect x="830" y="351" width="300" height="14" fill="#1f2632" opacity="0.3"/>
130
- <rect x="830" y="379" width="300" height="14" fill="#1f2632" opacity="0.3"/>
131
-
132
- <!-- BuddyDex Grid with colored discovered species -->
133
- <text x="980" y="334" font-family="Monaco, 'Courier New', monospace" font-size="12" fill="#c9d1d9" text-anchor="middle">
134
- <tspan x="980" dy="0" fill="#55FF55">[X] duck</tspan><tspan fill="#c9d1d9"> [ ] ??? </tspan><tspan fill="#5599FF">[X] cat</tspan>
127
+ <!-- BuddyDex Grid perfectly centered (no x on tspans) -->
128
+ <text x="1000" y="355" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#c9d1d9" text-anchor="middle">
129
+ <tspan fill="#55FF55">[X] duck</tspan><tspan fill="#c9d1d9"> [ ] ??? </tspan><tspan fill="#5599FF">[X] cat</tspan>
135
130
  </text>
136
- <text x="980" y="348" font-family="Monaco, 'Courier New', monospace" font-size="12" fill="#c9d1d9" text-anchor="middle">
137
- <tspan x="980" dy="0">[ ] ??? </tspan><tspan fill="#FF55FF">[X] dragon</tspan><tspan fill="#c9d1d9"> [ ] ???</tspan>
131
+ <text x="1000" y="380" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#c9d1d9" text-anchor="middle">
132
+ <tspan>[ ] ??? </tspan><tspan fill="#FF55FF">[X] dragon</tspan><tspan> [ ] ???</tspan>
138
133
  </text>
139
- <text x="980" y="362" font-family="Monaco, 'Courier New', monospace" font-size="12" fill="#c9d1d9" text-anchor="middle">
140
- <tspan x="980" dy="0" fill="#FFD700">[X] turtle</tspan><tspan fill="#c9d1d9"> [ ] ??? </tspan><tspan fill="#55FF55">[X] octopus</tspan>
134
+ <text x="1000" y="405" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#c9d1d9" text-anchor="middle">
135
+ <tspan fill="#FFD700">[X] turtle</tspan><tspan> [ ] ??? </tspan><tspan fill="#55FF55">[X] octopus</tspan>
141
136
  </text>
142
- <text x="980" y="376" font-family="Monaco, 'Courier New', monospace" font-size="12" fill="#6e7681" text-anchor="middle">
143
- <tspan x="980" dy="0">[ ] ??? [ ] ??? [ ] ???</tspan>
137
+ <text x="1000" y="430" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#6e7681" text-anchor="middle">
138
+ [ ] ??? [ ] ??? [ ] ???
144
139
  </text>
145
- <text x="980" y="390" font-family="Monaco, 'Courier New', monospace" font-size="12" fill="#6e7681" text-anchor="middle">
146
- <tspan x="980" dy="0">[ ] ??? [ ] ??? [ ] ???</tspan>
140
+ <text x="1000" y="455" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#6e7681" text-anchor="middle">
141
+ [ ] ??? [ ] ??? [ ] ???
147
142
  </text>
148
- <text x="980" y="404" font-family="Monaco, 'Courier New', monospace" font-size="12" fill="#6e7681" text-anchor="middle">
149
- <tspan x="980" dy="0">[ ] ??? [ ] ??? [ ] ???</tspan>
143
+ <text x="1000" y="480" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#6e7681" text-anchor="middle">
144
+ [ ] ??? [ ] ??? [ ] ???
150
145
  </text>
151
146
 
152
147
  <!-- Progress bar visual -->
153
- <rect x="835" y="438" width="300" height="8" fill="#1f2632" stroke="#30363d" stroke-width="1" rx="2"/>
154
- <rect x="835" y="438" width="83" height="8" fill="#79c0ff" rx="2"/>
148
+ <rect x="850" y="505" width="300" height="10" fill="#1f2632" stroke="#30363d" stroke-width="1" rx="2"/>
149
+ <rect x="850" y="505" width="83" height="10" fill="#79c0ff" rx="2"/>
155
150
 
156
151
  <!-- Progress text -->
157
- <text x="980" y="458" font-family="Monaco, 'Courier New', monospace" font-size="11" fill="#8b949e" text-anchor="middle">
158
- <tspan x="980" dy="0">5/18 Discovered • ✨ 0 Shinies</tspan>
152
+ <text x="1000" y="535" font-family="Monaco, 'Courier New', monospace" font-size="13" fill="#8b949e" text-anchor="middle">
153
+ 5/18 Discovered • ✨ 0 Shinies
159
154
  </text>
160
155
 
161
- <!-- Collection description -->
162
- <text x="980" y="546" font-family="Arial, Helvetica, sans-serif" font-size="12" fill="#c9d1d9" text-anchor="middle" font-style="italic">
163
- <tspan x="980" dy="0">Persistent discovery tracker</tspan>
156
+ <!-- Collection description updated to monospace, no italics -->
157
+ <text x="1000" y="595" font-family="Monaco, 'Courier New', monospace" font-size="15" fill="#79c0ff" text-anchor="middle">
158
+ PERSISTENT DISCOVERY TRACKER
164
159
  </text>
165
160
 
166
- <!-- Bottom info section -->
167
- <rect x="40" y="660" width="1120" height="40" rx="8" fill="#161b22" stroke="#30363d" stroke-width="2"/>
168
-
169
- <text x="60" y="685" font-family="Arial, Helvetica, sans-serif" font-size="11" fill="#6e7681">
170
- <tspan x="60" dy="0">MCP Server • Stat-based personalities • Binary patching • npm: buddy-mcp</tspan>
171
- </text>
172
161
  </svg>
@@ -1 +1 @@
1
- {"version":3,"file":"pet-config.d.ts","sourceRoot":"","sources":["../../src/config/pet-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQtE,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAEnD;AAED,wBAAgB,aAAa,IAAI,SAAS,GAAG,IAAI,CAOhD;AAqED,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAiBpD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAEvD;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,EAAE,QAAgB,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAChD,IAAI,CAmBN;AAED,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAGzD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAazD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAWhD"}
1
+ {"version":3,"file":"pet-config.d.ts","sourceRoot":"","sources":["../../src/config/pet-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMtE,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAEnD;AAED,wBAAgB,aAAa,IAAI,SAAS,GAAG,IAAI,CAOhD;AAgED,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAiBpD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAEvD;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,EAAE,QAAgB,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAChD,IAAI,CAmBN;AAED,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAGzD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAazD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAWhD"}
@@ -4,7 +4,6 @@ import { homedir } from 'os';
4
4
  import { ORIGINAL_SALT } from '../constants.js';
5
5
  import { getCompanionName, getCompanionPersonality } from "./claude-config.js";
6
6
  const OUR_CONFIG = join(homedir(), '.buddy-mcp.json');
7
- // --- v1 compat (used by apply --silent fast path) ---
8
7
  export function savePetConfig(data) {
9
8
  writeFileSync(OUR_CONFIG, JSON.stringify(data, null, 2) + '\n');
10
9
  }
@@ -18,7 +17,6 @@ export function loadPetConfig() {
18
17
  return null;
19
18
  }
20
19
  }
21
- // --- v2 with profiles (keyed by salt) ---
22
20
  function migrateV1(v1) {
23
21
  const migrated = {
24
22
  version: 2,
@@ -56,22 +54,19 @@ function migrateNameKeyedProfiles(config) {
56
54
  const entries = Object.entries(config.profiles);
57
55
  if (entries.length === 0)
58
56
  return false;
59
- // If all keys already look like salts, no migration needed
60
57
  if (entries.every(([key]) => saltPattern.test(key)))
61
58
  return false;
62
59
  const newProfiles = {};
63
60
  for (const [key, profile] of entries) {
64
61
  if (saltPattern.test(key)) {
65
- // Already salt-keyed
66
62
  newProfiles[key] = profile;
67
63
  }
68
64
  else {
69
- // Old name-keyed entry re-key by salt, store old key as display name
65
+ // Old name-keyed entry: re-key by salt, store old key as display name
70
66
  newProfiles[profile.salt] = {
71
67
  ...profile,
72
68
  name: profile.name ?? key,
73
69
  };
74
- // Fix activeProfile if it pointed to the old name
75
70
  if (config.activeProfile === key) {
76
71
  config.activeProfile = profile.salt;
77
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pet-config.js","sourceRoot":"","sources":["../../src/config/pet-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pet-config.js","sourceRoot":"","sources":["../../src/config/pet-config.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,6 @@ function randomSalt() {
34
34
  }
35
35
  return s;
36
36
  }
37
- // Filter out --fnv1a from args
38
37
  const args = process.argv.slice(2).filter((a) => a !== '--fnv1a');
39
38
  const [userId, wantSpecies, wantRarity, wantEye, wantHat, wantShiny, wantPeak, wantDump] = args;
40
39
  if (!userId || !wantSpecies || !wantRarity || !wantEye || !wantHat) {
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/finder/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/finder/worker.ts"],"names":[],"mappings":"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"}