@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.
- package/README.md +36 -97
- package/assets/hero.svg +72 -83
- 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 +12 -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 +12 -27
- package/dist/mcp/tools/core.js.map +1 -1
- package/dist/mcp/tools/export.js +2 -10
- 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 +9 -12
- 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 +9 -33
- 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 +4 -22
- 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 +10 -21
- 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/gallery/index.d.ts.map +1 -1
- package/dist/tui/gallery/index.js +1 -9
- 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 +1 -3
- 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 +1 -3
- package/dist/tui/start/index.js.map +1 -1
- 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
|
|
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 {
|
|
@@ -42,7 +41,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
42
41
|
S.currentBuddy = { ...activeProfile };
|
|
43
42
|
}
|
|
44
43
|
else if (activeSalt) {
|
|
45
|
-
// Profile not found in dict, but salt is set
|
|
44
|
+
// Profile not found in dict, but salt is set: derive from roll() as fallback
|
|
46
45
|
const userId = getClaudeUserId();
|
|
47
46
|
const rolled = roll(userId, activeSalt);
|
|
48
47
|
const companionName = getCompanionName();
|
|
@@ -77,13 +76,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
77
76
|
};
|
|
78
77
|
}
|
|
79
78
|
});
|
|
80
|
-
// --- CLI: apply pending patch or re-apply saved salt after update ---
|
|
81
79
|
// Runs when invoked as: buddy-mcp apply or buddy-mcp apply --silent
|
|
82
80
|
// Handles two cases:
|
|
83
81
|
// 1. Pending patch waiting from reroll (reads ~/.buddy_mcp_pending.json)
|
|
84
82
|
// 2. Hook-triggered re-apply after binary update (reads saved salt from pet config)
|
|
85
83
|
function applyPendingPatch({ silent = false } = {}) {
|
|
86
|
-
// First, try pending patch file (from reroll)
|
|
87
84
|
if (existsSync(PENDING_PATCH_FILE)) {
|
|
88
85
|
let pending;
|
|
89
86
|
try {
|
|
@@ -128,14 +125,12 @@ function applyPendingPatch({ silent = false } = {}) {
|
|
|
128
125
|
try {
|
|
129
126
|
unlinkSync(tmp);
|
|
130
127
|
}
|
|
131
|
-
catch {
|
|
132
|
-
/* ignore */
|
|
133
|
-
}
|
|
128
|
+
catch { }
|
|
134
129
|
throw writeErr;
|
|
135
130
|
}
|
|
136
131
|
}
|
|
137
132
|
catch {
|
|
138
|
-
// Non-fatal
|
|
133
|
+
// Non-fatal: gacha state will self-heal on next server start
|
|
139
134
|
gachaUpdateSucceeded = false;
|
|
140
135
|
}
|
|
141
136
|
}
|
|
@@ -147,19 +142,16 @@ function applyPendingPatch({ silent = false } = {}) {
|
|
|
147
142
|
console.log(`✅ ${rarity} ${species}${shinyTag} is now active!`);
|
|
148
143
|
console.log('Restart Claude Code to see your new companion.');
|
|
149
144
|
}
|
|
150
|
-
// Install hook on successful apply (unless already installed)
|
|
151
145
|
if (!isHookInstalled()) {
|
|
152
146
|
try {
|
|
153
147
|
installHook(process.argv[1]);
|
|
154
148
|
}
|
|
155
149
|
catch {
|
|
156
|
-
// Non-fatal
|
|
150
|
+
// Non-fatal: hook install failure shouldn't crash the apply
|
|
157
151
|
}
|
|
158
152
|
}
|
|
159
153
|
return;
|
|
160
154
|
}
|
|
161
|
-
// No pending file — try hook-triggered re-apply after update
|
|
162
|
-
// Load saved salt from pet config
|
|
163
155
|
const petConfig = loadPetConfigV2();
|
|
164
156
|
if (!petConfig?.salt) {
|
|
165
157
|
if (!silent)
|
|
@@ -175,7 +167,6 @@ function applyPendingPatch({ silent = false } = {}) {
|
|
|
175
167
|
console.error(err.message);
|
|
176
168
|
process.exit(0);
|
|
177
169
|
}
|
|
178
|
-
// Fast path: check if our salt is already applied
|
|
179
170
|
const checkOurs = verifySalt(binaryPath, petConfig.salt);
|
|
180
171
|
if (checkOurs.found >= 3) {
|
|
181
172
|
if (!silent)
|
|
@@ -187,24 +178,19 @@ function applyPendingPatch({ silent = false } = {}) {
|
|
|
187
178
|
if (checkOrig.found >= 3) {
|
|
188
179
|
try {
|
|
189
180
|
patchBinary(binaryPath, ORIGINAL_SALT, petConfig.salt);
|
|
190
|
-
// Restore companion identity from saved profile
|
|
191
181
|
const activeSalt = petConfig.activeProfile;
|
|
192
182
|
const profile = activeSalt ? petConfig.profiles[activeSalt] : undefined;
|
|
193
183
|
if (profile?.name) {
|
|
194
184
|
try {
|
|
195
185
|
renameCompanion(profile.name);
|
|
196
186
|
}
|
|
197
|
-
catch {
|
|
198
|
-
/* non-fatal */
|
|
199
|
-
}
|
|
187
|
+
catch { }
|
|
200
188
|
}
|
|
201
189
|
if (profile?.personality) {
|
|
202
190
|
try {
|
|
203
191
|
setCompanionPersonality(profile.personality);
|
|
204
192
|
}
|
|
205
|
-
catch {
|
|
206
|
-
/* non-fatal */
|
|
207
|
-
}
|
|
193
|
+
catch { }
|
|
208
194
|
}
|
|
209
195
|
if (!silent)
|
|
210
196
|
console.log('✅ Pet re-patched after update.');
|
|
@@ -228,17 +214,13 @@ function applyPendingPatch({ silent = false } = {}) {
|
|
|
228
214
|
try {
|
|
229
215
|
renameCompanion(profile.name);
|
|
230
216
|
}
|
|
231
|
-
catch {
|
|
232
|
-
/* non-fatal */
|
|
233
|
-
}
|
|
217
|
+
catch { }
|
|
234
218
|
}
|
|
235
219
|
if (profile?.personality) {
|
|
236
220
|
try {
|
|
237
221
|
setCompanionPersonality(profile.personality);
|
|
238
222
|
}
|
|
239
|
-
catch {
|
|
240
|
-
/* non-fatal */
|
|
241
|
-
}
|
|
223
|
+
catch { }
|
|
242
224
|
}
|
|
243
225
|
if (!silent)
|
|
244
226
|
console.log('✅ Pet restored from backup and re-patched after update.');
|
|
@@ -250,7 +232,6 @@ function applyPendingPatch({ silent = false } = {}) {
|
|
|
250
232
|
process.exit(silent ? 0 : 1);
|
|
251
233
|
}
|
|
252
234
|
}
|
|
253
|
-
// Fallback: couldn't find a known salt or backup
|
|
254
235
|
if (!silent) {
|
|
255
236
|
console.error('⚠️ Could not find a known salt in binary or any valid backup.');
|
|
256
237
|
console.error('Run buddy-mcp-build restore, or reinstall Claude Code.');
|
|
@@ -262,11 +243,8 @@ if (process.argv[2] === 'apply') {
|
|
|
262
243
|
applyPendingPatch({ silent });
|
|
263
244
|
process.exit(0);
|
|
264
245
|
}
|
|
265
|
-
// --- Startup ---
|
|
266
246
|
async function main() {
|
|
267
|
-
// 1. Load gacha extras (dex, shiny count, manifested tools)
|
|
268
247
|
loadGachaState();
|
|
269
|
-
// 2. Load active buddy profile
|
|
270
248
|
try {
|
|
271
249
|
const petConfig = loadPetConfigV2();
|
|
272
250
|
const activeSalt = petConfig?.activeProfile;
|
|
@@ -275,7 +253,7 @@ async function main() {
|
|
|
275
253
|
S.currentBuddy = { ...activeProfile };
|
|
276
254
|
}
|
|
277
255
|
else {
|
|
278
|
-
// No profile yet
|
|
256
|
+
// No profile yet: derive buddy from current salt using roll()
|
|
279
257
|
const userId = getClaudeUserId();
|
|
280
258
|
const salt = petConfig?.salt ?? ORIGINAL_SALT;
|
|
281
259
|
const rolled = roll(userId, salt);
|
|
@@ -298,7 +276,6 @@ async function main() {
|
|
|
298
276
|
catch (err) {
|
|
299
277
|
console.error('Buddy load failed (non-fatal):', err);
|
|
300
278
|
}
|
|
301
|
-
// 3. Check if binary changed since last patch (Claude auto-update detection)
|
|
302
279
|
try {
|
|
303
280
|
const binaryPath = findClaudeBinary();
|
|
304
281
|
const currentMtime = statSync(binaryPath).mtimeMs;
|
|
@@ -307,17 +284,15 @@ async function main() {
|
|
|
307
284
|
}
|
|
308
285
|
}
|
|
309
286
|
catch {
|
|
310
|
-
// Binary not found
|
|
287
|
+
// Binary not found: non-fatal, reroll will surface it
|
|
311
288
|
}
|
|
312
|
-
// 4. Dex sync — ensure current buddy is recorded
|
|
313
289
|
if (S.currentBuddy && !gachaState.discoveredSpecies.includes(S.currentBuddy.species)) {
|
|
314
290
|
gachaState.discoveredSpecies.push(S.currentBuddy.species);
|
|
315
291
|
saveGachaState();
|
|
316
292
|
}
|
|
317
|
-
// 5. Auto-manifest personality tools
|
|
318
293
|
if (S.currentBuddy)
|
|
319
294
|
autoManifestTools(S.currentBuddy);
|
|
320
|
-
//
|
|
295
|
+
// Lock stat tools if not already set (first launch or missing state file)
|
|
321
296
|
if (S.currentBuddy && gachaState.visibleStatTools.length === 0) {
|
|
322
297
|
pickVisibleStatTools();
|
|
323
298
|
saveGachaState();
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/mcp/persistence.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
91
|
-
// loadSucceeded stays false
|
|
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
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAGrF,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/mcp/persistence.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/state.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
package/dist/mcp/state.js.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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"}
|
package/dist/mcp/tools/auto.js
CHANGED
|
@@ -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
|
|
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,
|
|
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"}
|
package/dist/mcp/tools/core.js
CHANGED
|
@@ -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;
|
|
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;
|
|
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
|
|
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)
|
|
241
|
+
// Any other error (EPERM, EBUSY): binary locked, fall through to pending patch flow
|
|
249
242
|
}
|
|
250
|
-
//
|
|
251
|
-
//
|
|
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,
|
|
@@ -265,7 +257,6 @@ const rerollBuddyTool = {
|
|
|
265
257
|
};
|
|
266
258
|
const shinyTag = profile.shiny ? ' ✨ SHINY! ✨' : '';
|
|
267
259
|
if (!patched) {
|
|
268
|
-
// Save pending patch then spawn a detached watcher that auto-applies when Claude closes
|
|
269
260
|
const pending = {
|
|
270
261
|
salt: finderResult.salt,
|
|
271
262
|
currentSalt,
|
|
@@ -283,30 +274,27 @@ const rerollBuddyTool = {
|
|
|
283
274
|
try {
|
|
284
275
|
unlinkSync(tmp);
|
|
285
276
|
}
|
|
286
|
-
catch {
|
|
287
|
-
/* ignore */
|
|
288
|
-
}
|
|
277
|
+
catch { }
|
|
289
278
|
throw writeErr;
|
|
290
279
|
}
|
|
291
280
|
gachaState.sessionAffectionAccumulator = 0;
|
|
292
|
-
// Lock stat tools
|
|
281
|
+
// Lock stat tools now; stable until next reroll
|
|
293
282
|
S.currentBuddy = { ...profile };
|
|
294
283
|
pickVisibleStatTools();
|
|
295
284
|
saveGachaState();
|
|
296
|
-
// Auto-install hook if not already present
|
|
297
285
|
if (!isHookInstalled()) {
|
|
298
286
|
try {
|
|
299
287
|
installHook(process.argv[1]);
|
|
300
288
|
}
|
|
301
289
|
catch {
|
|
302
|
-
// Non-fatal
|
|
290
|
+
// Non-fatal: hook install failure shouldn't break the reroll
|
|
303
291
|
}
|
|
304
292
|
}
|
|
305
293
|
}
|
|
306
294
|
catch (err) {
|
|
307
295
|
return `❌ Could not save pending patch: ${err.message}`;
|
|
308
296
|
}
|
|
309
|
-
// Spawn watcher as fully detached
|
|
297
|
+
// Spawn watcher as fully detached: survives after MCP server exits
|
|
310
298
|
const watcherPath = join(dirname(fileURLToPath(import.meta.url)), '../watcher.js');
|
|
311
299
|
const watcherSpawned = existsSync(watcherPath);
|
|
312
300
|
if (watcherSpawned) {
|
|
@@ -328,7 +316,6 @@ const rerollBuddyTool = {
|
|
|
328
316
|
...applyInstructions,
|
|
329
317
|
].join('\n');
|
|
330
318
|
}
|
|
331
|
-
// 8. Patch succeeded — save profile and update MCP state
|
|
332
319
|
saveProfile(profile, { activate: true });
|
|
333
320
|
S.currentBuddy = { ...profile };
|
|
334
321
|
if (!gachaState.discoveredSpecies.includes(profile.species)) {
|
|
@@ -340,13 +327,12 @@ const rerollBuddyTool = {
|
|
|
340
327
|
gachaState.sessionAffectionAccumulator = 0;
|
|
341
328
|
pickVisibleStatTools();
|
|
342
329
|
saveGachaState();
|
|
343
|
-
// Auto-install hook if not already present
|
|
344
330
|
if (!isHookInstalled()) {
|
|
345
331
|
try {
|
|
346
332
|
installHook(process.argv[1]);
|
|
347
333
|
}
|
|
348
334
|
catch {
|
|
349
|
-
// Non-fatal
|
|
335
|
+
// Non-fatal: hook install failure shouldn't break the reroll
|
|
350
336
|
}
|
|
351
337
|
}
|
|
352
338
|
autoManifestTools(S.currentBuddy);
|
|
@@ -364,7 +350,7 @@ const viewBuddyDexTool = {
|
|
|
364
350
|
inputSchema: { type: 'object', properties: {} },
|
|
365
351
|
},
|
|
366
352
|
handler: async () => {
|
|
367
|
-
S.petBuddyStreak = 0;
|
|
353
|
+
S.petBuddyStreak = 0;
|
|
368
354
|
S.lastToolCalled = 'view_buddy_dex';
|
|
369
355
|
let output = '--- BUDDY DEX ---\n\n';
|
|
370
356
|
for (let i = 0; i < SPECIES.length; i += 3) {
|
|
@@ -378,7 +364,6 @@ const viewBuddyDexTool = {
|
|
|
378
364
|
return wrapBuddyDisplay(output);
|
|
379
365
|
},
|
|
380
366
|
};
|
|
381
|
-
// --- Register core tools ---
|
|
382
367
|
dynamicTools.set('pet_buddy', {
|
|
383
368
|
...petBuddyTool,
|
|
384
369
|
_def: { toolName: 'pet_buddy', description: 'Core: Pet', logic: 'N/A', scope: 'global' },
|