@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.
Files changed (109) hide show
  1. package/README.md +82 -84
  2. package/assets/buddy_cli_builder.mp4 +0 -0
  3. package/assets/buddy_reroll_action.mp4 +0 -0
  4. package/assets/buddy_tools_action.mp4 +0 -0
  5. package/assets/hero.svg +161 -0
  6. package/dist/config/pet-config.d.ts.map +1 -1
  7. package/dist/config/pet-config.js +1 -6
  8. package/dist/config/pet-config.js.map +1 -1
  9. package/dist/finder/worker.js +0 -1
  10. package/dist/finder/worker.js.map +1 -1
  11. package/dist/mcp/index.js +47 -37
  12. package/dist/mcp/index.js.map +1 -1
  13. package/dist/mcp/persistence.d.ts.map +1 -1
  14. package/dist/mcp/persistence.js +7 -17
  15. package/dist/mcp/persistence.js.map +1 -1
  16. package/dist/mcp/state.d.ts.map +1 -1
  17. package/dist/mcp/state.js +0 -1
  18. package/dist/mcp/state.js.map +1 -1
  19. package/dist/mcp/tools/auto.d.ts.map +1 -1
  20. package/dist/mcp/tools/auto.js +1 -2
  21. package/dist/mcp/tools/auto.js.map +1 -1
  22. package/dist/mcp/tools/core.js +26 -30
  23. package/dist/mcp/tools/core.js.map +1 -1
  24. package/dist/mcp/tools/export.js +41 -16
  25. package/dist/mcp/tools/export.js.map +1 -1
  26. package/dist/mcp/tools/interact.js +3 -4
  27. package/dist/mcp/tools/interact.js.map +1 -1
  28. package/dist/mcp/tools/relay.d.ts.map +1 -1
  29. package/dist/mcp/tools/relay.js +1 -3
  30. package/dist/mcp/tools/relay.js.map +1 -1
  31. package/dist/mcp/tools/stats.d.ts.map +1 -1
  32. package/dist/mcp/tools/stats.js +3 -13
  33. package/dist/mcp/tools/stats.js.map +1 -1
  34. package/dist/mcp/watcher.js +19 -14
  35. package/dist/mcp/watcher.js.map +1 -1
  36. package/dist/patcher/binary-finder.d.ts.map +1 -1
  37. package/dist/patcher/binary-finder.js +3 -9
  38. package/dist/patcher/binary-finder.js.map +1 -1
  39. package/dist/patcher/patch.d.ts.map +1 -1
  40. package/dist/patcher/patch.js +5 -14
  41. package/dist/patcher/patch.js.map +1 -1
  42. package/dist/patcher/preflight.d.ts.map +1 -1
  43. package/dist/patcher/preflight.js +2 -9
  44. package/dist/patcher/preflight.js.map +1 -1
  45. package/dist/personalities.d.ts.map +1 -1
  46. package/dist/personalities.js +0 -7
  47. package/dist/personalities.js.map +1 -1
  48. package/dist/presets.d.ts.map +1 -1
  49. package/dist/presets.js +0 -17
  50. package/dist/presets.js.map +1 -1
  51. package/dist/tui/animator.d.ts +0 -6
  52. package/dist/tui/animator.d.ts.map +1 -1
  53. package/dist/tui/animator.js +0 -6
  54. package/dist/tui/animator.js.map +1 -1
  55. package/dist/tui/apply/index.d.ts.map +1 -1
  56. package/dist/tui/apply/index.js +15 -40
  57. package/dist/tui/apply/index.js.map +1 -1
  58. package/dist/tui/builder/index.d.ts.map +1 -1
  59. package/dist/tui/builder/index.js +5 -23
  60. package/dist/tui/builder/index.js.map +1 -1
  61. package/dist/tui/builder/keyboard.d.ts.map +1 -1
  62. package/dist/tui/builder/keyboard.js +0 -1
  63. package/dist/tui/builder/keyboard.js.map +1 -1
  64. package/dist/tui/builder/preview-panel.d.ts.map +1 -1
  65. package/dist/tui/builder/preview-panel.js +3 -18
  66. package/dist/tui/builder/preview-panel.js.map +1 -1
  67. package/dist/tui/builder/selection-panel.d.ts.map +1 -1
  68. package/dist/tui/builder/selection-panel.js +0 -21
  69. package/dist/tui/builder/selection-panel.js.map +1 -1
  70. package/dist/tui/commands/buddies.d.ts.map +1 -1
  71. package/dist/tui/commands/buddies.js +5 -12
  72. package/dist/tui/commands/buddies.js.map +1 -1
  73. package/dist/tui/commands/current.js +1 -1
  74. package/dist/tui/commands/current.js.map +1 -1
  75. package/dist/tui/commands/interactive.d.ts.map +1 -1
  76. package/dist/tui/commands/interactive.js +12 -25
  77. package/dist/tui/commands/interactive.js.map +1 -1
  78. package/dist/tui/commands/preview.d.ts.map +1 -1
  79. package/dist/tui/commands/preview.js +1 -5
  80. package/dist/tui/commands/preview.js.map +1 -1
  81. package/dist/tui/commands/restore.d.ts.map +1 -1
  82. package/dist/tui/commands/restore.js +0 -1
  83. package/dist/tui/commands/restore.js.map +1 -1
  84. package/dist/tui/commands/share.d.ts.map +1 -1
  85. package/dist/tui/commands/share.js +1 -4
  86. package/dist/tui/commands/share.js.map +1 -1
  87. package/dist/tui/commands/start-screen.d.ts.map +1 -1
  88. package/dist/tui/commands/start-screen.js +3 -5
  89. package/dist/tui/commands/start-screen.js.map +1 -1
  90. package/dist/tui/display.js +1 -1
  91. package/dist/tui/gallery/index.d.ts.map +1 -1
  92. package/dist/tui/gallery/index.js +2 -10
  93. package/dist/tui/gallery/index.js.map +1 -1
  94. package/dist/tui/gallery/profile-list-panel.d.ts.map +1 -1
  95. package/dist/tui/gallery/profile-list-panel.js +0 -1
  96. package/dist/tui/gallery/profile-list-panel.js.map +1 -1
  97. package/dist/tui/gallery/profile-preview-panel.d.ts.map +1 -1
  98. package/dist/tui/gallery/profile-preview-panel.js +2 -15
  99. package/dist/tui/gallery/profile-preview-panel.js.map +1 -1
  100. package/dist/tui/presets/index.d.ts.map +1 -1
  101. package/dist/tui/presets/index.js +2 -4
  102. package/dist/tui/presets/index.js.map +1 -1
  103. package/dist/tui/prompts.d.ts.map +1 -1
  104. package/dist/tui/prompts.js +0 -1
  105. package/dist/tui/prompts.js.map +1 -1
  106. package/dist/tui/start/index.d.ts.map +1 -1
  107. package/dist/tui/start/index.js +12 -11
  108. package/dist/tui/start/index.js.map +1 -1
  109. package/package.json +26 -8
