@everstateai/mcp 1.3.0 → 1.3.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAuYH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,iBAuE5C"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAshBH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,iBAuE5C"}
package/dist/setup.js CHANGED
@@ -86,6 +86,7 @@ function parseArgs(argv) {
86
86
  help: false,
87
87
  projectId: null,
88
88
  skipHooks: false,
89
+ force: false,
89
90
  };
90
91
  for (let i = 0; i < argv.length; i++) {
91
92
  const arg = argv[i];
@@ -101,6 +102,9 @@ function parseArgs(argv) {
101
102
  else if (arg === "--skip-hooks") {
102
103
  result.skipHooks = true;
103
104
  }
105
+ else if (arg === "--force" || arg === "-f") {
106
+ result.force = true;
107
+ }
104
108
  else if (arg.startsWith("ck_")) {
105
109
  result.apiKey = arg;
106
110
  }
@@ -127,11 +131,13 @@ ${c("bold", "OPTIONS:")}
127
131
  -d, --project-dir Project directory (default: current directory)
128
132
  --project-id Link to existing project ID
129
133
  --skip-hooks Skip installing Claude Code hooks
134
+ -f, --force Remove old Everstate hooks and reinstall fresh
130
135
  -h, --help Show this help message
131
136
 
132
137
  ${c("bold", "EXAMPLES:")}
133
138
  npx @everstateai/mcp setup ck_abc123def456
134
139
  npx @everstateai/mcp setup ck_abc123 --project-dir ./my-project
140
+ npx @everstateai/mcp setup ck_abc123 --force # Fix broken install
135
141
 
136
142
  ${c("bold", "WHAT THIS DOES:")}
137
143
  1. Configures Claude Code to use Everstate
@@ -202,8 +208,84 @@ function writeApiKeyFile(apiKey) {
202
208
  fs.writeFileSync(keyFilePath, apiKey, { mode: 0o600 });
203
209
  logSuccess("API key stored securely");
204
210
  }
205
- function installHooks(projectDir) {
211
+ async function downloadFile(url) {
212
+ return new Promise((resolve, reject) => {
213
+ const urlObj = new URL(url);
214
+ const req = https.request({
215
+ hostname: urlObj.hostname,
216
+ port: 443,
217
+ path: urlObj.pathname,
218
+ method: "GET",
219
+ headers: { "User-Agent": "everstate-setup/1.0" },
220
+ }, (res) => {
221
+ if (res.statusCode !== 200) {
222
+ reject(new Error(`HTTP ${res.statusCode}`));
223
+ return;
224
+ }
225
+ let data = "";
226
+ res.on("data", (chunk) => (data += chunk));
227
+ res.on("end", () => resolve(data));
228
+ });
229
+ req.on("error", reject);
230
+ req.setTimeout(10000, () => {
231
+ req.destroy();
232
+ reject(new Error("Download timeout"));
233
+ });
234
+ req.end();
235
+ });
236
+ }
237
+ function cleanupOldHooks(projectDir) {
238
+ logInfo("Cleaning up old Everstate hooks...");
239
+ const hooksDir = path.join(projectDir, ".claude", "hooks");
240
+ const settingsPath = path.join(projectDir, ".claude", "settings.local.json");
241
+ // Remove old hook files (both prefixed and non-prefixed)
242
+ const oldHookFiles = [
243
+ "everstate-session-start.sh",
244
+ "everstate-session-stop.sh",
245
+ "everstate-sync-todos.js",
246
+ "everstate-pre-compact.sh",
247
+ "session-start.sh",
248
+ "session-stop.sh",
249
+ "sync-todos.js",
250
+ "pre-compact.sh",
251
+ ];
252
+ for (const file of oldHookFiles) {
253
+ const filePath = path.join(hooksDir, file);
254
+ if (fs.existsSync(filePath)) {
255
+ fs.unlinkSync(filePath);
256
+ logInfo(` Removed ${file}`);
257
+ }
258
+ }
259
+ // Clean Everstate hooks from settings.local.json
260
+ if (fs.existsSync(settingsPath)) {
261
+ let settings = readJsonFile(settingsPath) || {};
262
+ if (settings.hooks) {
263
+ // Remove hooks that point to everstate files
264
+ for (const hookType of Object.keys(settings.hooks)) {
265
+ if (Array.isArray(settings.hooks[hookType])) {
266
+ settings.hooks[hookType] = settings.hooks[hookType].map((entry) => {
267
+ if (entry.hooks && Array.isArray(entry.hooks)) {
268
+ entry.hooks = entry.hooks.filter((h) => !h.command || !h.command.includes("everstate"));
269
+ }
270
+ return entry;
271
+ }).filter((entry) => entry.hooks && entry.hooks.length > 0);
272
+ // Remove empty hook types
273
+ if (settings.hooks[hookType].length === 0) {
274
+ delete settings.hooks[hookType];
275
+ }
276
+ }
277
+ }
278
+ writeJsonFile(settingsPath, settings);
279
+ }
280
+ }
281
+ logSuccess("Old Everstate hooks removed");
282
+ }
283
+ async function installHooks(projectDir, force = false) {
206
284
  const hooksDir = path.join(projectDir, ".claude", "hooks");
285
+ // Clean up old hooks if force flag is set
286
+ if (force) {
287
+ cleanupOldHooks(projectDir);
288
+ }
207
289
  ensureDir(hooksDir);
208
290
  logInfo("Installing session hooks...");
209
291
  const keyFilePath = path.join(getEverstateDir(), "api-key");
@@ -241,8 +323,17 @@ curl -s --max-time 5 -X POST "https://www.everstate.ai/api/session/end" \\
241
323
  -H "Authorization: Bearer $EVERSTATE_API_KEY" \\
242
324
  -d '{}' 2>/dev/null || true
243
325
  `;
244
- // Sync todos hook (simplified)
245
- const syncTodosHook = `#!/usr/bin/env node
326
+ // Try to download the latest sync-todos hook from the server
327
+ let syncTodosHook;
328
+ try {
329
+ logInfo("Downloading latest sync-todos hook...");
330
+ syncTodosHook = await downloadFile("https://www.everstate.ai/hooks/sync-todos.js");
331
+ logSuccess("Downloaded sync-todos.js from server");
332
+ }
333
+ catch {
334
+ logWarning("Could not download sync-todos.js, using embedded fallback");
335
+ // Fallback to simplified embedded version
336
+ syncTodosHook = `#!/usr/bin/env node
246
337
  const https = require('https');
247
338
  const fs = require('fs');
248
339
  const path = require('path');
@@ -260,7 +351,6 @@ process.stdin.on('end', async () => {
260
351
  if (!fs.existsSync(keyPath)) return;
261
352
  const apiKey = fs.readFileSync(keyPath, 'utf8').trim();
262
353
 
263
- // Find projectId from .everstate.json
264
354
  let dir = process.cwd();
265
355
  let projectId = null;
266
356
  while (dir !== path.parse(dir).root) {
@@ -275,7 +365,6 @@ process.stdin.on('end', async () => {
275
365
  }
276
366
  if (!projectId) return;
277
367
 
278
- // Sync each todo
279
368
  for (const todo of todos) {
280
369
  const req = https.request({
281
370
  hostname: 'www.everstate.ai', port: 443, method: 'POST',
@@ -288,22 +377,62 @@ process.stdin.on('end', async () => {
288
377
  } catch {}
289
378
  });
290
379
  `;
291
- const startHookPath = path.join(hooksDir, "session-start.sh");
292
- const stopHookPath = path.join(hooksDir, "session-stop.sh");
293
- const syncTodosPath = path.join(hooksDir, "sync-todos.js");
380
+ }
381
+ // Write hook files with everstate- prefix to avoid conflicts
382
+ const startHookPath = path.join(hooksDir, "everstate-session-start.sh");
383
+ const stopHookPath = path.join(hooksDir, "everstate-session-stop.sh");
384
+ const syncTodosPath = path.join(hooksDir, "everstate-sync-todos.js");
294
385
  fs.writeFileSync(startHookPath, sessionStartHook, { mode: 0o755 });
295
386
  fs.writeFileSync(stopHookPath, sessionStopHook, { mode: 0o755 });
296
387
  fs.writeFileSync(syncTodosPath, syncTodosHook, { mode: 0o755 });
297
- // Configure hooks in settings.local.json
388
+ // Configure hooks in settings.local.json - MERGE with existing hooks
298
389
  const settingsPath = path.join(projectDir, ".claude", "settings.local.json");
299
390
  let settings = readJsonFile(settingsPath) || {};
300
391
  if (!settings.hooks)
301
392
  settings.hooks = {};
302
- settings.hooks.SessionStart = [{ matcher: "*", hooks: [{ type: "command", command: startHookPath }] }];
303
- settings.hooks.Stop = [{ matcher: "*", hooks: [{ type: "command", command: stopHookPath }] }];
304
- settings.hooks.PostToolUse = [{ matcher: "TodoWrite", hooks: [{ type: "command", command: syncTodosPath }] }];
393
+ // Helper to add a hook without duplicating or overwriting user hooks
394
+ function addHookIfNotExists(hookType, matcher, command) {
395
+ if (!settings.hooks[hookType]) {
396
+ settings.hooks[hookType] = [];
397
+ }
398
+ // Check if this exact hook already exists
399
+ const exists = settings.hooks[hookType].some((entry) => {
400
+ if (entry.matcher !== matcher)
401
+ return false;
402
+ return entry.hooks && entry.hooks.some((h) => h.command === command);
403
+ });
404
+ if (!exists) {
405
+ // Find existing entry with same matcher to add to, or create new
406
+ let matcherEntry = settings.hooks[hookType].find((e) => e.matcher === matcher);
407
+ if (matcherEntry) {
408
+ if (!matcherEntry.hooks)
409
+ matcherEntry.hooks = [];
410
+ matcherEntry.hooks.push({ type: "command", command });
411
+ }
412
+ else {
413
+ settings.hooks[hookType].push({
414
+ matcher,
415
+ hooks: [{ type: "command", command }],
416
+ });
417
+ }
418
+ return true;
419
+ }
420
+ return false;
421
+ }
422
+ // Add Everstate hooks (merging with any existing user hooks)
423
+ const added = {
424
+ sessionStart: addHookIfNotExists("SessionStart", "*", startHookPath),
425
+ stop: addHookIfNotExists("Stop", "*", stopHookPath),
426
+ todoWrite: addHookIfNotExists("PostToolUse", "TodoWrite", syncTodosPath),
427
+ };
305
428
  writeJsonFile(settingsPath, settings);
306
- logSuccess("Session hooks installed");
429
+ const addedCount = Object.values(added).filter(Boolean).length;
430
+ if (addedCount > 0) {
431
+ logSuccess(`Added ${addedCount} Everstate hooks (merged with existing hooks)`);
432
+ }
433
+ else {
434
+ logSuccess("Everstate hooks already configured");
435
+ }
307
436
  }
308
437
  async function createProjectConfig(projectDir, apiKey, existingProjectId) {
309
438
  const configPath = path.join(projectDir, ".everstate.json");
@@ -422,7 +551,7 @@ async function runSetup(argv) {
422
551
  const projectConfig = await createProjectConfig(projectDir, apiKey, args.projectId);
423
552
  // Step 4: Install hooks
424
553
  if (!args.skipHooks) {
425
- installHooks(projectDir);
554
+ await installHooks(projectDir, args.force);
426
555
  }
427
556
  // Step 5: Update .gitignore
428
557
  updateGitignore(projectDir);
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;AACA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAshBH,4BAuEC;AA3lBD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,6CAA+B;AAG/B,6BAA6B;AAC7B,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,KAAK;IACpB,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG;IAC/B,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,gBAAgB;QACrC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAE5B,SAAS,CAAC,CAAC,KAA0B,EAAE,IAAY;IACjD,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AACD,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;AAC1C,CAAC;AACD,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;AAC1C,CAAC;AACD,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;AACzC,CAAC;AACD,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;AAC3C,CAAC;AAWD,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,MAAM,GAAc;QACxB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACnD,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACnD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;EACZ,CAAC,CAAC,MAAM,EAAE,+DAA+D,CAAC;EAC1E,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,0CAA0C,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC;EAC1G,CAAC,CAAC,MAAM,EAAE,+DAA+D,CAAC;;EAE1E,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;;;EAGnB,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC;;;;EAIvB,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC;;;;;;;EAOrB,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC;;;;;EAKtB,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC;;;;;EAK5B,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAqB;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;IAC/F,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IACpF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,IAAS;IAChD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,QAAQ,SAAS,CAAC,CAAC;IAClD,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,cAAc,CAAC,CAAC;IACjE,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAE/C,IAAI,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IAE/C,6DAA6D;IAC7D,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG;QAC5B,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAChC,GAAG,EAAE;YACH,iBAAiB,EAAE,MAAM;SAC1B;KACF,CAAC;IAEF,aAAa,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACxC,UAAU,CAAC,qCAAqC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACvD,SAAS,CAAC,YAAY,CAAC,CAAC;IACxB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,UAAU,CAAC,yBAAyB,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CACvB;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,YAAY,EAAE,qBAAqB,EAAE;SACjD,EACD,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;YAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,CAAC,CACF,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE;YACzB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAE7E,yDAAyD;IACzD,MAAM,YAAY,GAAG;QACnB,4BAA4B;QAC5B,2BAA2B;QAC3B,yBAAyB;QACzB,0BAA0B;QAC1B,kBAAkB;QAClB,iBAAiB;QACjB,eAAe;QACf,gBAAgB;KACjB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,6CAA6C;YAC7C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBAC5C,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;wBACrE,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC9C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAC1C,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC/C,CAAC;wBACJ,CAAC;wBACD,OAAO,KAAK,CAAC;oBACf,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAEjE,0BAA0B;oBAC1B,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,6BAA6B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,UAAkB,EAAE,QAAiB,KAAK;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAE3D,0CAA0C;IAC1C,IAAI,KAAK,EAAE,CAAC;QACV,eAAe,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpB,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,CAAC,CAAC;IAE5D,qBAAqB;IACrB,MAAM,gBAAgB,GAAG;;;WAGhB,WAAW;6BACO,WAAW;;;;;;;;;;;;;;CAcvC,CAAC;IAEA,oBAAoB;IACpB,MAAM,eAAe,GAAG;;;WAGf,WAAW;6BACO,WAAW;;;;;;;;CAQvC,CAAC;IAEA,6DAA6D;IAC7D,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACjD,aAAa,GAAG,MAAM,YAAY,CAAC,8CAA8C,CAAC,CAAC;QACnF,UAAU,CAAC,sCAAsC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,CAAC,2DAA2D,CAAC,CAAC;QACxE,0CAA0C;QAC1C,aAAa,GAAG;;;;;;;;;;;;;;uBAcG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BjC,CAAC;IACA,CAAC;IAED,6DAA6D;IAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;IAErE,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEhE,qEAAqE;IACrE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC7E,IAAI,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;IAEzC,qEAAqE;IACrE,SAAS,kBAAkB,CAAC,QAAgB,EAAE,OAAe,EAAE,OAAe;QAC5E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;QAED,0CAA0C;QAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YAC1D,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC5C,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,iEAAiE;YACjE,IAAI,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YACpF,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,CAAC,KAAK;oBAAE,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjD,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBAC5B,OAAO;oBACP,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;iBACtC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6DAA6D;IAC7D,MAAM,KAAK,GAAG;QACZ,YAAY,EAAE,kBAAkB,CAAC,cAAc,EAAE,GAAG,EAAE,aAAa,CAAC;QACpE,IAAI,EAAE,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC;QACnD,SAAS,EAAE,kBAAkB,CAAC,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC;KACzE,CAAC;IAEF,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC/D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,UAAU,CAAC,SAAS,UAAU,+CAA+C,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,oCAAoC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,UAAkB,EAClB,MAAc,EACd,iBAAgC;IAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC5D,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAE7C,wBAAwB;IACxB,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,cAAc,EAAE,SAAS,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,OAAO,CAAC,2BAA2B,cAAc,CAAC,WAAW,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7F,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,SAAS,GAAG,iBAAiB,CAAC;IAElC,2CAA2C;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAC7B,uCAAuC,EACvC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,wCAAwC,EAAE,EAC5E,MAAM,CACP,CAAC;YACF,IAAI,QAAQ,EAAE,SAAS,EAAE,CAAC;gBACxB,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,yDAAyD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,SAAS,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;QAC5C,WAAW;QACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,uBAAuB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAS,EAAE,MAAc;IACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CACvB;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC7C,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;SACF,EACD,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;YAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE;YACzB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,gBAAgB,CAAC,CAAC;IAEjF,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAErF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACtF,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,+DAA+D,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,gCAAgC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACjI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,+DAA+D,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,CAAC;QACH,oCAAoC;QACpC,YAAY,CAAC,MAAM,CAAC,CAAC;QAErB,kCAAkC;QAClC,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,gCAAgC;QAChC,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpF,wBAAwB;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,4BAA4B;QAC5B,eAAe,CAAC,UAAU,CAAC,CAAC;QAE5B,WAAW;QACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,+DAA+D,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAClI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,+DAA+D,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,QAAQ,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everstateai/mcp",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "Everstate MCP server - persistent AI coding memory. Run 'npx @everstateai/mcp setup' to configure.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/setup.ts CHANGED
@@ -57,6 +57,7 @@ interface SetupArgs {
57
57
  help: boolean;
58
58
  projectId: string | null;
59
59
  skipHooks: boolean;
60
+ force: boolean;
60
61
  }
61
62
 
62
63
  function parseArgs(argv: string[]): SetupArgs {
@@ -66,6 +67,7 @@ function parseArgs(argv: string[]): SetupArgs {
66
67
  help: false,
67
68
  projectId: null,
68
69
  skipHooks: false,
70
+ force: false,
69
71
  };
70
72
 
71
73
  for (let i = 0; i < argv.length; i++) {
@@ -78,6 +80,8 @@ function parseArgs(argv: string[]): SetupArgs {
78
80
  result.projectId = argv[++i];
79
81
  } else if (arg === "--skip-hooks") {
80
82
  result.skipHooks = true;
83
+ } else if (arg === "--force" || arg === "-f") {
84
+ result.force = true;
81
85
  } else if (arg.startsWith("ck_")) {
82
86
  result.apiKey = arg;
83
87
  } else if (!arg.startsWith("-") && arg !== "setup") {
@@ -104,11 +108,13 @@ ${c("bold", "OPTIONS:")}
104
108
  -d, --project-dir Project directory (default: current directory)
105
109
  --project-id Link to existing project ID
106
110
  --skip-hooks Skip installing Claude Code hooks
111
+ -f, --force Remove old Everstate hooks and reinstall fresh
107
112
  -h, --help Show this help message
108
113
 
109
114
  ${c("bold", "EXAMPLES:")}
110
115
  npx @everstateai/mcp setup ck_abc123def456
111
116
  npx @everstateai/mcp setup ck_abc123 --project-dir ./my-project
117
+ npx @everstateai/mcp setup ck_abc123 --force # Fix broken install
112
118
 
113
119
  ${c("bold", "WHAT THIS DOES:")}
114
120
  1. Configures Claude Code to use Everstate
@@ -185,8 +191,99 @@ function writeApiKeyFile(apiKey: string) {
185
191
  logSuccess("API key stored securely");
186
192
  }
187
193
 
188
- function installHooks(projectDir: string) {
194
+ async function downloadFile(url: string): Promise<string> {
195
+ return new Promise((resolve, reject) => {
196
+ const urlObj = new URL(url);
197
+ const req = https.request(
198
+ {
199
+ hostname: urlObj.hostname,
200
+ port: 443,
201
+ path: urlObj.pathname,
202
+ method: "GET",
203
+ headers: { "User-Agent": "everstate-setup/1.0" },
204
+ },
205
+ (res) => {
206
+ if (res.statusCode !== 200) {
207
+ reject(new Error(`HTTP ${res.statusCode}`));
208
+ return;
209
+ }
210
+ let data = "";
211
+ res.on("data", (chunk) => (data += chunk));
212
+ res.on("end", () => resolve(data));
213
+ }
214
+ );
215
+ req.on("error", reject);
216
+ req.setTimeout(10000, () => {
217
+ req.destroy();
218
+ reject(new Error("Download timeout"));
219
+ });
220
+ req.end();
221
+ });
222
+ }
223
+
224
+ function cleanupOldHooks(projectDir: string) {
225
+ logInfo("Cleaning up old Everstate hooks...");
226
+
189
227
  const hooksDir = path.join(projectDir, ".claude", "hooks");
228
+ const settingsPath = path.join(projectDir, ".claude", "settings.local.json");
229
+
230
+ // Remove old hook files (both prefixed and non-prefixed)
231
+ const oldHookFiles = [
232
+ "everstate-session-start.sh",
233
+ "everstate-session-stop.sh",
234
+ "everstate-sync-todos.js",
235
+ "everstate-pre-compact.sh",
236
+ "session-start.sh",
237
+ "session-stop.sh",
238
+ "sync-todos.js",
239
+ "pre-compact.sh",
240
+ ];
241
+
242
+ for (const file of oldHookFiles) {
243
+ const filePath = path.join(hooksDir, file);
244
+ if (fs.existsSync(filePath)) {
245
+ fs.unlinkSync(filePath);
246
+ logInfo(` Removed ${file}`);
247
+ }
248
+ }
249
+
250
+ // Clean Everstate hooks from settings.local.json
251
+ if (fs.existsSync(settingsPath)) {
252
+ let settings = readJsonFile(settingsPath) || {};
253
+ if (settings.hooks) {
254
+ // Remove hooks that point to everstate files
255
+ for (const hookType of Object.keys(settings.hooks)) {
256
+ if (Array.isArray(settings.hooks[hookType])) {
257
+ settings.hooks[hookType] = settings.hooks[hookType].map((entry: any) => {
258
+ if (entry.hooks && Array.isArray(entry.hooks)) {
259
+ entry.hooks = entry.hooks.filter((h: any) =>
260
+ !h.command || !h.command.includes("everstate")
261
+ );
262
+ }
263
+ return entry;
264
+ }).filter((entry: any) => entry.hooks && entry.hooks.length > 0);
265
+
266
+ // Remove empty hook types
267
+ if (settings.hooks[hookType].length === 0) {
268
+ delete settings.hooks[hookType];
269
+ }
270
+ }
271
+ }
272
+ writeJsonFile(settingsPath, settings);
273
+ }
274
+ }
275
+
276
+ logSuccess("Old Everstate hooks removed");
277
+ }
278
+
279
+ async function installHooks(projectDir: string, force: boolean = false) {
280
+ const hooksDir = path.join(projectDir, ".claude", "hooks");
281
+
282
+ // Clean up old hooks if force flag is set
283
+ if (force) {
284
+ cleanupOldHooks(projectDir);
285
+ }
286
+
190
287
  ensureDir(hooksDir);
191
288
  logInfo("Installing session hooks...");
192
289
 
@@ -228,8 +325,16 @@ curl -s --max-time 5 -X POST "https://www.everstate.ai/api/session/end" \\
228
325
  -d '{}' 2>/dev/null || true
229
326
  `;
230
327
 
231
- // Sync todos hook (simplified)
232
- const syncTodosHook = `#!/usr/bin/env node
328
+ // Try to download the latest sync-todos hook from the server
329
+ let syncTodosHook: string;
330
+ try {
331
+ logInfo("Downloading latest sync-todos hook...");
332
+ syncTodosHook = await downloadFile("https://www.everstate.ai/hooks/sync-todos.js");
333
+ logSuccess("Downloaded sync-todos.js from server");
334
+ } catch {
335
+ logWarning("Could not download sync-todos.js, using embedded fallback");
336
+ // Fallback to simplified embedded version
337
+ syncTodosHook = `#!/usr/bin/env node
233
338
  const https = require('https');
234
339
  const fs = require('fs');
235
340
  const path = require('path');
@@ -247,7 +352,6 @@ process.stdin.on('end', async () => {
247
352
  if (!fs.existsSync(keyPath)) return;
248
353
  const apiKey = fs.readFileSync(keyPath, 'utf8').trim();
249
354
 
250
- // Find projectId from .everstate.json
251
355
  let dir = process.cwd();
252
356
  let projectId = null;
253
357
  while (dir !== path.parse(dir).root) {
@@ -262,7 +366,6 @@ process.stdin.on('end', async () => {
262
366
  }
263
367
  if (!projectId) return;
264
368
 
265
- // Sync each todo
266
369
  for (const todo of todos) {
267
370
  const req = https.request({
268
371
  hostname: 'www.everstate.ai', port: 443, method: 'POST',
@@ -275,26 +378,66 @@ process.stdin.on('end', async () => {
275
378
  } catch {}
276
379
  });
277
380
  `;
381
+ }
278
382
 
279
- const startHookPath = path.join(hooksDir, "session-start.sh");
280
- const stopHookPath = path.join(hooksDir, "session-stop.sh");
281
- const syncTodosPath = path.join(hooksDir, "sync-todos.js");
383
+ // Write hook files with everstate- prefix to avoid conflicts
384
+ const startHookPath = path.join(hooksDir, "everstate-session-start.sh");
385
+ const stopHookPath = path.join(hooksDir, "everstate-session-stop.sh");
386
+ const syncTodosPath = path.join(hooksDir, "everstate-sync-todos.js");
282
387
 
283
388
  fs.writeFileSync(startHookPath, sessionStartHook, { mode: 0o755 });
284
389
  fs.writeFileSync(stopHookPath, sessionStopHook, { mode: 0o755 });
285
390
  fs.writeFileSync(syncTodosPath, syncTodosHook, { mode: 0o755 });
286
391
 
287
- // Configure hooks in settings.local.json
392
+ // Configure hooks in settings.local.json - MERGE with existing hooks
288
393
  const settingsPath = path.join(projectDir, ".claude", "settings.local.json");
289
394
  let settings = readJsonFile(settingsPath) || {};
290
395
  if (!settings.hooks) settings.hooks = {};
291
396
 
292
- settings.hooks.SessionStart = [{ matcher: "*", hooks: [{ type: "command", command: startHookPath }] }];
293
- settings.hooks.Stop = [{ matcher: "*", hooks: [{ type: "command", command: stopHookPath }] }];
294
- settings.hooks.PostToolUse = [{ matcher: "TodoWrite", hooks: [{ type: "command", command: syncTodosPath }] }];
397
+ // Helper to add a hook without duplicating or overwriting user hooks
398
+ function addHookIfNotExists(hookType: string, matcher: string, command: string): boolean {
399
+ if (!settings.hooks[hookType]) {
400
+ settings.hooks[hookType] = [];
401
+ }
402
+
403
+ // Check if this exact hook already exists
404
+ const exists = settings.hooks[hookType].some((entry: any) => {
405
+ if (entry.matcher !== matcher) return false;
406
+ return entry.hooks && entry.hooks.some((h: any) => h.command === command);
407
+ });
408
+
409
+ if (!exists) {
410
+ // Find existing entry with same matcher to add to, or create new
411
+ let matcherEntry = settings.hooks[hookType].find((e: any) => e.matcher === matcher);
412
+ if (matcherEntry) {
413
+ if (!matcherEntry.hooks) matcherEntry.hooks = [];
414
+ matcherEntry.hooks.push({ type: "command", command });
415
+ } else {
416
+ settings.hooks[hookType].push({
417
+ matcher,
418
+ hooks: [{ type: "command", command }],
419
+ });
420
+ }
421
+ return true;
422
+ }
423
+ return false;
424
+ }
425
+
426
+ // Add Everstate hooks (merging with any existing user hooks)
427
+ const added = {
428
+ sessionStart: addHookIfNotExists("SessionStart", "*", startHookPath),
429
+ stop: addHookIfNotExists("Stop", "*", stopHookPath),
430
+ todoWrite: addHookIfNotExists("PostToolUse", "TodoWrite", syncTodosPath),
431
+ };
295
432
 
296
433
  writeJsonFile(settingsPath, settings);
297
- logSuccess("Session hooks installed");
434
+
435
+ const addedCount = Object.values(added).filter(Boolean).length;
436
+ if (addedCount > 0) {
437
+ logSuccess(`Added ${addedCount} Everstate hooks (merged with existing hooks)`);
438
+ } else {
439
+ logSuccess("Everstate hooks already configured");
440
+ }
298
441
  }
299
442
 
300
443
  async function createProjectConfig(
@@ -445,7 +588,7 @@ export async function runSetup(argv: string[]) {
445
588
 
446
589
  // Step 4: Install hooks
447
590
  if (!args.skipHooks) {
448
- installHooks(projectDir);
591
+ await installHooks(projectDir, args.force);
449
592
  }
450
593
 
451
594
  // Step 5: Update .gitignore