@alcyone-labs/arg-parser 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +456 -1301
  2. package/dist/assets/.dxtignore.template +38 -0
  3. package/dist/assets/logo_1_small.jpg +0 -0
  4. package/dist/assets/tsdown.dxt.config.ts +37 -0
  5. package/dist/index.cjs +5871 -3847
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.min.mjs +9877 -7956
  8. package/dist/index.min.mjs.map +1 -1
  9. package/dist/index.mjs +5854 -3838
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/src/config/ConfigurationManager.d.ts +74 -0
  12. package/dist/src/config/ConfigurationManager.d.ts.map +1 -0
  13. package/dist/src/config/plugins/ConfigPlugin.d.ts +60 -0
  14. package/dist/src/config/plugins/ConfigPlugin.d.ts.map +1 -0
  15. package/dist/src/config/plugins/ConfigPluginRegistry.d.ts +72 -0
  16. package/dist/src/config/plugins/ConfigPluginRegistry.d.ts.map +1 -0
  17. package/dist/src/config/plugins/TomlConfigPlugin.d.ts +30 -0
  18. package/dist/src/config/plugins/TomlConfigPlugin.d.ts.map +1 -0
  19. package/dist/src/config/plugins/YamlConfigPlugin.d.ts +29 -0
  20. package/dist/src/config/plugins/YamlConfigPlugin.d.ts.map +1 -0
  21. package/dist/src/config/plugins/index.d.ts +5 -0
  22. package/dist/src/config/plugins/index.d.ts.map +1 -0
  23. package/dist/src/core/ArgParser.d.ts +332 -0
  24. package/dist/src/core/ArgParser.d.ts.map +1 -0
  25. package/dist/src/{ArgParserBase.d.ts → core/ArgParserBase.d.ts} +84 -3
  26. package/dist/src/core/ArgParserBase.d.ts.map +1 -0
  27. package/dist/src/core/FlagManager.d.ts.map +1 -0
  28. package/dist/src/{types.d.ts → core/types.d.ts} +29 -0
  29. package/dist/src/core/types.d.ts.map +1 -0
  30. package/dist/src/dxt/DxtGenerator.d.ts +115 -0
  31. package/dist/src/dxt/DxtGenerator.d.ts.map +1 -0
  32. package/dist/src/index.d.ts +10 -6
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/mcp/ArgParserMcp.d.ts +21 -0
  35. package/dist/src/mcp/ArgParserMcp.d.ts.map +1 -0
  36. package/dist/src/mcp/mcp-integration.d.ts +83 -0
  37. package/dist/src/mcp/mcp-integration.d.ts.map +1 -0
  38. package/dist/src/mcp/mcp-notifications.d.ts +138 -0
  39. package/dist/src/mcp/mcp-notifications.d.ts.map +1 -0
  40. package/dist/src/mcp/mcp-prompts.d.ts +132 -0
  41. package/dist/src/mcp/mcp-prompts.d.ts.map +1 -0
  42. package/dist/src/mcp/mcp-resources.d.ts +133 -0
  43. package/dist/src/mcp/mcp-resources.d.ts.map +1 -0
  44. package/dist/src/testing/fuzzy-test-cli.d.ts +5 -0
  45. package/dist/src/testing/fuzzy-test-cli.d.ts.map +1 -0
  46. package/dist/src/{fuzzy-tester.d.ts → testing/fuzzy-tester.d.ts} +1 -1
  47. package/dist/src/testing/fuzzy-tester.d.ts.map +1 -0
  48. package/package.json +31 -17
  49. package/dist/src/ArgParser.d.ts +0 -148
  50. package/dist/src/ArgParser.d.ts.map +0 -1
  51. package/dist/src/ArgParserBase.d.ts.map +0 -1
  52. package/dist/src/FlagManager.d.ts.map +0 -1
  53. package/dist/src/fuzzy-test-cli.d.ts +0 -5
  54. package/dist/src/fuzzy-test-cli.d.ts.map +0 -1
  55. package/dist/src/fuzzy-tester.d.ts.map +0 -1
  56. package/dist/src/mcp-integration.d.ts +0 -31
  57. package/dist/src/mcp-integration.d.ts.map +0 -1
  58. package/dist/src/types.d.ts.map +0 -1
  59. /package/dist/src/{FlagManager.d.ts → core/FlagManager.d.ts} +0 -0