package/dist/mcp/index.js CHANGED
@@ -18,11 +18,10 @@ import './tools/core.js'; // side-effect: registers all 9 core tools into dynami
18
18
  import './tools/export.js'; // side-effect: registers export_buddy_card + export_buddy_sprite
19
19
  import './tools/interact.js'; // side-effect: registers activate_buddy_interact + deactivate_buddy_interact
20
20
  import { STAT_TOOL_NAMES } from './tools/stats.js'; // side-effect: registers 20 stat tools
21
- // Returns the cached set of visible stat tool names locked per roll, set by pickVisibleStatTools().
21
+ // Returns the cached set of visible stat tool names: locked per roll, set by pickVisibleStatTools().
22
22
  function visibleStatTools() {
23
23
  return new Set(gachaState.visibleStatTools);
24
24
  }
25
- // --- Server handlers ---
26
25
  server.setRequestHandler(ListToolsRequestSchema, async () => {
27
26
  const visible = visibleStatTools();
28
27
  return {
@@ -33,6 +32,36 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
33
32
  };
34
33
  });
35
34
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
35
+ // Refresh S.currentBuddy from disk before each tool call (in case CLI created a new buddy)
36
+ try {
37
+ const petConfig = loadPetConfigV2();
38
+ const activeSalt = petConfig?.activeProfile;
39
+ const activeProfile = activeSalt ? petConfig?.profiles[activeSalt] : undefined;
40
+ if (activeProfile) {
41
+ S.currentBuddy = { ...activeProfile };
42
+ }
43
+ else if (activeSalt) {
44
+ // Profile not found in dict, but salt is set: derive from roll() as fallback
45
+ const userId = getClaudeUserId();
46
+ const rolled = roll(userId, activeSalt);
47
+ const companionName = getCompanionName();
48
+ S.currentBuddy = {
49
+ salt: activeSalt,
50
+ species: rolled.bones.species,
51
+ rarity: rolled.bones.rarity,
52
+ eye: rolled.bones.eye,
53
+ hat: rolled.bones.hat,
54
+ shiny: rolled.bones.shiny,
55
+ stats: rolled.bones.stats,
56
+ name: companionName,
57
+ personality: DEFAULT_PERSONALITIES[rolled.bones.species],
58
+ createdAt: new Date().toISOString(),
59
+ };
60
+ }
61
+ }
62
+ catch {
63
+ // If refresh fails, continue with stale S.currentBuddy
64
+ }
36
65
  const toolEntry = dynamicTools.get(request.params.name);
37
66
  if (!toolEntry)
