@1mcp/agent 0.21.0 → 0.22.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 +123 -148
- package/build/commands/app/backups.d.ts +13 -1
- package/build/commands/app/backups.d.ts.map +1 -1
- package/build/commands/app/backups.js +25 -0
- package/build/commands/app/backups.js.map +1 -1
- package/build/commands/app/consolidate.d.ts +21 -1
- package/build/commands/app/consolidate.d.ts.map +1 -1
- package/build/commands/app/consolidate.js +63 -0
- package/build/commands/app/consolidate.js.map +1 -1
- package/build/commands/app/discover.d.ts +11 -1
- package/build/commands/app/discover.d.ts.map +1 -1
- package/build/commands/app/discover.js +21 -0
- package/build/commands/app/discover.js.map +1 -1
- package/build/commands/app/index.d.ts.map +1 -1
- package/build/commands/app/index.js +15 -193
- package/build/commands/app/index.js.map +1 -1
- package/build/commands/app/list.d.ts +11 -1
- package/build/commands/app/list.d.ts.map +1 -1
- package/build/commands/app/list.js +21 -0
- package/build/commands/app/list.js.map +1 -1
- package/build/commands/app/restore.d.ts +21 -1
- package/build/commands/app/restore.d.ts.map +1 -1
- package/build/commands/app/restore.js +59 -0
- package/build/commands/app/restore.js.map +1 -1
- package/build/commands/app/status.d.ts +11 -1
- package/build/commands/app/status.d.ts.map +1 -1
- package/build/commands/app/status.js +21 -0
- package/build/commands/app/status.js.map +1 -1
- package/build/commands/mcp/add.d.ts +35 -2
- package/build/commands/mcp/add.d.ts.map +1 -1
- package/build/commands/mcp/add.js +86 -0
- package/build/commands/mcp/add.js.map +1 -1
- package/build/commands/mcp/enable.d.ts +15 -2
- package/build/commands/mcp/enable.d.ts.map +1 -1
- package/build/commands/mcp/enable.js +24 -0
- package/build/commands/mcp/enable.js.map +1 -1
- package/build/commands/mcp/index.d.ts.map +1 -1
- package/build/commands/mcp/index.js +18 -302
- package/build/commands/mcp/index.js.map +1 -1
- package/build/commands/mcp/list.d.ts +15 -2
- package/build/commands/mcp/list.d.ts.map +1 -1
- package/build/commands/mcp/list.js +35 -1
- package/build/commands/mcp/list.js.map +1 -1
- package/build/commands/mcp/remove.d.ts +11 -2
- package/build/commands/mcp/remove.d.ts.map +1 -1
- package/build/commands/mcp/remove.js +21 -0
- package/build/commands/mcp/remove.js.map +1 -1
- package/build/commands/mcp/status.d.ts +11 -2
- package/build/commands/mcp/status.d.ts.map +1 -1
- package/build/commands/mcp/status.js +23 -1
- package/build/commands/mcp/status.js.map +1 -1
- package/build/commands/mcp/tokens.d.ts +13 -3
- package/build/commands/mcp/tokens.d.ts.map +1 -1
- package/build/commands/mcp/tokens.js +31 -0
- package/build/commands/mcp/tokens.js.map +1 -1
- package/build/commands/mcp/update.d.ts +33 -2
- package/build/commands/mcp/update.d.ts.map +1 -1
- package/build/commands/mcp/update.js +72 -0
- package/build/commands/mcp/update.js.map +1 -1
- package/build/commands/preset/create.d.ts +26 -0
- package/build/commands/preset/create.d.ts.map +1 -0
- package/build/commands/preset/create.js +117 -0
- package/build/commands/preset/create.js.map +1 -0
- package/build/commands/preset/delete.d.ts +20 -0
- package/build/commands/preset/delete.d.ts.map +1 -0
- package/build/commands/preset/delete.js +46 -0
- package/build/commands/preset/delete.js.map +1 -0
- package/build/commands/preset/edit.d.ts +23 -0
- package/build/commands/preset/edit.d.ts.map +1 -0
- package/build/commands/preset/edit.js +68 -0
- package/build/commands/preset/edit.js.map +1 -0
- package/build/commands/preset/index.d.ts +6 -0
- package/build/commands/preset/index.d.ts.map +1 -0
- package/build/commands/preset/index.js +141 -0
- package/build/commands/preset/index.js.map +1 -0
- package/build/commands/preset/interactive.d.ts +12 -0
- package/build/commands/preset/interactive.d.ts.map +1 -0
- package/build/commands/preset/interactive.js +131 -0
- package/build/commands/preset/interactive.js.map +1 -0
- package/build/commands/preset/list.d.ts +16 -0
- package/build/commands/preset/list.d.ts.map +1 -0
- package/build/commands/preset/list.js +128 -0
- package/build/commands/preset/list.js.map +1 -0
- package/build/commands/preset/show.d.ts +19 -0
- package/build/commands/preset/show.d.ts.map +1 -0
- package/build/commands/preset/show.js +114 -0
- package/build/commands/preset/show.js.map +1 -0
- package/build/commands/preset/test.d.ts +20 -0
- package/build/commands/preset/test.d.ts.map +1 -0
- package/build/commands/preset/test.js +46 -0
- package/build/commands/preset/test.js.map +1 -0
- package/build/commands/preset/url.d.ts +20 -0
- package/build/commands/preset/url.d.ts.map +1 -0
- package/build/commands/preset/url.js +47 -0
- package/build/commands/preset/url.js.map +1 -0
- package/build/commands/serve/index.d.ts +106 -0
- package/build/commands/serve/index.d.ts.map +1 -0
- package/build/commands/serve/index.js +143 -0
- package/build/commands/serve/index.js.map +1 -0
- package/build/commands/serve/serve.d.ts +28 -0
- package/build/commands/serve/serve.d.ts.map +1 -0
- package/build/commands/serve/serve.js +213 -0
- package/build/commands/serve/serve.js.map +1 -0
- package/build/constants.d.ts +6 -1
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +13 -5
- package/build/constants.js.map +1 -1
- package/build/core/server/agentConfig.d.ts +6 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +9 -1
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +41 -0
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/types/server.d.ts +4 -1
- package/build/core/types/server.d.ts.map +1 -1
- package/build/core/types/server.js.map +1 -1
- package/build/core/types/transport.d.ts +16 -77
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +2 -2
- package/build/core/types/transport.js.map +1 -1
- package/build/globalOptions.d.ts +46 -0
- package/build/globalOptions.d.ts.map +1 -0
- package/build/globalOptions.js +37 -0
- package/build/globalOptions.js.map +1 -0
- package/build/handlers/requestHandlers.d.ts.map +1 -1
- package/build/handlers/requestHandlers.js +23 -1
- package/build/handlers/requestHandlers.js.map +1 -1
- package/build/index.js +58 -347
- package/build/index.js.map +1 -1
- package/build/logger/logger.d.ts.map +1 -1
- package/build/logger/logger.js +4 -2
- package/build/logger/logger.js.map +1 -1
- package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -1
- package/build/logger/mcpLoggingEnhancer.js +10 -6
- package/build/logger/mcpLoggingEnhancer.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +26 -0
- package/build/server.js.map +1 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +10 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.js +12 -0
- package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.d.ts +7 -3
- package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.js +128 -6
- package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
- package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/sseRoutes.js +5 -1
- package/build/transport/http/routes/sseRoutes.js.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.js +5 -1
- package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
- package/build/transport/transportFactory.js +1 -1
- package/build/transport/transportFactory.js.map +1 -1
- package/build/utils/configureGlobalLogger.d.ts +12 -0
- package/build/utils/configureGlobalLogger.d.ts.map +1 -0
- package/build/utils/configureGlobalLogger.js +18 -0
- package/build/utils/configureGlobalLogger.js.map +1 -0
- package/build/utils/interactiveSelector.d.ts +88 -0
- package/build/utils/interactiveSelector.d.ts.map +1 -0
- package/build/utils/interactiveSelector.js +616 -0
- package/build/utils/interactiveSelector.js.map +1 -0
- package/build/utils/presetErrorHandler.d.ts +62 -0
- package/build/utils/presetErrorHandler.d.ts.map +1 -0
- package/build/utils/presetErrorHandler.js +159 -0
- package/build/utils/presetErrorHandler.js.map +1 -0
- package/build/utils/presetManager.d.ts +114 -0
- package/build/utils/presetManager.d.ts.map +1 -0
- package/build/utils/presetManager.js +565 -0
- package/build/utils/presetManager.js.map +1 -0
- package/build/utils/presetNotificationService.d.ts +62 -0
- package/build/utils/presetNotificationService.d.ts.map +1 -0
- package/build/utils/presetNotificationService.js +214 -0
- package/build/utils/presetNotificationService.js.map +1 -0
- package/build/utils/presetServerChangeDetector.d.ts +50 -0
- package/build/utils/presetServerChangeDetector.d.ts.map +1 -0
- package/build/utils/presetServerChangeDetector.js +100 -0
- package/build/utils/presetServerChangeDetector.js.map +1 -0
- package/build/utils/presetTypes.d.ts +52 -0
- package/build/utils/presetTypes.d.ts.map +1 -0
- package/build/utils/presetTypes.js +5 -0
- package/build/utils/presetTypes.js.map +1 -0
- package/build/utils/tagQueryEvaluator.d.ts +68 -0
- package/build/utils/tagQueryEvaluator.d.ts.map +1 -0
- package/build/utils/tagQueryEvaluator.js +292 -0
- package/build/utils/tagQueryEvaluator.js.map +1 -0
- package/build/utils/tagQueryParser.d.ts +11 -0
- package/build/utils/tagQueryParser.d.ts.map +1 -1
- package/build/utils/tagQueryParser.js +46 -0
- package/build/utils/tagQueryParser.js.map +1 -1
- package/build/utils/urlGenerator.d.ts +68 -0
- package/build/utils/urlGenerator.d.ts.map +1 -0
- package/build/utils/urlGenerator.js +208 -0
- package/build/utils/urlGenerator.js.map +1 -0
- package/package.json +21 -17
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Argv } from 'yargs';
|
|
2
|
+
import { GlobalOptions } from '../../globalOptions.js';
|
|
3
|
+
/**
|
|
4
|
+
* Command arguments for the edit command
|
|
5
|
+
*/
|
|
6
|
+
export interface EditArguments extends GlobalOptions {
|
|
7
|
+
_: string[];
|
|
8
|
+
name: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Build the edit command configuration
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildEditCommand(yargs: Argv): Argv<{
|
|
15
|
+
name: string;
|
|
16
|
+
} & {
|
|
17
|
+
description: string | undefined;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Preset edit command (interactive TUI for existing presets)
|
|
21
|
+
*/
|
|
22
|
+
export declare function editCommand(argv: EditArguments): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=edit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/commands/preset/edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI;;;;GAW3C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDpE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { PresetManager } from '../../utils/presetManager.js';
|
|
2
|
+
import { InteractiveSelector } from '../../utils/interactiveSelector.js';
|
|
3
|
+
import { UrlGenerator } from '../../utils/urlGenerator.js';
|
|
4
|
+
import logger from '../../logger/logger.js';
|
|
5
|
+
/**
|
|
6
|
+
* Build the edit command configuration
|
|
7
|
+
*/
|
|
8
|
+
export function buildEditCommand(yargs) {
|
|
9
|
+
return yargs
|
|
10
|
+
.positional('name', {
|
|
11
|
+
describe: 'Name of the preset to edit',
|
|
12
|
+
type: 'string',
|
|
13
|
+
demandOption: true,
|
|
14
|
+
})
|
|
15
|
+
.option('description', {
|
|
16
|
+
describe: 'Update description for the preset',
|
|
17
|
+
type: 'string',
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Preset edit command (interactive TUI for existing presets)
|
|
22
|
+
*/
|
|
23
|
+
export async function editCommand(argv) {
|
|
24
|
+
try {
|
|
25
|
+
// Initialize preset manager
|
|
26
|
+
const presetManager = PresetManager.getInstance(argv['config-dir']);
|
|
27
|
+
await presetManager.initialize();
|
|
28
|
+
const selector = new InteractiveSelector();
|
|
29
|
+
const urlGenerator = new UrlGenerator();
|
|
30
|
+
// Show current preset configuration path
|
|
31
|
+
console.log(`📁 Config directory: ${presetManager.getConfigPath()}\n`);
|
|
32
|
+
// Load existing preset for editing
|
|
33
|
+
if (!presetManager.hasPreset(argv.name)) {
|
|
34
|
+
selector.showError(`Preset '${argv.name}' not found`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const existingConfig = presetManager.getPreset(argv.name);
|
|
38
|
+
if (!existingConfig) {
|
|
39
|
+
selector.showError(`Failed to load preset '${argv.name}'`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
console.log(`📝 Editing preset: ${argv.name}`);
|
|
43
|
+
if (existingConfig.description) {
|
|
44
|
+
console.log(` Description: ${existingConfig.description}`);
|
|
45
|
+
}
|
|
46
|
+
// Interactive server selection with existing config
|
|
47
|
+
const result = await selector.selectServers(existingConfig, presetManager.getConfigPath());
|
|
48
|
+
if (result.cancelled) {
|
|
49
|
+
console.log('Operation cancelled.');
|
|
50
|
+
process.exit(0);
|
|
51
|
+
}
|
|
52
|
+
// Save back to the same preset name, optionally updating description
|
|
53
|
+
const updatedDescription = argv.description || existingConfig.description;
|
|
54
|
+
await presetManager.savePreset(argv.name, {
|
|
55
|
+
description: updatedDescription,
|
|
56
|
+
strategy: result.strategy,
|
|
57
|
+
tagQuery: result.tagQuery,
|
|
58
|
+
});
|
|
59
|
+
const url = urlGenerator.generatePresetUrl(argv.name);
|
|
60
|
+
selector.showSaveSuccess(argv.name, url);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
logger.error('Preset edit command failed', { error });
|
|
64
|
+
console.error(`❌ Command failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/commands/preset/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/preset/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAsBlC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAoIrD"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { globalOptions } from '../../globalOptions.js';
|
|
2
|
+
// Import builder functions from command implementations
|
|
3
|
+
import { buildEditCommand } from './edit.js';
|
|
4
|
+
import { buildCreateCommand } from './create.js';
|
|
5
|
+
import { buildShowCommand } from './show.js';
|
|
6
|
+
import { buildListCommand } from './list.js';
|
|
7
|
+
import { buildUrlCommand } from './url.js';
|
|
8
|
+
import { buildDeleteCommand } from './delete.js';
|
|
9
|
+
import { buildTestCommand } from './test.js';
|
|
10
|
+
/**
|
|
11
|
+
* Setup preset command configuration for yargs
|
|
12
|
+
*/
|
|
13
|
+
export function setupPresetCommands(yargs) {
|
|
14
|
+
return yargs.command('preset', 'Manage server presets for dynamic filtering', (yargs) => {
|
|
15
|
+
return yargs
|
|
16
|
+
.options(globalOptions || {})
|
|
17
|
+
.command({
|
|
18
|
+
command: 'edit <name>',
|
|
19
|
+
describe: 'Edit existing preset interactively',
|
|
20
|
+
builder: buildEditCommand,
|
|
21
|
+
handler: async (argv) => {
|
|
22
|
+
const { editCommand } = await import('./edit.js');
|
|
23
|
+
await editCommand(argv);
|
|
24
|
+
},
|
|
25
|
+
})
|
|
26
|
+
.command({
|
|
27
|
+
command: 'create <name>',
|
|
28
|
+
describe: 'Create preset with filter expression',
|
|
29
|
+
builder: buildCreateCommand,
|
|
30
|
+
handler: async (argv) => {
|
|
31
|
+
const { createCommand } = await import('./create.js');
|
|
32
|
+
await createCommand(argv);
|
|
33
|
+
},
|
|
34
|
+
})
|
|
35
|
+
.command({
|
|
36
|
+
command: 'show <name>',
|
|
37
|
+
describe: 'Show detailed information about a preset',
|
|
38
|
+
builder: buildShowCommand,
|
|
39
|
+
handler: async (argv) => {
|
|
40
|
+
const { showCommand } = await import('./show.js');
|
|
41
|
+
await showCommand(argv);
|
|
42
|
+
},
|
|
43
|
+
})
|
|
44
|
+
.command({
|
|
45
|
+
command: 'list',
|
|
46
|
+
describe: 'List all available presets',
|
|
47
|
+
builder: buildListCommand,
|
|
48
|
+
handler: async (argv) => {
|
|
49
|
+
const { listCommand } = await import('./list.js');
|
|
50
|
+
await listCommand(argv);
|
|
51
|
+
},
|
|
52
|
+
})
|
|
53
|
+
.command({
|
|
54
|
+
command: 'url <name>',
|
|
55
|
+
describe: 'Generate URL for existing preset',
|
|
56
|
+
builder: buildUrlCommand,
|
|
57
|
+
handler: async (argv) => {
|
|
58
|
+
const { urlCommand } = await import('./url.js');
|
|
59
|
+
await urlCommand(argv);
|
|
60
|
+
},
|
|
61
|
+
})
|
|
62
|
+
.command({
|
|
63
|
+
command: 'delete <name>',
|
|
64
|
+
describe: 'Delete an existing preset',
|
|
65
|
+
builder: buildDeleteCommand,
|
|
66
|
+
handler: async (argv) => {
|
|
67
|
+
const { deleteCommand } = await import('./delete.js');
|
|
68
|
+
await deleteCommand(argv);
|
|
69
|
+
},
|
|
70
|
+
})
|
|
71
|
+
.command({
|
|
72
|
+
command: 'test <name>',
|
|
73
|
+
describe: 'Test preset against current server configuration',
|
|
74
|
+
builder: buildTestCommand,
|
|
75
|
+
handler: async (argv) => {
|
|
76
|
+
const { testCommand } = await import('./test.js');
|
|
77
|
+
await testCommand(argv);
|
|
78
|
+
},
|
|
79
|
+
})
|
|
80
|
+
.demandCommand(0, 'Use --help for available commands')
|
|
81
|
+
.example([
|
|
82
|
+
['$0 preset', 'Smart interactive mode - create new or edit existing'],
|
|
83
|
+
['$0 preset edit development', 'Edit existing "development" preset'],
|
|
84
|
+
['$0 preset create dev --filter "web,database"', 'Create preset with simple filter'],
|
|
85
|
+
['$0 preset create prod --filter "web AND database"', 'Create preset with AND logic'],
|
|
86
|
+
['$0 preset create secure --filter "(web OR api) AND NOT experimental"', 'Complex filter'],
|
|
87
|
+
['$0 preset list', 'List all available presets'],
|
|
88
|
+
['$0 preset show development', 'Show full details of "development" preset'],
|
|
89
|
+
['$0 preset url development', 'Generate URL for existing preset'],
|
|
90
|
+
['$0 preset delete staging', 'Delete "staging" preset'],
|
|
91
|
+
['$0 preset test development', 'Test "development" preset'],
|
|
92
|
+
]).epilogue(`
|
|
93
|
+
PRESET MANAGEMENT SYSTEM:
|
|
94
|
+
|
|
95
|
+
The preset command provides both interactive (TUI) and command-line approaches to manage
|
|
96
|
+
server filtering presets. Presets generate URLs like http://localhost:3050/mcp?preset=development
|
|
97
|
+
that automatically update when you modify the preset configuration.
|
|
98
|
+
|
|
99
|
+
WORKFLOW EXAMPLES:
|
|
100
|
+
|
|
101
|
+
1. Smart interactive approach:
|
|
102
|
+
1mcp preset
|
|
103
|
+
→ Auto-detects existing presets → Offers to edit or create new
|
|
104
|
+
|
|
105
|
+
2. Direct editing:
|
|
106
|
+
1mcp preset edit dev
|
|
107
|
+
→ Interactive editing of existing 'dev' preset
|
|
108
|
+
|
|
109
|
+
3. Command-line creation:
|
|
110
|
+
1mcp preset create dev --filter "web,database,api"
|
|
111
|
+
→ Quick preset creation with comma-separated tags (OR logic)
|
|
112
|
+
|
|
113
|
+
4. Complex expressions:
|
|
114
|
+
1mcp preset create prod --filter "web AND database AND monitoring"
|
|
115
|
+
→ AND logic for strict requirements
|
|
116
|
+
|
|
117
|
+
1mcp preset create flexible --filter "(web OR api) AND database"
|
|
118
|
+
→ Mixed boolean expressions
|
|
119
|
+
|
|
120
|
+
5. Management:
|
|
121
|
+
1mcp preset list # List all presets
|
|
122
|
+
1mcp preset url dev # Get client URL
|
|
123
|
+
1mcp preset test dev # Test against servers
|
|
124
|
+
1mcp preset delete old # Remove unused preset
|
|
125
|
+
|
|
126
|
+
FILTER EXPRESSIONS:
|
|
127
|
+
- Simple (OR logic): "web,api,database"
|
|
128
|
+
- AND logic: "web AND database"
|
|
129
|
+
- Complex: "(web OR api) AND database AND NOT experimental"
|
|
130
|
+
|
|
131
|
+
DYNAMIC UPDATES:
|
|
132
|
+
When you modify a preset, all clients using that preset's URL automatically
|
|
133
|
+
receive updated server configurations without needing to change their URLs.
|
|
134
|
+
`);
|
|
135
|
+
}, async (argv) => {
|
|
136
|
+
// Smart interactive mode when no subcommand is provided
|
|
137
|
+
const { interactiveCommand } = await import('./interactive.js');
|
|
138
|
+
await interactiveCommand(argv);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/preset/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAYvD,wDAAwD;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAW;IAC7C,OAAO,KAAK,CAAC,OAAO,CAClB,QAAQ,EACR,6CAA6C,EAC7C,CAAC,KAAK,EAAE,EAAE;QACR,OAAO,KAAK;aACT,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;aAC5B,OAAO,CAAC;YACP,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,oCAAoC;YAC9C,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,WAAW,CAAC,IAAqB,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC;aACD,OAAO,CAAC;YACP,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,sCAAsC;YAChD,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBACtD,MAAM,aAAa,CAAC,IAAuB,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC;aACD,OAAO,CAAC;YACP,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,0CAA0C;YACpD,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,WAAW,CAAC,IAAqB,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC;aACD,OAAO,CAAC;YACP,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,4BAA4B;YACtC,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,WAAW,CAAC,IAAqB,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC;aACD,OAAO,CAAC;YACP,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,kCAAkC;YAC5C,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;gBAChD,MAAM,UAAU,CAAC,IAAoB,CAAC,CAAC;YACzC,CAAC;SACF,CAAC;aACD,OAAO,CAAC;YACP,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,2BAA2B;YACrC,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBACtD,MAAM,aAAa,CAAC,IAAuB,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC;aACD,OAAO,CAAC;YACP,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,kDAAkD;YAC5D,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,WAAW,CAAC,IAAqB,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC;aACD,aAAa,CAAC,CAAC,EAAE,mCAAmC,CAAC;aACrD,OAAO,CAAC;YACP,CAAC,WAAW,EAAE,sDAAsD,CAAC;YACrE,CAAC,4BAA4B,EAAE,oCAAoC,CAAC;YACpE,CAAC,8CAA8C,EAAE,kCAAkC,CAAC;YACpF,CAAC,mDAAmD,EAAE,8BAA8B,CAAC;YACrF,CAAC,sEAAsE,EAAE,gBAAgB,CAAC;YAC1F,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;YAChD,CAAC,4BAA4B,EAAE,2CAA2C,CAAC;YAC3E,CAAC,2BAA2B,EAAE,kCAAkC,CAAC;YACjE,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;YACvD,CAAC,4BAA4B,EAAE,2BAA2B,CAAC;SAC5D,CAAC,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA0CX,CAAC,CAAC;IACP,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,wDAAwD;QACxD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAChE,MAAM,kBAAkB,CAAC,IAA4B,CAAC,CAAC;IACzD,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GlobalOptions } from '../../globalOptions.js';
|
|
2
|
+
/**
|
|
3
|
+
* Command arguments for the interactive command
|
|
4
|
+
*/
|
|
5
|
+
export interface InteractiveArguments extends GlobalOptions {
|
|
6
|
+
_: string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Smart interactive preset command - auto-detects existing presets and offers options
|
|
10
|
+
*/
|
|
11
|
+
export declare function interactiveCommand(argv: InteractiveArguments): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=interactive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/commands/preset/interactive.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFlF"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// Interactive command functionality for smart preset mode
|
|
2
|
+
import { PresetManager } from '../../utils/presetManager.js';
|
|
3
|
+
import { InteractiveSelector } from '../../utils/interactiveSelector.js';
|
|
4
|
+
import { UrlGenerator } from '../../utils/urlGenerator.js';
|
|
5
|
+
import logger from '../../logger/logger.js';
|
|
6
|
+
/**
|
|
7
|
+
* Smart interactive preset command - auto-detects existing presets and offers options
|
|
8
|
+
*/
|
|
9
|
+
export async function interactiveCommand(argv) {
|
|
10
|
+
try {
|
|
11
|
+
// Initialize preset manager
|
|
12
|
+
const presetManager = PresetManager.getInstance(argv['config-dir']);
|
|
13
|
+
await presetManager.initialize();
|
|
14
|
+
const selector = new InteractiveSelector();
|
|
15
|
+
const urlGenerator = new UrlGenerator();
|
|
16
|
+
// Show current preset configuration path
|
|
17
|
+
console.log(`📁 Config directory: ${presetManager.getConfigPath()}\n`);
|
|
18
|
+
// Check if we should offer to load existing presets
|
|
19
|
+
const availablePresets = presetManager.getPresetList();
|
|
20
|
+
let existingConfig;
|
|
21
|
+
if (availablePresets.length > 0) {
|
|
22
|
+
const selectedAction = await offerPresetSelection(availablePresets, selector);
|
|
23
|
+
if (selectedAction === 'cancel') {
|
|
24
|
+
console.log('Operation cancelled.');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
else if (selectedAction === 'new') {
|
|
28
|
+
// Continue with new preset creation
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// Load the selected preset for editing
|
|
32
|
+
const preset = presetManager.getPreset(selectedAction);
|
|
33
|
+
if (!preset) {
|
|
34
|
+
selector.showError(`Failed to load preset '${selectedAction}'`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
console.log(`📝 Editing preset: ${selectedAction}`);
|
|
38
|
+
if (preset.description) {
|
|
39
|
+
console.log(` Description: ${preset.description}`);
|
|
40
|
+
}
|
|
41
|
+
existingConfig = preset;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Interactive server selection
|
|
45
|
+
const result = await selector.selectServers(existingConfig, presetManager.getConfigPath());
|
|
46
|
+
if (result.cancelled) {
|
|
47
|
+
console.log('Operation cancelled.');
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
// Handle saving
|
|
51
|
+
if (existingConfig) {
|
|
52
|
+
// Save back to existing preset
|
|
53
|
+
await presetManager.savePreset(existingConfig.name, {
|
|
54
|
+
description: existingConfig.description,
|
|
55
|
+
strategy: result.strategy,
|
|
56
|
+
tagQuery: result.tagQuery,
|
|
57
|
+
});
|
|
58
|
+
const url = urlGenerator.generatePresetUrl(existingConfig.name);
|
|
59
|
+
selector.showSaveSuccess(existingConfig.name, url);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// New preset - ask for save details
|
|
63
|
+
const saveResult = await selector.confirmSave();
|
|
64
|
+
if (saveResult.save) {
|
|
65
|
+
await presetManager.savePreset(saveResult.name, {
|
|
66
|
+
description: saveResult.description,
|
|
67
|
+
strategy: result.strategy,
|
|
68
|
+
tagQuery: result.tagQuery,
|
|
69
|
+
});
|
|
70
|
+
const url = urlGenerator.generatePresetUrl(saveResult.name);
|
|
71
|
+
selector.showSaveSuccess(saveResult.name, url);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// Just show preview without saving
|
|
75
|
+
console.log('\n📋 Selection Summary:');
|
|
76
|
+
console.log(` Strategy: ${result.strategy}`);
|
|
77
|
+
console.log(` Query: ${JSON.stringify(result.tagQuery)}`);
|
|
78
|
+
console.log('\nTo save this selection, run the command with a specific name.');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
logger.error('Preset interactive command failed', { error });
|
|
84
|
+
console.error(`❌ Command failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Offer preset selection when existing presets are found
|
|
90
|
+
*/
|
|
91
|
+
async function offerPresetSelection(availablePresets, selector) {
|
|
92
|
+
console.log('🎯 Found existing presets. What would you like to do?\n');
|
|
93
|
+
// Show available presets
|
|
94
|
+
for (let i = 0; i < availablePresets.length; i++) {
|
|
95
|
+
const preset = availablePresets[i];
|
|
96
|
+
const lastUsed = preset.lastUsed ? new Date(preset.lastUsed).toLocaleDateString() : 'never';
|
|
97
|
+
const strategyDesc = getStrategyDescription(preset.strategy);
|
|
98
|
+
console.log(` ${i + 1}. ${preset.name} (${strategyDesc}) - Last used: ${lastUsed}`);
|
|
99
|
+
if (preset.description) {
|
|
100
|
+
console.log(` ${preset.description}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
console.log(` ${availablePresets.length + 1}. Create new preset`);
|
|
104
|
+
console.log(` ${availablePresets.length + 2}. Cancel\n`);
|
|
105
|
+
const choice = await selector.getChoice('Select an option:', 1, availablePresets.length + 2);
|
|
106
|
+
if (choice <= availablePresets.length) {
|
|
107
|
+
return availablePresets[choice - 1].name;
|
|
108
|
+
}
|
|
109
|
+
else if (choice === availablePresets.length + 1) {
|
|
110
|
+
return 'new';
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
return 'cancel';
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get human-readable strategy description
|
|
118
|
+
*/
|
|
119
|
+
function getStrategyDescription(strategy) {
|
|
120
|
+
switch (strategy) {
|
|
121
|
+
case 'or':
|
|
122
|
+
return 'OR logic';
|
|
123
|
+
case 'and':
|
|
124
|
+
return 'AND logic';
|
|
125
|
+
case 'advanced':
|
|
126
|
+
return 'Advanced';
|
|
127
|
+
default:
|
|
128
|
+
return strategy;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/commands/preset/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Argv } from 'yargs';
|
|
2
|
+
import { GlobalOptions } from '@src/globalOptions.js';
|
|
3
|
+
/**
|
|
4
|
+
* Command arguments for the list command
|
|
5
|
+
*/
|
|
6
|
+
export interface ListArguments extends GlobalOptions {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Build the list command configuration
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildListCommand(yargs: Argv): Argv<{}>;
|
|
12
|
+
/**
|
|
13
|
+
* List available presets
|
|
14
|
+
*/
|
|
15
|
+
export declare function listCommand(argv?: ListArguments): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/preset/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAMlC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,aAAa;CAAG;AAEvD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,YAE3C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { PresetManager } from '../../utils/presetManager.js';
|
|
2
|
+
import { InteractiveSelector } from '../../utils/interactiveSelector.js';
|
|
3
|
+
import logger from '../../logger/logger.js';
|
|
4
|
+
import boxen from 'boxen';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
/**
|
|
7
|
+
* Build the list command configuration
|
|
8
|
+
*/
|
|
9
|
+
export function buildListCommand(yargs) {
|
|
10
|
+
return yargs;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* List available presets
|
|
14
|
+
*/
|
|
15
|
+
export async function listCommand(argv) {
|
|
16
|
+
try {
|
|
17
|
+
const presetManager = PresetManager.getInstance(argv?.['config-dir']);
|
|
18
|
+
await presetManager.initialize();
|
|
19
|
+
const selector = new InteractiveSelector();
|
|
20
|
+
await listPresets(presetManager, selector);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
logger.error('Preset list command failed', { error });
|
|
24
|
+
console.error(`❌ Command failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* List available presets using TUI styling
|
|
30
|
+
*/
|
|
31
|
+
async function listPresets(presetManager, _selector) {
|
|
32
|
+
const presets = presetManager.getPresetList();
|
|
33
|
+
if (presets.length === 0) {
|
|
34
|
+
console.log(boxen(chalk.red.bold('⚠️ No presets found'), {
|
|
35
|
+
padding: 1,
|
|
36
|
+
borderStyle: 'round',
|
|
37
|
+
borderColor: 'red',
|
|
38
|
+
title: 'No Presets Available',
|
|
39
|
+
titleAlignment: 'center',
|
|
40
|
+
}));
|
|
41
|
+
console.log(chalk.yellow('\nCreate your first preset with:'));
|
|
42
|
+
console.log(chalk.cyan(' 1mcp preset create <name> --filter "web,api,database"'));
|
|
43
|
+
console.log(chalk.cyan(' 1mcp preset select --save <name> --url'));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Header
|
|
47
|
+
const headerMessage = boxen(chalk.cyan.bold('📋 Available Presets\n\n') +
|
|
48
|
+
chalk.yellow(`Found ${presets.length} preset${presets.length === 1 ? '' : 's'} in your configuration`), {
|
|
49
|
+
padding: 1,
|
|
50
|
+
margin: 1,
|
|
51
|
+
borderStyle: 'double',
|
|
52
|
+
borderColor: 'cyan',
|
|
53
|
+
title: 'Preset Manager',
|
|
54
|
+
titleAlignment: 'center',
|
|
55
|
+
});
|
|
56
|
+
console.log(headerMessage);
|
|
57
|
+
// Create clean table layout
|
|
58
|
+
let tableContent = '';
|
|
59
|
+
// Table header
|
|
60
|
+
tableContent += chalk.cyan.bold(' Name Strategy Query Last Used\n');
|
|
61
|
+
tableContent += chalk.gray(' ──────────────── ───────── ────────────────────────────────── ─────────\n');
|
|
62
|
+
// Table rows
|
|
63
|
+
for (const preset of presets) {
|
|
64
|
+
const lastUsed = preset.lastUsed ? new Date(preset.lastUsed).toLocaleDateString() : 'never';
|
|
65
|
+
const strategyDesc = getStrategyDescription(preset.strategy);
|
|
66
|
+
const queryStr = JSON.stringify(preset.tagQuery) || '{}';
|
|
67
|
+
// Format fields with proper truncation
|
|
68
|
+
const name = preset.name.length > 16 ? preset.name.slice(0, 13) + '...' : preset.name;
|
|
69
|
+
const strategy = strategyDesc.length > 9 ? strategyDesc.slice(0, 9) : strategyDesc;
|
|
70
|
+
const query = queryStr.length > 33 ? queryStr.slice(0, 30) + '...' : queryStr;
|
|
71
|
+
const lastUsedStr = lastUsed.length > 9 ? lastUsed.slice(0, 9) : lastUsed;
|
|
72
|
+
tableContent +=
|
|
73
|
+
` ${chalk.yellow(name.padEnd(16))} ` +
|
|
74
|
+
`${chalk.blue(strategy.padEnd(9))} ` +
|
|
75
|
+
`${chalk.green(query.padEnd(33))} ` +
|
|
76
|
+
`${chalk.gray(lastUsedStr)}\n`;
|
|
77
|
+
}
|
|
78
|
+
const tableBox = boxen(tableContent.trim(), {
|
|
79
|
+
padding: 1,
|
|
80
|
+
borderStyle: 'round',
|
|
81
|
+
borderColor: 'blue',
|
|
82
|
+
title: 'Preset Overview',
|
|
83
|
+
titleAlignment: 'center',
|
|
84
|
+
});
|
|
85
|
+
console.log(tableBox);
|
|
86
|
+
// Commands help section
|
|
87
|
+
const commandsContent = chalk.cyan.bold('Available Commands:\n\n') +
|
|
88
|
+
chalk.white('• ') +
|
|
89
|
+
chalk.green('1mcp preset show <name>') +
|
|
90
|
+
chalk.gray(' Show full preset details\n') +
|
|
91
|
+
chalk.white('• ') +
|
|
92
|
+
chalk.green('1mcp preset url <name>') +
|
|
93
|
+
chalk.gray(' Generate URL\n') +
|
|
94
|
+
chalk.white('• ') +
|
|
95
|
+
chalk.green('1mcp preset select --load <name>') +
|
|
96
|
+
chalk.gray(' Edit preset\n') +
|
|
97
|
+
chalk.white('• ') +
|
|
98
|
+
chalk.green('1mcp preset test <name>') +
|
|
99
|
+
chalk.gray(' Test preset\n') +
|
|
100
|
+
chalk.white('• ') +
|
|
101
|
+
chalk.green('1mcp preset delete <name>') +
|
|
102
|
+
chalk.gray(' Delete preset');
|
|
103
|
+
console.log('');
|
|
104
|
+
console.log(boxen(commandsContent, {
|
|
105
|
+
padding: 1,
|
|
106
|
+
borderStyle: 'single',
|
|
107
|
+
borderColor: 'gray',
|
|
108
|
+
title: 'Quick Reference',
|
|
109
|
+
titleAlignment: 'center',
|
|
110
|
+
}));
|
|
111
|
+
console.log('');
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get human-readable strategy description
|
|
115
|
+
*/
|
|
116
|
+
function getStrategyDescription(strategy) {
|
|
117
|
+
switch (strategy) {
|
|
118
|
+
case 'or':
|
|
119
|
+
return 'OR logic';
|
|
120
|
+
case 'and':
|
|
121
|
+
return 'AND logic';
|
|
122
|
+
case 'advanced':
|
|
123
|
+
return 'Advanced';
|
|
124
|
+
default:
|
|
125
|
+
return strategy;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/preset/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Argv } from 'yargs';
|
|
2
|
+
import { GlobalOptions } from '../../globalOptions.js';
|
|
3
|
+
/**
|
|
4
|
+
* Command arguments for the show command
|
|
5
|
+
*/
|
|
6
|
+
export interface ShowArguments extends GlobalOptions {
|
|
7
|
+
name: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Build the show command configuration
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildShowCommand(yargs: Argv): Argv<{
|
|
13
|
+
name: string;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Show detailed information about a specific preset
|
|
17
|
+
*/
|
|
18
|
+
export declare function showCommand(argv: ShowArguments): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=show.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/preset/show.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKvD;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI;;GAM3C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAapE"}
|