@sudosandwich/limps 2.4.0 → 2.6.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 (65) hide show
  1. package/dist/cli/config-cmd.d.ts +58 -6
  2. package/dist/cli/config-cmd.d.ts.map +1 -1
  3. package/dist/cli/config-cmd.js +259 -46
  4. package/dist/cli/config-cmd.js.map +1 -1
  5. package/dist/cli/mcp-client-adapter.d.ts +63 -2
  6. package/dist/cli/mcp-client-adapter.d.ts.map +1 -1
  7. package/dist/cli/mcp-client-adapter.js +166 -1
  8. package/dist/cli/mcp-client-adapter.js.map +1 -1
  9. package/dist/cli/mcp-clients.d.ts +49 -0
  10. package/dist/cli/mcp-clients.d.ts.map +1 -0
  11. package/dist/cli/mcp-clients.js +101 -0
  12. package/dist/cli/mcp-clients.js.map +1 -0
  13. package/dist/commands/config/add.d.ts +1 -1
  14. package/dist/commands/config/add.d.ts.map +1 -1
  15. package/dist/commands/config/add.js +2 -2
  16. package/dist/commands/config/add.js.map +1 -1
  17. package/dist/commands/config/index.d.ts.map +1 -1
  18. package/dist/commands/config/index.js +1 -1
  19. package/dist/commands/config/index.js.map +1 -1
  20. package/dist/commands/config/sync-mcp.d.ts +9 -3
  21. package/dist/commands/config/sync-mcp.d.ts.map +1 -1
  22. package/dist/commands/config/sync-mcp.js +179 -69
  23. package/dist/commands/config/sync-mcp.js.map +1 -1
  24. package/dist/config.d.ts +1 -0
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js +21 -11
  27. package/dist/config.js.map +1 -1
  28. package/dist/extensions/context.d.ts +11 -0
  29. package/dist/extensions/context.d.ts.map +1 -0
  30. package/dist/extensions/context.js +54 -0
  31. package/dist/extensions/context.js.map +1 -0
  32. package/dist/extensions/index.d.ts +5 -0
  33. package/dist/extensions/index.d.ts.map +1 -0
  34. package/dist/extensions/index.js +5 -0
  35. package/dist/extensions/index.js.map +1 -0
  36. package/dist/extensions/loader.d.ts +38 -0
  37. package/dist/extensions/loader.d.ts.map +1 -0
  38. package/dist/extensions/loader.js +112 -0
  39. package/dist/extensions/loader.js.map +1 -0
  40. package/dist/extensions/types.d.ts +51 -0
  41. package/dist/extensions/types.d.ts.map +1 -0
  42. package/dist/extensions/types.js +2 -0
  43. package/dist/extensions/types.js.map +1 -0
  44. package/dist/resources/index.d.ts +2 -0
  45. package/dist/resources/index.d.ts.map +1 -1
  46. package/dist/resources/index.js +14 -0
  47. package/dist/resources/index.js.map +1 -1
  48. package/dist/server-main.js +1 -1
  49. package/dist/server-main.js.map +1 -1
  50. package/dist/server.d.ts +6 -2
  51. package/dist/server.d.ts.map +1 -1
  52. package/dist/server.js +42 -7
  53. package/dist/server.js.map +1 -1
  54. package/dist/tools/index.d.ts +1 -0
  55. package/dist/tools/index.d.ts.map +1 -1
  56. package/dist/tools/index.js +17 -0
  57. package/dist/tools/index.js.map +1 -1
  58. package/dist/types.d.ts +2 -0
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/watcher.d.ts.map +1 -1
  61. package/dist/watcher.js +9 -5
  62. package/dist/watcher.js.map +1 -1
  63. package/package.json +13 -5
  64. package/LICENSE +0 -21
  65. package/README.md +0 -576
@@ -2,87 +2,174 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Text, Box } from 'ink';
3
3
  import { z } from 'zod';
4
4
  import { useState, useEffect } from 'react';