38
67
  throw new Error(`Tool not found: ${request.params.name}`);
@@ -47,13 +76,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
47
76
  };
48
77
  }
49
78
  });
50
- // --- CLI: apply pending patch or re-apply saved salt after update ---
51
79
  // Runs when invoked as: buddy-mcp apply or buddy-mcp apply --silent
52
80
  // Handles two cases:
53
81
  // 1. Pending patch waiting from reroll (reads ~/.buddy_mcp_pending.json)
54
82
  // 2. Hook-triggered re-apply after binary update (reads saved salt from pet config)
55
83
  function applyPendingPatch({ silent = false } = {}) {
56
- // First, try pending patch file (from reroll)
57
84
  if (existsSync(PENDING_PATCH_FILE)) {
58
85
  let pending;
59
86
  try {
@@ -80,6 +107,7 @@ function applyPendingPatch({ silent = false } = {}) {
80
107
  }
81
108
  saveProfile(pending.profile, { activate: true });
82
109
  // Update gacha state file directly (no server in memory)
110
+ let gachaUpdateSucceeded = true;
83
111
  if (existsSync(GACHA_STATE_FILE)) {
84
112
  try {
85
113
  const raw = JSON.parse(readFileSync(GACHA_STATE_FILE, 'utf-8'));
@@ -97,34 +125,33 @@ function applyPendingPatch({ silent = false } = {}) {
97
125
  try {
98
126
  unlinkSync(tmp);
99
127
  }
100
- catch {
101
- /* ignore */
102
- }
128
+ catch { }
103
129
  throw writeErr;
104
130
  }
105
131
  }
106
132
  catch {
107
- // Non-fatal gacha state will self-heal on next server start
133
+ // Non-fatal: gacha state will self-heal on next server start
134
+ gachaUpdateSucceeded = false;
108
135
  }
109
136
  }
110
- unlinkSync(PENDING_PATCH_FILE);
137
+ // Only delete pending patch file if the entire operation (patch + gacha update) succeeded
138
+ if (gachaUpdateSucceeded) {
139
+ unlinkSync(PENDING_PATCH_FILE);
140
+ }
111
141
  if (!silent) {
112
142
  console.log(`✅ ${rarity} ${species}${shinyTag} is now active!`);
113
143
  console.log('Restart Claude Code to see your new companion.');
114
144
  }
115
- // Install hook on successful apply (unless already installed)
116
145
  if (!isHookInstalled()) {
117
146
  try {
118
147
  installHook(process.argv[1]);
119
148
  }
120
149
  catch {
121
- // Non-fatal hook install failure shouldn't crash the apply
150
+ // Non-fatal: hook install failure shouldn't crash the apply
122
151
  }
123
152
  }
124
153
  return;
125
154
  }
126
- // No pending file — try hook-triggered re-apply after update
127
- // Load saved salt from pet config
128
155
  const petConfig = loadPetConfigV2();
129
156
  if (!petConfig?.salt) {
130
157
  if (!silent)
@@ -140,7 +167,6 @@ function applyPendingPatch({ silent = false } = {}) {
140
167
  console.error(err.message);
141
168
  process.exit(0);
142
169
  }
143
- // Fast path: check if our salt is already applied
144
170
  const checkOurs = verifySalt(binaryPath, petConfig.salt);
145
171
  if (checkOurs.found >= 3) {
146
172
  if (!silent)
@@ -152,24 +178,19 @@ function applyPendingPatch({ silent = false } = {}) {
152
178
  if (checkOrig.found >= 3) {
153
179
  try {
154
180
  patchBinary(binaryPath, ORIGINAL_SALT, petConfig.salt);
155
- // Restore companion identity from saved profile
156
181
  const activeSalt = petConfig.activeProfile;
157
182
  const profile = activeSalt ? petConfig.profiles[activeSalt] : undefined;
158
183
  if (profile?.name) {
159
184
  try {
160
185
  renameCompanion(profile.name);
161
186
  }
162
- catch {
163
- /* non-fatal */
164
- }
187
+ catch { }
165
188
  }
166
189
  if (profile?.personality) {
167
190
  try {
168
191
  setCompanionPersonality(profile.personality);
169
192
  }
170
- catch {
171
- /* non-fatal */
172
- }
193
+ catch { }
173
194
  }
174
195
  if (!silent)
175
196
  console.log('✅ Pet re-patched after update.');
@@ -193,17 +214,13 @@ function applyPendingPatch({ silent = false } = {}) {
193
214
  try {
194
215
  renameCompanion(profile.name);
195
216
  }
196
- catch {
197
- /* non-fatal */
198
- }
217
+ catch { }
199
218
  }
200
219
  if (profile?.personality) {
201
220
  try {
202
221
  setCompanionPersonality(profile.personality);
203
222
  }
204
- catch {
205
- /* non-fatal */
206
- }
223
+ catch { }
207
224
  }
208
225
  if (!silent)
209
226
  console.log('✅ Pet restored from backup and re-patched after update.');
@@ -215,7 +232,6 @@ function applyPendingPatch({ silent = false } = {}) {
215
232
  process.exit(silent ? 0 : 1);
216
233
  }
217
234
  }
218
- // Fallback: couldn't find a known salt or backup
219
235
  if (!silent) {
220
236
  console.error('⚠️ Could not find a known salt in binary or any valid backup.');
221
237
  console.error('Run buddy-mcp-build restore, or reinstall Claude Code.');
@@ -227,11 +243,8 @@ if (process.argv[2] === 'apply') {
227
243
  applyPendingPatch({ silent });
228
244
  process.exit(0);
229
245
  }
230
- // --- Startup ---
231
246
  async function main() {
232
- // 1. Load gacha extras (dex, shiny count, manifested tools)
233
247
  loadGachaState();
234
- // 2. Load active buddy profile
235
248
  try {
236
249
  const petConfig = loadPetConfigV2();
237
250
  const activeSalt = petConfig?.activeProfile;
@@ -240,7 +253,7 @@ async function main() {
240
253
  S.currentBuddy = { ...activeProfile };
241
254
  }
242
255
  else {
243
- // No profile yet derive buddy from current salt using roll()
256
+ // No profile yet: derive buddy from current salt using roll()
244
257
  const userId = getClaudeUserId();
245
258
  const salt = petConfig?.salt ?? ORIGINAL_SALT;
246
259
  const rolled = roll(userId, salt);
@@ -263,7 +276,6 @@ async function main() {
263
276
  catch (err) {
264
277
  console.error('Buddy load failed (non-fatal):', err);
265
278
  }
266
- // 3. Check if binary changed since last patch (Claude auto-update detection)
267
279
  try {
268
280
  const binaryPath = findClaudeBinary();
269
281
  const currentMtime = statSync(binaryPath).mtimeMs;
@@ -272,17 +284,15 @@ async function main() {
272
284
  }
273
285
  }
274
286
  catch {
275
- // Binary not found non-fatal, reroll will surface it
287
+ // Binary not found: non-fatal, reroll will surface it
276
288
  }
277
- // 4. Dex sync — ensure current buddy is recorded
278
289
  if (S.currentBuddy && !gachaState.discoveredSpecies.includes(S.currentBuddy.species)) {
279
290
  gachaState.discoveredSpecies.push(S.currentBuddy.species);
280
291
  saveGachaState();
281
292
  }
282
- // 5. Auto-manifest personality tools
283
293
  if (S.currentBuddy)
284
294
  autoManifestTools(S.currentBuddy);
285
- // 6. Lock stat tools if not already set (first launch or old state file)
295
+ // Lock stat tools if not already set (first launch or missing state file)
286
296
  if (S.currentBuddy && gachaState.visibleStatTools.length === 0) {
287
297
  pickVisibleStatTools();
288
298
  saveGachaState();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/mcp/persistence.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,eAAe,aAkC1B,CAAC;AAEH,wBAAgB,cAAc,IAAI,IAAI,CAoBrC;AAED,wBAAgB,cAAc,IAAI,IAAI,CA8BrC;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAc3C;AAID,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,GAAG,OAAO,EACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,IAAI,CA6CN"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/mcp/persistence.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,aA6B1B,CAAC;AAEH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC;AAED,wBAAgB,cAAc,IAAI,IAAI,CA6BrC;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAc3C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,GAAG,OAAO,EACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,IAAI,CA6CN"}
@@ -1,10 +1,9 @@
1
1
  import { readFileSync, writeFileSync, renameSync, unlinkSync, existsSync } from 'fs';
2
2
  import { S, gachaState, dynamicTools, GACHA_STATE_FILE } from './state.js';
3
3
  import { STAT_TOOLS_MAP } from './tools/stats.js';
4
- // --- Persistence ---
5
4
  // Guards saveGachaState() from overwriting a file that failed to load (corrupted).
6
5
  // Set to true on successful load or on first run (no file yet). Stays false only
7
- // when the file exists but could not be parsed in that case we refuse to save
6
+ // when the file exists but could not be parsed: in that case we refuse to save
8
7
  // over what might be a recoverable file.
9
8
  let loadSucceeded = false;
10
9
  export const CORE_TOOL_NAMES = new Set([
@@ -16,27 +15,22 @@ export const CORE_TOOL_NAMES = new Set([
16
15
  'export_buddy_sprite',
17
16
  'activate_buddy_interact',
18
17
  'deactivate_buddy_interact',
19
- // DEBUGGING tools
20
18
  'deep_trace',
21
19
  'trace_nightmare',
22
20
  'null_hunt',
23
21
  'stack_dive',
24
- // PATIENCE tools
25
22
  'patience_check',
26
23
  'wait_wisdom',
27
24
  'vibe_check',
28
25
  'still_point',
29
- // CHAOS tools
30
26
  'chaos_audit',
31
27
  'chaos_roulette',
32
28
  'chaos_spark',
33
29
  'entropy_roll',
34
- // WISDOM tools
35
30
  'zen_consult',
36
31
  'zen_mirror',
37
32
  'oracle_seek',
38
33
  'deep_thought',
39
- // SNARK tools
40
34
  'snark_roast',
41
35
  'snark_savage',
42
36
  'side_eye',
@@ -44,7 +38,7 @@ export const CORE_TOOL_NAMES = new Set([
44
38
  ]);
45
39
  export function saveGachaState() {
46
40
  if (!loadSucceeded) {
47
- console.error('Skipping gacha state save previous load failed (file may be corrupted).');
41
+ console.error('Skipping gacha state save: previous load failed (file may be corrupted).');
48
42
  return;
49
43
  }
50
44
  const toolsToSave = Array.from(dynamicTools.values())
@@ -59,15 +53,13 @@ export function saveGachaState() {
59
53
  try {
60
54
  unlinkSync(tmp);
61
55
  }
62
- catch {
63
- /* ignore — tmp may not exist */
64
- }
56
+ catch { }
65
57
  console.error('Failed to save gacha state:', err);
66
58
  }
67
59
  }
68
60
  export function loadGachaState() {
69
61
  if (!existsSync(GACHA_STATE_FILE)) {
70
- // First run no file yet, valid empty state
62
+ // First run: no file yet, valid empty state
71
63
  loadSucceeded = true;
72
64
  return;
73
65
  }
@@ -78,7 +70,6 @@ export function loadGachaState() {
78
70
  gachaState.binaryMtime = raw.binaryMtime ?? undefined;
79
71
  gachaState.interactMode = raw.interactMode ?? false;
80
72
  gachaState.visibleStatTools = raw.visibleStatTools ?? [];
81
- // Restore manifested tools from previous session
82
73
  for (const def of raw.manifestedTools ?? []) {
83
74
  if (!CORE_TOOL_NAMES.has(def.toolName)) {
84
75
  registerManifestedTool(def.toolName, def.description, def.logic, def.scope, def.inputSchema);
@@ -87,11 +78,11 @@ export function loadGachaState() {
87
78
  loadSucceeded = true;
88
79
  }
89
80
  catch (err) {
90
- console.error('Failed to load gacha state (file may be corrupted will not overwrite):', err);
91
- // loadSucceeded stays false saveGachaState() will refuse to run
81
+ console.error('Failed to load gacha state (file may be corrupted: will not overwrite):', err);
82
+ // loadSucceeded stays false: saveGachaState() will refuse to run
92
83
  }
93
84
  }
94
- // Picks and locks 1 stat tool from each of the top 2 stats. Call once per reroll stable until next roll.
85
+ // Picks and locks 1 stat tool from each of the top 2 stats. Call once per reroll, stable until next roll.
95
86
  export function pickVisibleStatTools() {
96
87
  if (!S.currentBuddy) {
97
88
  gachaState.visibleStatTools = [];
@@ -106,7 +97,6 @@ export function pickVisibleStatTools() {
106
97
  }
107
98
  gachaState.visibleStatTools = picked;
108
99
  }
109
- // --- Dynamic tool system ---
110
100
  export function registerManifestedTool(name, description, logic, scope, inputSchema) {
111
101
  if (CORE_TOOL_NAMES.has(name)) {
112
102
  console.error(`Attempted to overwrite core tool: ${name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/mcp/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/mcp/persistence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/mcp/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC,MAAM,WAAW,UAAU;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,wBAAwB,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,uEAAuE;IACvE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,eAAO,MAAM,CAAC;kBACU,QAAQ,GAAG,IAAI;;;;CAItC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAQxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,GAAG,CAC5B,MAAM,EACN;IACE,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,EAAE,wBAAwB,CAAC;CAChC,CACU,CAAC;AAEd,eAAO,MAAM,gBAAgB,QAA2C,CAAC;AACzE,eAAO,MAAM,kBAAkB,QAA6C,CAAC;AAE7E,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlB,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/mcp/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC,MAAM,WAAW,UAAU;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,wBAAwB,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,uEAAuE;IACvE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,CAAC;kBACU,QAAQ,GAAG,IAAI;;;;CAItC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAQxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,GAAG,CAC5B,MAAM,EACN;IACE,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,EAAE,wBAAwB,CAAC;CAChC,CACU,CAAC;AAEd,eAAO,MAAM,gBAAgB,QAA2C,CAAC;AACzE,eAAO,MAAM,kBAAkB,QAA6C,CAAC;AAE7E,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlB,CAAC"}
package/dist/mcp/state.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { join } from 'path';
3
3
  import { homedir } from 'os';
4
- // --- Shared mutable state ---
5
4
  export const S = {
6
5
  currentBuddy: null,
7
6
  petBuddyStreak: 0, // Track consecutive pet_buddy calls for easter egg
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/mcp/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAqC7B,+BAA+B;AAE/B,MAAM,CAAC,MAAM,CAAC,GAAG;IACf,YAAY,EAAE,IAAuB;IACrC,cAAc,EAAE,CAAC,EAAE,mDAAmD;IACtE,cAAc,EAAE,EAAE,EAAE,2DAA2D;IAC/E,eAAe,EAAE,KAAK,EAAE,wDAAwD;CACjF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,iBAAiB,EAAE,EAAE;IACrB,UAAU,EAAE,CAAC;IACb,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,IAAI,EAAE,kEAAkE;IACtF,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,CAAC;IACzB,2BAA2B,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAOrB,IAAI,GAAG,EAAE,CAAC;AAEd,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAC9B,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EACvC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/mcp/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAmC7B,MAAM,CAAC,MAAM,CAAC,GAAG;IACf,YAAY,EAAE,IAAuB;IACrC,cAAc,EAAE,CAAC,EAAE,mDAAmD;IACtE,cAAc,EAAE,EAAE,EAAE,2DAA2D;IAC/E,eAAe,EAAE,KAAK,EAAE,wDAAwD;CACjF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,iBAAiB,EAAE,EAAE;IACrB,UAAU,EAAE,CAAC;IACb,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,IAAI,EAAE,kEAAkE;IACtF,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,CAAC;IACzB,2BAA2B,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAOrB,IAAI,GAAG,EAAE,CAAC;AAEd,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAC9B,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EACvC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/auto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,eAAO,MAAM,eAAe,aAM1B,CAAC;AAKH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAG"}
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/auto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,eAAO,MAAM,eAAe,aAM1B,CAAC;AAKH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAG"}
@@ -1,4 +1,3 @@
1
- // --- Personality-based auto-tools ---
2
1
  // All 5 names below are now baked-in CORE_TOOL_NAMES managed by stats.ts.
3
2
  // AUTO_TOOL_NAMES is kept for reference and test assertions.
4
3
  export const AUTO_TOOL_NAMES = new Set([
@@ -9,7 +8,7 @@ export const AUTO_TOOL_NAMES = new Set([
9
8
  'patience_check',
10
9
  ]);
11
10
  // Retained for call-site compatibility. All AUTO_TOOL_NAMES are CORE_TOOL_NAMES
12
- // registered at startup via stats.ts this function is now a no-op.
11
+ // registered at startup via stats.ts; this function is now a no-op.
13
12
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
13
  export function autoManifestTools(_buddy) { }
15
14
  //# sourceMappingURL=auto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../src/mcp/tools/auto.ts"],"names":[],"mappings":"AAEA,uCAAuC;AACvC,0EAA0E;AAC1E,6DAA6D;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,aAAa;IACb,aAAa;IACb,aAAa;IACb,YAAY;IACZ,gBAAgB;CACjB,CAAC,CAAC;AAEH,gFAAgF;AAChF,qEAAqE;AACrE,6DAA6D;AAC7D,MAAM,UAAU,iBAAiB,CAAC,MAAmB,IAAS,CAAC"}
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../src/mcp/tools/auto.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,6DAA6D;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,aAAa;IACb,aAAa;IACb,aAAa;IACb,YAAY;IACZ,gBAAgB;CACjB,CAAC,CAAC;AAEH,gFAAgF;AAChF,oEAAoE;AACpE,6DAA6D;AAC7D,MAAM,UAAU,iBAAiB,CAAC,MAAmB,IAAS,CAAC"}
@@ -1,4 +1,4 @@
1
- import { writeFileSync, existsSync, statSync } from 'fs';
1
+ import { writeFileSync, existsSync, statSync, renameSync, unlinkSync } from 'fs';
2
2
  import { join, dirname } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  import { spawn } from 'child_process';
@@ -15,7 +15,6 @@ import { S, gachaState, dynamicTools, PENDING_PATCH_FILE } from '../state.js';
15
15
  import { saveGachaState, pickVisibleStatTools } from '../persistence.js';
16
16
  import { autoManifestTools } from './auto.js';
17
17
  import { wrapBuddyDisplay } from './relay.js';
18
- // --- Core tool handlers ---
19
18
  const buddyTalkTool = {
20
19
  tool: {
21
20
  name: 'buddy_talk',
@@ -32,7 +31,7 @@ const buddyTalkTool = {
32
31
  },
33
32
  handler: async (args) => {
34
33
  try {
35
- S.petBuddyStreak = 0; // Reset pet streak on non-pet-buddy tool
34
+ S.petBuddyStreak = 0;
36
35
  S.lastToolCalled = 'buddy_talk';
37
36
  if (!S.currentBuddy)
38
37
  return 'Initialize a buddy first.';
@@ -65,7 +64,6 @@ const petBuddyTool = {
65
64
  S.petBuddyStreak = 1;
66
65
  }
67
66
  S.lastToolCalled = 'pet_buddy';
68
- // Session affection mini-game: accumulate 1-15% toward a token
69
67
  const gain = Math.floor(Math.random() * 15) + 1;
70
68
  gachaState.sessionAffectionAccumulator += gain;
71
69
  let earnedToken = false;
@@ -109,7 +107,6 @@ const petBuddyTool = {
109
107
  reaction = `${name} makes a sound like a dial-up modem. You're pretty sure they just rewrote your history file.`;
110
108
  else
111
109
  reaction = `${name} lets out a soft, digital chirp. *happy ${b.species} noises*`;
112
- // Build affection message
113
110
  const affectionMsg = earnedToken
114
111
  ? `🤚 Petted! Token progress: +${gain}% → 🌟 **EARNED TOKEN!** 🌟 (have ${gachaState.sessionAffectionTokens})`
115
112
  : `🤚 Petted! Token progress: +${gain}% → ${gachaState.sessionAffectionAccumulator}/100`;
@@ -123,13 +120,11 @@ const rerollBuddyTool = {
123
120
  inputSchema: { type: 'object', properties: {} },
124
121
  },
125
122
  handler: async () => {
126
- S.petBuddyStreak = 0; // Reset pet streak on non-pet-buddy tool
123
+ S.petBuddyStreak = 0;
127
124
  S.lastToolCalled = 'reroll_buddy';
128
- // 1. Get userId
129
125
  const userId = getClaudeUserId();
130
126
  if (userId === 'anon')
131
127
  return '❌ No userId found. Open Claude Code at least once first.';
132
- // 3. Find binary
133
128
  let binaryPath;
134
129
  try {
135
130
  binaryPath = findClaudeBinary();
@@ -137,13 +132,11 @@ const rerollBuddyTool = {
137
132
  catch (err) {
138
133
  return `❌ Claude Code binary not found: ${err.message}`;
139
134
  }
140
- // 3.5. Check for affection tokens
141
135
  let tokenUsed = false;
142
136
  if (gachaState.sessionAffectionTokens > 0) {
143
137
  gachaState.sessionAffectionTokens--;
144
138
  tokenUsed = true;
145
139
  }
146
- // 4. Roll desired traits (boosted if token used)
147
140
  let desired;
148
141
  if (tokenUsed) {
149
142
  // Token gives guaranteed rare or better + boosted accessories
@@ -204,7 +197,7 @@ const rerollBuddyTool = {
204
197
  catch (err) {
205
198
  const msg = err.message ?? '';
206
199
  if (msg.includes('Could not find salt')) {
207
- // Try ORIGINAL_SALT Claude may have auto-updated and restored it
200
+ // Try ORIGINAL_SALT: Claude may have auto-updated and restored it
208
201
  if (currentSalt !== ORIGINAL_SALT) {
209
202
  try {
210
203
  patchBinary(binaryPath, ORIGINAL_SALT, finderResult.salt);
@@ -245,11 +238,10 @@ const rerollBuddyTool = {
245
238
  ].join('\n');
246
239
  }
247
240
  }
248
- // Any other error (EPERM, EBUSY) binary locked, fall through to pending patch flow
241
+ // Any other error (EPERM, EBUSY): binary locked, fall through to pending patch flow
249
242
  }
250
- // 7. Roll the result using the same hash the finder used guarantees consistency
251
- // Use bones directly from the finder result the worker computed them using the
252
- // native hash (Bun.hash in the wyhash subprocess), so we never need to re-hash here.
243
+ // Use bones directly from finder: the worker computed them with the native hash
244
+ // (Bun.hash in the wyhash subprocess), re-hashing here would produce different results.
253
245
  const bones = finderResult.bones;
254
246
  const profile = {
255
247
  salt: finderResult.salt,
@@ -263,11 +255,8 @@ const rerollBuddyTool = {
263
255
  personality: DEFAULT_PERSONALITIES[bones.species],
264
256
  createdAt: new Date().toISOString(),
265
257
  };
266
- const elapsed = (finderResult.elapsed / 1000).toFixed(1);
267
- const attempts = finderResult.totalAttempts?.toLocaleString() ?? finderResult.attempts.toLocaleString();
268
258
  const shinyTag = profile.shiny ? ' ✨ SHINY! ✨' : '';
269
259
  if (!patched) {
270
- // Save pending patch then spawn a detached watcher that auto-applies when Claude closes
271
260
  const pending = {
272
261
  salt: finderResult.salt,
273
262
  currentSalt,
@@ -276,26 +265,36 @@ const rerollBuddyTool = {
276
265
  rolledAt: new Date().toISOString(),
277
266
  };
278
267
  try {
279
- writeFileSync(PENDING_PATCH_FILE, JSON.stringify(pending, null, 2));
268
+ const tmp = PENDING_PATCH_FILE + '.tmp';
269
+ try {
270
+ writeFileSync(tmp, JSON.stringify(pending, null, 2));
271
+ renameSync(tmp, PENDING_PATCH_FILE);
272
+ }
273
+ catch (writeErr) {
274
+ try {
275
+ unlinkSync(tmp);
276
+ }
277
+ catch { }
278
+ throw writeErr;
279
+ }
280
280
  gachaState.sessionAffectionAccumulator = 0;
281
- // Lock stat tools for new buddy now stable until next reroll
281
+ // Lock stat tools now; stable until next reroll
282
282
  S.currentBuddy = { ...profile };
283
283
  pickVisibleStatTools();
284
284
  saveGachaState();
285
- // Auto-install hook if not already present
286
285
  if (!isHookInstalled()) {
287
286
  try {
288
287
  installHook(process.argv[1]);
289
288
  }
290
289
  catch {
291
- // Non-fatal hook install failure shouldn't break the reroll
290
+ // Non-fatal: hook install failure shouldn't break the reroll
292
291
  }
293
292
  }
294
293
  }
295
294
  catch (err) {
296
295
  return `❌ Could not save pending patch: ${err.message}`;
297
296
  }
298
- // Spawn watcher as fully detached survives after MCP server exits
297
+ // Spawn watcher as fully detached: survives after MCP server exits
299
298
  const watcherPath = join(dirname(fileURLToPath(import.meta.url)), '../watcher.js');
300
299
  const watcherSpawned = existsSync(watcherPath);
301
300
  if (watcherSpawned) {
@@ -310,14 +309,13 @@ const rerollBuddyTool = {
310
309
  `**Close Claude Code, then run:** \`npm run apply\` in the buddy-mcp directory, then reopen.`,
311
310
  ];
312
311
  return [
313
- `🎲 Found a **${profile.rarity} ${profile.species}**${shinyTag} after ~${attempts} attempts in ${elapsed}s!`,
312
+ `🎲 You got a **${profile.rarity} ${profile.species}**${shinyTag}!`,
314
313
  ``,
315
314
  `⚠️ Binary is locked - Claude Code is still running.`,
316
315
  ``,
317
316
  ...applyInstructions,
318
317
  ].join('\n');
319
318
  }
320
- // 8. Patch succeeded — save profile and update MCP state
321
319
  saveProfile(profile, { activate: true });
322
320
  S.currentBuddy = { ...profile };
323
321
  if (!gachaState.discoveredSpecies.includes(profile.species)) {
@@ -329,18 +327,17 @@ const rerollBuddyTool = {
329
327
  gachaState.sessionAffectionAccumulator = 0;
330
328
  pickVisibleStatTools();
331
329
  saveGachaState();
332
- // Auto-install hook if not already present
333
330
  if (!isHookInstalled()) {
334
331
  try {
335
332
  installHook(process.argv[1]);
336
333
  }
337
334
  catch {
338
- // Non-fatal hook install failure shouldn't break the reroll
335
+ // Non-fatal: hook install failure shouldn't break the reroll
339
336
  }
340
337
  }
341
338
  autoManifestTools(S.currentBuddy);
342
339
  return [
343
- `🎲 Found a **${profile.rarity} ${profile.species}**${shinyTag} after ~${attempts} attempts in ${elapsed}s!`,
340
+ `🎲 You got a **${profile.rarity} ${profile.species}**${shinyTag}!`,
344
341
  ``,
345
342
  `✅ Binary patched! Restart Claude Code to see your new companion.`,
346
343
  ].join('\n');
@@ -353,7 +350,7 @@ const viewBuddyDexTool = {
353
350
  inputSchema: { type: 'object', properties: {} },
354
351
  },
355
352
  handler: async () => {
356
- S.petBuddyStreak = 0; // Reset pet streak on non-pet-buddy tool
353
+ S.petBuddyStreak = 0;
357
354
  S.lastToolCalled = 'view_buddy_dex';
358
355
  let output = '--- BUDDY DEX ---\n\n';
359
356
  for (let i = 0; i < SPECIES.length; i += 3) {
@@ -367,7 +364,6 @@ const viewBuddyDexTool = {
367
364
  return wrapBuddyDisplay(output);
368
365
  },
369
366
  };
370
- // --- Register core tools ---
371
367
  dynamicTools.set('pet_buddy', {
372
368
  ...petBuddyTool,
373
369
  _def: { toolName: 'pet_buddy', description: 'Core: Pet', logic: 'N/A', scope: 'global' },