@lyellr88/buddy-mcp 1.4.0 → 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.
- package/README.md +82 -84
- package/assets/buddy_cli_builder.mp4 +0 -0
- package/assets/buddy_reroll_action.mp4 +0 -0
- package/assets/buddy_tools_action.mp4 +0 -0
- package/assets/hero.svg +161 -0
- package/dist/config/pet-config.d.ts.map +1 -1
- package/dist/config/pet-config.js +1 -6
- package/dist/config/pet-config.js.map +1 -1
- package/dist/finder/worker.js +0 -1
- package/dist/finder/worker.js.map +1 -1
- package/dist/mcp/index.js +47 -37
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/persistence.d.ts.map +1 -1
- package/dist/mcp/persistence.js +7 -17
- package/dist/mcp/persistence.js.map +1 -1
- package/dist/mcp/state.d.ts.map +1 -1
- package/dist/mcp/state.js +0 -1
- package/dist/mcp/state.js.map +1 -1
- package/dist/mcp/tools/auto.d.ts.map +1 -1
- package/dist/mcp/tools/auto.js +1 -2
- package/dist/mcp/tools/auto.js.map +1 -1
- package/dist/mcp/tools/core.js +26 -30
- package/dist/mcp/tools/core.js.map +1 -1
- package/dist/mcp/tools/export.js +41 -16
- package/dist/mcp/tools/export.js.map +1 -1
- package/dist/mcp/tools/interact.js +3 -4
- package/dist/mcp/tools/interact.js.map +1 -1
- package/dist/mcp/tools/relay.d.ts.map +1 -1
- package/dist/mcp/tools/relay.js +1 -3
- package/dist/mcp/tools/relay.js.map +1 -1
- package/dist/mcp/tools/stats.d.ts.map +1 -1
- package/dist/mcp/tools/stats.js +3 -13
- package/dist/mcp/tools/stats.js.map +1 -1
- package/dist/mcp/watcher.js +19 -14
- package/dist/mcp/watcher.js.map +1 -1
- package/dist/patcher/binary-finder.d.ts.map +1 -1
- package/dist/patcher/binary-finder.js +3 -9
- package/dist/patcher/binary-finder.js.map +1 -1
- package/dist/patcher/patch.d.ts.map +1 -1
- package/dist/patcher/patch.js +5 -14
- package/dist/patcher/patch.js.map +1 -1
- package/dist/patcher/preflight.d.ts.map +1 -1
- package/dist/patcher/preflight.js +2 -9
- package/dist/patcher/preflight.js.map +1 -1
- package/dist/personalities.d.ts.map +1 -1
- package/dist/personalities.js +0 -7
- package/dist/personalities.js.map +1 -1
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +0 -17
- package/dist/presets.js.map +1 -1
- package/dist/tui/animator.d.ts +0 -6
- package/dist/tui/animator.d.ts.map +1 -1
- package/dist/tui/animator.js +0 -6
- package/dist/tui/animator.js.map +1 -1
- package/dist/tui/apply/index.d.ts.map +1 -1
- package/dist/tui/apply/index.js +15 -40
- package/dist/tui/apply/index.js.map +1 -1
- package/dist/tui/builder/index.d.ts.map +1 -1
- package/dist/tui/builder/index.js +5 -23
- package/dist/tui/builder/index.js.map +1 -1
- package/dist/tui/builder/keyboard.d.ts.map +1 -1
- package/dist/tui/builder/keyboard.js +0 -1
- package/dist/tui/builder/keyboard.js.map +1 -1
- package/dist/tui/builder/preview-panel.d.ts.map +1 -1
- package/dist/tui/builder/preview-panel.js +3 -18
- package/dist/tui/builder/preview-panel.js.map +1 -1
- package/dist/tui/builder/selection-panel.d.ts.map +1 -1
- package/dist/tui/builder/selection-panel.js +0 -21
- package/dist/tui/builder/selection-panel.js.map +1 -1
- package/dist/tui/commands/buddies.d.ts.map +1 -1
- package/dist/tui/commands/buddies.js +5 -12
- package/dist/tui/commands/buddies.js.map +1 -1
- package/dist/tui/commands/current.js +1 -1
- package/dist/tui/commands/current.js.map +1 -1
- package/dist/tui/commands/interactive.d.ts.map +1 -1
- package/dist/tui/commands/interactive.js +12 -25
- package/dist/tui/commands/interactive.js.map +1 -1
- package/dist/tui/commands/preview.d.ts.map +1 -1
- package/dist/tui/commands/preview.js +1 -5
- package/dist/tui/commands/preview.js.map +1 -1
- package/dist/tui/commands/restore.d.ts.map +1 -1
- package/dist/tui/commands/restore.js +0 -1
- package/dist/tui/commands/restore.js.map +1 -1
- package/dist/tui/commands/share.d.ts.map +1 -1
- package/dist/tui/commands/share.js +1 -4
- package/dist/tui/commands/share.js.map +1 -1
- package/dist/tui/commands/start-screen.d.ts.map +1 -1
- package/dist/tui/commands/start-screen.js +3 -5
- package/dist/tui/commands/start-screen.js.map +1 -1
- package/dist/tui/display.js +1 -1
- package/dist/tui/gallery/index.d.ts.map +1 -1
- package/dist/tui/gallery/index.js +2 -10
- package/dist/tui/gallery/index.js.map +1 -1
- package/dist/tui/gallery/profile-list-panel.d.ts.map +1 -1
- package/dist/tui/gallery/profile-list-panel.js +0 -1
- package/dist/tui/gallery/profile-list-panel.js.map +1 -1
- package/dist/tui/gallery/profile-preview-panel.d.ts.map +1 -1
- package/dist/tui/gallery/profile-preview-panel.js +2 -15
- package/dist/tui/gallery/profile-preview-panel.js.map +1 -1
- package/dist/tui/presets/index.d.ts.map +1 -1
- package/dist/tui/presets/index.js +2 -4
- package/dist/tui/presets/index.js.map +1 -1
- package/dist/tui/prompts.d.ts.map +1 -1
- package/dist/tui/prompts.js +0 -1
- package/dist/tui/prompts.js.map +1 -1
- package/dist/tui/start/index.d.ts.map +1 -1
- package/dist/tui/start/index.js +12 -11
- package/dist/tui/start/index.js.map +1 -1
- package/package.json +26 -8
package/README.md
CHANGED
|
@@ -1,14 +1,52 @@
|
|
|
1
|
-
|
|
1
|
+