5
- import { configAddClaude, configAddCursor, configAddClaudeCode, generateConfigForPrint, } from '../../cli/config-cmd.js';
6
- import { resolveConfigPath } from '../../utils/config-resolver.js';
7
- import { getAdapter } from '../../cli/mcp-client-adapter.js';
5
+ import { getSyncClients, createLocalClient, getLocalClientType, } from '../../cli/mcp-clients.js';
8
6
  import { Confirm } from '../../components/Confirm.js';
9
7
  import { listProjects } from '../../cli/registry.js';
10
- export const description = 'Add or update all registered limps projects in MCP client configs (default: all projects, all clients)';
8
+ export const description = 'Add or update limps projects in MCP client configs (default: local/project config)';
9
+ export const args = z.tuple([
10
+ z.string().describe('Project name (optional, overrides --projects)').optional(),
11
+ ]);
11
12
  export const options = z.object({
12
13
  projects: z
13
14
  .string()
14
15
  .optional()
15
16
  .describe('Comma-separated list of project names to add (default: all registered projects)'),
16
17
  client: z
17
- .enum(['claude', 'cursor', 'claude-code', 'all'])
18
+ .enum(['claude', 'cursor', 'claude-code', 'codex', 'chatgpt', 'all'])
18
19
  .optional()
19
20
  .default('all')
20
- .describe('MCP client to configure (claude, cursor, claude-code, or all). Default: all'),
21
+ .describe('MCP client to configure (claude, cursor, claude-code, codex, chatgpt, or all). Default: all'),
22
+ global: z
23
+ .boolean()
24
+ .optional()
25
+ .describe('Write to global/user config instead of local project config'),
26
+ path: z
27
+ .string()
28
+ .optional()
29
+ .describe('Custom path for local config file (overrides default client-specific path)'),
21
30
  print: z
22
31
  .boolean()
23
32
  .optional()
24
33
  .describe('Print config JSON instead of writing to files (for unsupported clients)'),
25
34
  force: z.boolean().optional().describe('Skip confirmation prompt (-f)'),
26
35
  });