@@ -1,4 +1,7 @@
1
- import type { IFlag, IHandlerContext, ISubCommand, ProcessedFlag, TParsedArgs } from "./types";
1
+ import type { IFlag, IHandlerContext, ISubCommand, ProcessedFlag, TParsedArgs, ParseResult } from "./types";
2
+ import { McpResourcesManager, McpResourceConfig } from "../mcp/mcp-resources.js";
3
+ import { McpPromptsManager, McpPromptConfig } from "../mcp/mcp-prompts.js";
4
+ import { McpNotificationsManager, McpChangeType } from "../mcp/mcp-notifications.js";
2
5
  export declare class ArgParserError extends Error {
3
6
  cmdChain: string[];
4
7
  commandChain: string[];
@@ -52,6 +55,13 @@ export interface IArgParserParams<THandlerReturn = any> {
52
55
  * @default true
53
56
  */
54
57
  handleErrors?: boolean;
58
+ /**
59
+ * Whether to automatically call process.exit() based on ParseResult.
60
+ * When true (default), maintains backward compatibility with CLI behavior.
61
+ * When false, returns ParseResult objects for programmatic use.
62
+ * @default true
63
+ */
64
+ autoExit?: boolean;
55
65
  /**
56
66
  * The command name to display in help suggestions (e.g., 'dabl').
57
67
  * If not provided, it falls back to guessing from the script path.
@@ -65,7 +75,7 @@ export interface IArgParserParams<THandlerReturn = any> {
65
75
  */
66
76
  inheritParentFlags?: boolean;
67
77
  }
68
- interface IParseOptions {
78
+ export interface IParseOptions {
69
79
  /**
70
80
  * When true, skips help flag processing (doesn't exit or show help)
71
81
  * @default false
@@ -76,6 +86,12 @@ interface IParseOptions {
76
86
  * @default false
77
87
  */
78
88
  skipHandlers?: boolean;
89
+ /**
90
+ * When true (default), automatically awaits async handlers before returning.
91
+ * When false, returns immediately with _asyncHandlerPromise for manual handling.
92
+ * @default true
93
+ */
94
+ deep?: boolean;
79
95
  }
80
96
  type TParsedArgsWithRouting<T = any> = T & {
81
97
  $commandChain?: string[];
@@ -93,6 +109,12 @@ export declare class ArgParserBase<THandlerReturn = any> {
93
109
  getAppCommandName(): string | undefined;
94
110
  getSubCommandName(): string;
95
111
  getDescription(): string | undefined;
112
+ getAutoExit(): boolean;
113
+ /**
114
+ * Helper method to handle exit logic based on autoExit setting
115
+ * Returns a ParseResult instead of calling process.exit() when autoExit is false
116
+ */
117
+ private _handleExit;
96
118
  getHandler(): ((ctx: IHandlerContext) => void) | undefined;
97
119
  getSubCommands(): Map<string, ISubCommand>;
98
120
  private _addToOutput;
@@ -109,7 +131,14 @@ export declare class ArgParserBase<THandlerReturn = any> {
109
131
  */
110
132
  setHandler(handler: (ctx: IHandlerContext<any, any>) => THandlerReturn | Promise<THandlerReturn>): this;
111
133
  printAll(filePath?: string): void;
112
- parse(processArgs: string[], options?: IParseOptions): TParsedArgsWithRouting<any>;
134
+ parse(processArgs: string[], options?: IParseOptions): Promise<TParsedArgsWithRouting<any> | ParseResult>;
135
+ /**
136
+ * Alias for parse() method for backward compatibility
137
+ * Since parse() is already async, this just calls parse()
138
+ *
139
+ * @deprecated Use parse() instead. This method will be removed in a future version.
140
+ */
141
+ parseAsync(processArgs: string[], options?: IParseOptions): Promise<TParsedArgsWithRouting<any> | ParseResult>;
113
142
  /**
114
143
  * Recursive helper for parsing arguments and handling sub-commands.
115
144
  * This method assumes the global help check has already been performed in `parse`.
@@ -120,6 +149,58 @@ export declare class ArgParserBase<THandlerReturn = any> {
120
149
  hasFlag(name: string): boolean;
121
150
  getCommandChain(): string[];
122
151
  getLastParseResult(): TParsedArgs<ProcessedFlag[]>;
152
+ /**
153
+ * Add an MCP resource to this parser
154
+ */
155
+ addMcpResource(config: McpResourceConfig): this;
156
+ /**
157
+ * Remove an MCP resource by name
158
+ */
159
+ removeMcpResource(name: string): this;
160
+ /**
161
+ * Get all registered MCP resources
162
+ */
163
+ getMcpResources(): McpResourceConfig[];
164
+ /**
165
+ * Add an MCP prompt to this parser
166
+ */
167
+ addMcpPrompt(config: McpPromptConfig): this;
168
+ /**
169
+ * Remove an MCP prompt by name
170
+ */
171
+ removeMcpPrompt(name: string): this;
172
+ /**
173
+ * Get all registered MCP prompts
174
+ */
175
+ getMcpPrompts(): McpPromptConfig[];
176
+ /**
177
+ * Add a change listener for MCP entities
178
+ */
179
+ onMcpChange(listener: (event: {
180
+ type: McpChangeType;
181
+ action: string;
182
+ entityName?: string;
183
+ }) => void): this;
184
+ /**
185
+ * Remove a change listener for MCP entities
186
+ */
187
+ offMcpChange(listener: (event: {
188
+ type: McpChangeType;
189
+ action: string;
190
+ entityName?: string;
191
+ }) => void): this;
192
+ /**
193
+ * Get the MCP notifications manager (for advanced usage)
194
+ */
195
+ getMcpNotificationsManager(): McpNotificationsManager;
196
+ /**
197
+ * Get the MCP resources manager (for advanced usage)
198
+ */
199
+ getMcpResourcesManager(): McpResourcesManager;
200
+ /**
201
+ * Get the MCP prompts manager (for advanced usage)
202
+ */
203
+ getMcpPromptsManager(): McpPromptsManager;
123
204
  }
124
205
  export {};
125
206
  //# sourceMappingURL=ArgParserBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../../src/core/ArgParserBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../../src/core/FlagManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,WAAW;;gBAKpB,OAAO,GAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAO,EAClD,YAAY,GAAE,SAAS,KAAK,EAAO;IAMrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa;IAwC5C,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAoB1B,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAQnE,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI;IAOvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD,IAAI,KAAK,IAAI,aAAa,EAAE,CAE3B;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;CACF"}
@@ -77,6 +77,8 @@ export type IFlag = IFlagCore & {
77
77
  default?: any;
78
78
  /** @alias mandatory */
79
79
  required?: boolean | ((parsedArgs: TParsedArgs<any>) => boolean);
80
+ /** Environment variables that should be set from this flag's value in DXT packages */
81
+ env?: string | string[];
80
82
  };
81
83
  /**
82
84
  * A more refined type for a flag after it has been fully processed by ArgParser,
@@ -155,6 +157,33 @@ export interface ISubCommand<TSubCommandFlags extends FlagsArray = FlagsArray, T
155
157
  /** MCP tool generation options for DXT generation */
156
158
  mcpToolOptions?: any;
157
159
  }
160
+ /**
161
+ * Result of parsing operations that replaces process.exit() calls.
162
+ * Provides structured information about the parsing outcome.
163
+ */
164
+ export interface ParseResult<T = any> {
165
+ /** Whether the parsing was successful */
166
+ success: boolean;
167
+ /** Exit code that would have been used with process.exit() */
168
+ exitCode: number;
169
+ /** The parsed data/result when successful */
170
+ data?: T;
171
+ /** Human-readable message about the result */
172
+ message?: string;
173
+ /** Whether the process should exit (for help, version, etc.) */
174
+ shouldExit?: boolean;
175
+ /** Type of result for better handling */
176
+ type?: 'success' | 'error' | 'help' | 'version' | 'debug';
177
+ }
178
+ /**
179
+ * Configuration options for ArgParser behavior
180
+ */
181
+ export interface ArgParserOptions {
182
+ /** Whether to automatically call process.exit() based on ParseResult (default: true for backward compatibility) */
183
+ autoExit?: boolean;
184
+ /** Whether to handle errors by exiting or throwing (default: true for backward compatibility) */
185
+ handleErrors?: boolean;
186
+ }
158
187
  /**
159
188
  * Type for the main handler of an ArgParser instance (root command or a command defined by an ArgParser).
160
189
  * @template TParserFlags Flags defined for this ArgParser instance.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import type { ParseResult } from "../core/types";
2
+ /**
3
+ * DxtGenerator handles the generation of DXT (Desktop Extension) packages
4
+ * for MCP servers created from ArgParser instances.
5
+ */
6
+ export declare class DxtGenerator {
7
+ private argParserInstance;
8
+ constructor(argParserInstance: any);
9
+ /**
10
+ * Helper method to handle exit logic based on autoExit setting
11
+ */
12
+ private _handleExit;
13
+ /**
14
+ * Handles the --s-build-dxt system flag to generate DXT packages for MCP servers
15
+ */
16
+ handleBuildDxtFlag(processArgs: string[], buildDxtIndex: number): Promise<boolean | ParseResult>;
17
+ /**
18
+ * Handles DXT generation in test mode by creating mock DXT package structure
19
+ */
20
+ private handleTestModeDxtGeneration;
21
+ /**
22
+ * Generates a DXT package for the unified MCP server
23
+ * Now supports both withMcp() configuration and legacy addMcpSubCommand()
24
+ */
25
+ generateDxtPackage(mcpSubCommand?: any, outputDir?: string): Promise<void>;
26
+ /**
27
+ * Reads package.json to extract fallback information for DXT manifest
28
+ */
29
+ private readPackageJsonInfo;
30
+ /**
31
+ * Extracts server information from MCP configuration
32
+ * Now supports both withMcp() configuration and legacy addMcpSubCommand()
33
+ */
34
+ private extractMcpServerInfo;
35
+ private generateMcpToolsForDxt;
36
+ private createDxtManifest;
37
+ private validateDxtManifest;
38
+ private createServerScript;
39
+ private createDxtPackageJson;
40
+ /**
41
+ * Creates a .dxtignore file to exclude build artifacts and unnecessary files
42
+ */
43
+ private createDxtIgnore;
44
+ /**
45
+ * Creates a simple build script that uses TSDown bundling and Anthropic's dxt pack
46
+ */
47
+ private createSimpleBuildScript;
48
+ private createDxtReadme;
49
+ /**
50
+ * Maps ArgParser flag types to DXT user config types
51
+ */
52
+ private mapFlagTypeToUserConfigType;
53
+ /**
54
+ * Generates CLI arguments for DXT manifest based on ArgParser flags
55
+ */
56
+ private generateCliArgsForDxt;
57
+ /**
58
+ * Generates environment variables and user config for DXT manifest
59
+ */
60
+ private generateEnvAndUserConfig;
61
+ /**
62
+ * Generates a user-friendly title for user config fields
63
+ */
64
+ private generateUserConfigTitle;
65
+ /**
66
+ * Checks if a field should be marked as sensitive in user config
67
+ */
68
+ private isSensitiveField;
69
+ /**
70
+ * Adds the logo to the build folder if available
71
+ * @returns The filename of the logo that was added, or undefined if no logo was added
72
+ */
73
+ private addLogoToFolder;
74
+ /**
75
+ * Processes CLI source code to replace global console with MCP-compliant Logger
76
+ */
77
+ private processCliSourceForMcp;
78
+ /**
79
+ * Adds the original CLI source to the build folder for handler execution
80
+ */
81
+ private addOriginalCliToFolder;
82
+ /**
83
+ * Builds a complete DXT package using TSDown CLI for autonomous execution
84
+ */
85
+ private buildDxtWithTsdown;
86
+ /**
87
+ * Bundles the original CLI using TSDown for autonomous execution (legacy method)
88
+ */
89
+ private bundleOriginalCliWithTsdown;
90
+ /**
91
+ * Checks if a module ID is a Node.js built-in
92
+ */
93
+ private isNodeBuiltin;
94
+ /**
95
+ * Gets the TSDown configuration content as a string
96
+ */
97
+ private getTsdownConfigContent;
98
+ /**
99
+ * Gets the path to the .dxtignore template file in assets
100
+ */
101
+ private getDxtIgnoreTemplatePath;
102
+ /**
103
+ * Sets up DXT package files (manifest.json) in the dxt output directory
104
+ */
105
+ private setupDxtPackageFiles;
106
+ /**
107
+ * Maps ArgParser flag types to JSON Schema types
108
+ */
109
+ private mapFlagTypeToJsonSchema;
110
+ /**
111
+ * Manually copy logo since TSDown's copy option doesn't work programmatically
112
+ */
113
+ private copyLogoManually;
114
+ }
115
+ //# sourceMappingURL=DxtGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DxtGenerator.d.ts","sourceRoot":"","sources":["../../../src/dxt/DxtGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,iBAAiB,CAAM;gBAEnB,iBAAiB,EAAE,GAAG;IAIlC;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACU,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;IAmC7G;;OAEG;YACW,2BAA2B;IA2EzC;;;OAGG;IACU,kBAAkB,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0FvF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,sBAAsB;IA8D9B,OAAO,CAAC,iBAAiB;IAiFzB,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,oBAAoB;IA8D5B;;OAEG;IACH,OAAO,CAAC,eAAe;IA4CvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqF/B,OAAO,CAAC,eAAe;IAkGvB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAwBnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8DhC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;;OAGG;YACW,eAAe;IAqF7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2D9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmJ9B;;OAEG;YACW,kBAAkB;IAuHhC;;OAEG;YACW,2BAA2B;IAiIzC;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyD9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4BhC;;OAEG;YACW,oBAAoB;IA4JlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;OAEG;YACW,gBAAgB;CAgC/B"}
@@ -1,7 +1,11 @@
1
- export { ArgParserBase, ArgParserError } from "./ArgParserBase";
2
- export { ArgParser, type McpTransportConfig, type McpSubCommandOptions } from "./ArgParser";
3
- export { zodFlagSchema, type IFlagCore, type IFlag, type ProcessedFlagCore, type ProcessedFlag, type TParsedArgsTypeFromFlagDef, type FlagsArray, type ResolveType, type ExtractFlagType, type TParsedArgs, type IHandlerContext, type MainHandler, type ISubCommand, type ArgParserInstance, } from "./types";
4
- export { generateMcpToolsFromArgParser, type IMcpToolStructure, type GenerateMcpToolsOptions, type IParseExecutionResult, } from "./mcp-integration";
5
- export { ArgParserFuzzyTester } from "./fuzzy-tester";
6
- export type { FuzzyTestOptions, TestResult, FuzzyTestReport } from "./fuzzy-tester";
1
+ export { ArgParserBase, ArgParserError, type IParseOptions } from "./core/ArgParserBase";
2
+ export { ArgParser, type McpTransportConfig, type McpSubCommandOptions, type DxtServerInfo, type McpServerOptions, type WithMcpOptions, type McpToolConfig, type ToolConfig } from "./core/ArgParser";
3
+ export { ArgParserMcp, createMcpArgParser } from "./mcp/ArgParserMcp";
4
+ export { zodFlagSchema, type IFlagCore, type IFlag, type ProcessedFlagCore, type ProcessedFlag, type TParsedArgsTypeFromFlagDef, type FlagsArray, type ResolveType, type ExtractFlagType, type TParsedArgs, type IHandlerContext, type MainHandler, type ISubCommand, type ArgParserInstance, } from "./core/types";
5
+ export { generateMcpToolsFromArgParser, type IMcpToolStructure, type GenerateMcpToolsOptions, type IParseExecutionResult, type SimplifiedToolResponse, extractSimplifiedResponse, convertFlagToJsonSchemaProperty, convertFlagsToJsonSchema, convertFlagsToZodSchema, createMcpSuccessResponse, createMcpErrorResponse, type McpResponse, } from "./mcp/mcp-integration";
6
+ export { type IConfigPlugin, ConfigPlugin, JsonConfigPlugin, EnvConfigPlugin, ConfigPluginRegistry, globalConfigPluginRegistry, enableOptionalConfigPlugins, enableOptionalConfigPluginsAsync, enableConfigPlugins, TomlConfigPlugin, createTomlPlugin, createTomlPluginAsync, YamlConfigPlugin, createYamlPlugin, createYamlPluginAsync, } from "./config/plugins";
7
+ export { ArgParserFuzzyTester } from "./testing/fuzzy-tester";
8
+ export type { FuzzyTestOptions, TestResult, FuzzyTestReport } from "./testing/fuzzy-tester";
9
+ export { default as SimpleChalk } from "@alcyone-labs/simple-chalk";
10
+ export { Logger, logger, createMcpLogger, createCliLogger, type LogLevel, type LoggerConfig } from "@alcyone-labs/simple-mcp-logger";
7
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,SAAS,EACT,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EACL,SAAS,EACT,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,yBAAyB,EACzB,+BAA+B,EAC/B,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,aAAa,EAClB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG5F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EACL,MAAM,EACN,MAAM,EACN,eAAe,EACf,eAAe,EACf,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { ArgParser } from "../core/ArgParser";
2
+ import type { IArgParserParams } from "../core/ArgParserBase";
3
+ import type { IFlag } from "../core/types";
4
+ /**
5
+ * MCP-optimized ArgParser that excludes config file functionality
6
+ * This version doesn't load any config plugins, making it suitable for
7
+ * autonomous builds where TOML/YAML dependencies cause bundling issues.
8
+ */
9
+ export declare class ArgParserMcp<THandlerReturn = any> extends ArgParser<THandlerReturn> {
10
+ constructor(params?: IArgParserParams<THandlerReturn>, initialFlags?: IFlag[]);
11
+ /**
12
+ * Override parse to skip config file processing
13
+ */
14
+ parse(processArgs: string[], options?: any): any;
15
+ }
16
+ /**
17
+ * Convenience function to create MCP-optimized ArgParser
18
+ * This is the recommended way to create ArgParser instances for MCP servers
19
+ */
20
+ export declare function createMcpArgParser<THandlerReturn = any>(params?: IArgParserParams<THandlerReturn>, initialFlags?: IFlag[]): ArgParserMcp<THandlerReturn>;
21
+ //# sourceMappingURL=ArgParserMcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgParserMcp.d.ts","sourceRoot":"","sources":["../../../src/mcp/ArgParserMcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;GAIG;AACH,qBAAa,YAAY,CAAC,cAAc,GAAG,GAAG,CAAE,SAAQ,SAAS,CAAC,cAAc,CAAC;gBACnE,MAAM,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE;IAS7E;;OAEG;IACI,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG;CAUxD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,GAAG,GAAG,EACrD,MAAM,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,EACzC,YAAY,CAAC,EAAE,KAAK,EAAE,GACrB,YAAY,CAAC,cAAc,CAAC,CAE9B"}
@@ -0,0 +1,83 @@
1
+ import type { ZodTypeAny } from "zod";
2
+ import { ArgParserBase } from "../core/ArgParserBase";
3
+ import type { IFlag, ProcessedFlag, TParsedArgs } from "../core/types";
4
+ /**
5
+ * Standard MCP response format
6
+ */
7
+ export interface McpResponse {
8
+ content: Array<{
9
+ type: "text";
10
+ text: string;
11
+ }>;
12
+ isError?: boolean;
13
+ }
14
+ /**
15
+ * Create a standardized MCP success response
16
+ */
17
+ export declare function createMcpSuccessResponse(data: any): McpResponse;
18
+ /**
19
+ * Create a standardized MCP error response
20
+ */
21
+ export declare function createMcpErrorResponse(error: string | Error): McpResponse;
22
+ /**
23
+ * Convert a single ArgParser flag to JSON Schema property
24
+ */
25
+ export declare function convertFlagToJsonSchemaProperty(flag: IFlag | ProcessedFlag): {
26
+ property: any;
27
+ isRequired: boolean;
28
+ };
29
+ /**
30
+ * Convert ArgParser flags to MCP JSON Schema
31
+ */
32
+ export declare function convertFlagsToJsonSchema(flags: readonly (IFlag | ProcessedFlag)[]): {
33
+ type: "object";
34
+ properties: Record<string, any>;
35
+ required: string[];
36
+ };
37
+ /**
38
+ * Convert ArgParser flags to Zod schema for MCP tools
39
+ */
40
+ export declare function convertFlagsToZodSchema(flags: readonly (IFlag | ProcessedFlag)[]): ZodTypeAny;
41
+ /**
42
+ * Simplified response format for testing and validation
43
+ */
44
+ export interface SimplifiedToolResponse {
45
+ success: boolean;
46
+ data?: any;
47
+ error?: string;
48
+ message?: string;
49
+ exitCode?: number;
50
+ }
51
+ /**
52
+ * Extract simplified response from MCP protocol response
53
+ */
54
+ export declare function extractSimplifiedResponse(mcpResponse: any): SimplifiedToolResponse;
55
+ export interface IMcpToolStructure {
56
+ name: string;
57
+ description?: string;
58
+ inputSchema: ZodTypeAny;
59
+ outputSchema?: ZodTypeAny;
60
+ execute: (args: any) => Promise<any>;
61
+ executeForTesting?: (args: any) => Promise<SimplifiedToolResponse>;
62
+ }
63
+ export interface GenerateMcpToolsOptions {
64
+ outputSchemaMap?: Record<string, ZodTypeAny>;
65
+ defaultOutputSchema?: ZodTypeAny;
66
+ generateToolName?: (commandPath: string[], appName?: string) => string;
67
+ includeSubCommands?: boolean;
68
+ toolNamePrefix?: string;
69
+ toolNameSuffix?: string;
70
+ }
71
+ interface ISpecialParseResultProps {
72
+ $commandChain?: string[];
73
+ $error?: {
74
+ type: string;
75
+ message: string;
76
+ details?: any;
77
+ };
78
+ handlerResponse?: any;
79
+ }
80
+ export type IParseExecutionResult = TParsedArgs<ProcessedFlag[]> & ISpecialParseResultProps;
81
+ export declare function generateMcpToolsFromArgParser(rootParser: ArgParserBase, options?: GenerateMcpToolsOptions): IMcpToolStructure[];
82
+ export {};
83
+ //# sourceMappingURL=mcp-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-integration.d.ts","sourceRoot":"","sources":["../../../src/mcp/mcp-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * MCP Change Notifications System
3
+ *
4
+ * This module provides functionality for managing MCP change notifications,
5
+ * allowing clients to subscribe to changes in tools, resources, and prompts.
6
+ */
7
+ /**
8
+ * Types of MCP entities that can change
9
+ */
10
+ export type McpChangeType = 'tools' | 'resources' | 'prompts';
11
+ /**
12
+ * Change notification event
13
+ */
14
+ export interface McpChangeEvent {
15
+ type: McpChangeType;
16
+ timestamp: Date;
17
+ action: 'added' | 'removed' | 'updated';
18
+ entityName?: string;
19
+ }
20
+ /**
21
+ * Change listener function type
22
+ */
23
+ export type McpChangeListener = (event: McpChangeEvent) => void;
24
+ /**
25
+ * Client subscription information
26
+ */
27
+ export interface McpClientSubscription {
28
+ clientId: string;
29
+ subscriptions: Set<McpChangeType>;
30
+ connection: any;
31
+ }
32
+ /**
33
+ * MCP Change Notifications Manager
34
+ *
35
+ * Manages client subscriptions and change notifications for MCP entities
36
+ */
37
+ export declare class McpNotificationsManager {
38
+ private clients;
39
+ private globalListeners;
40
+ private changeHistory;
41
+ private maxHistorySize;
42
+ /**
43
+ * Add a client connection
44
+ */
45
+ addClient(clientId: string, connection: any): void;
46
+ /**
47
+ * Remove a client connection
48
+ */
49
+ removeClient(clientId: string): void;
50
+ /**
51
+ * Subscribe a client to changes of a specific type
52
+ */
53
+ subscribe(clientId: string, type: McpChangeType): void;
54
+ /**
55
+ * Unsubscribe a client from changes of a specific type
56
+ */
57
+ unsubscribe(clientId: string, type: McpChangeType): void;
58
+ /**
59
+ * Subscribe a client to all change types
60
+ */
61
+ subscribeToAll(clientId: string): void;
62
+ /**
63
+ * Unsubscribe a client from all change types
64
+ */
65
+ unsubscribeFromAll(clientId: string): void;
66
+ /**
67
+ * Get client subscription status
68
+ */
69
+ getClientSubscriptions(clientId: string): Set<McpChangeType> | undefined;
70
+ /**
71
+ * Check if a client is subscribed to a specific change type
72
+ */
73
+ isClientSubscribed(clientId: string, type: McpChangeType): boolean;
74
+ /**
75
+ * Notify all subscribed clients of a change
76
+ */
77
+ notifyChange(type: McpChangeType, action: 'added' | 'removed' | 'updated', entityName?: string): void;
78
+ /**
79
+ * Add a global change listener (not client-specific)
80
+ */
81
+ addGlobalListener(listener: McpChangeListener): void;
82
+ /**
83
+ * Remove a global change listener
84
+ */
85
+ removeGlobalListener(listener: McpChangeListener): void;
86
+ /**
87
+ * Get change history
88
+ */
89
+ getChangeHistory(limit?: number): McpChangeEvent[];
90
+ /**
91
+ * Clear change history
92
+ */
93
+ clearHistory(): void;
94
+ /**
95
+ * Get connected client count
96
+ */
97
+ getClientCount(): number;
98
+ /**
99
+ * Get subscription statistics
100
+ */
101
+ getSubscriptionStats(): Record<McpChangeType, number>;
102
+ /**
103
+ * Send notification to a specific client
104
+ */
105
+ private sendNotificationToClient;
106
+ /**
107
+ * Add event to change history
108
+ */
109
+ private addToHistory;
110
+ /**
111
+ * Set maximum history size
112
+ */
113
+ setMaxHistorySize(size: number): void;
114
+ /**
115
+ * Clear all subscriptions and clients
116
+ */
117
+ clear(): void;
118
+ }
119
+ /**
120
+ * Utility functions for working with change notifications
121
+ */
122
+ /**
123
+ * Create a debounced change notifier to batch rapid changes
124
+ */
125
+ export declare function createDebouncedNotifier(manager: McpNotificationsManager, delay?: number): (type: McpChangeType, action: 'added' | 'removed' | 'updated', entityName?: string) => void;
126
+ /**
127
+ * Create a filtered change listener that only responds to specific types
128
+ */
129
+ export declare function createFilteredListener(types: McpChangeType[], listener: McpChangeListener): McpChangeListener;
130
+ /**
131
+ * Create a logging change listener for debugging
132
+ */
133
+ export declare function createLoggingListener(prefix?: string): McpChangeListener;
134
+ /**
135
+ * Default global notifications manager instance
136
+ */
137
+ export declare const globalNotificationsManager: McpNotificationsManager;
138
+ //# sourceMappingURL=mcp-notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-notifications.d.ts","sourceRoot":"","sources":["../../../src/mcp/mcp-notifications.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,UAAU,EAAE,GAAG,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,cAAc,CAAO;IAE7B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI;IAQlD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAOtD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAOxD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAStC;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO1C;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS;IAIxE;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO;IAKlE;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IA4BrG;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIpD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD;;OAEG;IACH,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE;IAKlD;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,oBAAoB,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC;IAgBrD;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASrC;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAED;;GAEG;AAEH;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,uBAAuB,EAChC,KAAK,GAAE,MAAY,GAClB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAoB7F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EAAE,EACtB,QAAQ,EAAE,iBAAiB,GAC1B,iBAAiB,CAMnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,GAAE,MAAgB,GAAG,iBAAiB,CAKjF;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,yBAAgC,CAAC"}