|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@lyellr88/buddy-mcp)
|
|
4
3
|
[](https://github.com/Lyellr88/buddy-mcp/actions/workflows/ci.yml)
|
|
4
|
+
[](https://www.npmjs.com/package/@lyellr88/buddy-mcp)
|
|
5
|
+
[](https://www.npmjs.com/package/@lyellr88/buddy-mcp)
|
|
6
|
+
[](https://nodejs.org/)
|
|
5
7
|
[](LICENSE)
|
|
6
|
-
[](https://nodejs.org/)
|
|
7
8
|
|
|
8
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.
|
|
9
10
|
|
|
10
11
|
> A gacha companion system for Claude Code. Roll for a rare buddy, patch it directly into the binary, collect 'em all. Buddy-mcp is an MCP server that replaces Claude Code's built-in companion with one you actually rolled for. Reroll, get lucky, close Claude, reopen. Your new buddy is waiting. Legendary drop rates apply.
|
|
11
12
|
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Quick Demo
|
|
16
|
+
|
|
17
|
+
<table>
|
|
18
|
+
<tr>
|
|
19
|
+
<td width="33%">
|
|
20
|
+
|
|
21
|
+
**Interactive Builder**
|
|
22
|
+
|
|
23
|
+
Build your perfect buddy with full control.
|
|
24
|
+
|
|
25
|
+
[](https://github.com/user-attachments/assets/840de2d0-617b-40fd-b653-c091af9abbfc)
|
|
26
|
+
|
|
27
|
+
</td>
|
|
28
|
+
<td width="33%">
|
|
29
|
+
|
|
30
|
+
**Reroll in Action**
|
|
31
|
+
|
|
32
|
+
Roll, close Claude, reopen and enjoy your new buddy.
|
|
33
|
+
|
|
34
|
+
[](https://github.com/user-attachments/assets/83adc99e-2c49-4255-bf48-eca41d10580b)
|
|
35
|
+
|
|
36
|
+
</td>
|
|
37
|
+
<td width="33%">
|
|
38
|
+
|
|
39
|
+
**Interact with Tools**
|
|
40
|
+
|
|
41
|
+
Talk, pet, and explore your buddy's dex.
|
|
42
|
+
|
|
43
|
+
[](https://github.com/user-attachments/assets/485c608f-55ed-40ed-a592-936814ea9601)
|
|
44
|
+
|
|
45
|
+
</td>
|
|
46
|
+
</tr>
|
|
47
|
+
</table>
|
|
48
|
+
|
|
49
|
+
|
|
12
50
|
---
|
|
13
51
|
|
|
14
52
|
## How It Works
|
|
@@ -23,20 +61,11 @@ Claude Code's companion is generated from a salt string baked into the binary. b
|
|
|
23
61
|
|
|
24
62
|
No companion server. No cloud. Just you, your binary, and the gacha gods.
|
|
25
63
|
|
|
26
|
-
|
|
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.
|
|
27
65
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
buddy-mcp isn’t just a UI mod. It’s a deterministic companion system layered on top of Claude Code’s binary, with:
|
|
31
|
-
|
|
32
|
-
- Rerollable personalities and stat-bound behaviors
|
|
33
|
-
- Persistent state and BuddyDex tracking
|
|
34
|
-
- Locked tool sets per roll (no session drift)
|
|
35
|
-
- A self-healing patch pipeline that detects, restores, and reapplies across updates
|
|
36
|
-
|
|
37
|
-
Lightweight by design with minimal token usage and data footprint. Most features operate inline through message augmentation rather than separate invocation flows.
|
|
66
|
+
---
|
|
38
67
|
|
|
39
|
-
|
|
68
|
+
> 🛠️ **Looking for the technical deep-dive?** See [TECHNICAL.md](TECHNICAL.md) for the patch flow diagrams, binary patching logic, and state file reference.
|
|
40
69
|
|
|
41
70
|
---
|
|
42
71
|
|
|
@@ -93,9 +122,24 @@ Claude will auto-detect the installed binary and connect it.
|
|
|
93
122
|
|
|
94
123
|
### 4. Verify
|
|
95
124
|
|
|
96
|
-
Open Claude Code
|
|
125
|
+
Open Claude Code. Your buddy is live—use Claude Code's native `/buddy` command to see your card, or ask Claude: **"show me my buddy"**
|
|
126
|
+
|
|
127
|
+
You should see your companion's species, rarity, stats, and personality. You're in.
|
|
97
128
|
|
|
98
|
-
|
|
129
|
+
### 4b. Natural Language Activation
|
|
130
|
+
|
|
131
|
+
All buddy tools work through natural language. Claude's NLP detects intent automatically:
|
|
132
|
+
|
|
133
|
+
| Natural Language | Activates |
|
|
134
|
+
|------------------|-----------|
|
|
135
|
+
| "reroll buddy" / "let's roll again" | `reroll_buddy` |
|
|
136
|
+
| "talk to my buddy" / "what does buddy think" | `buddy_talk` |
|
|
137
|
+
| "pet buddy" / "pet them" | `pet_buddy` |
|
|
138
|
+
| "my buddy dex" / "show me my collection" | `view_buddy_dex` |
|
|
139
|
+
| "export buddy card" / "save my buddy" | `export_buddy_card` |
|
|
140
|
+
| "export sprite" / "save the sprite" | `export_buddy_sprite` |
|
|
141
|
+
|
|
142
|
+
No tool names required — just chat naturally.
|
|
99
143
|
|
|
100
144
|
### 5. Launch the TUI Builder (optional)
|
|
101
145
|
|
|
@@ -141,91 +185,45 @@ Each buddy has 5 stats: **Debugging, Patience, Chaos, Wisdom, Snark**. A peak st
|
|
|
141
185
|
|
|
142
186
|
**20 baked-in tools.** Only **2 are visible** at a time: 1 randomly picked from each of your buddy's **top 2 stats by raw value**. The other 18 stay hidden. The visible pair is **locked per roll**. It doesn't change until you reroll. Every buddy shows a different pair.
|
|
143
187
|
|
|
144
|
-
| Tool | Stat | What it does |
|
|
145
|
-
|------|------|-------------|
|
|
146
|
-
| `deep_trace` | Debugging | Focused bug hunting. Abrupt, clinical, slightly haunted. |
|
|
147
|
-
| `trace_nightmare` | Debugging | When the trace stops making sense. Surreal debugging perspective |
|
|
148
|
-
| `null_hunt` | Debugging | Hunt for null refs. Clinical. Relentless |
|
|
149
|
-
| `stack_dive` | Debugging | Dive into the callstack. The bug is always deeper than you think |
|
|
150
|
-
| `patience_check` | Patience | Check if your buddy is still willing to help |
|
|
151
|
-
| `wait_wisdom` | Patience | Slow down. Receive patience-encoded insight |
|
|
152
|
-
| `vibe_check` | Patience | The mystery action. Your buddy reads the vibe. 5% cosmic event |
|
|
153
|
-
| `still_point` | Patience | Stop. Be still. Let the answer come to you |
|
|
154
|
-
| `chaos_audit` | Chaos | Unpredictable. Might help. Might not. Science |
|
|
155
|
-
| `chaos_roulette` | Chaos | Spin the chaos wheel. Receive a wildly lateral suggestion |
|
|
156
|
-
| `chaos_spark` | Chaos | Ignite a lateral idea. May or may not be relevant |
|
|
157
|
-
| `entropy_roll` | Chaos | Roll against entropy. The universe responds |
|
|
158
|
-
| `zen_consult` | Wisdom | Philosophical insight into your architecture |
|
|
159
|
-
| `zen_mirror` | Wisdom | Turn the question inward. A reflection, not an answer |
|
|
160
|
-
| `oracle_seek` | Wisdom | Seek the oracle. The answer is already inside you |
|
|
161
|
-
| `deep_thought` | Wisdom | Think slower. The answer requires depth |
|
|
162
|
-
| `snark_roast` | Snark | Light sarcastic critique of your current work |
|
|
163
|
-
| `snark_savage` | Snark | No mercy. Full roast. For when you need the unfiltered truth |
|
|
164
|
-
| `side_eye` | Snark | Your buddy looks at your code. Then at you. Then back at the code |
|
|
165
|
-
| `snark_verdict` | Snark | Final ruling from the bench. The buddy has reviewed and judged |
|
|
166
|
-
|
|
167
188
|
---
|
|
168
189
|
|
|
169
|
-
## Patch Flow
|
|
170
190
|
|
|
171
|
-
buddy-mcp patches the Claude binary directly. Here's what happens when you hit `reroll_buddy`:
|
|
172
191
|
|
|
173
|
-
|
|
174
|
-
reroll_buddy
|
|
175
|
-
│
|
|
176
|
-
├─ Roll random traits (species, rarity, eye, hat, shiny chance)
|
|
177
|
-
│
|
|
178
|
-
├─ Multi-worker salt search (up to 8 parallel Bun workers)
|
|
179
|
-
│ └─ Each worker brute-forces salts using wyhash until traits match
|
|
180
|
-
│
|
|
181
|
-
├─ Try to patch binary immediately
|
|
182
|
-
│ ├─ Success → "Close Claude and reopen"
|
|
183
|
-
│ └─ EPERM (Claude is running) → Save pending patch + start background watcher
|
|
184
|
-
│ └─ Watcher polls every 2s, applies patch the moment Claude closes
|
|
185
|
-
│
|
|
186
|
-
└─ Profile saved: species, rarity, stats, name, personality
|
|
187
|
-
|
|
188
|
-
On next session start (hook fires):
|
|
189
|
-
│
|
|
190
|
-
├─ Salt still valid → no-op (fast path)
|
|
191
|
-
│
|
|
192
|
-
├─ Pending patch found → apply it
|
|
193
|
-
│
|
|
194
|
-
└─ Salt mismatch (Claude auto-updated)
|
|
195
|
-
├─ Try .buddy-mcp-bak (only if it contains original salt)
|
|
196
|
-
├─ Try .anybuddy-bak (fallback for prior patcher users)
|
|
197
|
-
└─ Restore + re-patch automatically, no reinstall required
|
|
198
|
-
```
|
|
192
|
+
## Troubleshooting
|
|
199
193
|
|
|
194
|
+
### Buddy doesn't change after reroll
|
|
200
195
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
## State Files
|
|
196
|
+
**Normal flow (Windows):** When you reroll and Claude is running:
|
|
204
197
|
|
|
205
|
-
|
|
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
|
|
206
201
|
|
|
207
|
-
|
|
208
|
-
|------|---------|
|
|
209
|
-
| `~/.buddy-mcp.json` | Your buddy profiles (species, rarity, stats, name, salt) |
|
|
210
|
-
| `~/.buddy_mcp_gacha.json` | Gacha extras: shiny count, BuddyDex, manifested tools |
|
|
211
|
-
| `~/.buddy_mcp_pending.json` | Queued patch waiting for Claude to close |
|
|
202
|
+
If it doesn't appear after reopening:
|
|
212
203
|
|
|
213
|
-
|
|
204
|
+
1. **Verify Claude is fully closed** (check Task Manager on Windows)
|
|
205
|
+
- Even minimized or backgrounded windows count — they keep the binary locked
|
|
206
|
+
- Wait a few seconds after closing
|
|
207
|
+
2. **Reopen Claude Code**
|
|
208
|
+
- The startup hook auto-applies any pending patches
|
|
209
|
+
- You should see your new companion immediately
|
|
214
210
|
|
|
215
|
-
|
|
211
|
+
### Prefer immediate patching?
|
|
216
212
|
|
|
217
|
-
If
|
|
213
|
+
If you want to guarantee a patch applies without waiting for the watcher, close Claude *before* rerolling:
|
|
218
214
|
|
|
219
215
|
```bash
|
|
220
|
-
|
|
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)
|
|
221
221
|
```
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
This is the only time you need manual steps — the watcher handles all other cases.
|
|
224
224
|
|
|
225
225
|
---
|
|
226
226
|
|
|
227
227
|
## Credits
|
|
228
228
|
|
|
229
229
|
Forked and extended from [any-buddy](https://github.com/cpaczek/any-buddy) by cpaczek.
|
|
230
|
-
|
|
231
|
-
Licensed under [WTFPL](http://www.wtfpl.net/).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/assets/hero.svg
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<svg viewBox="0 0 1200 700" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
|
|
3
|
+
<!-- Glowing accent lines in rarity colors -->
|
|
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
|
+
|
|
8
|
+
<!-- Top Info Section - cleaner modern style -->
|
|
9
|
+
<rect x="0" y="0" width="1200" height="220" rx="0" fill="#0d1117" stroke="none"/>
|
|
10
|
+
|
|
11
|
+
<!-- Rarity color accent bar at top -->
|
|
12
|
+
<rect x="0" y="0" width="1200" height="4" rx="0" fill="url(#rarity-gradient)"/>
|
|
13
|
+
|
|
14
|
+
<defs>
|
|
15
|
+
<linearGradient id="rarity-gradient" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
16
|
+
<stop offset="0%" style="stop-color:#FF55FF;stop-opacity:1" />
|
|
17
|
+
<stop offset="25%" style="stop-color:#FFD700;stop-opacity:1" />
|
|
18
|
+
<stop offset="35%" style="stop-color:#55FF55;stop-opacity:1" />
|
|
19
|
+
<stop offset="100%" style="stop-color:#5599FF;stop-opacity:1" />
|
|
20
|
+
</linearGradient>
|
|
21
|
+
</defs>
|
|
22
|
+
|
|
23
|
+
<!-- Icon badges (minimal, clean) -->
|
|
24
|
+
<!-- Roll badge -->
|
|
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
|
+
|
|
28
|
+
<!-- Build badge -->
|
|
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
|
+
|
|
32
|
+
<!-- Collect badge -->
|
|
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
|
+
|
|
36
|
+
<!-- Heading -->
|
|
37
|
+
<text x="40" y="130" font-family="Monaco, 'Courier New', monospace" font-size="48" font-weight="bold" fill="#79c0ff">buddy-mcp</text>
|
|
38
|
+
|
|
39
|
+
<!-- Slogan right corner -->
|
|
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
|
+
|
|
44
|
+
<!-- Divider under info section -->
|
|
45
|
+
<line x1="0" y1="220" x2="1200" y2="220" stroke="#30363d" stroke-width="1"/>
|
|
46
|
+
|
|
47
|
+
<!-- Main Content Section (3 Columns) -->
|
|
48
|
+
|
|
49
|
+
<!-- Left Column: Roll/Gacha Concept -->
|
|
50
|
+
<rect x="0" y="220" width="400" height="480" fill="#161b22" stroke="none"/>
|
|
51
|
+
|
|
52
|
+
<!-- Roll title -->
|
|
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
|
+
|
|
55
|
+
<!-- Dice illustration scaled up -->
|
|
56
|
+
<g transform="translate(200, 385) scale(1.2)">
|
|
57
|
+
<!-- Dice 1 -->
|
|
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
|
+
|
|
61
|
+
<!-- Dice 2 -->
|
|
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
|
+
|
|
66
|
+
<!-- Dice 3 -->
|
|
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
|
+
</g>
|
|
72
|
+
|
|
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
|
+
</text>
|
|
79
|
+
|
|
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
|
+
</text>
|
|
85
|
+
|
|
86
|
+
<!-- Vertical divider between left and center -->
|
|
87
|
+
<line x1="400" y1="220" x2="400" y2="700" stroke="#30363d" stroke-width="1"/>
|
|
88
|
+
|
|
89
|
+
<!-- Center Column: Featured Buddy -->
|
|
90
|
+
<rect x="400" y="220" width="400" height="480" fill="#161b22" stroke="none"/>
|
|
91
|
+
|
|
92
|
+
<!-- Featured buddy title -->
|
|
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
|
+
|
|
95
|
+
<!-- Dragon sprite embedded from buddy-flumox-sprite-new.svg -->
|
|
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
|
+
<tspan x="24" y="36" fill="#FF55FF"> \^^^/ </tspan>
|
|
99
|
+
<tspan x="24" y="56" fill="#FF55FF"> /^\ /^\ </tspan>
|
|
100
|
+
<tspan x="24" y="76" fill="#FF55FF"> < ◉ ◉ > </tspan>
|
|
101
|
+
<tspan x="24" y="96" fill="#FF55FF"> ( ~~ ) </tspan>
|
|
102
|
+
<tspan x="24" y="116" fill="#FF55FF"> `-vvvv-´ </tspan>
|
|
103
|
+
</text>
|
|
104
|
+
</svg>
|
|
105
|
+
|
|
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
|
+
<tspan x="600" dy="0">Epic Dragon • Flumox</tspan>
|
|
109
|
+
<tspan x="600" dy="28" font-weight="bold">CHAOS 100 | DEBUG 69</tspan>
|
|
110
|
+
</text>
|
|
111
|
+
|
|
112
|
+
<!-- Vertical divider between center and right -->
|
|
113
|
+
<line x1="800" y1="220" x2="800" y2="700" stroke="#30363d" stroke-width="1"/>
|
|
114
|
+
|
|
115
|
+
<!-- Right Column: Collect/Dex Concept -->
|
|
116
|
+
<rect x="800" y="220" width="400" height="480" fill="#161b22" stroke="none"/>
|
|
117
|
+
|
|
118
|
+
<!-- Collect title -->
|
|
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
|
+
|
|
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
|
+
|
|
124
|
+
<!-- Dex header line -->
|
|
125
|
+
<line x1="835" y1="330" x2="1165" y2="330" stroke="#79c0ff" stroke-width="1" opacity="0.5"/>
|
|
126
|
+
|
|
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>
|
|
130
|
+
</text>
|
|
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>
|
|
133
|
+
</text>
|
|
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>
|
|
136
|
+
</text>
|
|
137
|
+
<text x="1000" y="430" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#6e7681" text-anchor="middle">
|
|
138
|
+
[ ] ??? [ ] ??? [ ] ???
|
|
139
|
+
</text>
|
|
140
|
+
<text x="1000" y="455" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#6e7681" text-anchor="middle">
|
|
141
|
+
[ ] ??? [ ] ??? [ ] ???
|
|
142
|
+
</text>
|
|
143
|
+
<text x="1000" y="480" font-family="Monaco, 'Courier New', monospace" font-size="14" fill="#6e7681" text-anchor="middle">
|
|
144
|
+
[ ] ??? [ ] ??? [ ] ???
|
|
145
|
+
</text>
|
|
146
|
+
|
|
147
|
+
<!-- Progress bar visual -->
|
|
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"/>
|
|
150
|
+
|
|
151
|
+
<!-- Progress text -->
|
|
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
|
|
154
|
+
</text>
|
|
155
|
+
|
|
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
|
|
159
|
+
</text>
|
|
160
|
+
|
|
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;
|
|
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
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"pet-config.js","sourceRoot":"","sources":["../../src/config/pet-config.ts"],"names":[],"mappings":"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"}
|
package/dist/finder/worker.js
CHANGED
|
@@ -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":";AACA,+DAA+D;AAC/D,6CAA6C;AAC7C,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,4CAA4C;AAG5C,OAAO,EACL,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAElD,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,UAAU,CAAC,GAAiB;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;IAC9B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,OAAO,GAAG,kEAAkE,CAAC;AACnF,MAAM,eAAe,GAAG,OAAO,CAAC;AAEhC,SAAS,UAAU;IACjB,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/finder/worker.ts"],"names":[],"mappings":"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"}
|