27
- export default function ConfigSyncMcpCommand({ options }) {
36
+ export default function ConfigSyncMcpCommand({ args, options }) {
37
+ // Support short flag alias "-f" in addition to "--force"
38
+ const force = options.force || process.argv.includes('-f');
28
39
  // If force is set, skip confirmation
29
- const [confirmed, setConfirmed] = useState(options.force ? true : null);
40
+ const [confirmed, setConfirmed] = useState(force ? true : null);
30
41
  const [results, setResults] = useState([]);
31
42
  const [error, setError] = useState(null);
32
- const projectFilter = options.projects
33
- ? options.projects
34
- .split(',')
35
- .map((p) => p.trim())
36
- .filter((p) => p.length > 0)
37
- : undefined;
38
- // Build warning message
43
+ // Positional argument takes precedence over --projects option
44
+ const [positionalProject] = args;
45
+ const projectFilter = positionalProject
46
+ ? [positionalProject]
47
+ : options.projects
48
+ ? options.projects
49
+ .split(',')
50
+ .map((p) => p.trim())
51
+ .filter((p) => p.length > 0)
52
+ : undefined;
53
+ // Build list of projects to show
39
54
  const allProjects = listProjects();
40
55
  const projectsToShow = projectFilter
41
56
  ? allProjects.filter((p) => projectFilter.includes(p.name))
42
57
  : allProjects;
43
- const clientsToShow = [];
44
- if (options.client === 'claude' || options.client === 'all') {
45
- clientsToShow.push('Claude Desktop');
58
+ // Get all available global clients
59
+ const allClients = getSyncClients();
60
+ const selectedClients = options.client === 'all'
61
+ ? allClients
62
+ : allClients.filter((client) => client.id === options.client);
63
+ // Determine if we're writing to global or local configs
64
+ const useGlobal = options.global === true;
65
+ const localClients = [];
66
+ if (!useGlobal) {
67
+ // When a custom path is provided, use it for all clients that support local configs
68
+ if (options.path) {
69
+ // Use custom path with 'custom' client type
70
+ const localClient = createLocalClient('custom', options.path);
71
+ localClients.push({ clientType: 'custom', client: localClient });
72
+ }
73
+ else {
74
+ // Create local clients for each selected client that supports local configs
75
+ for (const client of selectedClients) {
76
+ const localType = getLocalClientType(client.id);
77
+ if (localType) {
78
+ const localClient = createLocalClient(localType);
79
+ localClients.push({ clientType: localType, client: localClient });
80
+ }
81
+ }
82
+ }
46
83
  }
47
- if (options.client === 'cursor' || options.client === 'all') {
48
- clientsToShow.push('Cursor');
84
+ // Build display names for confirmation message
85
+ const clientsToShow = [];
86
+ if (useGlobal) {
87
+ clientsToShow.push(...selectedClients.map((client) => `${client.displayName} (global)`));
49
88
  }
50
- if (options.client === 'claude-code' || options.client === 'all') {
51
- clientsToShow.push('Claude Code');
89
+ else {
90
+ clientsToShow.push(...localClients.map((lc) => lc.client.displayName));
91
+ // Also show print-only clients
92
+ const printOnlyClients = selectedClients.filter((client) => client.printOnly);
93
+ clientsToShow.push(...printOnlyClients.map((client) => client.displayName));
52
94
  }
53
- const warningMessage = `This will add/update ${projectsToShow.length} project(s) (${projectsToShow.map((p) => p.name).join(', ')}) in ${clientsToShow.join(', ')} config files.`;
54
- // If --print, just output the JSON format (no confirmation needed)
55
- if (options.print) {
56
- try {
57
- const printResults = [];
58
- if (options.client === 'claude' || options.client === 'all') {
95
+ // Preview changes
96
+ const diffBlocks = [];
97
+ let hasAnyChanges = false;
98
+ if (!force) {
99
+ if (useGlobal) {
100
+ // Preview global client changes
101
+ for (const client of selectedClients) {
102
+ if (!client.supportsPreview || !client.runPreview) {
103
+ continue;
104
+ }
59
105
  try {
60
- const adapter = getAdapter('claude');
61
- const output = generateConfigForPrint(adapter, () => resolveConfigPath(), projectFilter);
62
- printResults.push(output);
106
+ const preview = client.runPreview(projectFilter);
107
+ if (preview.hasChanges) {
108
+ hasAnyChanges = true;
109
+ diffBlocks.push(`--- ${client.displayName} (${preview.configPath}) ---\n${preview.diffText}`);
110
+ }
63
111
  }
64
112
  catch (err) {
65
- printResults.push(`Claude Desktop: Error - ${err.message}`);
113
+ diffBlocks.push(`--- ${client.displayName} ---\nError: ${err.message}`);
66
114
  }
67
115
  }
68
- if (options.client === 'cursor' || options.client === 'all') {
116
+ }
117
+ else {
118
+ // Preview local client changes
119
+ for (const { client } of localClients) {
69
120
  try {
70
- const adapter = getAdapter('cursor');
71
- const output = generateConfigForPrint(adapter, () => resolveConfigPath(), projectFilter);
72
- printResults.push(output);
121
+ const preview = client.runPreview(projectFilter);
122
+ if (preview.hasChanges) {
123
+ hasAnyChanges = true;
124
+ diffBlocks.push(`--- ${client.displayName} (${preview.configPath}) ---\n${preview.diffText}`);
125
+ }
73
126
  }
74
127
  catch (err) {
75
- printResults.push(`Cursor: Error - ${err.message}`);
128
+ diffBlocks.push(`--- ${client.displayName} ---\nError: ${err.message}`);
76
129
  }
77
130
  }
78
- if (options.client === 'claude-code' || options.client === 'all') {
79
- try {
80
- const adapter = getAdapter('claude-code');
81
- const output = generateConfigForPrint(adapter, () => resolveConfigPath(), projectFilter);
82
- printResults.push(output);
131
+ }
132
+ }
133
+ const diffSection = diffBlocks.length > 0 ? `\n\nConfig diff (preview):\n${diffBlocks.join('\n\n')}` : '';
134
+ const printOnlyClients = selectedClients.filter((client) => client.printOnly);
135
+ const includesPrintOnly = printOnlyClients.length > 0;
136
+ const changeNote = !force && !hasAnyChanges && !includesPrintOnly ? '\n\nNo config changes detected.' : '';
137
+ const printOnlyNames = printOnlyClients.map((client) => client.displayName).join(', ');
138
+ const printOnlyNote = includesPrintOnly
139
+ ? `\n\nPrint-only clients (${printOnlyNames}) will not write local config files.`
140
+ : '';
141
+ const scopeNote = useGlobal ? ' (global configs)' : ' (local/project configs)';
142
+ const warningMessage = `This will add/update ${projectsToShow.length} project(s) (${projectsToShow.map((p) => p.name).join(', ')}) in ${clientsToShow.join(', ')}${scopeNote}.${diffSection}${changeNote}${printOnlyNote}`;
143
+ // If --print, just output the JSON format (no confirmation needed)
144
+ if (options.print) {
145
+ try {
146
+ const printResults = [];
147
+ if (useGlobal) {
148
+ // Print global configs
149
+ for (const client of selectedClients) {
150
+ if (!client.supportsPrint || !client.runPrint) {
151
+ printResults.push(`${client.displayName}: Error - print not supported.`);
152
+ continue;
153
+ }
154
+ try {
155
+ const output = client.runPrint(projectFilter);
156
+ printResults.push(output);
157
+ }
158
+ catch (err) {
159
+ printResults.push(`${client.displayName}: Error - ${err.message}`);
160
+ }
83
161
  }
84
- catch (err) {
85
- printResults.push(`Claude Code: Error - ${err.message}`);
162
+ }
163
+ else {
164
+ // Print local configs
165
+ for (const { client } of localClients) {
166
+ try {
167
+ const output = client.runPrint(projectFilter);
168
+ printResults.push(output);
169
+ }
170
+ catch (err) {
171
+ printResults.push(`${client.displayName}: Error - ${err.message}`);
172
+ }
86
173
  }
87
174
  }
88
175
  return _jsx(Text, { children: printResults.join('\n\n') });
@@ -93,34 +180,57 @@ export default function ConfigSyncMcpCommand({ options }) {
93
180
  }
94
181
  // Execute the operation when confirmed or forced
95
182
  useEffect(() => {
96
- if ((confirmed === true || options.force) && results.length === 0 && error === null) {
183
+ if ((confirmed === true || force) && results.length === 0 && error === null) {
97
184
  try {
98
185
  const outputResults = [];
99
- if (options.client === 'claude' || options.client === 'all') {
100
- try {
101
- const output = configAddClaude(() => resolveConfigPath(), projectFilter);
102
- outputResults.push(output);
103
- }
104
- catch (err) {
105
- outputResults.push(`Claude Desktop: Error - ${err.message}`);
186
+ if (useGlobal) {
187
+ // Write to global configs
188
+ for (const client of selectedClients) {
189
+ if (client.supportsWrite && client.runWrite) {
190
+ try {
191
+ const output = client.runWrite(projectFilter);
192
+ outputResults.push(output);
193
+ }
194
+ catch (err) {
195
+ outputResults.push(`${client.displayName}: Error - ${err.message}`);
196
+ }
197
+ continue;
198
+ }
199
+ if (client.printOnly && client.runPrint) {
200
+ try {
201
+ const output = client.runPrint(projectFilter);
202
+ outputResults.push(output);
203
+ }
204
+ catch (err) {
205
+ outputResults.push(`${client.displayName}: Error - ${err.message}`);
206
+ }
207
+ continue;
208
+ }
209
+ outputResults.push(`${client.displayName}: Error - write not supported.`);
106
210
  }
107
211
  }
108
- if (options.client === 'cursor' || options.client === 'all') {
109
- try {
110
- const output = configAddCursor(() => resolveConfigPath(), projectFilter);
111
- outputResults.push(output);
212
+ else {
213
+ // Write to local configs
214
+ for (const { client } of localClients) {
215
+ try {
216
+ const output = client.runWrite(projectFilter);
217
+ outputResults.push(output);
218
+ }
219
+ catch (err) {
220
+ outputResults.push(`${client.displayName}: Error - ${err.message}`);
221
+ }
112
222
  }
113
- catch (err) {
114
- outputResults.push(`Cursor: Error - ${err.message}`);
115
- }
116
- }
117
- if (options.client === 'claude-code' || options.client === 'all') {
118
- try {
119
- const output = configAddClaudeCode(() => resolveConfigPath(), projectFilter);
120
- outputResults.push(output);
121
- }
122
- catch (err) {
123
- outputResults.push(`Claude Code: Error - ${err.message}`);
223
+ // Also handle print-only clients
224
+ for (const client of printOnlyClients) {
225
+ if (client.runPrint) {
226
+ try {
227
+ const output = client.runPrint(projectFilter);
228
+ outputResults.push(output);
229
+ }
230
+ catch (err) {
231
+ outputResults.push(`${client.displayName}: Error - ${err.message}`);
232
+ }
233
+ }
124
234
  }
125
235
  }
126
236
  setResults(outputResults);
@@ -129,7 +239,7 @@ export default function ConfigSyncMcpCommand({ options }) {
129
239
  setError(err.message);
130
240
  }
131
241
  }
132
- }, [confirmed, options.force, options.client, projectFilter]);
242
+ }, [confirmed, force, options.client, projectFilter, useGlobal]);
133
243
  if (error) {
134
244
  return _jsxs(Text, { color: "red", children: ["Error: ", error] });
135
245
  }
@@ -140,7 +250,7 @@ export default function ConfigSyncMcpCommand({ options }) {
140
250
  return (_jsx(Box, { children: _jsx(Text, { color: "yellow", children: "Operation cancelled." }) }));
141
251
  }
142
252
  // Show confirmation prompt (unless force flag is set)
143
- if (!options.force) {
253
+ if (!force) {
144
254
  return (_jsx(Confirm, { message: warningMessage, onConfirm: () => setConfirmed(true), onCancel: () => setConfirmed(false), defaultYes: false }));
145
255
  }
146
256
  // Force mode - show loading or execute
@@ -1 +1 @@
1
- {"version":3,"file":"sync-mcp.js","sourceRoot":"","sources":["../../../src/commands/config/sync-mcp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-mcp.js","sourceRoot":"","sources":["../../../src/commands/config/sync-mcp.tsx"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -37,6 +37,7 @@ export interface ServerConfig {
37
37
  weights: ScoringWeights;
38
38
  biases: ScoringBiases;
39
39
  };
40
+ extensions?: string[];
40
41
  }
41
42
  /**
42
43
  * Current config schema version.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAOxC;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAIrC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAEtE;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAAkB,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAEpE;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAiB1C;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAiE3D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CA2CtE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAS9D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAEhE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAOxC;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAIrC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAEtE;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAAkB,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAEpE;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAkB1C;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CA2E3D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CA2CtE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAS9D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAEhE"}
package/dist/config.js CHANGED
@@ -58,6 +58,7 @@ const DEFAULT_CONFIG = {
58
58
  weights: DEFAULT_SCORING_WEIGHTS,
59
59
  biases: DEFAULT_SCORING_BIASES,
60
60
  },
61
+ extensions: undefined,
61
62
  };
62
63
  /**
63
64
  * Expand tilde (~) to home directory in a path.
@@ -93,25 +94,26 @@ export function loadConfig(configPath) {
93
94
  }
94
95
  const content = readFileSync(configPath, 'utf-8');
95
96
  const config = JSON.parse(content);
97
+ const typedConfig = config;
96
98
  // Migration: add scoring if missing (pre-v1 configs)
97
99
  let needsSave = false;
98
- let scoring = config.scoring;
100
+ let scoring = typedConfig.scoring;
99
101
  if (!scoring?.weights || !scoring?.biases) {
100
102
  scoring = {
101
103
  weights: DEFAULT_SCORING_WEIGHTS,
102
104
  biases: DEFAULT_SCORING_BIASES,
103
105
  };
104
- config.scoring = scoring;
106
+ typedConfig.scoring = scoring;
105
107
  needsSave = true;
106
108
  }
107
109
  // Migration: add configVersion if missing
108
- if (config.configVersion === undefined) {
109
- config.configVersion = CURRENT_CONFIG_VERSION;
110
+ if (typedConfig.configVersion === undefined) {
111
+ typedConfig.configVersion = CURRENT_CONFIG_VERSION;
110
112
  needsSave = true;
111
113
  }
112
114
  // Save migrated config back to disk
113
115
  if (needsSave) {
114
- writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
116
+ writeFileSync(configPath, JSON.stringify(typedConfig, null, 2), 'utf-8');
115
117
  }
116
118
  // Helper to resolve path with tilde expansion
117
119
  const resolvePath = (p) => {
@@ -123,15 +125,23 @@ export function loadConfig(configPath) {
123
125
  return resolve(configDir, expanded);
124
126
  };
125
127
  // Resolve docsPaths relative to config file (with tilde expansion)
126
- const resolvedDocsPaths = config.docsPaths ? config.docsPaths.map(resolvePath) : undefined;
128
+ const resolvedDocsPaths = typedConfig.docsPaths
129
+ ? typedConfig.docsPaths.map(resolvePath)
130
+ : undefined;
127
131
  // Merge with defaults and resolve paths (with tilde expansion)
128
- const mergedConfig = {
129
- configVersion: config.configVersion,
130
- plansPath: resolvePath(config.plansPath || DEFAULT_CONFIG.plansPath),
132
+ const resolvedConfig = {
133
+ configVersion: typedConfig.configVersion,
134
+ plansPath: resolvePath(typedConfig.plansPath || DEFAULT_CONFIG.plansPath),
131
135
  docsPaths: resolvedDocsPaths,
132
- fileExtensions: config.fileExtensions,
133
- dataPath: resolvePath(config.dataPath || DEFAULT_CONFIG.dataPath),
136
+ fileExtensions: typedConfig.fileExtensions,
137
+ dataPath: resolvePath(typedConfig.dataPath || DEFAULT_CONFIG.dataPath),
134
138
  scoring,
139
+ extensions: typedConfig.extensions,
140
+ };
141
+ // Preserve extension-specific config keys at top level.
142
+ const mergedConfig = {
143
+ ...config,
144
+ ...resolvedConfig,
135
145
  };
136
146
  return mergedConfig;
137
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ExtensionContext } from './types.js';
2
+ import type { ServerConfig } from '../config.js';
3
+ /**
4
+ * Create extension context for an extension.
5
+ *
6
+ * @param extensionName - Name of the extension (e.g., 'limps-radix')
7
+ * @param config - Server configuration
8
+ * @returns Extension context with dataDir, config, and logger
9
+ */
10
+ export declare function createExtensionContext(extensionName: string, config: ServerConfig): ExtensionContext;
11
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/extensions/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAU,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA0BjD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,YAAY,GACnB,gBAAgB,CA6BlB"}
@@ -0,0 +1,54 @@
1
+ import { mkdirSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { homedir } from 'os';
4
+ /**
5
+ * Simple console-based logger implementation.
6
+ */
7
+ class ConsoleLogger {
8
+ error(message, ...args) {
9
+ console.error(`[extension] ${message}`, ...args);
10
+ }
11
+ warn(message, ...args) {
12
+ console.error(`[extension] WARN: ${message}`, ...args);
13
+ }
14
+ info(message, ...args) {
15
+ console.error(`[extension] ${message}`, ...args);
16
+ }
17
+ debug(message, ...args) {
18
+ // Only log debug in development
19
+ if (process.env.NODE_ENV !== 'production') {
20
+ console.error(`[extension] DEBUG: ${message}`, ...args);
21
+ }
22
+ }
23
+ }
24
+ /**
25
+ * Create extension context for an extension.
26
+ *
27
+ * @param extensionName - Name of the extension (e.g., 'limps-radix')
28
+ * @param config - Server configuration
29
+ * @returns Extension context with dataDir, config, and logger
30
+ */
31
+ export function createExtensionContext(extensionName, config) {
32
+ // Expand ~ to home directory
33
+ const expandTilde = (path) => {
34
+ if (path.startsWith('~/') || path === '~') {
35
+ return path.replace(/^~/, homedir());
36
+ }
37
+ return path;
38
+ };
39
+ // Extension data directory: ~/.limps/extensions/{name}/
40
+ const baseDataDir = expandTilde('~/.limps');
41
+ const extensionDataDir = join(baseDataDir, 'extensions', extensionName);
42
+ // Ensure directory exists
43
+ mkdirSync(extensionDataDir, { recursive: true });
44
+ // Get extension-specific config from limps.config.json
45
+ // Config is stored under the extension name key
46
+ const extensionConfig = config[extensionName];
47
+ const logger = new ConsoleLogger();
48
+ return {
49
+ dataDir: extensionDataDir,
50
+ config: extensionConfig || {},
51
+ logger,
52
+ };
53
+ }
54
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/extensions/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAI7B;;GAEG;AACH,MAAM,aAAa;IACjB,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACtC,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACtC,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,gCAAgC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,aAAqB,EACrB,MAAoB;IAEpB,6BAA6B;IAC7B,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,wDAAwD;IACxD,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAExE,0BAA0B;IAC1B,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,uDAAuD;IACvD,gDAAgD;IAChD,MAAM,eAAe,GAAI,MAA6C,CAAC,aAAa,CAEvE,CAAC;IAEd,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IAEnC,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE,eAAe,IAAI,EAAE;QAC7B,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Extension system exports for use by extension packages.
3
+ */
4
+ export type { LimpsExtension, ExtensionContext, ExtensionTool, ExtensionResource, Logger, } from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,MAAM,GACP,MAAM,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Extension system exports for use by extension packages.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,38 @@
1
+ import type { LimpsExtension, ExtensionTool, ExtensionResource } from './types.js';
2
+ import type { ServerConfig } from '../config.js';
3
+ import { createExtensionContext } from './context.js';
4
+ /**
5
+ * Loaded extension with its context.
6
+ */
7
+ export interface LoadedExtension {
8
+ extension: LimpsExtension;
9
+ context: ReturnType<typeof createExtensionContext>;
10
+ }
11
+ /**
12
+ * Load all extensions specified in the config.
13
+ *
14
+ * @param config - Server configuration
15
+ * @returns Array of loaded extensions
16
+ */
17
+ export declare function loadExtensions(config: ServerConfig): Promise<LoadedExtension[]>;
18
+ /**
19
+ * Get all tools from loaded extensions.
20
+ *
21
+ * @param extensions - Loaded extensions
22
+ * @returns Array of extension tools
23
+ */
24
+ export declare function getExtensionTools(extensions: LoadedExtension[]): ExtensionTool[];
25
+ /**
26
+ * Get all resources from loaded extensions.
27
+ *
28
+ * @param extensions - Loaded extensions
29
+ * @returns Array of extension resources
30
+ */
31
+ export declare function getExtensionResources(extensions: LoadedExtension[]): ExtensionResource[];
32
+ /**
33
+ * Shutdown all extensions.
34
+ *
35
+ * @param extensions - Loaded extensions
36
+ */
37
+ export declare function shutdownExtensions(extensions: LoadedExtension[]): Promise<void>;
38
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiDrF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,aAAa,EAAE,CAoBhF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAoBxF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUrF"}