@sudosandwich/limps 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +103 -3
  2. package/dist/cli/config-cmd.d.ts +75 -0
  3. package/dist/cli/config-cmd.d.ts.map +1 -1
  4. package/dist/cli/config-cmd.js +329 -1
  5. package/dist/cli/config-cmd.js.map +1 -1
  6. package/dist/cli/init-project.d.ts.map +1 -1
  7. package/dist/cli/init-project.js +9 -0
  8. package/dist/cli/init-project.js.map +1 -1
  9. package/dist/cli/mcp-client-adapter.d.ts +77 -0
  10. package/dist/cli/mcp-client-adapter.d.ts.map +1 -0
  11. package/dist/cli/mcp-client-adapter.js +208 -0
  12. package/dist/cli/mcp-client-adapter.js.map +1 -0
  13. package/dist/cli/next-task.d.ts +36 -9
  14. package/dist/cli/next-task.d.ts.map +1 -1
  15. package/dist/cli/next-task.js +95 -26
  16. package/dist/cli/next-task.js.map +1 -1
  17. package/dist/cli.js +33 -17
  18. package/dist/cli.js.map +1 -1
  19. package/dist/commands/config/index.d.ts.map +1 -1
  20. package/dist/commands/config/index.js +1 -1
  21. package/dist/commands/config/index.js.map +1 -1
  22. package/dist/commands/config/sync-mcp.d.ts +19 -0
  23. package/dist/commands/config/sync-mcp.d.ts.map +1 -0
  24. package/dist/commands/config/sync-mcp.js +149 -0
  25. package/dist/commands/config/sync-mcp.js.map +1 -0
  26. package/dist/commands/config/update.d.ts +14 -0
  27. package/dist/commands/config/update.d.ts.map +1 -0
  28. package/dist/commands/config/update.js +24 -0
  29. package/dist/commands/config/update.js.map +1 -0
  30. package/dist/commands/serve.d.ts +6 -0
  31. package/dist/commands/serve.d.ts.map +1 -1
  32. package/dist/commands/serve.js +14 -19
  33. package/dist/commands/serve.js.map +1 -1
  34. package/dist/components/Confirm.d.ts +13 -0
  35. package/dist/components/Confirm.d.ts.map +1 -0
  36. package/dist/components/Confirm.js +44 -0
  37. package/dist/components/Confirm.js.map +1 -0
  38. package/dist/config.d.ts +58 -0
  39. package/dist/config.d.ts.map +1 -1
  40. package/dist/config.js +74 -0
  41. package/dist/config.js.map +1 -1
  42. package/dist/server-main.d.ts.map +1 -1
  43. package/dist/server-main.js +2 -2
  44. package/dist/server-main.js.map +1 -1
  45. package/dist/tools/process-doc.d.ts +7 -0
  46. package/dist/tools/process-doc.d.ts.map +1 -1
  47. package/dist/tools/process-doc.js +45 -26
  48. package/dist/tools/process-doc.js.map +1 -1
  49. package/dist/tools/process-docs.d.ts +12 -0
  50. package/dist/tools/process-docs.d.ts.map +1 -1
  51. package/dist/tools/process-docs.js +44 -25
  52. package/dist/tools/process-docs.js.map +1 -1
  53. package/dist/utils/llm-policy.d.ts +16 -0
  54. package/dist/utils/llm-policy.d.ts.map +1 -0
  55. package/dist/utils/llm-policy.js +25 -0
  56. package/dist/utils/llm-policy.js.map +1 -0
  57. package/dist/watcher.d.ts +9 -1
  58. package/dist/watcher.d.ts.map +1 -1
  59. package/dist/watcher.js +30 -1
  60. package/dist/watcher.js.map +1 -1
  61. package/package.json +1 -1
package/README.md CHANGED
@@ -153,6 +153,8 @@ limps <command> --help # Show command help
153
153
  | `limps config remove <name>` | Unregister a project |
154
154
  | `limps config set <path>` | Set current from config path |
