@everstateai/mcp 1.3.14 → 1.3.15

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/dist/index.js CHANGED
@@ -220,7 +220,10 @@ async function runMcpServer() {
220
220
  console.error("[Everstate] Could not auto-detect project:", error);
221
221
  }
222
222
  }
223
- function readBatchConfig() {
223
+ // Cache for API-fetched batch config (avoids repeated fetches)
224
+ let cachedApiBatchConfig = null;
225
+ const API_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
226
+ function readBatchConfigFromFile() {
224
227
  let dir = process.cwd();
225
228
  const root = path.parse(dir).root;
226
229
  while (dir !== root) {
@@ -241,9 +244,54 @@ async function runMcpServer() {
241
244
  }
242
245
  dir = path.dirname(dir);
243
246
  }
244
- return { enabled: false, intervalSeconds: 30 };
247
+ return null; // No local config found
245
248
  }
246
- const batchConfig = readBatchConfig();
249
+ async function readBatchConfigFromApi() {
250
+ // Use cached result if fresh enough
251
+ if (cachedApiBatchConfig && (Date.now() - cachedApiBatchConfig.fetchedAt) < API_CACHE_TTL) {
252
+ return cachedApiBatchConfig.config;
253
+ }
254
+ try {
255
+ const res = await fetch(`${API_BASE}/api/users/me/preferences`, {
256
+ headers: { Authorization: `Bearer ${API_KEY}` },
257
+ });
258
+ if (res.ok) {
259
+ const prefs = await res.json();
260
+ if (prefs.batchSyncEnabled !== undefined) {
261
+ const interval = Number(prefs.batchSyncInterval) || 30;
262
+ const config = {
263
+ enabled: Boolean(prefs.batchSyncEnabled),
264
+ intervalSeconds: Math.min(Math.max(interval, 5), 300),
265
+ };
266
+ cachedApiBatchConfig = { config, fetchedAt: Date.now() };
267
+ return config;
268
+ }
269
+ }
270
+ }
271
+ catch { /* API unavailable, use defaults */ }
272
+ const defaultConfig = { enabled: false, intervalSeconds: 30 };
273
+ cachedApiBatchConfig = { config: defaultConfig, fetchedAt: Date.now() };
274
+ return defaultConfig;
275
+ }
276
+ function readBatchConfig() {
277
+ // Local .everstate.json always takes precedence
278
+ const localConfig = readBatchConfigFromFile();
279
+ if (localConfig)
280
+ return localConfig;
281
+ // Synchronous fallback for initial startup — API config loaded async below
282
+ return cachedApiBatchConfig?.config ?? { enabled: false, intervalSeconds: 30 };
283
+ }
284
+ // On startup, try to load batch config from API (async)
285
+ let batchConfig = readBatchConfig();
286
+ readBatchConfigFromApi().then(apiConfig => {
287
+ // Only apply if no local config exists
288
+ if (!readBatchConfigFromFile()) {
289
+ batchConfig = apiConfig;
290
+ if (apiConfig.enabled) {
291
+ console.error(`[Everstate] Batch sync enabled from user preferences (interval: ${apiConfig.intervalSeconds}s)`);
292
+ }
293
+ }
294
+ }).catch(() => { });
247
295
  const BUFFER_DIR = path.join(process.cwd(), ".claude");
248
296
  const BUFFER_PATH = path.join(BUFFER_DIR, ".batch-buffer.json");
249
297
  const MAX_RETRIES = 3;
@@ -479,6 +527,10 @@ async function runMcpServer() {
479
527
  if (sessionProjectId && !enrichedArgs.projectId && !hasProjectIdInParams) {
480
528
  enrichedArgs.projectId = sessionProjectId;
481
529
  }
530
+ // Inject vault key for encrypted personal intelligence layer
531
+ if (process.env.EVERSTATE_VAULT_KEY && !enrichedArgs.vaultKey) {
532
+ enrichedArgs.vaultKey = process.env.EVERSTATE_VAULT_KEY;
533
+ }
482
534
  // Auto-session: trigger sync if this is the first tool call or idle > 5 minutes
483
535
  const now = Date.now();
484
536
  const isIdle = lastToolCallTime > 0 && (now - lastToolCallTime) > AUTO_SYNC_IDLE_MS;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/setup/hooks/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAqD,MAAM,aAAa,CAAC;AAE5F;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CA2JrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAoBxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAgDtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAwBtE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAkB3E;AAuID;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAqF5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CA0EvE;AAED,eAAO,MAAM,aAAa;;;;;;;;CAQzB,CAAC"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/setup/hooks/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAqD,MAAM,aAAa,CAAC;AAE5F;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CA8LrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAoBxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAgDtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAwBtE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAkB3E;AAuID;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAqF5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CA0EvE;AAED,eAAO,MAAM,aAAa;;;;;;;;CAQzB,CAAC"}
@@ -31,7 +31,7 @@ function getSyncTodosHook(config) {
31
31
  * Two-way sync between Claude's TodoWrite and Everstate dashboard.
32
32
  * Runs after every TodoWrite tool call.
33
33
  *
34
- * Push: Sends Claude's todos to Everstate for matching and storage.
34
+ * Push: Sends only CHANGED todos to Everstate (hash-cache dedup).
35
35
  * Pull: Reads dashboard changes from API response and outputs instructions
36
36
  * to stdout so Claude can update its TodoWrite list.
37
37
  *
@@ -51,6 +51,10 @@ process.stdin.setEncoding('utf8');
51
51
  process.stdin.on('data', chunk => stdinData += chunk);
52
52
  process.stdin.on('end', () => main());
53
53
 
54
+ function normalizeTitle(str) {
55
+ return str.toLowerCase().trim().replace(/\\s+/g, ' ');
56
+ }
57
+
54
58
  async function main() {
55
59
  try {
56
60
  // Read API key
@@ -99,20 +103,43 @@ async function main() {
99
103
  process.exit(0);
100
104
  }
101
105
 
102
- // Read last sync timestamp for two-way sync
106
+ // Read sync state (timestamps + todo hash cache)
103
107
  const syncStatePath = path.join(
104
108
  process.env.CLAUDE_PROJECT_DIR || process.cwd(),
105
109
  '.claude', '.sync-state.json'
106
110
  );
107
111
  let lastSyncedAt = null;
112
+ let todoHashes = {};
113
+ let isFullSync = false;
108
114
  try {
109
115
  if (fs.existsSync(syncStatePath)) {
110
116
  const state = JSON.parse(fs.readFileSync(syncStatePath, 'utf8'));
111
117
  lastSyncedAt = state.lastSyncedAt || null;
118
+ todoHashes = state.todoHashes || {};
119
+ } else {
120
+ isFullSync = true; // First sync of session
112
121
  }
113
- } catch {}
122
+ } catch {
123
+ isFullSync = true;
124
+ }
125
+
126
+ // Filter to only send changed todos (hash-cache dedup)
127
+ let changedTodos = todos;
128
+ if (!isFullSync && Object.keys(todoHashes).length > 0) {
129
+ changedTodos = todos.filter(todo => {
130
+ const key = normalizeTitle(todo.content);
131
+ const cachedStatus = todoHashes[key];
132
+ // Send if: new todo, or status changed
133
+ return cachedStatus === undefined || cachedStatus !== todo.status;
134
+ });
135
+ }
136
+
137
+ if (changedTodos.length === 0) {
138
+ // Nothing changed — skip API call entirely
139
+ process.exit(0);
140
+ }
114
141
 
115
- // Send to API for matching and storage
142
+ // Send changed todos to API for matching and storage
116
143
  const response = await fetch(\`\${API_URL}/api/session/sync-todos\`, {
117
144
  method: 'POST',
118
145
  headers: {
@@ -121,9 +148,10 @@ async function main() {
121
148
  },
122
149
  body: JSON.stringify({
123
150
  projectId,
124
- todos,
151
+ todos: changedTodos,
125
152
  sessionId: process.env.SESSION_ID || null,
126
153
  lastSyncedAt,
154
+ fullSync: isFullSync,
127
155
  }),
128
156
  });
129
157
 
@@ -136,11 +164,18 @@ async function main() {
136
164
  // Parse response for two-way sync
137
165
  const data = await response.json();
138
166
 
139
- // Save sync timestamp for next run
167
+ // Update hash cache with ALL current todos (not just changed ones)
168
+ const newHashes = {};
169
+ for (const todo of todos) {
170
+ newHashes[normalizeTitle(todo.content)] = todo.status;
171
+ }
172
+
173
+ // Save sync state
140
174
  try {
141
175
  fs.mkdirSync(path.dirname(syncStatePath), { recursive: true });
142
176
  fs.writeFileSync(syncStatePath, JSON.stringify({
143
177
  lastSyncedAt: data.syncedAt || new Date().toISOString(),
178
+ todoHashes: newHashes,
144
179
  }));
145
180
  } catch {}
146
181
 
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/setup/hooks/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/setup/hooks/templates.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ function c(color, text) {
39
39
  exports.HOOK_VERSIONS = {
40
40
  sessionStart: '1.1.0',
41
41
  sessionEnd: '1.1.0',
42
- syncTodos: '6.0.0', // Two-way sync: dashboard changes reported back to Claude via stdout
42
+ syncTodos: '7.0.0', // Hash-cache dedup: only sends changed todos, prevents duplicate task creation
43
43
  preCompact: '2.0.0', // Re-injects critical context (gotchas, decisions, tasks) before compaction
44
44
  subagentContext: '1.0.0', // Injects project context when subagents spawn
45
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/setup/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA0JH,sCAQC;AAED,cAEC;AAgBD,0CAEC;AAED,kDAEC;AAED,gEAOC;AAED,kDAEC;AAED,sDAEC;AA9DY,QAAA,MAAM,GAAW;IAC5B,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;IACf,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,SAAgB,aAAa;IAC3B,OAAO,CACL,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;QAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG;QAC/B,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,gBAAgB;YACrC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,CAAC,CAAC,KAAmB,EAAE,IAAY;IACjD,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,cAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,cAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAElE,QAAA,aAAa,GAAG;IAC3B,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,OAAO,EAAG,qEAAqE;IAC1F,UAAU,EAAE,OAAO,EAAE,4EAA4E;IACjG,eAAe,EAAE,OAAO,EAAE,+CAA+C;CAC1E,CAAC;AAEW,QAAA,iBAAiB,GAAG,0BAA0B,CAAC;AAE5D,SAAgB,eAAe;IAC7B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC;AAC1C,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC;AAC5C,CAAC;AAED,SAAgB,0BAA0B;IACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,gEAAgE,CAAC;IAC7F,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACxC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,oCAAoC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC,CAAC,2CAA2C;AACxD,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC;AAChD,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,oCAAoC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/setup/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA0JH,sCAQC;AAED,cAEC;AAgBD,0CAEC;AAED,kDAEC;AAED,gEAOC;AAED,kDAEC;AAED,sDAEC;AA9DY,QAAA,MAAM,GAAW;IAC5B,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;IACf,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,SAAgB,aAAa;IAC3B,OAAO,CACL,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;QAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG;QAC/B,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,gBAAgB;YACrC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,CAAC,CAAC,KAAmB,EAAE,IAAY;IACjD,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,cAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,cAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAElE,QAAA,aAAa,GAAG;IAC3B,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,OAAO,EAAG,+EAA+E;IACpG,UAAU,EAAE,OAAO,EAAE,4EAA4E;IACjG,eAAe,EAAE,OAAO,EAAE,+CAA+C;CAC1E,CAAC;AAEW,QAAA,iBAAiB,GAAG,0BAA0B,CAAC;AAE5D,SAAgB,eAAe;IAC7B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC;AAC1C,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC;AAC5C,CAAC;AAED,SAAgB,0BAA0B;IACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,gEAAgE,CAAC;IAC7F,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACxC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,oCAAoC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC,CAAC,2CAA2C;AACxD,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC;AAChD,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,oCAAoC,CAAC;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAy0BH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,iBAoI5C"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AA+gCH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,iBA6J5C"}
package/dist/setup.js CHANGED
@@ -507,6 +507,76 @@ async function installHooks(projectDir, force = false) {
507
507
  logSuccess("Everstate tools added to approved commands");
508
508
  }
509
509
  // ============================================================================
510
+ // Stack detection
511
+ // ============================================================================
512
+ const STACK_DETECT = [
513
+ {
514
+ id: 'react',
515
+ name: 'React',
516
+ checks: [
517
+ { file: 'package.json', contains: '"react"' },
518
+ { file: 'vite.config.ts' },
519
+ { file: 'vite.config.js' },
520
+ { file: 'next.config.js' },
521
+ { file: 'next.config.mjs' },
522
+ { file: 'next.config.ts' },
523
+ ],
524
+ },
525
+ {
526
+ id: 'node',
527
+ name: 'Node.js',
528
+ checks: [
529
+ { file: 'package.json', contains: '"express"' },
530
+ { file: 'package.json', contains: '"fastify"' },
531
+ { file: 'package.json', contains: '"@nestjs/core"' },
532
+ ],
533
+ },
534
+ {
535
+ id: 'python',
536
+ name: 'Python',
537
+ checks: [
538
+ { file: 'pyproject.toml' },
539
+ { file: 'requirements.txt' },
540
+ { file: 'setup.py' },
541
+ { file: 'Pipfile' },
542
+ { file: 'manage.py' },
543
+ ],
544
+ },
545
+ ];
546
+ function detectProjectStack(projectDir) {
547
+ for (const stack of STACK_DETECT) {
548
+ for (const check of stack.checks) {
549
+ const filePath = path.join(projectDir, check.file);
550
+ if (!fs.existsSync(filePath))
551
+ continue;
552
+ if (check.contains) {
553
+ try {
554
+ const content = fs.readFileSync(filePath, 'utf8');
555
+ if (content.includes(check.contains)) {
556
+ return { id: stack.id, name: stack.name };
557
+ }
558
+ }
559
+ catch {
560
+ continue;
561
+ }
562
+ }
563
+ else {
564
+ return { id: stack.id, name: stack.name };
565
+ }
566
+ }
567
+ }
568
+ return null;
569
+ }
570
+ async function applyStackTemplate(apiKey, projectId, stackId) {
571
+ try {
572
+ const response = await httpPost("https://www.everstate.ai/api/projects/apply-stack-template", { projectId, stack: stackId }, apiKey);
573
+ return response && !response.error;
574
+ }
575
+ catch {
576
+ return false;
577
+ }
578
+ }
579
+ // ============================================================================
510
580
  // Project config
511
581
  // ============================================================================
512
582
  async function createProjectConfig(projectDir, apiKey, existingProjectId) {
@@ -529,14 +599,22 @@ async function createProjectConfig(projectDir, apiKey, existingProjectId) {
529
599
  logWarning("Could not create project via API, creating local config");
530
600
  }
531
601
  }
602
+ // Detect project stack
603
+ const detectedStack = detectProjectStack(projectDir);
532
604
  const config = {
533
605
  projectId: projectId || `proj_${Date.now()}`,
534
606
  projectName,
535
607
  createdAt: new Date().toISOString(),
536
608
  version: "1.0.0",
537
609
  };
610
+ if (detectedStack) {
611
+ config.stack = detectedStack.id;
612
+ }
538
613
  writeJsonFile(configPath, config);
539
614
  logSuccess(`Project configured: ${config.projectName}`);
615
+ if (detectedStack) {
616
+ logSuccess(`Detected stack: ${detectedStack.name}`);
617
+ }
540
618
  return config;
541
619
  }
542
620
  // ============================================================================
@@ -544,7 +622,7 @@ async function createProjectConfig(projectDir, apiKey, existingProjectId) {
544
622
  // ============================================================================
545
623
  function updateGitignore(projectDir) {
546
624
  const gitignorePath = path.join(projectDir, ".gitignore");
547
- const entries = ["# Everstate", ".claude/settings.local.json", ".claude/hooks/", ".claude/rules/"];
625
+ const entries = ["# Everstate", ".claude/settings.local.json", ".claude/hooks/", ".claude/rules/", ".cursor/rules/everstate.mdc", ".windsurf/rules/everstate.md"];
548
626
  let content = fs.existsSync(gitignorePath) ? fs.readFileSync(gitignorePath, "utf8") : "";
549
627
  const toAdd = entries.filter((e) => !content.includes(e.replace("# Everstate", "")));
550
628
  if (toAdd.length > 0) {
@@ -598,9 +676,98 @@ function ensureClaudeMd(projectDir) {
598
676
  }
599
677
  }
600
678
  // ============================================================================
679
+ // Cursor Rules (.cursor/rules/everstate.mdc)
680
+ // ============================================================================
681
+ const CURSOR_RULES_CONTENT = `---
682
+ description: Everstate project memory - persistent context across sessions
683
+ globs: "**/*"
684
+ alwaysApply: true
685
+ ---
686
+
687
+ # Everstate - Project Memory
688
+
689
+ This project uses [Everstate](https://www.everstate.ai) for persistent memory across sessions.
690
+
691
+ ## MCP Tools Available
692
+
693
+ You have Everstate MCP tools. Use them:
694
+
695
+ | Tool | When to Use |
696
+ |------|-------------|
697
+ | \`sync\` | **Call at the START of every conversation** to load project context |
698
+ | \`done\` | **Call BEFORE ending** to save session summary for next time |
699
+ | \`recall\` | Search past sessions: \`recall({ query: "what did we try for X?" })\` |
700
+ | \`log\` | Record progress: \`log({ type: "achievement", message: "..." })\` |
701
+ | \`everstate\` | All 100+ actions: \`everstate({ action: "help" })\` |
702
+
703
+ ## Session Workflow
704
+
705
+ 1. **Start**: Call \`sync()\` first thing to load context (gotchas, tasks, last session)
706
+ 2. **During**: Use \`log()\` for progress, \`recall()\` to search memory
707
+ 3. **End**: Call \`done({ summary: "...", nextSteps: [...] })\` to save context
708
+ `;
709
+ function ensureCursorRules(projectDir) {
710
+ const rulesDir = path.join(projectDir, ".cursor", "rules");
711
+ const rulesPath = path.join(rulesDir, "everstate.mdc");
712
+ if (!fs.existsSync(rulesDir)) {
713
+ fs.mkdirSync(rulesDir, { recursive: true });
714
+ }
715
+ fs.writeFileSync(rulesPath, CURSOR_RULES_CONTENT);
716
+ logSuccess("Created .cursor/rules/everstate.mdc");
717
+ }
718
+ // ============================================================================
719
+ // Windsurf Rules (.windsurf/rules/everstate.md)
720
+ // ============================================================================
721
+ const WINDSURF_RULES_CONTENT = `# Everstate - Project Memory
722
+
723
+ This project uses [Everstate](https://www.everstate.ai) for persistent memory across sessions.
724
+
725
+ ## MCP Tools Available
726
+
727
+ You have Everstate MCP tools. Use them:
728
+
729
+ | Tool | When to Use |
730
+ |------|-------------|
731
+ | \`sync\` | **Call at the START of every conversation** to load project context |
732
+ | \`done\` | **Call BEFORE ending** to save session summary for next time |
733
+ | \`recall\` | Search past sessions: \`recall({ query: "what did we try for X?" })\` |
734
+ | \`log\` | Record progress: \`log({ type: "achievement", message: "..." })\` |
735
+ | \`everstate\` | All 100+ actions: \`everstate({ action: "help" })\` |
736
+
737
+ ## Session Workflow
738
+
739
+ 1. **Start**: Call \`sync()\` first thing to load context (gotchas, tasks, last session)
740
+ 2. **During**: Use \`log()\` for progress, \`recall()\` to search memory
741
+ 3. **End**: Call \`done({ summary: "...", nextSteps: [...] })\` to save context
742
+ `;
743
+ function ensureWindsurfRules(projectDir) {
744
+ const rulesDir = path.join(projectDir, ".windsurf", "rules");
745
+ const rulesPath = path.join(rulesDir, "everstate.md");
746
+ if (!fs.existsSync(rulesDir)) {
747
+ fs.mkdirSync(rulesDir, { recursive: true });
748
+ }
749
+ fs.writeFileSync(rulesPath, WINDSURF_RULES_CONTENT);
750
+ logSuccess("Created .windsurf/rules/everstate.md");
751
+ }
752
+ // ============================================================================
753
+ // Install rules for detected non-Claude tools
754
+ // ============================================================================
755
+ function installToolRules(projectDir, configResults) {
756
+ for (const result of configResults) {
757
+ if (result.status !== "configured")
758
+ continue;
759
+ if (result.id === "cursor") {
760
+ ensureCursorRules(projectDir);
761
+ }
762
+ else if (result.id === "windsurf") {
763
+ ensureWindsurfRules(projectDir);
764
+ }
765
+ }
766
+ }
767
+ // ============================================================================
601
768
  // Setup summary
602
769
  // ============================================================================
603
- function printSetupSummary(configResults, projectDir, apiKey) {
770
+ function printSetupSummary(configResults, projectDir, apiKey, detectedStack) {
604
771
  console.log("");
605
772
  console.log(c("green", "╔═══════════════════════════════════════════════════════════╗"));
606
773
  console.log(c("green", "║") + " " + c("bold", "Everstate Setup Complete!") + " " + c("green", "║"));
@@ -634,6 +801,21 @@ function printSetupSummary(configResults, projectDir, apiKey) {
634
801
  console.log(c("green", " ✓ ") + "Project config".padEnd(22) + c("dim", ".everstate.json"));
635
802
  console.log(c("green", " ✓ ") + "Session hooks".padEnd(22) + c("dim", ".claude/hooks/"));
636
803
  console.log(c("green", " ✓ ") + "Permissions".padEnd(22) + c("dim", ".claude/settings.local.json"));
804
+ // Show rules files for detected tools
805
+ for (const result of configResults) {
806
+ if (result.status !== "configured")
807
+ continue;
808
+ if (result.id === "cursor") {
809
+ console.log(c("green", " ✓ ") + "Cursor rules".padEnd(22) + c("dim", ".cursor/rules/everstate.mdc"));
810
+ }
811
+ else if (result.id === "windsurf") {
812
+ console.log(c("green", " ✓ ") + "Windsurf rules".padEnd(22) + c("dim", ".windsurf/rules/everstate.md"));
813
+ }
814
+ }
815
+ if (detectedStack) {
816
+ const stackName = STACK_DETECT.find(s => s.id === detectedStack)?.name || detectedStack;
817
+ console.log(c("green", " ✓ ") + "Stack template".padEnd(22) + c("dim", `${stackName} (gotchas + tasks)`));
818
+ }
637
819
  console.log("");
638
820
  // Next steps
639
821
  console.log(c("cyan", " Add another project:"));
@@ -690,8 +872,9 @@ async function runUpgrade(args) {
690
872
  logSuccess(`${result.tool} → ${shortenPath(result.path)}`);
691
873
  }
692
874
  }
693
- logInfo("Updating hooks...");
875
+ logInfo("Updating hooks and rules...");
694
876
  await installHooks(projectDir, true);
877
+ installToolRules(projectDir, configResults);
695
878
  // Also run auto-update to install any new hook types (gotcha-check, implicit-progress)
696
879
  try {
697
880
  const { checkAndApplyUpdates } = await import('./setup/auto-update.js');
@@ -831,14 +1014,34 @@ async function runSetup(argv) {
831
1014
  // ── Step 5: Create project config ────────────────────────────────
832
1015
  logInfo(`Project directory: ${shortenPath(projectDir)}`);
833
1016
  const projectConfig = await createProjectConfig(projectDir, apiKey, args.projectId);
1017
+ // ── Step 5b: Apply stack template if detected ──────────────────
1018
+ if (projectConfig.stack) {
1019
+ const stackName = STACK_DETECT.find(s => s.id === projectConfig.stack)?.name || projectConfig.stack;
1020
+ let shouldApply = true;
1021
+ if (!args.nonInteractive) {
1022
+ const answer = await askQuestion(` Apply ${c("bold", stackName)} starter template (gotchas + tasks)? [Y/n] `, "y");
1023
+ shouldApply = answer.toLowerCase() !== "n";
1024
+ }
1025
+ if (shouldApply) {
1026
+ logInfo(`Applying ${stackName} stack template...`);
1027
+ const applied = await applyStackTemplate(apiKey, projectConfig.projectId, projectConfig.stack);
1028
+ if (applied) {
1029
+ logSuccess(`${stackName} gotchas and task template seeded`);
1030
+ }
1031
+ else {
1032
+ logSkip("Stack template will be available via: everstate({ action: 'project.apply_stack_template', params: { stack: '" + projectConfig.stack + "' } })");
1033
+ }
1034
+ }
1035
+ }
834
1036
  // ── Step 6: Install hooks ────────────────────────────────────────
835
1037
  if (!args.skipHooks) {
836
1038
  await installHooks(projectDir, args.force);
837
1039
  }
838
1040
  // ── Step 7: Update .gitignore ────────────────────────────────────
839
1041
  updateGitignore(projectDir);
840
- // ── Step 8: Create .claude/rules/everstate.md ─────────────────────
1042
+ // ── Step 8: Create rules files for detected tools ──────────────────
841
1043
  ensureClaudeMd(projectDir);
1044
+ installToolRules(projectDir, configResults);
842
1045
  // ── Step 9: Write version file ───────────────────────────────────
843
1046
  const versionFile = (0, version_js_1.createVersionFile)("setup");
844
1047
  versionFile.projects[projectConfig.projectId] = {
@@ -863,7 +1066,7 @@ async function runSetup(argv) {
863
1066
  logSuccess("All checks passed!");
864
1067
  }
865
1068
  // ── Summary ──────────────────────────────────────────────────────
866
- printSetupSummary(configResults, projectDir, apiKey);
1069
+ printSetupSummary(configResults, projectDir, apiKey, projectConfig.stack);
867
1070
  }
868
1071
  catch (error) {
869
1072
  logError(`Setup failed: ${error.message}`);