@sudosandwich/limps 2.5.0 → 2.6.1
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/README.md +341 -421
- package/dist/cli/config-cmd.d.ts +46 -5
- package/dist/cli/config-cmd.d.ts.map +1 -1
- package/dist/cli/config-cmd.js +183 -14
- 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.js +1 -1
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/config/sync-mcp.d.ts +6 -2
- package/dist/commands/config/sync-mcp.d.ts.map +1 -1
- package/dist/commands/config/sync-mcp.js +161 -101
- package/dist/commands/config/sync-mcp.js.map +1 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +7 -5
- package/dist/watcher.js.map +1 -1
- package/package.json +7 -5
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
6
6
|
import { dirname, join } from 'path';
|
|
7
7
|
import { homedir } from 'os';
|
|
8
|
+
import * as toml from '@iarna/toml';
|
|
8
9
|
/**
|
|
9
10
|
* Claude Desktop adapter
|
|
10
11
|
* Uses: mcpServers key, npx command, ~/Library/Application Support/Claude/claude_desktop_config.json
|
|
@@ -191,7 +192,157 @@ export class ClaudeCodeAdapter {
|
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
194
|
/**
|
|
194
|
-
*
|
|
195
|
+
* OpenAI Codex adapter
|
|
196
|
+
* Uses: mcp_servers key, TOML config at ~/.codex/config.toml
|
|
197
|
+
*/
|
|
198
|
+
export class CodexAdapter {
|
|
199
|
+
getConfigPath() {
|
|
200
|
+
const home = homedir();
|
|
201
|
+
return join(home, '.codex', 'config.toml');
|
|
202
|
+
}
|
|
203
|
+
getServersKey() {
|
|
204
|
+
return 'mcp_servers';
|
|
205
|
+
}
|
|
206
|
+
readConfig() {
|
|
207
|
+
const configPath = this.getConfigPath();
|
|
208
|
+
const configDir = dirname(configPath);
|
|
209
|
+
if (!existsSync(configDir)) {
|
|
210
|
+
mkdirSync(configDir, { recursive: true });
|
|
211
|
+
}
|
|
212
|
+
if (existsSync(configPath)) {
|
|
213
|
+
try {
|
|
214
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
215
|
+
return toml.parse(content);
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
throw new Error(`Failed to parse Codex config: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return {};
|
|
222
|
+
}
|
|
223
|
+
writeConfig(config) {
|
|
224
|
+
const configPath = this.getConfigPath();
|
|
225
|
+
const configDir = dirname(configPath);
|
|
226
|
+
if (!existsSync(configDir)) {
|
|
227
|
+
mkdirSync(configDir, { recursive: true });
|
|
228
|
+
}
|
|
229
|
+
try {
|
|
230
|
+
const content = toml.stringify(config);
|
|
231
|
+
writeFileSync(configPath, content, 'utf-8');
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
throw new Error(`Failed to write Codex config: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
createServerConfig(configPath) {
|
|
238
|
+
return {
|
|
239
|
+
command: 'limps',
|
|
240
|
+
args: ['serve', '--config', configPath],
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
getDisplayName() {
|
|
244
|
+
return 'OpenAI Codex';
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get the default local config path for a given client type
|
|
249
|
+
*/
|
|
250
|
+
export function getLocalConfigPath(clientType, customPath) {
|
|
251
|
+
if (customPath) {
|
|
252
|
+
return customPath;
|
|
253
|
+
}
|
|
254
|
+
switch (clientType) {
|
|
255
|
+
case 'cursor':
|
|
256
|
+
return join(process.cwd(), '.cursor', 'mcp.json');
|
|
257
|
+
case 'claude-code':
|
|
258
|
+
return join(process.cwd(), '.mcp.json');
|
|
259
|
+
case 'custom':
|
|
260
|
+
return join(process.cwd(), '.mcp.json');
|
|
261
|
+
default:
|
|
262
|
+
return join(process.cwd(), '.mcp.json');
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Get the display name for a local config client type
|
|
267
|
+
*/
|
|
268
|
+
export function getLocalConfigDisplayName(clientType) {
|
|
269
|
+
switch (clientType) {
|
|
270
|
+
case 'cursor':
|
|
271
|
+
return 'Cursor Local (.cursor/mcp.json)';
|
|
272
|
+
case 'claude-code':
|
|
273
|
+
return 'Claude Code Local (.mcp.json)';
|
|
274
|
+
case 'custom':
|
|
275
|
+
return 'Local MCP Config';
|
|
276
|
+
default:
|
|
277
|
+
return 'Local MCP Config';
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Local workspace MCP config adapter
|
|
282
|
+
* Uses: mcpServers key, limps command, client-specific local config paths
|
|
283
|
+
*
|
|
284
|
+
* Default paths by client:
|
|
285
|
+
* - Cursor: .cursor/mcp.json
|
|
286
|
+
* - Claude Code: .mcp.json
|
|
287
|
+
* - Custom: user-specified path
|
|
288
|
+
*/
|
|
289
|
+
export class LocalMcpAdapter {
|
|
290
|
+
configPath;
|
|
291
|
+
clientType;
|
|
292
|
+
constructor(clientType = 'claude-code', customPath) {
|
|
293
|
+
this.clientType = clientType;
|
|
294
|
+
this.configPath = getLocalConfigPath(clientType, customPath);
|
|
295
|
+
}
|
|
296
|
+
getConfigPath() {
|
|
297
|
+
return this.configPath;
|
|
298
|
+
}
|
|
299
|
+
getServersKey() {
|
|
300
|
+
return 'mcpServers';
|
|
301
|
+
}
|
|
302
|
+
readConfig() {
|
|
303
|
+
const configPath = this.getConfigPath();
|
|
304
|
+
// Read existing config or return empty
|
|
305
|
+
if (existsSync(configPath)) {
|
|
306
|
+
try {
|
|
307
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
308
|
+
return JSON.parse(content);
|
|
309
|
+
}
|
|
310
|
+
catch (error) {
|
|
311
|
+
throw new Error(`Failed to parse ${this.getDisplayName()}: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return {};
|
|
315
|
+
}
|
|
316
|
+
writeConfig(config) {
|
|
317
|
+
const configPath = this.getConfigPath();
|
|
318
|
+
const configDir = dirname(configPath);
|
|
319
|
+
// Ensure directory exists
|
|
320
|
+
if (!existsSync(configDir)) {
|
|
321
|
+
mkdirSync(configDir, { recursive: true });
|
|
322
|
+
}
|
|
323
|
+
try {
|
|
324
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
throw new Error(`Failed to write ${this.getDisplayName()}: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
createServerConfig(configPath) {
|
|
331
|
+
// Local configs can use the global limps command
|
|
332
|
+
return {
|
|
333
|
+
command: 'limps',
|
|
334
|
+
args: ['serve', '--config', configPath],
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
getDisplayName() {
|
|
338
|
+
return getLocalConfigDisplayName(this.clientType);
|
|
339
|
+
}
|
|
340
|
+
getClientType() {
|
|
341
|
+
return this.clientType;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Get adapter for a global client type
|
|
195
346
|
*/
|
|
196
347
|
export function getAdapter(clientType) {
|
|
197
348
|
switch (clientType) {
|
|
@@ -201,8 +352,22 @@ export function getAdapter(clientType) {
|
|
|
201
352
|
return new CursorAdapter();
|
|
202
353
|
case 'claude-code':
|
|
203
354
|
return new ClaudeCodeAdapter();
|
|
355
|
+
case 'codex':
|
|
356
|
+
return new CodexAdapter();
|
|
204
357
|
default:
|
|
205
358
|
throw new Error(`Unknown client type: ${clientType}`);
|
|
206
359
|
}
|
|
207
360
|
}
|
|
361
|
+
/**
|
|
362
|
+
* Get a local adapter for a specific client type
|
|
363
|
+
*/
|
|
364
|
+
export function getLocalAdapter(clientType, customPath) {
|
|
365
|
+
return new LocalMcpAdapter(clientType, customPath);
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Check if a client type supports local workspace configs
|
|
369
|
+
*/
|
|
370
|
+
export function supportsLocalConfig(clientType) {
|
|
371
|
+
return clientType === 'cursor' || clientType === 'claude-code';
|
|
372
|
+
}
|
|
208
373
|
//# sourceMappingURL=mcp-client-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client-adapter.js","sourceRoot":"","sources":["../../src/cli/mcp-client-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-client-adapter.js","sourceRoot":"","sources":["../../src/cli/mcp-client-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { getLocalAdapter, type LocalMcpClientType } from './mcp-client-adapter.js';
|
|
2
|
+
export type { LocalMcpClientType } from './mcp-client-adapter.js';
|
|
3
|
+
export type McpSyncClientId = 'claude' | 'cursor' | 'claude-code' | 'codex' | 'chatgpt';
|
|
4
|
+
export type McpAdapterId = Exclude<McpSyncClientId, 'chatgpt'>;
|
|
5
|
+
export interface PreviewResult {
|
|
6
|
+
hasChanges: boolean;
|
|
7
|
+
diffText: string;
|
|
8
|
+
configPath: string;
|
|
9
|
+
addedServers: string[];
|
|
10
|
+
updatedServers: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface McpSyncClient {
|
|
13
|
+
id: McpSyncClientId;
|
|
14
|
+
displayName: string;
|
|
15
|
+
adapterId?: McpAdapterId;
|
|
16
|
+
supportsPreview: boolean;
|
|
17
|
+
supportsWrite: boolean;
|
|
18
|
+
supportsPrint: boolean;
|
|
19
|
+
printOnly?: boolean;
|
|
20
|
+
/** Whether this client supports local workspace configs */
|
|
21
|
+
supportsLocalConfig: boolean;
|
|
22
|
+
runPreview?: (projectFilter?: string[]) => PreviewResult;
|
|
23
|
+
runWrite?: (projectFilter?: string[]) => string;
|
|
24
|
+
runPrint?: (projectFilter?: string[]) => string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get all available global sync clients.
|
|
28
|
+
* These write to global/user-level config files.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getSyncClients(): McpSyncClient[];
|
|
31
|
+
/**
|
|
32
|
+
* Create a local config client for a specific MCP client type.
|
|
33
|
+
* This writes to workspace-level config files (e.g., .cursor/mcp.json, .mcp.json).
|
|
34
|
+
*
|
|
35
|
+
* @param clientType - The client type to create a local adapter for
|
|
36
|
+
* @param customPath - Optional custom path for the config file
|
|
37
|
+
*/
|
|
38
|
+
export declare function createLocalClient(clientType: LocalMcpClientType, customPath?: string): {
|
|
39
|
+
adapter: ReturnType<typeof getLocalAdapter>;
|
|
40
|
+
displayName: string;
|
|
41
|
+
runPreview: (projectFilter?: string[]) => PreviewResult;
|
|
42
|
+
runWrite: (projectFilter?: string[]) => string;
|
|
43
|
+
runPrint: (projectFilter?: string[]) => string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Map sync client ID to local client type (for clients that support local configs)
|
|
47
|
+
*/
|
|
48
|
+
export declare function getLocalClientType(clientId: McpSyncClientId): LocalMcpClientType | null;
|
|
49
|
+
//# sourceMappingURL=mcp-clients.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-clients.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-clients.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,eAAe,EAEf,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AACxF,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,eAAe,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,aAAa,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;CACjD;AA8BD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,aAAa,EAAE,CAoChD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,kBAAkB,EAC9B,UAAU,CAAC,EAAE,MAAM,GAClB;IACD,OAAO,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,aAAa,CAAC;IACxD,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;CAChD,CAiBA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,kBAAkB,GAAG,IAAI,CASvF"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { configAddClaude, configAddClaudeCode, configAddCodex, configAddCursor, configAddLocalMcp, generateChatGptInstructions, generateConfigForPrint, previewMcpClientConfig, } from './config-cmd.js';
|
|
2
|
+
import { getAdapter, getLocalAdapter, supportsLocalConfig, } from './mcp-client-adapter.js';
|
|
3
|
+
import { resolveConfigPath } from '../utils/config-resolver.js';
|
|
4
|
+
function createFileClient(params) {
|
|
5
|
+
const { id, displayName, writeFn } = params;
|
|
6
|
+
return {
|
|
7
|
+
id,
|
|
8
|
+
displayName,
|
|
9
|
+
adapterId: id,
|
|
10
|
+
supportsPreview: true,
|
|
11
|
+
supportsWrite: true,
|
|
12
|
+
supportsPrint: true,
|
|
13
|
+
supportsLocalConfig: supportsLocalConfig(id),
|
|
14
|
+
runPreview: (projectFilter) => {
|
|
15
|
+
const adapter = getAdapter(id);
|
|
16
|
+
return previewMcpClientConfig(adapter, () => resolveConfigPath(), projectFilter);
|
|
17
|
+
},
|
|
18
|
+
runWrite: (projectFilter) => writeFn(() => resolveConfigPath(), projectFilter),
|
|
19
|
+
runPrint: (projectFilter) => {
|
|
20
|
+
const adapter = getAdapter(id);
|
|
21
|
+
return generateConfigForPrint(adapter, () => resolveConfigPath(), projectFilter);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get all available global sync clients.
|
|
27
|
+
* These write to global/user-level config files.
|
|
28
|
+
*/
|
|
29
|
+
export function getSyncClients() {
|
|
30
|
+
const clients = [
|
|
31
|
+
createFileClient({
|
|
32
|
+
id: 'claude',
|
|
33
|
+
displayName: 'Claude Desktop',
|
|
34
|
+
writeFn: configAddClaude,
|
|
35
|
+
}),
|
|
36
|
+
createFileClient({
|
|
37
|
+
id: 'cursor',
|
|
38
|
+
displayName: 'Cursor',
|
|
39
|
+
writeFn: configAddCursor,
|
|
40
|
+
}),
|
|
41
|
+
createFileClient({
|
|
42
|
+
id: 'claude-code',
|
|
43
|
+
displayName: 'Claude Code',
|
|
44
|
+
writeFn: configAddClaudeCode,
|
|
45
|
+
}),
|
|
46
|
+
createFileClient({
|
|
47
|
+
id: 'codex',
|
|
48
|
+
displayName: 'OpenAI Codex',
|
|
49
|
+
writeFn: configAddCodex,
|
|
50
|
+
}),
|
|
51
|
+
{
|
|
52
|
+
id: 'chatgpt',
|
|
53
|
+
displayName: 'ChatGPT',
|
|
54
|
+
supportsPreview: false,
|
|
55
|
+
supportsWrite: false,
|
|
56
|
+
supportsPrint: true,
|
|
57
|
+
supportsLocalConfig: false,
|
|
58
|
+
printOnly: true,
|
|
59
|
+
runPrint: (projectFilter) => generateChatGptInstructions(() => resolveConfigPath(), projectFilter),
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
return clients;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a local config client for a specific MCP client type.
|
|
66
|
+
* This writes to workspace-level config files (e.g., .cursor/mcp.json, .mcp.json).
|
|
67
|
+
*
|
|
68
|
+
* @param clientType - The client type to create a local adapter for
|
|
69
|
+
* @param customPath - Optional custom path for the config file
|
|
70
|
+
*/
|
|
71
|
+
export function createLocalClient(clientType, customPath) {
|
|
72
|
+
const adapter = getLocalAdapter(clientType, customPath);
|
|
73
|
+
return {
|
|
74
|
+
adapter,
|
|
75
|
+
displayName: adapter.getDisplayName(),
|
|
76
|
+
runPreview: (projectFilter) => {
|
|
77
|
+
return previewMcpClientConfig(adapter, () => resolveConfigPath(), projectFilter);
|
|
78
|
+
},
|
|
79
|
+
runWrite: (projectFilter) => {
|
|
80
|
+
// Pass the adapter directly to preserve display name and settings
|
|
81
|
+
return configAddLocalMcp(() => resolveConfigPath(), projectFilter, adapter);
|
|
82
|
+
},
|
|
83
|
+
runPrint: (projectFilter) => {
|
|
84
|
+
return generateConfigForPrint(adapter, () => resolveConfigPath(), projectFilter);
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Map sync client ID to local client type (for clients that support local configs)
|
|
90
|
+
*/
|
|
91
|
+
export function getLocalClientType(clientId) {
|
|
92
|
+
switch (clientId) {
|
|
93
|
+
case 'cursor':
|
|
94
|
+
return 'cursor';
|
|
95
|
+
case 'claude-code':
|
|
96
|
+
return 'claude-code';
|
|
97
|
+
default:
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=mcp-clients.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-clients.js","sourceRoot":"","sources":["../../src/cli/mcp-clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const description = "Register
|
|
2
|
+
export declare const description = "Register a config file or directory";
|
|
3
3
|
export declare const args: z.ZodTuple<[z.ZodString, z.ZodString], null>;
|
|
4
4
|
interface Props {
|
|
5
5
|
args: z.infer<typeof args>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/config/add.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/config/add.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW,wCAAwC,CAAC;AAEjE,eAAO,MAAM,IAAI,8CAGf,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CASzE"}
|
|
@@ -2,10 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Text } from 'ink';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { configAdd } from '../../cli/config-cmd.js';
|
|
5
|
-
export const description = 'Register
|
|
5
|
+
export const description = 'Register a config file or directory';
|
|
6
6
|
export const args = z.tuple([
|
|
7
7
|
z.string().describe('Project name'),
|
|
8
|
-
z.string().describe('Path to config file'),
|
|
8
|
+
z.string().describe('Path to config file or directory'),
|
|
9
9
|
]);
|
|
10
10
|
export default function ConfigAddCommand({ args }) {
|
|
11
11
|
const [name, configPath] = args;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/config/add.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/config/add.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,qCAAqC,CAAC;AAEjE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACxD,CAAC,CAAC;AAMH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAS;IACtD,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3C,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,MAAM,GAAQ,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAU,KAAe,CAAC,OAAO,IAAQ,CAAC;IACpE,CAAC;AACH,CAAC"}
|
|
@@ -2,6 +2,6 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Text } from 'ink';
|
|
3
3
|
export const description = 'Manage project configuration';
|
|
4
4
|
export default function ConfigCommand() {
|
|
5
|
-
return (_jsxs(Text, { children: ["Usage: limps config ", '<command>', '\n', '\n', "Commands:", '\n', ' ', "list Show all registered projects", '\n', ' ', "use ", '<name>', " Set the current/default project", '\n', ' ', "show Display resolved configuration values", '\n', ' ', "path Print the resolved config file path", '\n', ' ', "add ", '<name>', " ", '<path>', " Register an existing config file", '\n', ' ', "sync-mcp [project] [--projects ", '<names>', "] [--client", ' ', '<claude|cursor|claude-code|all>', "] [--print] [-f] Add/update limps
|
|
5
|
+
return (_jsxs(Text, { children: ["Usage: limps config ", '<command>', '\n', '\n', "Commands:", '\n', ' ', "list Show all registered projects", '\n', ' ', "use ", '<name>', " Set the current/default project", '\n', ' ', "show Display resolved configuration values", '\n', ' ', "path Print the resolved config file path", '\n', ' ', "add ", '<name>', " ", '<path>', " Register an existing config file", '\n', ' ', "sync-mcp [project] [--projects ", '<names>', "] [--client", ' ', '<claude|cursor|claude-code|codex|chatgpt|all>', "] [--global] [--path ", '<path>', "] [--print] [-f] Add/update limps in MCP configs (default: local project config)", '\n', ' ', "update ", '<name>', " [--plans-path ", '<path>', "] [--docs-path ", '<path>', "] Update project paths", '\n', ' ', "remove ", '<name>', " Unregister a project (keeps files)", '\n', ' ', "set ", '<path>', " Set current from config path (auto-registers)", '\n', ' ', "discover Find and register configs in default locations", '\n', '\n', "Run `limps config ", '<command>', " --help` for more information."] }));
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/config/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,OAAO,CACL,MAAC,IAAI,uCACkB,WAAW,EAC/B,IAAI,EACJ,IAAI,eACK,IAAI,EACb,IAAI,uCAAmC,IAAI,EAC3C,IAAI,UAAM,QAAQ,sCAAkC,IAAI,EACxD,IAAI,gDAA4C,IAAI,EACpD,IAAI,8CAA0C,IAAI,EAClD,IAAI,UAAM,QAAQ,OAAG,QAAQ,uCAAmC,IAAI,EACpE,IAAI,qCAAiC,SAAS,iBAAa,GAAG,EAC9D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/config/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,OAAO,CACL,MAAC,IAAI,uCACkB,WAAW,EAC/B,IAAI,EACJ,IAAI,eACK,IAAI,EACb,IAAI,uCAAmC,IAAI,EAC3C,IAAI,UAAM,QAAQ,sCAAkC,IAAI,EACxD,IAAI,gDAA4C,IAAI,EACpD,IAAI,8CAA0C,IAAI,EAClD,IAAI,UAAM,QAAQ,OAAG,QAAQ,uCAAmC,IAAI,EACpE,IAAI,qCAAiC,SAAS,iBAAa,GAAG,EAC9D,+CAA+C,2BAAuB,QAAQ,sFACV,IAAI,EACxE,IAAI,aAAS,QAAQ,qBAAiB,QAAQ,qBAAiB,QAAQ,4BAClE,IAAI,EACT,IAAI,aAAS,QAAQ,yCAAqC,IAAI,EAC9D,IAAI,UAAM,QAAQ,oDAAgD,IAAI,EACtE,IAAI,6DAAyD,IAAI,EACjE,IAAI,wBACc,WAAW,sCACzB,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const description = "Add or update
|
|
2
|
+
export declare const description = "Add or update limps projects in MCP client configs (default: local/project config)";
|
|
3
3
|
export declare const args: z.ZodTuple<[z.ZodOptional<z.ZodString>], null>;
|
|
4
4
|
export declare const options: z.ZodObject<{
|
|
5
5
|
projects: z.ZodOptional<z.ZodString>;
|
|
6
6
|
client: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
7
7
|
cursor: "cursor";
|
|
8
8
|
all: "all";
|
|
9
|
-
claude: "claude";
|
|
10
9
|
"claude-code": "claude-code";
|
|
10
|
+
claude: "claude";
|
|
11
|
+
codex: "codex";
|
|
12
|
+
chatgpt: "chatgpt";
|
|
11
13
|
}>>>;
|
|
14
|
+
global: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
path: z.ZodOptional<z.ZodString>;
|
|
12
16
|
print: z.ZodOptional<z.ZodBoolean>;
|
|
13
17
|
force: z.ZodOptional<z.ZodBoolean>;
|
|
14
18
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-mcp.d.ts","sourceRoot":"","sources":["../../../src/commands/config/sync-mcp.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-mcp.d.ts","sourceRoot":"","sources":["../../../src/commands/config/sync-mcp.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,WAAW,uFAC8D,CAAC;AAEvF,eAAO,MAAM,IAAI,gDAEf,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;iBAyBlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAmQtF"}
|