155
155
  | `limps config discover` | Find configs in default locations |
156
+ | `limps config update <name>` | Update project paths |
157
+ | `limps config sync-mcp` | Add projects to MCP client configs |
156
158
 
157
159
  ### Multi-Project Workflow
158
160
 
@@ -211,7 +213,15 @@ Create a `config.json` at the OS-specific location or specify a path:
211
213
  "plansPath": "~/Documents/my-plans",
212
214
  "docsPaths": ["~/Documents/my-plans"],
213
215
  "fileExtensions": [".md"],
214
- "dataPath": "~/Library/Application Support/limps/data"
216
+ "dataPath": "~/Library/Application Support/limps/data",
217
+ "scoring": {
218
+ "weights": {
219
+ "dependency": 40,
220
+ "priority": 30,
221
+ "workload": 30
222
+ },
223
+ "biases": {}
224
+ }
215
225
  }
216
226
  ```
217
227
 
@@ -231,10 +241,11 @@ The server finds configuration in this order:
231
241
 
232
242
  | Option | Type | Default | Description |
233
243
  |--------|------|---------|-------------|
234
- | `plansPath` | string | `./plans` | Primary directory for plan documents |
235
- | `docsPaths` | string[] | `[]` | Additional directories to index |
244
+ | `plansPath` | string | `./plans` | Primary directory for structured plans (contains `NNNN-name/` directories with agents, tasks, status tracking) |
245
+ | `docsPaths` | string[] | `[]` | Additional directories to index for search (any markdown, no structure required) |
236
246
  | `fileExtensions` | string[] | `[".md"]` | File types to index |
237
247
  | `dataPath` | string | `./data` | SQLite database location |
248
+ | `scoring` | object | required | Task scoring configuration for `get_next_task` (weights and biases) |
238
249
 
239
250
  ### Path Options
240
251
 
@@ -278,6 +289,41 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
278
289
  }
279
290
  ```
280
291
 
292
+ ### Claude Code
293
+
294
+ Add to `~/.claude/.mcp.json`:
295
+
296
+ ```json
297
+ {
298
+ "mcpServers": {
299
+ "limps": {
300
+ "command": "npx",
301
+ "args": ["-y", "@sudosandwich/limps", "serve", "--config", "/path/to/config.json"]
302
+ }
303
+ }
304
+ }
305
+ ```
306
+
307
+ ### Automatic MCP Client Configuration
308
+
309
+ Instead of manually editing config files, use the CLI:
310
+
311
+ ```bash
312
+ # Add all registered projects to all MCP clients
313
+ limps config sync-mcp
314
+
315
+ # Add to specific client only
316
+ limps config sync-mcp --client claude
317
+ limps config sync-mcp --client cursor
318
+ limps config sync-mcp --client claude-code
319
+
320
+ # Add specific projects
321
+ limps config sync-mcp --projects my-project,other-project
322
+
323
+ # Preview without writing
324
+ limps config sync-mcp --print
325
+ ```
326
+
281
327
  ## Features
282
328
 
283
329
  ### MCP Tools (15 Tools)
@@ -337,6 +383,41 @@ Example response:
337
383
  }
