@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,114 @@
|
|
|
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
|
+
import boxen from 'boxen';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
/**
|
|
8
|
+
* Build the show command configuration
|
|
9
|
+
*/
|
|
10
|
+
export function buildShowCommand(yargs) {
|
|
11
|
+
return yargs.positional('name', {
|
|
12
|
+
describe: 'Name of the preset to show details for',
|
|
13
|
+
type: 'string',
|
|
14
|
+
demandOption: true,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Show detailed information about a specific preset
|
|
19
|
+
*/
|
|
20
|
+
export async function showCommand(argv) {
|
|
21
|
+
try {
|
|
22
|
+
const presetManager = PresetManager.getInstance(argv['config-dir']);
|
|
23
|
+
await presetManager.initialize();
|
|
24
|
+
const selector = new InteractiveSelector();
|
|
25
|
+
const urlGenerator = new UrlGenerator();
|
|
26
|
+
await showPresetDetails(argv.name, presetManager, selector, urlGenerator);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
logger.error('Preset show command failed', { error });
|
|
30
|
+
console.error(`❌ Command failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Display detailed preset information
|
|
36
|
+
*/
|
|
37
|
+
async function showPresetDetails(name, presetManager, selector, urlGenerator) {
|
|
38
|
+
if (!presetManager.hasPreset(name)) {
|
|
39
|
+
selector.showError(`Preset '${name}' not found`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const preset = presetManager.getPreset(name);
|
|
43
|
+
if (!preset) {
|
|
44
|
+
selector.showError(`Failed to load preset '${name}'`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Main preset information in a single comprehensive box
|
|
48
|
+
let mainContent = '';
|
|
49
|
+
// Basic info section
|
|
50
|
+
mainContent += chalk.cyan.bold(`📋 ${preset.name}\n`);
|
|
51
|
+
mainContent += chalk.blue(`Strategy: ${getStrategyDescription(preset.strategy)}\n`);
|
|
52
|
+
if (preset.description) {
|
|
53
|
+
mainContent += chalk.gray(`Description: ${preset.description}\n`);
|
|
54
|
+
}
|
|
55
|
+
mainContent += chalk.dim(`Created: ${new Date(preset.created).toLocaleDateString()}\n`);
|
|
56
|
+
mainContent += chalk.dim(`Last Used: ${preset.lastUsed ? new Date(preset.lastUsed).toLocaleDateString() : 'Never'}\n`);
|
|
57
|
+
// URL section
|
|
58
|
+
const urlResult = await urlGenerator.validateAndGeneratePresetUrl(name);
|
|
59
|
+
if (urlResult.valid) {
|
|
60
|
+
mainContent += '\n';
|
|
61
|
+
mainContent += chalk.yellow.bold('Client URL:\n');
|
|
62
|
+
mainContent += chalk.cyan(`${urlResult.url}\n`);
|
|
63
|
+
}
|
|
64
|
+
// Query section
|
|
65
|
+
mainContent += '\n';
|
|
66
|
+
mainContent += chalk.yellow.bold('Tag Query:\n');
|
|
67
|
+
const queryStr = JSON.stringify(preset.tagQuery, null, 2);
|
|
68
|
+
mainContent += chalk.green(queryStr);
|
|
69
|
+
// Test results section
|
|
70
|
+
try {
|
|
71
|
+
const testResult = await presetManager.testPreset(name);
|
|
72
|
+
const matchingServers = testResult.servers;
|
|
73
|
+
mainContent += '\n\n';
|
|
74
|
+
mainContent += chalk.yellow.bold(`Matching Servers (${matchingServers.length}):\n`);
|
|
75
|
+
if (matchingServers.length > 0) {
|
|
76
|
+
mainContent += chalk.green(matchingServers.map((server) => `• ${server}`).join(', '));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
mainContent += chalk.red('No servers match this preset');
|
|
80
|
+
}
|
|
81
|
+
mainContent += '\n\n';
|
|
82
|
+
mainContent += chalk.yellow.bold('Quick Actions:\n');
|
|
83
|
+
mainContent += chalk.white(`• Test: ${chalk.green(`1mcp preset test ${name}`)}\n`);
|
|
84
|
+
mainContent += chalk.white(`• Edit: ${chalk.green(`1mcp preset select --load ${name}`)}\n`);
|
|
85
|
+
mainContent += chalk.white(`• URL: ${chalk.green(`1mcp preset url ${name}`)}`);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
mainContent += '\n\n';
|
|
89
|
+
mainContent += chalk.red(`Test failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
90
|
+
}
|
|
91
|
+
console.log(boxen(mainContent, {
|
|
92
|
+
padding: 1,
|
|
93
|
+
borderStyle: 'round',
|
|
94
|
+
borderColor: 'blue',
|
|
95
|
+
title: 'Preset Details',
|
|
96
|
+
titleAlignment: 'center',
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get human-readable strategy description
|
|
101
|
+
*/
|
|
102
|
+
function getStrategyDescription(strategy) {
|
|
103
|
+
switch (strategy) {
|
|
104
|
+
case 'or':
|
|
105
|
+
return 'OR logic - Match ANY selected tags';
|
|
106
|
+
case 'and':
|
|
107
|
+
return 'AND logic - Match ALL selected tags';
|
|
108
|
+
case 'advanced':
|
|
109
|
+
return 'Advanced - Custom JSON query';
|
|
110
|
+
default:
|
|
111
|
+
return strategy;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/preset/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Argv } from 'yargs';
|
|
2
|
+
import { GlobalOptions } from '../../globalOptions.js';
|
|
3
|
+
/**
|
|
4
|
+
* Command arguments for test command
|
|
5
|
+
*/
|
|
6
|
+
export interface TestArguments extends GlobalOptions {
|
|
7
|
+
_: string[];
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Build the test command configuration
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildTestCommand(yargs: Argv): Argv<{
|
|
14
|
+
name: string;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Test preset against current server configuration
|
|
18
|
+
*/
|
|
19
|
+
export declare function testCommand(argv: TestArguments): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/commands/preset/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGlC,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;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,CAYpE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { PresetManager } from '../../utils/presetManager.js';
|
|
2
|
+
import { InteractiveSelector } from '../../utils/interactiveSelector.js';
|
|
3
|
+
import logger from '../../logger/logger.js';
|
|
4
|
+
/**
|
|
5
|
+
* Build the test command configuration
|
|
6
|
+
*/
|
|
7
|
+
export function buildTestCommand(yargs) {
|
|
8
|
+
return yargs.positional('name', {
|
|
9
|
+
describe: 'Name of the preset to test',
|
|
10
|
+
type: 'string',
|
|
11
|
+
demandOption: true,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Test preset against current server configuration
|
|
16
|
+
*/
|
|
17
|
+
export async function testCommand(argv) {
|
|
18
|
+
try {
|
|
19
|
+
const presetManager = PresetManager.getInstance(argv['config-dir']);
|
|
20
|
+
await presetManager.initialize();
|
|
21
|
+
const selector = new InteractiveSelector();
|
|
22
|
+
await previewPreset(argv.name, presetManager, selector);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
logger.error('Preset test command failed', { error });
|
|
26
|
+
console.error(`❌ Command failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Preview preset without saving
|
|
32
|
+
*/
|
|
33
|
+
async function previewPreset(name, presetManager, selector) {
|
|
34
|
+
if (!presetManager.hasPreset(name)) {
|
|
35
|
+
selector.showError(`Preset '${name}' not found`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const testResult = await presetManager.testPreset(name);
|
|
40
|
+
await selector.testPreset(name, testResult);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
selector.showError(`Failed to test preset: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/preset/test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAU5C;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAW;IAC1C,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;QAC9B,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAmB;IACnD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACpE,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAE3C,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,aAA4B,EAAE,QAA6B;IACpG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,SAAS,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Argv } from 'yargs';
|
|
2
|
+
import { GlobalOptions } from '../../globalOptions.js';
|
|
3
|
+
/**
|
|
4
|
+
* Command arguments for URL command
|
|
5
|
+
*/
|
|
6
|
+
export interface UrlArguments extends GlobalOptions {
|
|
7
|
+
_: string[];
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Build the url command configuration
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildUrlCommand(yargs: Argv): Argv<{
|
|
14
|
+
name: string;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Show URL for existing preset
|
|
18
|
+
*/
|
|
19
|
+
export declare function urlCommand(argv: UrlArguments): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/commands/preset/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI;;GAM1C;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAalE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 url command configuration
|
|
7
|
+
*/
|
|
8
|
+
export function buildUrlCommand(yargs) {
|
|
9
|
+
return yargs.positional('name', {
|
|
10
|
+
describe: 'Name of the preset to generate URL for',
|
|
11
|
+
type: 'string',
|
|
12
|
+
demandOption: true,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Show URL for existing preset
|
|
17
|
+
*/
|
|
18
|
+
export async function urlCommand(argv) {
|
|
19
|
+
try {
|
|
20
|
+
const presetManager = PresetManager.getInstance(argv['config-dir']);
|
|
21
|
+
await presetManager.initialize();
|
|
22
|
+
const selector = new InteractiveSelector();
|
|
23
|
+
const urlGenerator = new UrlGenerator();
|
|
24
|
+
await showPresetUrl(argv.name, presetManager, selector, urlGenerator);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
logger.error('Preset URL command failed', { error });
|
|
28
|
+
console.error(`❌ Command failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Show URL for existing preset
|
|
34
|
+
*/
|
|
35
|
+
async function showPresetUrl(name, presetManager, selector, urlGenerator) {
|
|
36
|
+
if (!presetManager.hasPreset(name)) {
|
|
37
|
+
selector.showError(`Preset '${name}' not found`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const urlResult = await urlGenerator.validateAndGeneratePresetUrl(name);
|
|
41
|
+
if (!urlResult.valid) {
|
|
42
|
+
selector.showError(urlResult.error || 'Failed to generate URL');
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
selector.showUrl(name, urlResult.url);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/commands/preset/url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAU5C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAW;IACzC,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;QAC9B,QAAQ,EAAE,wCAAwC;QAClD,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAkB;IACjD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACpE,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAExC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,IAAY,EACZ,aAA4B,EAC5B,QAA6B,EAC7B,YAA0B;IAE1B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAExE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrB,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { Argv } from 'yargs';
|
|
2
|
+
/**
|
|
3
|
+
* Serve command group entry point.
|
|
4
|
+
*
|
|
5
|
+
* Starts the 1mcp server with various transport options and configurations.
|
|
6
|
+
*/
|
|
7
|
+
export declare const serverOptions: {
|
|
8
|
+
transport: {
|
|
9
|
+
alias: string;
|
|
10
|
+
describe: string;
|
|
11
|
+
type: "string";
|
|
12
|
+
choices: readonly ["stdio", "http", "sse"];
|
|
13
|
+
default: string;
|
|
14
|
+
};
|
|
15
|
+
port: {
|
|
16
|
+
alias: string;
|
|
17
|
+
describe: string;
|
|
18
|
+
type: "number";
|
|
19
|
+
default: number;
|
|
20
|
+
};
|
|
21
|
+
host: {
|
|
22
|
+
alias: string;
|
|
23
|
+
describe: string;
|
|
24
|
+
type: "string";
|
|
25
|
+
default: string;
|
|
26
|
+
};
|
|
27
|
+
'external-url': {
|
|
28
|
+
alias: string;
|
|
29
|
+
describe: string;
|
|
30
|
+
type: "string";
|
|
31
|
+
default: undefined;
|
|
32
|
+
};
|
|
33
|
+
filter: {
|
|
34
|
+
alias: string;
|
|
35
|
+
describe: string;
|
|
36
|
+
type: "string";
|
|
37
|
+
default: undefined;
|
|
38
|
+
};
|
|
39
|
+
pagination: {
|
|
40
|
+
alias: string;
|
|
41
|
+
describe: string;
|
|
42
|
+
type: "boolean";
|
|
43
|
+
default: boolean;
|
|
44
|
+
};
|
|
45
|
+
auth: {
|
|
46
|
+
describe: string;
|
|
47
|
+
type: "boolean";
|
|
48
|
+
default: boolean;
|
|
49
|
+
};
|
|
50
|
+
'enable-auth': {
|
|
51
|
+
describe: string;
|
|
52
|
+
type: "boolean";
|
|
53
|
+
default: boolean;
|
|
54
|
+
};
|
|
55
|
+
'enable-scope-validation': {
|
|
56
|
+
describe: string;
|
|
57
|
+
type: "boolean";
|
|
58
|
+
default: boolean;
|
|
59
|
+
};
|
|
60
|
+
'enable-enhanced-security': {
|
|
61
|
+
describe: string;
|
|
62
|
+
type: "boolean";
|
|
63
|
+
default: boolean;
|
|
64
|
+
};
|
|
65
|
+
'session-ttl': {
|
|
66
|
+
describe: string;
|
|
67
|
+
type: "number";
|
|
68
|
+
default: number;
|
|
69
|
+
};
|
|
70
|
+
'session-storage-path': {
|
|
71
|
+
describe: string;
|
|
72
|
+
type: "string";
|
|
73
|
+
default: undefined;
|
|
74
|
+
};
|
|
75
|
+
'rate-limit-window': {
|
|
76
|
+
describe: string;
|
|
77
|
+
type: "number";
|
|
78
|
+
default: number;
|
|
79
|
+
};
|
|
80
|
+
'rate-limit-max': {
|
|
81
|
+
describe: string;
|
|
82
|
+
type: "number";
|
|
83
|
+
default: number;
|
|
84
|
+
};
|
|
85
|
+
'trust-proxy': {
|
|
86
|
+
describe: string;
|
|
87
|
+
type: "string";
|
|
88
|
+
default: string;
|
|
89
|
+
};
|
|
90
|
+
'health-info-level': {
|
|
91
|
+
describe: string;
|
|
92
|
+
type: "string";
|
|
93
|
+
choices: readonly ["full", "basic", "minimal"];
|
|
94
|
+
default: string;
|
|
95
|
+
};
|
|
96
|
+
'enable-async-loading': {
|
|
97
|
+
describe: string;
|
|
98
|
+
type: "boolean";
|
|
99
|
+
default: boolean;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Register serve command
|
|
104
|
+
*/
|
|
105
|
+
export declare function setupServeCommand(yargs: Argv): Argv;
|
|
106
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/serve/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAIlC;;;;GAIG;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+FzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA0CnD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { globalOptions } from '../../globalOptions.js';
|
|
2
|
+
import { PORT, HOST } from '../../constants.js';
|
|
3
|
+
/**
|
|
4
|
+
* Serve command group entry point.
|
|
5
|
+
*
|
|
6
|
+
* Starts the 1mcp server with various transport options and configurations.
|
|
7
|
+
*/
|
|
8
|
+
// Define server options that should be available for serve commands and default command
|
|
9
|
+
export const serverOptions = {
|
|
10
|
+
transport: {
|
|
11
|
+
alias: 't',
|
|
12
|
+
describe: 'Transport type to use (stdio or http, sse is deprecated)',
|
|
13
|
+
type: 'string',
|
|
14
|
+
choices: ['stdio', 'http', 'sse'],
|
|
15
|
+
default: 'http',
|
|
16
|
+
},
|
|
17
|
+
port: {
|
|
18
|
+
alias: 'P',
|
|
19
|
+
describe: 'HTTP port to listen on, applicable when transport is http',
|
|
20
|
+
type: 'number',
|
|
21
|
+
default: PORT,
|
|
22
|
+
},
|
|
23
|
+
host: {
|
|
24
|
+
alias: 'H',
|
|
25
|
+
describe: 'HTTP host to listen on, applicable when transport is http',
|
|
26
|
+
type: 'string',
|
|
27
|
+
default: HOST,
|
|
28
|
+
},
|
|
29
|
+
'external-url': {
|
|
30
|
+
alias: 'u',
|
|
31
|
+
describe: 'External URL for the server (used for OAuth callbacks and public URLs)',
|
|
32
|
+
type: 'string',
|
|
33
|
+
default: undefined,
|
|
34
|
+
},
|
|
35
|
+
filter: {
|
|
36
|
+
alias: 'f',
|
|
37
|
+
describe: 'Filter expression for server selection (supports simple comma-separated or advanced boolean logic)',
|
|
38
|
+
type: 'string',
|
|
39
|
+
default: undefined,
|
|
40
|
+
},
|
|
41
|
+
pagination: {
|
|
42
|
+
alias: 'p',
|
|
43
|
+
describe: 'Enable pagination',
|
|
44
|
+
type: 'boolean',
|
|
45
|
+
default: false,
|
|
46
|
+
},
|
|
47
|
+
auth: {
|
|
48
|
+
describe: 'Enable authentication (OAuth 2.1) - deprecated, use --enable-auth',
|
|
49
|
+
type: 'boolean',
|
|
50
|
+
default: false,
|
|
51
|
+
},
|
|
52
|
+
'enable-auth': {
|
|
53
|
+
describe: 'Enable authentication (OAuth 2.1)',
|
|
54
|
+
type: 'boolean',
|
|
55
|
+
default: false,
|
|
56
|
+
},
|
|
57
|
+
'enable-scope-validation': {
|
|
58
|
+
describe: 'Enable tag-based scope validation',
|
|
59
|
+
type: 'boolean',
|
|
60
|
+
default: true,
|
|
61
|
+
},
|
|
62
|
+
'enable-enhanced-security': {
|
|
63
|
+
describe: 'Enable enhanced security middleware',
|
|
64
|
+
type: 'boolean',
|
|
65
|
+
default: false,
|
|
66
|
+
},
|
|
67
|
+
'session-ttl': {
|
|
68
|
+
describe: 'Session expiry time in minutes',
|
|
69
|
+
type: 'number',
|
|
70
|
+
default: 24 * 60, // 24 hours
|
|
71
|
+
},
|
|
72
|
+
'session-storage-path': {
|
|
73
|
+
describe: 'Custom session storage directory path',
|
|
74
|
+
type: 'string',
|
|
75
|
+
default: undefined,
|
|
76
|
+
},
|
|
77
|
+
'rate-limit-window': {
|
|
78
|
+
describe: 'OAuth rate limit window in minutes',
|
|
79
|
+
type: 'number',
|
|
80
|
+
default: 15,
|
|
81
|
+
},
|
|
82
|
+
'rate-limit-max': {
|
|
83
|
+
describe: 'Maximum requests per OAuth rate limit window',
|
|
84
|
+
type: 'number',
|
|
85
|
+
default: 100,
|
|
86
|
+
},
|
|
87
|
+
'trust-proxy': {
|
|
88
|
+
describe: 'Trust proxy configuration for Express.js (boolean, IP address, subnet, or preset: loopback, linklocal, uniquelocal)',
|
|
89
|
+
type: 'string',
|
|
90
|
+
default: 'loopback',
|
|
91
|
+
},
|
|
92
|
+
'health-info-level': {
|
|
93
|
+
describe: 'Health endpoint information detail level (full, basic, minimal)',
|
|
94
|
+
type: 'string',
|
|
95
|
+
choices: ['full', 'basic', 'minimal'],
|
|
96
|
+
default: 'minimal',
|
|
97
|
+
},
|
|
98
|
+
'enable-async-loading': {
|
|
99
|
+
describe: 'Enable asynchronous MCP server loading with listChanged notifications',
|
|
100
|
+
type: 'boolean',
|
|
101
|
+
default: false,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Register serve command
|
|
106
|
+
*/
|
|
107
|
+
export function setupServeCommand(yargs) {
|
|
108
|
+
return yargs.command('serve', 'Start the 1mcp server', (yargs) => {
|
|
109
|
+
return yargs
|
|
110
|
+
.options(globalOptions || {})
|
|
111
|
+
.options(serverOptions)
|
|
112
|
+
.example([
|
|
113
|
+
['$0 serve', 'Start server with HTTP transport (default)'],
|
|
114
|
+
['$0 serve --transport=stdio', 'Start server with stdio transport'],
|
|
115
|
+
['$0 serve --port=3000', 'Start HTTP server on port 3000'],
|
|
116
|
+
['$0 serve --filter="web,api"', 'Start server with filtered MCP servers'],
|
|
117
|
+
['$0 serve --enable-auth', 'Start server with OAuth authentication enabled'],
|
|
118
|
+
]).epilogue(`
|
|
119
|
+
TRANSPORT OPTIONS:
|
|
120
|
+
stdio: Use stdin/stdout for communication (for programmatic use)
|
|
121
|
+
http: Use HTTP server with SSE for web-based clients (default)
|
|
122
|
+
|
|
123
|
+
FILTERING:
|
|
124
|
+
Use --filter to limit which MCP servers are exposed:
|
|
125
|
+
• Simple: "web,api,database" (OR logic)
|
|
126
|
+
• Advanced: "web AND database" or "(web OR api) AND database"
|
|
127
|
+
|
|
128
|
+
AUTHENTICATION:
|
|
129
|
+
Use --enable-auth to enable OAuth 2.1 authentication with scope validation.
|
|
130
|
+
Configure OAuth providers in your MCP configuration file.
|
|
131
|
+
|
|
132
|
+
For more information: https://github.com/1mcp-app/agent
|
|
133
|
+
`);
|
|
134
|
+
}, async (argv) => {
|
|
135
|
+
const { configureGlobalLogger } = await import('../../utils/configureGlobalLogger.js');
|
|
136
|
+
const { serveCommand } = await import('./serve.js');
|
|
137
|
+
// Configure logger with global options and transport awareness
|
|
138
|
+
configureGlobalLogger(argv, argv.transport);
|
|
139
|
+
// Execute serve command
|
|
140
|
+
await serveCommand(argv);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/serve/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface ServeOptions {
|
|
2
|
+
config?: string;
|
|
3
|
+
'config-dir'?: string;
|
|
4
|
+
'log-level'?: string;
|
|
5
|
+
'log-file'?: string;
|
|
6
|
+
transport: string;
|
|
7
|
+
port: number;
|
|
8
|
+
host: string;
|
|
9
|
+
'external-url'?: string;
|
|
10
|
+
filter?: string;
|
|
11
|
+
pagination: boolean;
|
|
12
|
+
auth: boolean;
|
|
13
|
+
'enable-auth': boolean;
|
|
14
|
+
'enable-scope-validation': boolean;
|
|
15
|
+
'enable-enhanced-security': boolean;
|
|
16
|
+
'session-ttl': number;
|
|
17
|
+
'session-storage-path'?: string;
|
|
18
|
+
'rate-limit-window': number;
|
|
19
|
+
'rate-limit-max': number;
|
|
20
|
+
'trust-proxy': string;
|
|
21
|
+
'health-info-level': string;
|
|
22
|
+
'enable-async-loading': boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Start the server using the specified transport.
|
|
26
|
+
*/
|
|
27
|
+
export declare function serveCommand(parsedArgv: ServeOptions): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/commands/serve/serve.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;IACnC,0BAA0B,EAAE,OAAO,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAoED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgK1E"}
|