@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.
- package/dist/cli/config-cmd.d.ts +58 -6
- package/dist/cli/config-cmd.d.ts.map +1 -1
- package/dist/cli/config-cmd.js +259 -46
- package/dist/cli/config-cmd.js.map +1 -1
- package/dist/cli/mcp-client-adapter.d.ts +63 -2
- package/dist/cli/mcp-client-adapter.d.ts.map +1 -1
- package/dist/cli/mcp-client-adapter.js +166 -1
- package/dist/cli/mcp-client-adapter.js.map +1 -1
- package/dist/cli/mcp-clients.d.ts +49 -0
- package/dist/cli/mcp-clients.d.ts.map +1 -0
- package/dist/cli/mcp-clients.js +101 -0
- package/dist/cli/mcp-clients.js.map +1 -0
- package/dist/commands/config/add.d.ts +1 -1
- package/dist/commands/config/add.d.ts.map +1 -1
- package/dist/commands/config/add.js +2 -2
- package/dist/commands/config/add.js.map +1 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +1 -1
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/config/sync-mcp.d.ts +9 -3
- package/dist/commands/config/sync-mcp.d.ts.map +1 -1
- package/dist/commands/config/sync-mcp.js +179 -69
- package/dist/commands/config/sync-mcp.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +21 -11
- package/dist/config.js.map +1 -1
- package/dist/extensions/context.d.ts +11 -0
- package/dist/extensions/context.d.ts.map +1 -0
- package/dist/extensions/context.js +54 -0
- package/dist/extensions/context.js.map +1 -0
- package/dist/extensions/index.d.ts +5 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +5 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +38 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +112 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/types.d.ts +51 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +2 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/resources/index.d.ts +2 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +14 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/server-main.js +1 -1
- package/dist/server-main.js.map +1 -1
- package/dist/server.d.ts +6 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +42 -7
- package/dist/server.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +17 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +9 -5
- package/dist/watcher.js.map +1 -1
- package/package.json +13 -5
- package/LICENSE +0 -21
- 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 {
|
|
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
|
|
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(
|
|
40
|
+
const [confirmed, setConfirmed] = useState(force ? true : null);
|
|
30
41
|
const [results, setResults] = useState([]);
|
|
31
42
|
const [error, setError] = useState(null);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
48
|
-
|
|
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
|
-
|
|
51
|
-
clientsToShow.push(
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
113
|
+
diffBlocks.push(`--- ${client.displayName} ---\nError: ${err.message}`);
|
|
66
114
|
}
|
|
67
115
|
}
|
|
68
|
-
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
// Preview local client changes
|
|
119
|
+
for (const { client } of localClients) {
|
|
69
120
|
try {
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
128
|
+
diffBlocks.push(`--- ${client.displayName} ---\nError: ${err.message}`);
|
|
76
129
|
}
|
|
77
130
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
85
|
-
|
|
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 ||
|
|
183
|
+
if ((confirmed === true || force) && results.length === 0 && error === null) {
|
|
97
184
|
try {
|
|
98
185
|
const outputResults = [];
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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,
|
|
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 (!
|
|
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":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EACL,
|
|
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
package/dist/config.d.ts.map
CHANGED
|
@@ -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;
|
|
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 =
|
|
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
|
-
|
|
106
|
+
typedConfig.scoring = scoring;
|
|
105
107
|
needsSave = true;
|
|
106
108
|
}
|
|
107
109
|
// Migration: add configVersion if missing
|
|
108
|
-
if (
|
|
109
|
-
|
|
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(
|
|
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 =
|
|
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
|
|
129
|
-
configVersion:
|
|
130
|
-
plansPath: resolvePath(
|
|
132
|
+
const resolvedConfig = {
|
|
133
|
+
configVersion: typedConfig.configVersion,
|
|
134
|
+
plansPath: resolvePath(typedConfig.plansPath || DEFAULT_CONFIG.plansPath),
|
|
131
135
|
docsPaths: resolvedDocsPaths,
|
|
132
|
-
fileExtensions:
|
|
133
|
-
dataPath: resolvePath(
|
|
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
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|