338
384
  ```
339
385
 
386
+ #### Scoring Biases
387
+
388
+ Biases are numeric adjustments added to the final score. Use them to promote or demote specific plans, personas, or statuses.
389
+
390
+ Supported bias keys:
391
+
392
+ | Bias Key | Description | Example |
393
+ |---------|-------------|---------|
394
+ | `plans` | Per-plan bias keyed by plan folder name | `"plans": { "0030-limps-scoring-weights": 20 }` |
395
+ | `personas.coder` | Bias for coder tasks | `"personas": { "coder": 10 }` |
396
+ | `personas.reviewer` | Bias for reviewer tasks | `"personas": { "reviewer": -10 }` |
397
+ | `personas.pm` | Bias for PM tasks | `"personas": { "pm": 5 }` |
398
+ | `personas.customer` | Bias for customer tasks | `"personas": { "customer": 5 }` |
399
+ | `statuses.GAP` | Bias for GAP tasks | `"statuses": { "GAP": 5 }` |
400
+ | `statuses.WIP` | Bias for WIP tasks | `"statuses": { "WIP": -5 }` |
401
+ | `statuses.BLOCKED` | Bias for BLOCKED tasks | `"statuses": { "BLOCKED": 10 }` |
402
+
403
+ Example:
404
+ ```json
405
+ {
406
+ "scoring": {
407
+ "weights": {
408
+ "dependency": 40,
409
+ "priority": 30,
410
+ "workload": 30
411
+ },
412
+ "biases": {
413
+ "plans": { "0030-limps-scoring-weights": 20 },
414
+ "personas": { "reviewer": -10, "coder": 5 },
415
+ "statuses": { "GAP": 5 }
416
+ }
417
+ }
418
+ }
419
+ ```
420
+
340
421
  ### RLM (Recursive Language Model) Support
341
422
 
342
423
  Implements the [RLM pattern from MIT CSAIL](https://arxiv.org/abs/2512.24601) for programmatic document examination and recursive processing:
@@ -346,6 +427,25 @@ Implements the [RLM pattern from MIT CSAIL](https://arxiv.org/abs/2512.24601) fo
346
427
  - **Parallel execution** - Cross-document analysis
347
428
  - **Document extractors** - Markdown, YAML, Gherkin parsing
348
429
 
430
+ #### Sub-query LLM Gating
431
+
432
+ `process_doc` and `process_docs` only invoke LLM sub-queries when explicitly enabled. This keeps local workflows deterministic by default and avoids token spend unless requested.
433
+
434
+ - **Opt-in:** `allow_llm: true` is required to run `sub_query`
435
+ - **Policy:** `llm_policy: "auto"` (default) skips small results (under 800 bytes); `"force"` always runs
436
+ - **Skip metadata:** when skipped, responses include `sub_query_skipped` and `sub_query_reason`
437
+
438
+ Example:
439
+ ```typescript
440
+ await process_doc({
441
+ path: 'plans/0001-feature/plan.md',
442
+ code: 'extractFeatures(doc.content)',
443
+ sub_query: 'Summarize each feature',
444
+ allow_llm: true,
445
+ llm_policy: 'force'
446
+ });
447
+ ```
448
+
349
449
  ### Obsidian Vault Compatibility
350
450
 
351
451
  limps is compatible with Obsidian vaults. Simply open your `plans/` directory as an Obsidian vault to get a visual editor for your planning documents:
@@ -96,6 +96,7 @@ export declare function configRemove(name: string): string;
96
96
  * @throws Error if config file doesn't exist or is invalid
97
97
  */
98
98
  export declare function configSet(configFilePath: string): string;
99
+ import { type McpClientAdapter } from './mcp-client-adapter.js';
99
100
  /**
100
101
  * Discover and register config files from default OS locations.
101
102
  * Scans the OS-specific application support directories for config.json files.
@@ -103,4 +104,78 @@ export declare function configSet(configFilePath: string): string;
103
104
  * @returns Summary of discovered projects
104
105
  */
105
106
  export declare function configDiscover(): string;
107
+ /**
108
+ * Generate MCP server configuration JSON for limps projects.
109
+ * Returns the JSON structure that should be added to the client config.
110
+ *
111
+ * @param adapter - MCP client adapter
112
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
113
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
114
+ * @returns Object with servers key and the servers configuration
115
+ * @throws Error if no valid projects found
116
+ */
117
+ export declare function generateMcpClientConfig(adapter: McpClientAdapter, resolveConfigPathFn: () => string, projectFilter?: string[]): {
118
+ serversKey: string;
119
+ servers: Record<string, unknown>;
120
+ fullConfig: Record<string, unknown>;
121
+ };
122
+ /**
123
+ * Generate config JSON for printing (for unsupported clients).
124
+ *
125
+ * @param adapter - MCP client adapter
126
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
127
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
128
+ * @returns JSON string and instructions
129
+ */
130
+ export declare function generateConfigForPrint(adapter: McpClientAdapter, resolveConfigPathFn: () => string, projectFilter?: string[]): string;
131
+ /**
132
+ * Add limps server configuration to Claude Desktop config.
133
+ * Creates the config file if it doesn't exist, or merges with existing config.
134
+ * Adds all registered projects as separate MCP servers.
135
+ *
136
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
137
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
138
+ * @returns Success message listing all added servers
139
+ * @throws Error if Claude Desktop config directory doesn't exist or can't be written
140
+ */
141
+ export declare function configAddClaude(resolveConfigPathFn: () => string, projectFilter?: string[]): string;
142
+ /**
143
+ * Add limps server configuration to Cursor config.
144
+ * Creates the config file if it doesn't exist, or merges with existing config.
145
+ * Adds all registered projects as separate MCP servers.
146
+ *
147
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
148
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
149
+ * @returns Success message listing all added servers
150
+ * @throws Error if Cursor config directory doesn't exist or can't be written
151
+ */
152
+ export declare function configAddCursor(resolveConfigPathFn: () => string, projectFilter?: string[]): string;
153
+ /**
154
+ * Add limps server configuration to Claude Code config.
155
+ * Creates the config file if it doesn't exist, or merges with existing config.
156
+ * Adds all registered projects as separate MCP servers.
157
+ *
158
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
159
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
160
+ * @returns Success message listing all added servers
161
+ * @throws Error if Claude Code config directory doesn't exist or can't be written
162
+ */
163
+ export declare function configAddClaudeCode(resolveConfigPathFn: () => string, projectFilter?: string[]): string;
164
+ /**
165
+ * Update options for configUpdate.
166
+ */
167
+ export interface ConfigUpdateOptions {
168
+ plansPath?: string;
169
+ docsPath?: string;
170
+ }
171
+ /**
172
+ * Update an existing project's configuration.
173
+ * Allows updating plansPath and docsPaths without recreating the config.
174
+ *
175
+ * @param projectName - Name of the project to update
176
+ * @param options - Fields to update
177
+ * @returns Success message
178
+ * @throws Error if project not found or config file doesn't exist
179
+ */
180
+ export declare function configUpdate(projectName: string, options: ConfigUpdateOptions): string;
106
181
  //# sourceMappingURL=config-cmd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;KACjB,EAAE,CAAC;IACJ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAY9C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAmBnC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,mBAAmB,EAAE,MAAM,MAAM,GAAG,UAAU,CAkB3E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,mBAAmB,EAAE,MAAM,MAAM,GAAG,MAAM,CA4BpE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,mBAAmB,EAAE,MAAM,MAAM,GAAG,MAAM,CAEpE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkBtE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAmCxD;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAmDvC"}
1
+ {"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Config subcommand handlers for limps CLI.
3
3
  * Provides commands to manage the project registry and view configuration.
4
4
  */
5
- import { existsSync, readdirSync } from 'fs';
5
+ import { existsSync, readdirSync, readFileSync, writeFileSync } from 'fs';
6
6
  import { resolve, dirname, basename } from 'path';
7
7
  import { registerProject, unregisterProject, setCurrentProject, listProjects, loadRegistry, } from './registry.js';
8
8
  import { loadConfig } from '../config.js';
@@ -105,6 +105,61 @@ export function configShow(resolveConfigPathFn) {
105
105
  if (config.fileExtensions) {
106
106
  lines.push(` fileExtensions: ${config.fileExtensions.join(', ')}`);
107
107
  }
108
+ if (config.scoring?.weights || config.scoring?.biases) {
109
+ lines.push(` scoring:`);
110
+ if (config.scoring.weights) {
111
+ lines.push(` weights:`);
112
+ const weights = config.scoring.weights;
113
+ if (weights.dependency !== undefined) {
114
+ lines.push(` dependency: ${weights.dependency}`);
115
+ }
116
+ if (weights.priority !== undefined) {
117
+ lines.push(` priority: ${weights.priority}`);
118
+ }
119
+ if (weights.workload !== undefined) {
120
+ lines.push(` workload: ${weights.workload}`);
121
+ }
122
+ }
123
+ if (config.scoring.biases) {
124
+ lines.push(` biases:`);
125
+ const biases = config.scoring.biases;
126
+ if (biases.plans && Object.keys(biases.plans).length > 0) {
127
+ lines.push(` plans:`);
128
+ for (const [plan, value] of Object.entries(biases.plans)) {
129
+ lines.push(` ${plan}: ${value > 0 ? '+' : ''}${value}`);
130
+ }
131
+ }
132
+ if (biases.personas) {
133
+ lines.push(` personas:`);
134
+ const personas = biases.personas;
135
+ if (personas.coder !== undefined) {
136
+ lines.push(` coder: ${personas.coder > 0 ? '+' : ''}${personas.coder}`);
137
+ }
138
+ if (personas.reviewer !== undefined) {
139
+ lines.push(` reviewer: ${personas.reviewer > 0 ? '+' : ''}${personas.reviewer}`);
140
+ }
141
+ if (personas.pm !== undefined) {
142
+ lines.push(` pm: ${personas.pm > 0 ? '+' : ''}${personas.pm}`);
143
+ }
144
+ if (personas.customer !== undefined) {
145
+ lines.push(` customer: ${personas.customer > 0 ? '+' : ''}${personas.customer}`);
146
+ }
147
+ }
148
+ if (biases.statuses) {
149
+ lines.push(` statuses:`);
150
+ const statuses = biases.statuses;
151
+ if (statuses.GAP !== undefined) {
152
+ lines.push(` GAP: ${statuses.GAP > 0 ? '+' : ''}${statuses.GAP}`);
153
+ }
154
+ if (statuses.WIP !== undefined) {
155
+ lines.push(` WIP: ${statuses.WIP > 0 ? '+' : ''}${statuses.WIP}`);
156
+ }
157
+ if (statuses.BLOCKED !== undefined) {
158
+ lines.push(` BLOCKED: ${statuses.BLOCKED > 0 ? '+' : ''}${statuses.BLOCKED}`);
159
+ }
160
+ }
161
+ }
162
+ }
108
163
  return lines.join('\n');
109
164
  }
110
165
  /**
@@ -188,6 +243,7 @@ export function configSet(configFilePath) {
188
243
  return `Registered and switched to project "${projectName}"`;
189
244
  }
190
245
  import { getOSBasePath } from '../utils/os-paths.js';
246
+ import { getAdapter } from './mcp-client-adapter.js';
191
247
  /**
192
248
  * Discover and register config files from default OS locations.
193
249
  * Scans the OS-specific application support directories for config.json files.
@@ -239,4 +295,276 @@ export function configDiscover() {
239
295
  lines.push('Run `limps config use <name>` to switch to a project.');
240
296
  return lines.join('\n');
241
297
  }
298
+ /**
299
+ * Generate MCP server configuration JSON for limps projects.
300
+ * Returns the JSON structure that should be added to the client config.
301
+ *
302
+ * @param adapter - MCP client adapter
303
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
304
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
305
+ * @returns Object with servers key and the servers configuration
306
+ * @throws Error if no valid projects found
307
+ */
308
+ export function generateMcpClientConfig(adapter, resolveConfigPathFn, projectFilter) {
309
+ // Validate that at least one config exists
310
+ const testConfigPath = resolveConfigPathFn();
311
+ if (!existsSync(testConfigPath)) {
312
+ throw new Error(`Limps config not found: ${testConfigPath}\nRun \`limps init <name>\` to create a project first.`);
313
+ }
314
+ // Get all registered projects
315
+ const allProjects = listProjects();
316
+ if (allProjects.length === 0) {
317
+ throw new Error('No projects registered. Run `limps init <name>` to create a project first.');
318
+ }
319
+ // Filter projects if filter is provided
320
+ const projectsToAdd = projectFilter
321
+ ? allProjects.filter((p) => projectFilter.includes(p.name))
322
+ : allProjects;
323
+ if (projectsToAdd.length === 0) {
324
+ throw new Error(`No matching projects found. Available projects: ${allProjects.map((p) => p.name).join(', ')}`);
325
+ }
326
+ // Build servers configuration
327
+ const servers = {};
328
+ for (const project of projectsToAdd) {
329
+ // Skip projects with missing config files
330
+ if (!existsSync(project.configPath)) {
331
+ continue;
332
+ }
333
+ const serverName = `limps-planning-${project.name}`;
334
+ servers[serverName] = adapter.createServerConfig(project.configPath);
335
+ }
336
+ if (Object.keys(servers).length === 0) {
337
+ throw new Error('No valid projects to add. All projects have missing config files.');
338
+ }
339
+ // Build full config structure
340
+ const serversKey = adapter.getServersKey();
341
+ const fullConfig = {};
342
+ if (adapter.useFlatKey?.()) {
343
+ // Use the key as a flat key
344
+ fullConfig[serversKey] = servers;
345
+ }
346
+ else {
347
+ // Build nested structure
348
+ const keyParts = serversKey.split('.');
349
+ let current = fullConfig;
350
+ for (let i = 0; i < keyParts.length - 1; i++) {
351
+ current[keyParts[i]] = {};
352
+ current = current[keyParts[i]];
353
+ }
354
+ current[keyParts[keyParts.length - 1]] = servers;
355
+ }
356
+ return { serversKey, servers, fullConfig };
357
+ }
358
+ /**
359
+ * Add limps server configuration to an MCP client config.
360
+ * Creates the config file if it doesn't exist, or merges with existing config.
361
+ * Adds all registered projects as separate MCP servers.
362
+ *
363
+ * @param adapter - MCP client adapter
364
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
365
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
366
+ * @returns Success message listing all added servers
367
+ * @throws Error if config directory doesn't exist or can't be written
368
+ */
369
+ function configAddMcpClient(adapter, resolveConfigPathFn, projectFilter) {
370
+ // Validate that at least one config exists
371
+ const testConfigPath = resolveConfigPathFn();
372
+ if (!existsSync(testConfigPath)) {
373
+ throw new Error(`Limps config not found: ${testConfigPath}\nRun \`limps init <name>\` to create a project first.`);
374
+ }
375
+ // Get all registered projects
376
+ const allProjects = listProjects();
377
+ if (allProjects.length === 0) {
378
+ throw new Error('No projects registered. Run `limps init <name>` to create a project first.');
379
+ }
380
+ // Filter projects if filter is provided
381
+ const projectsToAdd = projectFilter
382
+ ? allProjects.filter((p) => projectFilter.includes(p.name))
383
+ : allProjects;
384
+ if (projectsToAdd.length === 0) {
385
+ throw new Error(`No matching projects found. Available projects: ${allProjects.map((p) => p.name).join(', ')}`);
386
+ }
387
+ // Generate the config
388
+ const { serversKey, servers } = generateMcpClientConfig(adapter, resolveConfigPathFn, projectFilter);
389
+ // Read existing config or create new one
390
+ const clientConfig = adapter.readConfig();
391
+ // Get or create the servers object
392
+ let existingServers;
393
+ if (adapter.useFlatKey?.()) {
394
+ // Use the key as a flat key (e.g., "mcp.servers" as a literal key)
395
+ if (!clientConfig[serversKey] || typeof clientConfig[serversKey] !== 'object') {
396
+ clientConfig[serversKey] = {};
397
+ }
398
+ existingServers = clientConfig[serversKey];
399
+ }
400
+ else {
401
+ // Handle nested keys like "mcp.servers" -> { mcp: { servers: {...} } }
402
+ const keyParts = serversKey.split('.');
403
+ let current = clientConfig;
404
+ // Navigate/create nested structure
405
+ for (let i = 0; i < keyParts.length - 1; i++) {
406
+ const part = keyParts[i];
407
+ if (!current[part] || typeof current[part] !== 'object') {
408
+ current[part] = {};
409
+ }
410
+ current = current[part];
411
+ }
412
+ // Get or create the final servers object
413
+ const finalKey = keyParts[keyParts.length - 1];
414
+ if (!current[finalKey] || typeof current[finalKey] !== 'object') {
415
+ current[finalKey] = {};
416
+ }
417
+ existingServers = current[finalKey];
418
+ }
419
+ // Track what was added/updated
420
+ const addedServers = [];
421
+ const updatedServers = [];
422
+ for (const [serverName, serverConfig] of Object.entries(servers)) {
423
+ const wasExisting = serverName in existingServers;
424
+ existingServers[serverName] = serverConfig;
425
+ if (wasExisting) {
426
+ updatedServers.push(serverName);
427
+ }
428
+ else {
429
+ addedServers.push(serverName);
430
+ }
431
+ }
432
+ // Write back to file
433
+ adapter.writeConfig(clientConfig);
434
+ // Build success message
435
+ const lines = [];
436
+ const totalChanges = addedServers.length + updatedServers.length;
437
+ if (totalChanges === 0) {
438
+ lines.push(`No changes needed for ${adapter.getDisplayName()} config.`);
439
+ }
440
+ else {
441
+ if (addedServers.length > 0) {
442
+ lines.push(`Added ${addedServers.length} limps project(s) to ${adapter.getDisplayName()} config:`);
443
+ for (const server of addedServers) {
444
+ lines.push(` + ${server}`);
445
+ }
446
+ }
447
+ if (updatedServers.length > 0) {
448
+ if (addedServers.length > 0) {
449
+ lines.push('');
450
+ }
451
+ lines.push(`Updated ${updatedServers.length} limps project(s) in ${adapter.getDisplayName()} config:`);
452
+ for (const server of updatedServers) {
453
+ lines.push(` ~ ${server}`);
454
+ }
455
+ }
456
+ }
457
+ lines.push('');
458
+ lines.push(`Config location: ${adapter.getConfigPath()}`);
459
+ if (totalChanges > 0) {
460
+ lines.push(`Restart ${adapter.getDisplayName()} to use the updated MCP servers.`);
461
+ }
462
+ return lines.join('\n');
463
+ }
464
+ /**
465
+ * Generate config JSON for printing (for unsupported clients).
466
+ *
467
+ * @param adapter - MCP client adapter
468
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
469
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
470
+ * @returns JSON string and instructions
471
+ */
472
+ export function generateConfigForPrint(adapter, resolveConfigPathFn, projectFilter) {
473
+ const { fullConfig, serversKey } = generateMcpClientConfig(adapter, resolveConfigPathFn, projectFilter);
474
+ const lines = [];
475
+ lines.push(`\n${adapter.getDisplayName()} Configuration:`);
476
+ lines.push(`\nAdd this to your ${adapter.getDisplayName()} config file:`);
477
+ lines.push(`\n${JSON.stringify(fullConfig, null, 2)}`);
478
+ lines.push(`\nConfig file location: ${adapter.getConfigPath()}`);
479
+ lines.push(`\nNote: Merge the "${serversKey}" section into your existing config file.`);
480
+ return lines.join('\n');
481
+ }
482
+ /**
483
+ * Add limps server configuration to Claude Desktop config.
484
+ * Creates the config file if it doesn't exist, or merges with existing config.
485
+ * Adds all registered projects as separate MCP servers.
486
+ *
487
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
488
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
489
+ * @returns Success message listing all added servers
490
+ * @throws Error if Claude Desktop config directory doesn't exist or can't be written
491
+ */
492
+ export function configAddClaude(resolveConfigPathFn, projectFilter) {
493
+ const adapter = getAdapter('claude');
494
+ return configAddMcpClient(adapter, resolveConfigPathFn, projectFilter);
495
+ }
496
+ /**
497
+ * Add limps server configuration to Cursor config.
498
+ * Creates the config file if it doesn't exist, or merges with existing config.
499
+ * Adds all registered projects as separate MCP servers.
500
+ *
501
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
502
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
503
+ * @returns Success message listing all added servers
504
+ * @throws Error if Cursor config directory doesn't exist or can't be written
505
+ */
506
+ export function configAddCursor(resolveConfigPathFn, projectFilter) {
507
+ const adapter = getAdapter('cursor');
508
+ return configAddMcpClient(adapter, resolveConfigPathFn, projectFilter);
509
+ }
510
+ /**
511
+ * Add limps server configuration to Claude Code config.
512
+ * Creates the config file if it doesn't exist, or merges with existing config.
513
+ * Adds all registered projects as separate MCP servers.
514
+ *
515
+ * @param resolveConfigPathFn - Function to resolve limps config path (used for validation)
516
+ * @param projectFilter - Optional array of project names to filter (if not provided, adds all)
517
+ * @returns Success message listing all added servers
518
+ * @throws Error if Claude Code config directory doesn't exist or can't be written
519
+ */
520
+ export function configAddClaudeCode(resolveConfigPathFn, projectFilter) {
521
+ const adapter = getAdapter('claude-code');
522
+ return configAddMcpClient(adapter, resolveConfigPathFn, projectFilter);
523
+ }
524
+ /**
525
+ * Update an existing project's configuration.
526
+ * Allows updating plansPath and docsPaths without recreating the config.
527
+ *
528
+ * @param projectName - Name of the project to update
529
+ * @param options - Fields to update
530
+ * @returns Success message
531
+ * @throws Error if project not found or config file doesn't exist
532
+ */
533
+ export function configUpdate(projectName, options) {
534
+ const projects = listProjects();
535
+ const project = projects.find((p) => p.name === projectName);
536
+ if (!project) {
537
+ const available = projects.map((p) => p.name).join(', ');
538
+ throw new Error(`Project "${projectName}" not found.${available ? ` Available projects: ${available}` : ' No projects registered.'}`);
539
+ }
540
+ if (!existsSync(project.configPath)) {
541
+ throw new Error(`Config file not found: ${project.configPath}`);
542
+ }
543
+ // Read the raw config file (not using loadConfig which resolves paths)
544
+ const content = readFileSync(project.configPath, 'utf-8');
545
+ const config = JSON.parse(content);
546
+ const changes = [];
547
+ if (options.plansPath !== undefined) {
548
+ const oldValue = config.plansPath;
549
+ config.plansPath = options.plansPath;
550
+ changes.push(` plansPath: ${oldValue} → ${options.plansPath}`);
551
+ }
552
+ if (options.docsPath !== undefined) {
553
+ const oldValue = config.docsPaths;
554
+ config.docsPaths = [options.docsPath];
555
+ changes.push(` docsPaths: ${JSON.stringify(oldValue)} → ${JSON.stringify(config.docsPaths)}`);
556
+ }
557
+ if (changes.length === 0) {
558
+ return `No changes specified. Use --plans-path or --docs-path to update configuration.`;
559
+ }
560
+ // Write back
561
+ writeFileSync(project.configPath, JSON.stringify(config, null, 2));
562
+ const lines = [];
563
+ lines.push(`Updated project "${projectName}":`);
564
+ lines.push('');
565
+ lines.push(...changes);
566
+ lines.push('');
567
+ lines.push(`Config file: ${project.configPath}`);
568
+ return lines.join('\n');
569
+ }
242
570
  //# sourceMappingURL=config-cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/cli/init-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+BH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CA0F1E"}
1
+ {"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/cli/init-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+BH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAmG1E"}