@decaf-ts/mcp-server 0.4.2 → 0.4.6
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/LICENSE.md +31 -0
- package/dist/mcp-server.cjs +2 -2360
- package/dist/mcp-server.cjs.map +1 -0
- package/dist/mcp-server.js +2 -0
- package/dist/mcp-server.js.map +1 -0
- package/lib/bin/cli.cjs +7 -35
- package/lib/bin/cli.js.map +1 -0
- package/lib/builders/builder.cjs +91 -0
- package/lib/builders/builder.d.ts +25 -0
- package/lib/builders/builder.js.map +1 -0
- package/lib/{mcp/resources → builders}/index.cjs +5 -2
- package/lib/builders/index.d.ts +4 -0
- package/lib/builders/index.js.map +1 -0
- package/lib/builders/prompt-builder.cjs +76 -0
- package/lib/builders/prompt-builder.d.ts +12 -0
- package/lib/builders/prompt-builder.js.map +1 -0
- package/lib/builders/resource-builder.cjs +83 -0
- package/lib/builders/resource-builder.d.ts +14 -0
- package/lib/builders/resource-builder.js.map +1 -0
- package/lib/builders/tool-builder.cjs +104 -0
- package/lib/builders/tool-builder.d.ts +16 -0
- package/lib/builders/tool-builder.js.map +1 -0
- package/lib/constants.cjs +28 -30
- package/lib/constants.d.ts +19 -24
- package/lib/constants.js.map +1 -0
- package/lib/environment.cjs +32 -0
- package/lib/environment.d.ts +71 -0
- package/lib/environment.js.map +1 -0
- package/lib/esm/bin/cli.js +7 -35
- package/lib/esm/bin/cli.js.map +1 -0
- package/lib/esm/builders/builder.d.ts +25 -0
- package/lib/esm/builders/builder.js +86 -0
- package/lib/esm/builders/builder.js.map +1 -0
- package/lib/esm/builders/index.d.ts +4 -0
- package/lib/esm/builders/index.js +5 -0
- package/lib/esm/builders/index.js.map +1 -0
- package/lib/esm/builders/prompt-builder.d.ts +12 -0
- package/lib/esm/builders/prompt-builder.js +72 -0
- package/lib/esm/builders/prompt-builder.js.map +1 -0
- package/lib/esm/builders/resource-builder.d.ts +14 -0
- package/lib/esm/builders/resource-builder.js +79 -0
- package/lib/esm/builders/resource-builder.js.map +1 -0
- package/lib/esm/builders/tool-builder.d.ts +16 -0
- package/lib/esm/builders/tool-builder.js +100 -0
- package/lib/esm/builders/tool-builder.js.map +1 -0
- package/lib/esm/constants.d.ts +19 -24
- package/lib/esm/constants.js +27 -29
- package/lib/esm/constants.js.map +1 -0
- package/lib/esm/environment.d.ts +71 -0
- package/lib/esm/environment.js +29 -0
- package/lib/esm/environment.js.map +1 -0
- package/lib/esm/index.d.ts +3 -10
- package/lib/esm/index.js +4 -11
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/mcp-server.d.ts +10 -0
- package/lib/esm/mcp-server.js +189 -0
- package/lib/esm/mcp-server.js.map +1 -0
- package/lib/esm/modules/template-module/index.d.ts +6 -0
- package/lib/esm/modules/template-module/index.js +4 -0
- package/lib/esm/modules/template-module/index.js.map +1 -0
- package/lib/esm/prompts/code/constants.d.ts +1 -0
- package/lib/esm/prompts/code/constants.js +2 -0
- package/lib/esm/prompts/code/constants.js.map +1 -0
- package/lib/esm/prompts/code/design-patterns/builder.d.ts +2 -0
- package/lib/esm/prompts/code/design-patterns/builder.js +118 -0
- package/lib/esm/prompts/code/design-patterns/builder.js.map +1 -0
- package/lib/esm/prompts/code/design-patterns/constants.d.ts +1 -0
- package/lib/esm/prompts/code/design-patterns/constants.js +3 -0
- package/lib/esm/prompts/code/design-patterns/constants.js.map +1 -0
- package/lib/esm/prompts/example-prompt/index.d.ts +2 -0
- package/lib/esm/prompts/example-prompt/index.js +18 -0
- package/lib/esm/prompts/example-prompt/index.js.map +1 -0
- package/lib/esm/prompts/index.d.ts +2 -0
- package/lib/esm/prompts/index.js +26 -0
- package/lib/esm/prompts/index.js.map +1 -0
- package/lib/esm/prompts/interactive-jsdoc/index.d.ts +2 -0
- package/lib/esm/prompts/interactive-jsdoc/index.js +18 -0
- package/lib/esm/prompts/interactive-jsdoc/index.js.map +1 -0
- package/lib/esm/prompts/jsdocs/class-prompt.d.ts +2 -0
- package/lib/esm/prompts/jsdocs/class-prompt.js +52 -0
- package/lib/esm/prompts/jsdocs/class-prompt.js.map +1 -0
- package/lib/esm/prompts/jsdocs/const-prompt.d.ts +2 -0
- package/lib/esm/prompts/jsdocs/const-prompt.js +24 -0
- package/lib/esm/prompts/jsdocs/const-prompt.js.map +1 -0
- package/lib/esm/prompts/jsdocs/constants.d.ts +4 -0
- package/lib/esm/prompts/jsdocs/constants.js +46 -0
- package/lib/esm/prompts/jsdocs/constants.js.map +1 -0
- package/lib/esm/prompts/jsdocs/decorator-prompt.d.ts +2 -0
- package/lib/esm/prompts/jsdocs/decorator-prompt.js +42 -0
- package/lib/esm/prompts/jsdocs/decorator-prompt.js.map +1 -0
- package/lib/esm/prompts/jsdocs/enum-prompt.d.ts +2 -0
- package/lib/esm/prompts/jsdocs/enum-prompt.js +24 -0
- package/lib/esm/prompts/jsdocs/enum-prompt.js.map +1 -0
- package/lib/esm/prompts/jsdocs/function-prompt.d.ts +2 -0
- package/lib/esm/prompts/jsdocs/function-prompt.js +43 -0
- package/lib/esm/prompts/jsdocs/function-prompt.js.map +1 -0
- package/lib/esm/prompts/jsdocs/interface-prompt.d.ts +2 -0
- package/lib/esm/prompts/jsdocs/interface-prompt.js +24 -0
- package/lib/esm/prompts/jsdocs/interface-prompt.js.map +1 -0
- package/lib/esm/prompts/jsdocs/types-prompt.d.ts +2 -0
- package/lib/esm/prompts/jsdocs/types-prompt.js +24 -0
- package/lib/esm/prompts/jsdocs/types-prompt.js.map +1 -0
- package/lib/esm/resources/example-resource/index.d.ts +2 -0
- package/lib/esm/resources/example-resource/index.js +19 -0
- package/lib/esm/resources/example-resource/index.js.map +1 -0
- package/lib/esm/resources/index.d.ts +2 -0
- package/lib/esm/resources/index.js +4 -0
- package/lib/esm/resources/index.js.map +1 -0
- package/lib/esm/resources/repo-metadata/index.d.ts +2 -0
- package/lib/esm/resources/repo-metadata/index.js +25 -0
- package/lib/esm/resources/repo-metadata/index.js.map +1 -0
- package/lib/esm/tools/ast/ts-ast-tool.d.ts +2 -0
- package/lib/esm/tools/ast/ts-ast-tool.js +67 -0
- package/lib/esm/tools/ast/ts-ast-tool.js.map +1 -0
- package/lib/esm/tools/ast/types.d.ts +105 -0
- package/lib/esm/tools/ast/types.js +33 -0
- package/lib/esm/tools/ast/types.js.map +1 -0
- package/lib/esm/tools/ast/utils.d.ts +5 -0
- package/lib/esm/tools/ast/utils.js +58 -0
- package/lib/esm/tools/ast/utils.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/apply.d.ts +6 -0
- package/lib/esm/tools/ast-jsdoc-tools/apply.js +29 -0
- package/lib/esm/tools/ast-jsdoc-tools/apply.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/cli.js +33 -0
- package/lib/esm/tools/ast-jsdoc-tools/cli.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/enumerator.d.ts +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/enumerator.js +25 -0
- package/lib/esm/tools/ast-jsdoc-tools/enumerator.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/fileRunner.d.ts +11 -0
- package/lib/esm/tools/ast-jsdoc-tools/fileRunner.js +29 -0
- package/lib/esm/tools/ast-jsdoc-tools/fileRunner.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/formatter.d.ts +6 -0
- package/lib/esm/tools/ast-jsdoc-tools/formatter.js +18 -0
- package/lib/esm/tools/ast-jsdoc-tools/formatter.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/generator.d.ts +12 -0
- package/lib/esm/tools/ast-jsdoc-tools/generator.js +55 -0
- package/lib/esm/tools/ast-jsdoc-tools/generator.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/index.d.ts +7 -0
- package/lib/esm/tools/ast-jsdoc-tools/index.js +29 -0
- package/lib/esm/tools/ast-jsdoc-tools/index.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/interactive.d.ts +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/interactive.js +7 -0
- package/lib/esm/tools/ast-jsdoc-tools/interactive.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/parser.d.ts +13 -0
- package/lib/esm/tools/ast-jsdoc-tools/parser.js +71 -0
- package/lib/esm/tools/ast-jsdoc-tools/parser.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/patch.d.ts +2 -0
- package/lib/esm/tools/ast-jsdoc-tools/patch.js +23 -0
- package/lib/esm/tools/ast-jsdoc-tools/patch.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.d.ts +10 -0
- package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.js +26 -0
- package/lib/esm/tools/ast-jsdoc-tools/prompts/loader.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/repoRunner.d.ts +16 -0
- package/lib/esm/tools/ast-jsdoc-tools/repoRunner.js +61 -0
- package/lib/esm/tools/ast-jsdoc-tools/repoRunner.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.d.ts +5 -0
- package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.js +78 -0
- package/lib/esm/tools/ast-jsdoc-tools/tools/jsdoc-generator.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.d.ts +5 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.js +30 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/conflict-detector.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.d.ts +7 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.js +29 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/context-schema.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.d.ts +2 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.js +31 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/heuristics.js.map +1 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.d.ts +12 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.js +21 -0
- package/lib/esm/tools/ast-jsdoc-tools/utils/ts-project.js.map +1 -0
- package/lib/esm/tools/example-tool/index.d.ts +2 -0
- package/lib/esm/tools/example-tool/index.js +29 -0
- package/lib/esm/tools/example-tool/index.js.map +1 -0
- package/lib/esm/tools/file-summarizer/index.d.ts +2 -0
- package/lib/esm/tools/file-summarizer/index.js +29 -0
- package/lib/esm/tools/file-summarizer/index.js.map +1 -0
- package/lib/esm/tools/index.d.ts +2 -0
- package/lib/esm/tools/index.js +6 -0
- package/lib/esm/tools/index.js.map +1 -0
- package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.d.ts +2 -0
- package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.js +84 -0
- package/lib/esm/tools/jsdoc/ts-jsdoc-element-tool.js.map +1 -0
- package/lib/esm/tools/jsdoc/utils.d.ts +5 -0
- package/lib/esm/tools/jsdoc/utils.js +53 -0
- package/lib/esm/tools/jsdoc/utils.js.map +1 -0
- package/lib/esm/tools/testing/ts-jest-list-tests.d.ts +2 -0
- package/lib/esm/tools/testing/ts-jest-list-tests.js +53 -0
- package/lib/esm/tools/testing/ts-jest-list-tests.js.map +1 -0
- package/lib/esm/types.d.ts +56 -47
- package/lib/esm/types.js +1 -1
- package/lib/esm/types.js.map +1 -0
- package/lib/esm/utils/banner.d.ts +3 -0
- package/lib/esm/utils/banner.js +107 -0
- package/lib/esm/utils/banner.js.map +1 -0
- package/lib/esm/version.d.ts +2 -0
- package/lib/esm/version.js +5 -0
- package/lib/esm/version.js.map +1 -0
- package/lib/index.cjs +4 -11
- package/lib/index.d.ts +3 -10
- package/lib/index.js.map +1 -0
- package/lib/mcp-server.cjs +226 -0
- package/lib/mcp-server.d.ts +10 -0
- package/lib/mcp-server.js.map +1 -0
- package/lib/modules/template-module/index.cjs +7 -0
- package/lib/modules/template-module/index.d.ts +6 -0
- package/lib/modules/template-module/index.js.map +1 -0
- package/lib/prompts/code/constants.cjs +5 -0
- package/lib/prompts/code/constants.d.ts +1 -0
- package/lib/prompts/code/constants.js.map +1 -0
- package/lib/prompts/code/design-patterns/builder.cjs +121 -0
- package/lib/prompts/code/design-patterns/builder.d.ts +2 -0
- package/lib/prompts/code/design-patterns/builder.js.map +1 -0
- package/lib/prompts/code/design-patterns/constants.cjs +6 -0
- package/lib/prompts/code/design-patterns/constants.d.ts +1 -0
- package/lib/prompts/code/design-patterns/constants.js.map +1 -0
- package/lib/prompts/example-prompt/index.cjs +21 -0
- package/lib/prompts/example-prompt/index.d.ts +2 -0
- package/lib/prompts/example-prompt/index.js.map +1 -0
- package/lib/prompts/index.cjs +29 -0
- package/lib/prompts/index.d.ts +2 -0
- package/lib/prompts/index.js.map +1 -0
- package/lib/prompts/interactive-jsdoc/index.cjs +21 -0
- package/lib/prompts/interactive-jsdoc/index.d.ts +2 -0
- package/lib/prompts/interactive-jsdoc/index.js.map +1 -0
- package/lib/prompts/jsdocs/class-prompt.cjs +55 -0
- package/lib/prompts/jsdocs/class-prompt.d.ts +2 -0
- package/lib/prompts/jsdocs/class-prompt.js.map +1 -0
- package/lib/prompts/jsdocs/const-prompt.cjs +27 -0
- package/lib/prompts/jsdocs/const-prompt.d.ts +2 -0
- package/lib/prompts/jsdocs/const-prompt.js.map +1 -0
- package/lib/prompts/jsdocs/constants.cjs +49 -0
- package/lib/prompts/jsdocs/constants.d.ts +4 -0
- package/lib/prompts/jsdocs/constants.js.map +1 -0
- package/lib/prompts/jsdocs/decorator-prompt.cjs +45 -0
- package/lib/prompts/jsdocs/decorator-prompt.d.ts +2 -0
- package/lib/prompts/jsdocs/decorator-prompt.js.map +1 -0
- package/lib/prompts/jsdocs/enum-prompt.cjs +27 -0
- package/lib/prompts/jsdocs/enum-prompt.d.ts +2 -0
- package/lib/prompts/jsdocs/enum-prompt.js.map +1 -0
- package/lib/prompts/jsdocs/function-prompt.cjs +46 -0
- package/lib/prompts/jsdocs/function-prompt.d.ts +2 -0
- package/lib/prompts/jsdocs/function-prompt.js.map +1 -0
- package/lib/prompts/jsdocs/interface-prompt.cjs +27 -0
- package/lib/prompts/jsdocs/interface-prompt.d.ts +2 -0
- package/lib/prompts/jsdocs/interface-prompt.js.map +1 -0
- package/lib/prompts/jsdocs/types-prompt.cjs +27 -0
- package/lib/prompts/jsdocs/types-prompt.d.ts +2 -0
- package/lib/prompts/jsdocs/types-prompt.js.map +1 -0
- package/lib/resources/example-resource/index.cjs +22 -0
- package/lib/resources/example-resource/index.d.ts +2 -0
- package/lib/resources/example-resource/index.js.map +1 -0
- package/lib/resources/index.cjs +7 -0
- package/lib/resources/index.d.ts +2 -0
- package/lib/resources/index.js.map +1 -0
- package/lib/resources/repo-metadata/index.cjs +28 -0
- package/lib/resources/repo-metadata/index.d.ts +2 -0
- package/lib/resources/repo-metadata/index.js.map +1 -0
- package/lib/tools/ast/ts-ast-tool.cjs +70 -0
- package/lib/tools/ast/ts-ast-tool.d.ts +2 -0
- package/lib/tools/ast/ts-ast-tool.js.map +1 -0
- package/lib/tools/ast/types.cjs +36 -0
- package/lib/tools/ast/types.d.ts +105 -0
- package/lib/tools/ast/types.js.map +1 -0
- package/lib/tools/ast/utils.cjs +65 -0
- package/lib/tools/ast/utils.d.ts +5 -0
- package/lib/tools/ast/utils.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/apply.cjs +36 -0
- package/lib/tools/ast-jsdoc-tools/apply.d.ts +6 -0
- package/lib/tools/ast-jsdoc-tools/apply.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/cli.cjs +38 -0
- package/lib/tools/ast-jsdoc-tools/cli.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/enumerator.cjs +31 -0
- package/lib/tools/ast-jsdoc-tools/enumerator.d.ts +1 -0
- package/lib/tools/ast-jsdoc-tools/enumerator.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/fileRunner.cjs +35 -0
- package/lib/tools/ast-jsdoc-tools/fileRunner.d.ts +11 -0
- package/lib/tools/ast-jsdoc-tools/fileRunner.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/formatter.cjs +21 -0
- package/lib/tools/ast-jsdoc-tools/formatter.d.ts +6 -0
- package/lib/tools/ast-jsdoc-tools/formatter.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/generator.cjs +58 -0
- package/lib/tools/ast-jsdoc-tools/generator.d.ts +12 -0
- package/lib/tools/ast-jsdoc-tools/generator.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/index.cjs +33 -0
- package/lib/tools/ast-jsdoc-tools/index.d.ts +7 -0
- package/lib/tools/ast-jsdoc-tools/index.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/interactive.cjs +10 -0
- package/lib/tools/ast-jsdoc-tools/interactive.d.ts +1 -0
- package/lib/tools/ast-jsdoc-tools/interactive.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/parser.cjs +77 -0
- package/lib/tools/ast-jsdoc-tools/parser.d.ts +13 -0
- package/lib/tools/ast-jsdoc-tools/parser.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/patch.cjs +29 -0
- package/lib/tools/ast-jsdoc-tools/patch.d.ts +2 -0
- package/lib/tools/ast-jsdoc-tools/patch.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/prompts/loader.cjs +32 -0
- package/lib/tools/ast-jsdoc-tools/prompts/loader.d.ts +10 -0
- package/lib/tools/ast-jsdoc-tools/prompts/loader.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/repoRunner.cjs +67 -0
- package/lib/tools/ast-jsdoc-tools/repoRunner.d.ts +16 -0
- package/lib/tools/ast-jsdoc-tools/repoRunner.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.cjs +81 -0
- package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.d.ts +5 -0
- package/lib/tools/ast-jsdoc-tools/tools/jsdoc-generator.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.cjs +33 -0
- package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.d.ts +5 -0
- package/lib/tools/ast-jsdoc-tools/utils/conflict-detector.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/utils/context-schema.cjs +32 -0
- package/lib/tools/ast-jsdoc-tools/utils/context-schema.d.ts +7 -0
- package/lib/tools/ast-jsdoc-tools/utils/context-schema.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/utils/heuristics.cjs +34 -0
- package/lib/tools/ast-jsdoc-tools/utils/heuristics.d.ts +2 -0
- package/lib/tools/ast-jsdoc-tools/utils/heuristics.js.map +1 -0
- package/lib/tools/ast-jsdoc-tools/utils/ts-project.cjs +57 -0
- package/lib/tools/ast-jsdoc-tools/utils/ts-project.d.ts +12 -0
- package/lib/tools/ast-jsdoc-tools/utils/ts-project.js.map +1 -0
- package/lib/tools/example-tool/index.cjs +32 -0
- package/lib/tools/example-tool/index.d.ts +2 -0
- package/lib/tools/example-tool/index.js.map +1 -0
- package/lib/tools/file-summarizer/index.cjs +32 -0
- package/lib/tools/file-summarizer/index.d.ts +2 -0
- package/lib/tools/file-summarizer/index.js.map +1 -0
- package/lib/tools/index.cjs +9 -0
- package/lib/tools/index.d.ts +2 -0
- package/lib/tools/index.js.map +1 -0
- package/lib/tools/jsdoc/ts-jsdoc-element-tool.cjs +87 -0
- package/lib/tools/jsdoc/ts-jsdoc-element-tool.d.ts +2 -0
- package/lib/tools/jsdoc/ts-jsdoc-element-tool.js.map +1 -0
- package/lib/tools/jsdoc/utils.cjs +60 -0
- package/lib/tools/jsdoc/utils.d.ts +5 -0
- package/lib/tools/jsdoc/utils.js.map +1 -0
- package/lib/tools/testing/ts-jest-list-tests.cjs +56 -0
- package/lib/tools/testing/ts-jest-list-tests.d.ts +2 -0
- package/lib/tools/testing/ts-jest-list-tests.js.map +1 -0
- package/lib/types.cjs +1 -1
- package/lib/types.d.ts +56 -47
- package/lib/types.js.map +1 -0
- package/lib/utils/banner.cjs +114 -0
- package/lib/utils/banner.d.ts +3 -0
- package/lib/utils/banner.js.map +1 -0
- package/lib/version.cjs +8 -0
- package/lib/version.d.ts +2 -0
- package/lib/version.js.map +1 -0
- package/package.json +14 -63
- package/dist/mcp-server.esm.cjs +0 -2314
- package/lib/McpWrapper.cjs +0 -233
- package/lib/McpWrapper.d.ts +0 -89
- package/lib/bin/validate-modules.cjs +0 -24
- package/lib/esm/McpWrapper.d.ts +0 -89
- package/lib/esm/McpWrapper.js +0 -196
- package/lib/esm/bin/validate-modules.js +0 -22
- package/lib/esm/mcp/aggregateModules.d.ts +0 -26
- package/lib/esm/mcp/aggregateModules.js +0 -185
- package/lib/esm/mcp/code.d.ts +0 -23
- package/lib/esm/mcp/code.js +0 -70
- package/lib/esm/mcp/decorator-tools.d.ts +0 -118
- package/lib/esm/mcp/decorator-tools.js +0 -237
- package/lib/esm/mcp/fastmcp-wiring.d.ts +0 -14
- package/lib/esm/mcp/fastmcp-wiring.js +0 -56
- package/lib/esm/mcp/index.d.ts +0 -9
- package/lib/esm/mcp/index.js +0 -29
- package/lib/esm/mcp/mcp-module.d.ts +0 -11
- package/lib/esm/mcp/mcp-module.js +0 -31
- package/lib/esm/mcp/moduleRegistry.d.ts +0 -14
- package/lib/esm/mcp/moduleRegistry.js +0 -47
- package/lib/esm/mcp/prompts/index.d.ts +0 -4
- package/lib/esm/mcp/prompts/index.js +0 -7
- package/lib/esm/mcp/prompts/prompts.d.ts +0 -22
- package/lib/esm/mcp/prompts/prompts.js +0 -203
- package/lib/esm/mcp/resources/index.d.ts +0 -1
- package/lib/esm/mcp/resources/index.js +0 -2
- package/lib/esm/mcp/resources/resources.d.ts +0 -2
- package/lib/esm/mcp/resources/resources.js +0 -69
- package/lib/esm/mcp/schemas.d.ts +0 -53
- package/lib/esm/mcp/schemas.js +0 -97
- package/lib/esm/mcp/templates/codex-templates.d.ts +0 -3
- package/lib/esm/mcp/templates/codex-templates.js +0 -33
- package/lib/esm/mcp/templates/index.d.ts +0 -71
- package/lib/esm/mcp/templates/index.js +0 -66
- package/lib/esm/mcp/templates/resource-templates.d.ts +0 -3
- package/lib/esm/mcp/templates/resource-templates.js +0 -60
- package/lib/esm/mcp/templates/workspace-templates.d.ts +0 -3
- package/lib/esm/mcp/templates/workspace-templates.js +0 -66
- package/lib/esm/mcp/tools/codex-tools.d.ts +0 -5
- package/lib/esm/mcp/tools/codex-tools.js +0 -244
- package/lib/esm/mcp/tools/generateMcpModule.d.ts +0 -9
- package/lib/esm/mcp/tools/generateMcpModule.js +0 -133
- package/lib/esm/mcp/tools/index.d.ts +0 -219
- package/lib/esm/mcp/tools/index.js +0 -27
- package/lib/esm/mcp/tools/tools.d.ts +0 -10
- package/lib/esm/mcp/tools/tools.js +0 -275
- package/lib/esm/mcp/types.d.ts +0 -66
- package/lib/esm/mcp/types.js +0 -2
- package/lib/esm/mcp/utils.d.ts +0 -3
- package/lib/esm/mcp/utils.js +0 -46
- package/lib/esm/mcp/validation/index.d.ts +0 -13
- package/lib/esm/mcp/validation/index.js +0 -116
- package/lib/esm/mcp/validation/scaffoldModule.d.ts +0 -9
- package/lib/esm/mcp/validation/scaffoldModule.js +0 -88
- package/lib/esm/mcp/workspace.d.ts +0 -9
- package/lib/esm/mcp/workspace.js +0 -73
- package/lib/esm/metadata.d.ts +0 -9
- package/lib/esm/metadata.js +0 -22
- package/lib/esm/modules/_template/index.d.ts +0 -32
- package/lib/esm/modules/_template/index.js +0 -16
- package/lib/esm/modules/_template/prompts/index.d.ts +0 -6
- package/lib/esm/modules/_template/prompts/index.js +0 -9
- package/lib/esm/modules/_template/resources/index.d.ts +0 -6
- package/lib/esm/modules/_template/resources/index.js +0 -9
- package/lib/esm/modules/_template/templates/index.d.ts +0 -7
- package/lib/esm/modules/_template/templates/index.js +0 -10
- package/lib/esm/modules/_template/tools/index.d.ts +0 -6
- package/lib/esm/modules/_template/tools/index.js +0 -15
- package/lib/esm/modules/decoration/index.d.ts +0 -46
- package/lib/esm/modules/decoration/index.js +0 -10
- package/lib/esm/modules/decoration/prompts/index.d.ts +0 -1
- package/lib/esm/modules/decoration/prompts/index.js +0 -2
- package/lib/esm/modules/decoration/resources/index.d.ts +0 -7
- package/lib/esm/modules/decoration/resources/index.js +0 -10
- package/lib/esm/modules/decoration/templates/index.d.ts +0 -6
- package/lib/esm/modules/decoration/templates/index.js +0 -9
- package/lib/esm/modules/decoration/tools/index.d.ts +0 -26
- package/lib/esm/modules/decoration/tools/index.js +0 -7
- package/lib/esm/modules/index.d.ts +0 -2
- package/lib/esm/modules/index.js +0 -17
- package/lib/esm/modules/mcp/decoration-assist.d.ts +0 -4
- package/lib/esm/modules/mcp/decoration-assist.js +0 -6
- package/lib/esm/modules/mcp/index.d.ts +0 -6
- package/lib/esm/modules/mcp/index.js +0 -16
- package/lib/esm/modules/mcp/prompts/index.d.ts +0 -2
- package/lib/esm/modules/mcp/prompts/index.js +0 -9
- package/lib/esm/modules/mcp/resources/index.d.ts +0 -2
- package/lib/esm/modules/mcp/resources/index.js +0 -24
- package/lib/esm/modules/mcp/templates/index.d.ts +0 -2
- package/lib/esm/modules/mcp/templates/index.js +0 -28
- package/lib/esm/modules/mcp/tools/index.d.ts +0 -6
- package/lib/esm/modules/mcp/tools/index.js +0 -15
- package/lib/esm/utils/modulePaths.d.ts +0 -6
- package/lib/esm/utils/modulePaths.js +0 -33
- package/lib/esm/utils/moduleValidator.d.ts +0 -14
- package/lib/esm/utils/moduleValidator.js +0 -176
- package/lib/esm/utils.d.ts +0 -61
- package/lib/esm/utils.js +0 -86
- package/lib/mcp/aggregateModules.cjs +0 -225
- package/lib/mcp/aggregateModules.d.ts +0 -26
- package/lib/mcp/code.cjs +0 -81
- package/lib/mcp/code.d.ts +0 -23
- package/lib/mcp/decorator-tools.cjs +0 -243
- package/lib/mcp/decorator-tools.d.ts +0 -118
- package/lib/mcp/fastmcp-wiring.cjs +0 -59
- package/lib/mcp/fastmcp-wiring.d.ts +0 -14
- package/lib/mcp/index.cjs +0 -57
- package/lib/mcp/index.d.ts +0 -9
- package/lib/mcp/mcp-module.cjs +0 -46
- package/lib/mcp/mcp-module.d.ts +0 -11
- package/lib/mcp/moduleRegistry.cjs +0 -52
- package/lib/mcp/moduleRegistry.d.ts +0 -14
- package/lib/mcp/prompts/index.cjs +0 -25
- package/lib/mcp/prompts/index.d.ts +0 -4
- package/lib/mcp/prompts/prompts.cjs +0 -217
- package/lib/mcp/prompts/prompts.d.ts +0 -22
- package/lib/mcp/resources/index.d.ts +0 -1
- package/lib/mcp/resources/resources.cjs +0 -72
- package/lib/mcp/resources/resources.d.ts +0 -2
- package/lib/mcp/schemas.cjs +0 -100
- package/lib/mcp/schemas.d.ts +0 -53
- package/lib/mcp/templates/codex-templates.cjs +0 -40
- package/lib/mcp/templates/codex-templates.d.ts +0 -3
- package/lib/mcp/templates/index.cjs +0 -76
- package/lib/mcp/templates/index.d.ts +0 -71
- package/lib/mcp/templates/resource-templates.cjs +0 -67
- package/lib/mcp/templates/resource-templates.d.ts +0 -3
- package/lib/mcp/templates/workspace-templates.cjs +0 -70
- package/lib/mcp/templates/workspace-templates.d.ts +0 -3
- package/lib/mcp/tools/codex-tools.cjs +0 -250
- package/lib/mcp/tools/codex-tools.d.ts +0 -5
- package/lib/mcp/tools/generateMcpModule.cjs +0 -139
- package/lib/mcp/tools/generateMcpModule.d.ts +0 -9
- package/lib/mcp/tools/index.cjs +0 -30
- package/lib/mcp/tools/index.d.ts +0 -219
- package/lib/mcp/tools/tools.cjs +0 -317
- package/lib/mcp/tools/tools.d.ts +0 -10
- package/lib/mcp/types.cjs +0 -3
- package/lib/mcp/types.d.ts +0 -66
- package/lib/mcp/utils.cjs +0 -54
- package/lib/mcp/utils.d.ts +0 -3
- package/lib/mcp/validation/index.cjs +0 -123
- package/lib/mcp/validation/index.d.ts +0 -13
- package/lib/mcp/validation/scaffoldModule.cjs +0 -94
- package/lib/mcp/validation/scaffoldModule.d.ts +0 -9
- package/lib/mcp/workspace.cjs +0 -119
- package/lib/mcp/workspace.d.ts +0 -9
- package/lib/metadata.cjs +0 -25
- package/lib/metadata.d.ts +0 -9
- package/lib/modules/_template/index.cjs +0 -23
- package/lib/modules/_template/index.d.ts +0 -32
- package/lib/modules/_template/prompts/index.cjs +0 -12
- package/lib/modules/_template/prompts/index.d.ts +0 -6
- package/lib/modules/_template/resources/index.cjs +0 -12
- package/lib/modules/_template/resources/index.d.ts +0 -6
- package/lib/modules/_template/templates/index.cjs +0 -13
- package/lib/modules/_template/templates/index.d.ts +0 -7
- package/lib/modules/_template/tools/index.cjs +0 -18
- package/lib/modules/_template/tools/index.d.ts +0 -6
- package/lib/modules/decoration/index.cjs +0 -17
- package/lib/modules/decoration/index.d.ts +0 -46
- package/lib/modules/decoration/prompts/index.cjs +0 -5
- package/lib/modules/decoration/prompts/index.d.ts +0 -1
- package/lib/modules/decoration/resources/index.cjs +0 -13
- package/lib/modules/decoration/resources/index.d.ts +0 -7
- package/lib/modules/decoration/templates/index.cjs +0 -12
- package/lib/modules/decoration/templates/index.d.ts +0 -6
- package/lib/modules/decoration/tools/index.cjs +0 -10
- package/lib/modules/decoration/tools/index.d.ts +0 -26
- package/lib/modules/index.cjs +0 -20
- package/lib/modules/index.d.ts +0 -2
- package/lib/modules/mcp/decoration-assist.cjs +0 -13
- package/lib/modules/mcp/decoration-assist.d.ts +0 -4
- package/lib/modules/mcp/index.cjs +0 -23
- package/lib/modules/mcp/index.d.ts +0 -6
- package/lib/modules/mcp/prompts/index.cjs +0 -12
- package/lib/modules/mcp/prompts/index.d.ts +0 -2
- package/lib/modules/mcp/resources/index.cjs +0 -27
- package/lib/modules/mcp/resources/index.d.ts +0 -2
- package/lib/modules/mcp/templates/index.cjs +0 -31
- package/lib/modules/mcp/templates/index.d.ts +0 -2
- package/lib/modules/mcp/tools/index.cjs +0 -18
- package/lib/modules/mcp/tools/index.d.ts +0 -6
- package/lib/utils/modulePaths.cjs +0 -43
- package/lib/utils/modulePaths.d.ts +0 -6
- package/lib/utils/moduleValidator.cjs +0 -184
- package/lib/utils/moduleValidator.d.ts +0 -14
- package/lib/utils.cjs +0 -129
- package/lib/utils.d.ts +0 -61
- /package/lib/{bin/validate-modules.d.ts → esm/tools/ast-jsdoc-tools/cli.d.ts} +0 -0
- /package/lib/{esm/bin/validate-modules.d.ts → tools/ast-jsdoc-tools/cli.d.ts} +0 -0
package/lib/McpWrapper.cjs
DELETED
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.McpWrapper = void 0;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const constants_1 = require("./constants.cjs");
|
|
40
|
-
const utils_1 = require("./utils.cjs");
|
|
41
|
-
const fastmcp_1 = require("fastmcp");
|
|
42
|
-
const logging_1 = require("@decaf-ts/logging");
|
|
43
|
-
const metadata_1 = require("./metadata.cjs");
|
|
44
|
-
const url_1 = require("url");
|
|
45
|
-
/**
|
|
46
|
-
* @description Utility class to handle CLI functionality from all Decaf modules
|
|
47
|
-
* @summary This class provides a wrapper around Commander.js to handle CLI commands from different Decaf modules.
|
|
48
|
-
* It crawls the filesystem to find CLI modules, loads them, and registers their commands.
|
|
49
|
-
*/
|
|
50
|
-
class McpWrapper extends logging_1.LoggedClass {
|
|
51
|
-
constructor(basePath = "./", crawlLevels = 4) {
|
|
52
|
-
super();
|
|
53
|
-
this.basePath = basePath;
|
|
54
|
-
this.crawlLevels = crawlLevels;
|
|
55
|
-
this.modules = {};
|
|
56
|
-
// Support both CommonJS and ESM runtimes for filename/dirname
|
|
57
|
-
let localDirname;
|
|
58
|
-
if (typeof __filename !== "undefined" && typeof __dirname !== "undefined") {
|
|
59
|
-
// CommonJS environment
|
|
60
|
-
localDirname = __dirname;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
// ESM or other env: compute import.meta.url at runtime to avoid TS compile-time import.meta checks
|
|
64
|
-
let metaUrl;
|
|
65
|
-
try {
|
|
66
|
-
// Use a dynamic function so TypeScript won't parse `import.meta` at compile time
|
|
67
|
-
const fn = new Function('return (typeof import !== "undefined" && typeof import.meta !== "undefined") ? import.meta.url : undefined;');
|
|
68
|
-
metaUrl = fn();
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
metaUrl = undefined;
|
|
72
|
-
}
|
|
73
|
-
if (metaUrl) {
|
|
74
|
-
localDirname = path.dirname((0, url_1.fileURLToPath)(metaUrl));
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
// Last-resort fallback: use current working directory
|
|
78
|
-
localDirname = process.cwd();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
this.rootPath = path.resolve(localDirname, "..");
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* @description Retrieves and initializes the Commander Command object
|
|
85
|
-
* @summary Lazy-loads the Command object, initializing it with the package name, description, and version
|
|
86
|
-
* @return {FastMCP} The initialized Command object
|
|
87
|
-
* @private
|
|
88
|
-
*/
|
|
89
|
-
get mcp() {
|
|
90
|
-
if (!this._mcp) {
|
|
91
|
-
this._mcp = new fastmcp_1.FastMCP({
|
|
92
|
-
name: "decaf-ts MCP server",
|
|
93
|
-
instructions: "",
|
|
94
|
-
version: metadata_1.VERSION,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
return this._mcp;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* @description Loads and registers an mcp extension module from a file
|
|
101
|
-
* @summary Dynamically imports an mcp extension module from the specified file path, initializes it, and registers it in the modules collection
|
|
102
|
-
*
|
|
103
|
-
*/
|
|
104
|
-
async load(server, filePath) {
|
|
105
|
-
const log = this.log.for(this.load);
|
|
106
|
-
let pkg, version, enrich;
|
|
107
|
-
try {
|
|
108
|
-
const res = await utils_1.McpUtils.loadFromFile(filePath);
|
|
109
|
-
pkg = res.PACKAGE_NAME;
|
|
110
|
-
version = res.VERSION;
|
|
111
|
-
enrich = res.enrich;
|
|
112
|
-
}
|
|
113
|
-
catch (e) {
|
|
114
|
-
throw new Error(e.message || e);
|
|
115
|
-
}
|
|
116
|
-
try {
|
|
117
|
-
log.info(`Enriching mcp server with module ${pkg} v${version}`);
|
|
118
|
-
const result = enrich(server);
|
|
119
|
-
server = result instanceof Promise ? await result : result;
|
|
120
|
-
}
|
|
121
|
-
catch (e) {
|
|
122
|
-
throw new Error(`failed to enrich mcp with module ${pkg || "unnamed"} under ${filePath}: ${e instanceof Error ? e.message : e}`);
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
mcp: server,
|
|
126
|
-
package: pkg,
|
|
127
|
-
version: version,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* @description Finds and loads all CLI modules in the basePath
|
|
132
|
-
* @summary Uses the crawl method to find all CLI modules in the specified base path,
|
|
133
|
-
* then loads and registers each module as a subcommand
|
|
134
|
-
*
|
|
135
|
-
* @return {Promise<void>} A promise that resolves when all modules are loaded
|
|
136
|
-
*
|
|
137
|
-
* @private
|
|
138
|
-
* @mermaid
|
|
139
|
-
* sequenceDiagram
|
|
140
|
-
* participant CliWrapper
|
|
141
|
-
* participant Filesystem
|
|
142
|
-
* participant Module
|
|
143
|
-
*
|
|
144
|
-
* CliWrapper->>Filesystem: Join basePath with cwd
|
|
145
|
-
* CliWrapper->>CliWrapper: crawl(basePath, crawlLevels)
|
|
146
|
-
* CliWrapper-->>CliWrapper: modules[]
|
|
147
|
-
* loop For each module
|
|
148
|
-
* alt Not @decaf-ts/cli
|
|
149
|
-
* CliWrapper->>CliWrapper: load(module, cwd)
|
|
150
|
-
* CliWrapper-->>CliWrapper: name
|
|
151
|
-
* CliWrapper->>CliWrapper: Check if command exists
|
|
152
|
-
* alt Command doesn't exist
|
|
153
|
-
* CliWrapper->>Command: command(name).addCommand(modules[name])
|
|
154
|
-
* end
|
|
155
|
-
* end
|
|
156
|
-
* end
|
|
157
|
-
* CliWrapper->>Console: Log loaded modules
|
|
158
|
-
*/
|
|
159
|
-
async boot() {
|
|
160
|
-
const log = this.log.for(this.boot);
|
|
161
|
-
let server = this.mcp;
|
|
162
|
-
// discover modules by crawling basePath
|
|
163
|
-
const moduleFiles = this.crawl(path.resolve(this.basePath), this.crawlLevels);
|
|
164
|
-
for (const moduleFile of moduleFiles) {
|
|
165
|
-
if (moduleFile.includes("@decaf-ts/mcp")) {
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
try {
|
|
169
|
-
const res = await this.load(server, moduleFile);
|
|
170
|
-
server = res.mcp;
|
|
171
|
-
this.modules[res.package] = moduleFile;
|
|
172
|
-
}
|
|
173
|
-
catch (e) {
|
|
174
|
-
log.error(`Failed to load MCP configs for ${moduleFile}: ${e instanceof Error ? e.message : e}`);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
console.log(`loaded modules:\n${Object.keys(this.modules)
|
|
178
|
-
.map((k) => `- ${k}`)
|
|
179
|
-
.join("\n")}`);
|
|
180
|
-
return server;
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* @description Recursively searches for CLI module files in the directory structure
|
|
184
|
-
* @summary Crawls the basePath up to the specified number of folder levels to find files named according to CLI_FILE_NAME
|
|
185
|
-
*
|
|
186
|
-
* @param {string} basePath The absolute base path to start searching in
|
|
187
|
-
* @param {number} [levels=2] The maximum number of directory levels to crawl
|
|
188
|
-
* @return {string[]} An array of file paths to CLI modules
|
|
189
|
-
*
|
|
190
|
-
* @private
|
|
191
|
-
*/
|
|
192
|
-
crawl(basePath, levels = 2) {
|
|
193
|
-
if (levels <= 0)
|
|
194
|
-
return [];
|
|
195
|
-
return fs.readdirSync(basePath).reduce((accum, file) => {
|
|
196
|
-
file = path.join(basePath, file);
|
|
197
|
-
if (fs.statSync(file).isDirectory()) {
|
|
198
|
-
accum.push(...this.crawl(file, levels - 1));
|
|
199
|
-
}
|
|
200
|
-
else if (file.match(new RegExp(`${constants_1.MCP_FILE_NAME}.[cm]?js$`, "gm"))) {
|
|
201
|
-
accum.push(file);
|
|
202
|
-
}
|
|
203
|
-
return accum;
|
|
204
|
-
}, []);
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* @description Executes the CLI with the provided arguments
|
|
208
|
-
* @summary Boots the CLI by loading all modules, then parses and executes the command specified in the arguments
|
|
209
|
-
*
|
|
210
|
-
* @param {string[]} [args=process.argv] Command line arguments to parse and execute
|
|
211
|
-
* @return {Promise<void>} A promise that resolves when the command execution is complete
|
|
212
|
-
*
|
|
213
|
-
* @mermaid
|
|
214
|
-
* sequenceDiagram
|
|
215
|
-
* participant Client
|
|
216
|
-
* participant CliWrapper
|
|
217
|
-
* participant Command
|
|
218
|
-
*
|
|
219
|
-
* Client->>CliWrapper: run(args)
|
|
220
|
-
* CliWrapper->>CliWrapper: boot()
|
|
221
|
-
* Note over CliWrapper: Loads all modules
|
|
222
|
-
* CliWrapper->>Command: parseAsync(args)
|
|
223
|
-
* Command-->>CliWrapper: result
|
|
224
|
-
* CliWrapper-->>Client: result
|
|
225
|
-
*/
|
|
226
|
-
async run(args = process.argv) {
|
|
227
|
-
void args;
|
|
228
|
-
const server = await this.boot();
|
|
229
|
-
await server.start({ transportType: "stdio" });
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
exports.McpWrapper = McpWrapper;
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWNwV3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9NY3BXcmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsK0NBQTRDO0FBQzVDLHVDQUFtQztBQUNuQyxxQ0FBa0M7QUFDbEMsK0NBQWdEO0FBQ2hELDZDQUFxQztBQUNyQyw2QkFBb0M7QUFNcEM7Ozs7R0FJRztBQUNILE1BQWEsVUFBVyxTQUFRLHFCQUFXO0lBS3pDLFlBQ1UsV0FBbUIsSUFBSSxFQUN2QixjQUFjLENBQUM7UUFFdkIsS0FBSyxFQUFFLENBQUM7UUFIQSxhQUFRLEdBQVIsUUFBUSxDQUFlO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFJO1FBTGpCLFlBQU8sR0FBMkIsRUFBRSxDQUFDO1FBUTNDLDhEQUE4RDtRQUM5RCxJQUFJLFlBQW9CLENBQUM7UUFDekIsSUFBSSxPQUFPLFVBQVUsS0FBSyxXQUFXLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDMUUsdUJBQXVCO1lBQ3ZCLFlBQVksR0FBRyxTQUFtQixDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ04sbUdBQW1HO1lBQ25HLElBQUksT0FBMkIsQ0FBQztZQUNoQyxJQUFJLENBQUM7Z0JBQ0gsaUZBQWlGO2dCQUNqRixNQUFNLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FDckIsNkdBQTZHLENBQzlHLENBQUM7Z0JBQ0YsT0FBTyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTyxHQUFHLFNBQVMsQ0FBQztZQUN0QixDQUFDO1lBQ0QsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFBLG1CQUFhLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZ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QyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcseUJBQWEsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQWlCLE9BQU8sQ0FBQyxJQUFJO1FBQ3JDLEtBQUssSUFBSSxDQUFDO1FBQ1YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBck1ELGdDQXFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgTUNQX0ZJTEVfTkFNRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTWNwVXRpbHMgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgRmFzdE1DUCB9IGZyb20gXCJmYXN0bWNwXCI7XG5pbXBvcnQgeyBMb2dnZWRDbGFzcyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gXCIuL21ldGFkYXRhXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcInVybFwiO1xuXG4vLyBhbGxvdyByZWZlcmVuY2luZyBfX2ZpbGVuYW1lL19fZGlybmFtZSBpbiBib3RoIENvbW1vbkpTIGFuZCBFU00gcnVudGltZXNcbmRlY2xhcmUgY29uc3QgX19maWxlbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuZGVjbGFyZSBjb25zdCBfX2Rpcm5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVXRpbGl0eSBjbGFzcyB0byBoYW5kbGUgQ0xJIGZ1bmN0aW9uYWxpdHkgZnJvbSBhbGwgRGVjYWYgbW9kdWxlc1xuICogQHN1bW1hcnkgVGhpcyBjbGFzcyBwcm92aWRlcyBhIHdyYXBwZXIgYXJvdW5kIENvbW1hbmRlci5qcyB0byBoYW5kbGUgQ0xJIGNvbW1hbmRzIGZyb20gZGlmZmVyZW50IERlY2FmIG1vZHVsZXMuXG4gKiBJdCBjcmF3bHMgdGhlIGZpbGVzeXN0ZW0gdG8gZmluZCBDTEkgbW9kdWxlcywgbG9hZHMgdGhlbSwgYW5kIHJlZ2lzdGVycyB0aGVpciBjb21tYW5kcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1jcFdyYXBwZXIgZXh0ZW5kcyBMb2dnZWRDbGFzcyB7XG4gIHByaXZhdGUgX21jcD86IEZhc3RNQ1A7XG4gIHByaXZhdGUgbW9kdWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IHJvb3RQYXRoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYXNlUGF0aDogc3RyaW5nID0gXCIuL1wiLFxuICAgIHByaXZhdGUgY3Jhd2xMZXZlbHMgPSA0XG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gU3VwcG9ydCBib3RoIENvbW1vbkpTIGFuZCBFU00gcnVudGltZXMgZm9yIGZpbGVuYW1lL2Rpcm5hbWVcbiAgICBsZXQgbG9jYWxEaXJuYW1lOiBzdHJpbmc7XG4gICAgaWYgKHR5cGVvZiBfX2ZpbGVuYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBfX2Rpcm5hbWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIC8vIENvbW1vbkpTIGVudmlyb25tZW50XG4gICAgICBsb2NhbERpcm5hbWUgPSBfX2Rpcm5hbWUgYXMgc3RyaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBFU00gb3Igb3RoZXIgZW52OiBjb21wdXRlIGltcG9ydC5tZXRhLnVybCBhdCBydW50aW1lIHRvIGF2b2lkIFRTIGNvbXBpbGUtdGltZSBpbXBvcnQubWV0YSBjaGVja3NcbiAgICAgIGxldCBtZXRhVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBVc2UgYSBkeW5hbWljIGZ1bmN0aW9uIHNvIFR5cGVTY3JpcHQgd29uJ3QgcGFyc2UgYGltcG9ydC5tZXRhYCBhdCBjb21waWxlIHRpbWVcbiAgICAgICAgY29uc3QgZm4gPSBuZXcgRnVuY3Rpb24oXG4gICAgICAgICAgJ3JldHVybiAodHlwZW9mIGltcG9ydCAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgaW1wb3J0Lm1ldGEgIT09IFwidW5kZWZpbmVkXCIpID8gaW1wb3J0Lm1ldGEudXJsIDogdW5kZWZpbmVkOydcbiAgICAgICAgKTtcbiAgICAgICAgbWV0YVVybCA9IGZuKCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgbWV0YVVybCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChtZXRhVXJsKSB7XG4gICAgICAgIGxvY2FsRGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKG1ldGFVcmwpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIExhc3QtcmVzb3J0IGZhbGxiYWNrOiB1c2UgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVxuICAgICAgICBsb2NhbERpcm5hbWUgPSBwcm9jZXNzLmN3ZCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnJvb3RQYXRoID0gcGF0aC5yZXNvbHZlKGxvY2FsRGlybmFtZSwgXCIuLlwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGFuZCBpbml0aWFsaXplcyB0aGUgQ29tbWFuZGVyIENvbW1hbmQgb2JqZWN0XG4gICAqIEBzdW1tYXJ5IExhenktbG9hZHMgdGhlIENvbW1hbmQgb2JqZWN0LCBpbml0aWFsaXppbmcgaXQgd2l0aCB0aGUgcGFja2FnZSBuYW1lLCBkZXNjcmlwdGlvbiwgYW5kIHZlcnNpb25cbiAgICogQHJldHVybiB7RmFzdE1DUH0gVGhlIGluaXRpYWxpemVkIENvbW1hbmQgb2JqZWN0XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldCBtY3AoKSB7XG4gICAgaWYgKCF0aGlzLl9tY3ApIHtcbiAgICAgIHRoaXMuX21jcCA9IG5ldyBGYXN0TUNQKHtcbiAgICAgICAgbmFtZTogXCJkZWNhZi10cyBNQ1Agc2VydmVyXCIsXG4gICAgICAgIGluc3RydWN0aW9uczogXCJcIixcbiAgICAgICAgdmVyc2lvbjogVkVSU0lPTiBhcyBhbnksXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX21jcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9hZHMgYW5kIHJlZ2lzdGVycyBhbiBtY3AgZXh0ZW5zaW9uIG1vZHVsZSBmcm9tIGEgZmlsZVxuICAgKiBAc3VtbWFyeSBEeW5hbWljYWxseSBpbXBvcnRzIGFuIG1jcCBleHRlbnNpb24gbW9kdWxlIGZyb20gdGhlIHNwZWNpZmllZCBmaWxlIHBhdGgsIGluaXRpYWxpemVzIGl0LCBhbmQgcmVnaXN0ZXJzIGl0IGluIHRoZSBtb2R1bGVzIGNvbGxlY3Rpb25cbiAgICpcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZChcbiAgICBzZXJ2ZXI6IEZhc3RNQ1AsXG4gICAgZmlsZVBhdGg6IHN0cmluZ1xuICApOiBQcm9taXNlPHsgbWNwOiBGYXN0TUNQOyBwYWNrYWdlOiBzdHJpbmc7IHZlcnNpb246IHN0cmluZyB9PiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMubG9hZCk7XG5cbiAgICBsZXQgcGtnOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgZW5yaWNoOiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IE1jcFV0aWxzLmxvYWRGcm9tRmlsZShmaWxlUGF0aCk7XG4gICAgICBwa2cgPSByZXMuUEFDS0FHRV9OQU1FO1xuICAgICAgdmVyc2lvbiA9IHJlcy5WRVJTSU9OO1xuICAgICAgZW5yaWNoID0gcmVzLmVucmljaDtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKGUgYXMgYW55KS5tZXNzYWdlIHx8IChlIGFzIGFueSkpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgbG9nLmluZm8oYEVucmljaGluZyBtY3Agc2VydmVyIHdpdGggbW9kdWxlICR7cGtnfSB2JHt2ZXJzaW9ufWApO1xuICAgICAgY29uc3QgcmVzdWx0ID0gZW5yaWNoKHNlcnZlcik7XG4gICAgICBzZXJ2ZXIgPSByZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlID8gYXdhaXQgcmVzdWx0IDogcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGZhaWxlZCB0byBlbnJpY2ggbWNwIHdpdGggbW9kdWxlICR7cGtnIHx8IFwidW5uYW1lZFwifSB1bmRlciAke2ZpbGVQYXRofTogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBlfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBtY3A6IHNlcnZlcixcbiAgICAgIHBhY2thZ2U6IHBrZyxcbiAgICAgIHZlcnNpb246IHZlcnNpb24sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmluZHMgYW5kIGxvYWRzIGFsbCBDTEkgbW9kdWxlcyBpbiB0aGUgYmFzZVBhdGhcbiAgICogQHN1bW1hcnkgVXNlcyB0aGUgY3Jhd2wgbWV0aG9kIHRvIGZpbmQgYWxsIENMSSBtb2R1bGVzIGluIHRoZSBzcGVjaWZpZWQgYmFzZSBwYXRoLFxuICAgKiB0aGVuIGxvYWRzIGFuZCByZWdpc3RlcnMgZWFjaCBtb2R1bGUgYXMgYSBzdWJjb21tYW5kXG4gICAqXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gYWxsIG1vZHVsZXMgYXJlIGxvYWRlZFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDbGlXcmFwcGVyXG4gICAqICAgcGFydGljaXBhbnQgRmlsZXN5c3RlbVxuICAgKiAgIHBhcnRpY2lwYW50IE1vZHVsZVxuICAgKlxuICAgKiAgIENsaVdyYXBwZXItPj5GaWxlc3lzdGVtOiBKb2luIGJhc2VQYXRoIHdpdGggY3dkXG4gICAqICAgQ2xpV3JhcHBlci0+PkNsaVdyYXBwZXI6IGNyYXdsKGJhc2VQYXRoLCBjcmF3bExldmVscylcbiAgICogICBDbGlXcmFwcGVyLS0+PkNsaVdyYXBwZXI6IG1vZHVsZXNbXVxuICAgKiAgIGxvb3AgRm9yIGVhY2ggbW9kdWxlXG4gICAqICAgICBhbHQgTm90IEBkZWNhZi10cy9jbGlcbiAgICogICAgICAgQ2xpV3JhcHBlci0+PkNsaVdyYXBwZXI6IGxvYWQobW9kdWxlLCBjd2QpXG4gICAqICAgICAgIENsaVdyYXBwZXItLT4+Q2xpV3JhcHBlcjogbmFtZVxuICAgKiAgICAgICBDbGlXcmFwcGVyLT4+Q2xpV3JhcHBlcjogQ2hlY2sgaWYgY29tbWFuZCBleGlzdHNcbiAgICogICAgICAgYWx0IENvbW1hbmQgZG9lc24ndCBleGlzdFxuICAgKiAgICAgICAgIENsaVdyYXBwZXItPj5Db21tYW5kOiBjb21tYW5kKG5hbWUpLmFkZENvbW1hbmQobW9kdWxlc1tuYW1lXSlcbiAgICogICAgICAgZW5kXG4gICAqICAgICBlbmRcbiAgICogICBlbmRcbiAgICogICBDbGlXcmFwcGVyLT4+Q29uc29sZTogTG9nIGxvYWRlZCBtb2R1bGVzXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGJvb3QoKSB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuYm9vdCk7XG4gICAgbGV0IHNlcnZlciA9IHRoaXMubWNwO1xuICAgIC8vIGRpc2NvdmVyIG1vZHVsZXMgYnkgY3Jhd2xpbmcgYmFzZVBhdGhcbiAgICBjb25zdCBtb2R1bGVGaWxlcyA9IHRoaXMuY3Jhd2woXG4gICAgICBwYXRoLnJlc29sdmUodGhpcy5iYXNlUGF0aCksXG4gICAgICB0aGlzLmNyYXdsTGV2ZWxzXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IG1vZHVsZUZpbGUgb2YgbW9kdWxlRmlsZXMpIHtcbiAgICAgIGlmIChtb2R1bGVGaWxlLmluY2x1ZGVzKFwiQGRlY2FmLXRzL21jcFwiKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubG9hZChzZXJ2ZXIsIG1vZHVsZUZpbGUpO1xuICAgICAgICBzZXJ2ZXIgPSByZXMubWNwO1xuICAgICAgICB0aGlzLm1vZHVsZXNbcmVzLnBhY2thZ2VdID0gbW9kdWxlRmlsZTtcbiAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgIGBGYWlsZWQgdG8gbG9hZCBNQ1AgY29uZmlncyBmb3IgJHttb2R1bGVGaWxlfTogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgbG9hZGVkIG1vZHVsZXM6XFxuJHtPYmplY3Qua2V5cyh0aGlzLm1vZHVsZXMpXG4gICAgICAgIC5tYXAoKGspID0+IGAtICR7a31gKVxuICAgICAgICAuam9pbihcIlxcblwiKX1gXG4gICAgKTtcbiAgICByZXR1cm4gc2VydmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWN1cnNpdmVseSBzZWFyY2hlcyBmb3IgQ0xJIG1vZHVsZSBmaWxlcyBpbiB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZVxuICAgKiBAc3VtbWFyeSBDcmF3bHMgdGhlIGJhc2VQYXRoIHVwIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGZvbGRlciBsZXZlbHMgdG8gZmluZCBmaWxlcyBuYW1lZCBhY2NvcmRpbmcgdG8gQ0xJX0ZJTEVfTkFNRVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZVBhdGggVGhlIGFic29sdXRlIGJhc2UgcGF0aCB0byBzdGFydCBzZWFyY2hpbmcgaW5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtsZXZlbHM9Ml0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpcmVjdG9yeSBsZXZlbHMgdG8gY3Jhd2xcbiAgICogQHJldHVybiB7c3RyaW5nW119IEFuIGFycmF5IG9mIGZpbGUgcGF0aHMgdG8gQ0xJIG1vZHVsZXNcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY3Jhd2woYmFzZVBhdGg6IHN0cmluZywgbGV2ZWxzOiBudW1iZXIgPSAyKSB7XG4gICAgaWYgKGxldmVscyA8PSAwKSByZXR1cm4gW107XG4gICAgcmV0dXJuIGZzLnJlYWRkaXJTeW5jKGJhc2VQYXRoKS5yZWR1Y2UoKGFjY3VtOiBzdHJpbmdbXSwgZmlsZSkgPT4ge1xuICAgICAgZmlsZSA9IHBhdGguam9pbihiYXNlUGF0aCwgZmlsZSk7XG4gICAgICBpZiAoZnMuc3RhdFN5bmMoZmlsZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBhY2N1bS5wdXNoKC4uLnRoaXMuY3Jhd2woZmlsZSwgbGV2ZWxzIC0gMSkpO1xuICAgICAgfSBlbHNlIGlmIChmaWxlLm1hdGNoKG5ldyBSZWdFeHAoYCR7TUNQX0ZJTEVfTkFNRX0uW2NtXT9qcyRgLCBcImdtXCIpKSkge1xuICAgICAgICBhY2N1bS5wdXNoKGZpbGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjY3VtO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgdGhlIENMSSB3aXRoIHRoZSBwcm92aWRlZCBhcmd1bWVudHNcbiAgICogQHN1bW1hcnkgQm9vdHMgdGhlIENMSSBieSBsb2FkaW5nIGFsbCBtb2R1bGVzLCB0aGVuIHBhcnNlcyBhbmQgZXhlY3V0ZXMgdGhlIGNvbW1hbmQgc3BlY2lmaWVkIGluIHRoZSBhcmd1bWVudHNcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gW2FyZ3M9cHJvY2Vzcy5hcmd2XSBDb21tYW5kIGxpbmUgYXJndW1lbnRzIHRvIHBhcnNlIGFuZCBleGVjdXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbW1hbmQgZXhlY3V0aW9uIGlzIGNvbXBsZXRlXG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICAgKiAgIHBhcnRpY2lwYW50IENsaVdyYXBwZXJcbiAgICogICBwYXJ0aWNpcGFudCBDb21tYW5kXG4gICAqXG4gICAqICAgQ2xpZW50LT4+Q2xpV3JhcHBlcjogcnVuKGFyZ3MpXG4gICAqICAgQ2xpV3JhcHBlci0+PkNsaVdyYXBwZXI6IGJvb3QoKVxuICAgKiAgIE5vdGUgb3ZlciBDbGlXcmFwcGVyOiBMb2FkcyBhbGwgbW9kdWxlc1xuICAgKiAgIENsaVdyYXBwZXItPj5Db21tYW5kOiBwYXJzZUFzeW5jKGFyZ3MpXG4gICAqICAgQ29tbWFuZC0tPj5DbGlXcmFwcGVyOiByZXN1bHRcbiAgICogICBDbGlXcmFwcGVyLS0+PkNsaWVudDogcmVzdWx0XG4gICAqL1xuICBhc3luYyBydW4oYXJnczogc3RyaW5nW10gPSBwcm9jZXNzLmFyZ3YpIHtcbiAgICB2b2lkIGFyZ3M7XG4gICAgY29uc3Qgc2VydmVyID0gYXdhaXQgdGhpcy5ib290KCk7XG4gICAgYXdhaXQgc2VydmVyLnN0YXJ0KHsgdHJhbnNwb3J0VHlwZTogXCJzdGRpb1wiIH0pO1xuICB9XG59XG4iXX0=
|
package/lib/McpWrapper.d.ts
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { LoggedClass } from "@decaf-ts/logging";
|
|
2
|
-
/**
|
|
3
|
-
* @description Utility class to handle CLI functionality from all Decaf modules
|
|
4
|
-
* @summary This class provides a wrapper around Commander.js to handle CLI commands from different Decaf modules.
|
|
5
|
-
* It crawls the filesystem to find CLI modules, loads them, and registers their commands.
|
|
6
|
-
*/
|
|
7
|
-
export declare class McpWrapper extends LoggedClass {
|
|
8
|
-
private basePath;
|
|
9
|
-
private crawlLevels;
|
|
10
|
-
private _mcp?;
|
|
11
|
-
private modules;
|
|
12
|
-
private readonly rootPath;
|
|
13
|
-
constructor(basePath?: string, crawlLevels?: number);
|
|
14
|
-
/**
|
|
15
|
-
* @description Retrieves and initializes the Commander Command object
|
|
16
|
-
* @summary Lazy-loads the Command object, initializing it with the package name, description, and version
|
|
17
|
-
* @return {FastMCP} The initialized Command object
|
|
18
|
-
* @private
|
|
19
|
-
*/
|
|
20
|
-
private get mcp();
|
|
21
|
-
/**
|
|
22
|
-
* @description Loads and registers an mcp extension module from a file
|
|
23
|
-
* @summary Dynamically imports an mcp extension module from the specified file path, initializes it, and registers it in the modules collection
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
private load;
|
|
27
|
-
/**
|
|
28
|
-
* @description Finds and loads all CLI modules in the basePath
|
|
29
|
-
* @summary Uses the crawl method to find all CLI modules in the specified base path,
|
|
30
|
-
* then loads and registers each module as a subcommand
|
|
31
|
-
*
|
|
32
|
-
* @return {Promise<void>} A promise that resolves when all modules are loaded
|
|
33
|
-
*
|
|
34
|
-
* @private
|
|
35
|
-
* @mermaid
|
|
36
|
-
* sequenceDiagram
|
|
37
|
-
* participant CliWrapper
|
|
38
|
-
* participant Filesystem
|
|
39
|
-
* participant Module
|
|
40
|
-
*
|
|
41
|
-
* CliWrapper->>Filesystem: Join basePath with cwd
|
|
42
|
-
* CliWrapper->>CliWrapper: crawl(basePath, crawlLevels)
|
|
43
|
-
* CliWrapper-->>CliWrapper: modules[]
|
|
44
|
-
* loop For each module
|
|
45
|
-
* alt Not @decaf-ts/cli
|
|
46
|
-
* CliWrapper->>CliWrapper: load(module, cwd)
|
|
47
|
-
* CliWrapper-->>CliWrapper: name
|
|
48
|
-
* CliWrapper->>CliWrapper: Check if command exists
|
|
49
|
-
* alt Command doesn't exist
|
|
50
|
-
* CliWrapper->>Command: command(name).addCommand(modules[name])
|
|
51
|
-
* end
|
|
52
|
-
* end
|
|
53
|
-
* end
|
|
54
|
-
* CliWrapper->>Console: Log loaded modules
|
|
55
|
-
*/
|
|
56
|
-
private boot;
|
|
57
|
-
/**
|
|
58
|
-
* @description Recursively searches for CLI module files in the directory structure
|
|
59
|
-
* @summary Crawls the basePath up to the specified number of folder levels to find files named according to CLI_FILE_NAME
|
|
60
|
-
*
|
|
61
|
-
* @param {string} basePath The absolute base path to start searching in
|
|
62
|
-
* @param {number} [levels=2] The maximum number of directory levels to crawl
|
|
63
|
-
* @return {string[]} An array of file paths to CLI modules
|
|
64
|
-
*
|
|
65
|
-
* @private
|
|
66
|
-
*/
|
|
67
|
-
private crawl;
|
|
68
|
-
/**
|
|
69
|
-
* @description Executes the CLI with the provided arguments
|
|
70
|
-
* @summary Boots the CLI by loading all modules, then parses and executes the command specified in the arguments
|
|
71
|
-
*
|
|
72
|
-
* @param {string[]} [args=process.argv] Command line arguments to parse and execute
|
|
73
|
-
* @return {Promise<void>} A promise that resolves when the command execution is complete
|
|
74
|
-
*
|
|
75
|
-
* @mermaid
|
|
76
|
-
* sequenceDiagram
|
|
77
|
-
* participant Client
|
|
78
|
-
* participant CliWrapper
|
|
79
|
-
* participant Command
|
|
80
|
-
*
|
|
81
|
-
* Client->>CliWrapper: run(args)
|
|
82
|
-
* CliWrapper->>CliWrapper: boot()
|
|
83
|
-
* Note over CliWrapper: Loads all modules
|
|
84
|
-
* CliWrapper->>Command: parseAsync(args)
|
|
85
|
-
* Command-->>CliWrapper: result
|
|
86
|
-
* CliWrapper-->>Client: result
|
|
87
|
-
*/
|
|
88
|
-
run(args?: string[]): Promise<void>;
|
|
89
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const moduleValidator_1 = require("./../utils/moduleValidator.cjs");
|
|
5
|
-
async function main() {
|
|
6
|
-
try {
|
|
7
|
-
const issues = (0, moduleValidator_1.assertModuleScaffolding)();
|
|
8
|
-
if (issues.length) {
|
|
9
|
-
console.log(`[module-validator] Completed with ${issues.length} issue(s) (warnings may persist)`);
|
|
10
|
-
for (const issue of issues) {
|
|
11
|
-
console.log(` - [${issue.severity.toUpperCase()}] ${issue.module}: ${issue.detail}`);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
console.log("[module-validator] Modules validated successfully");
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
console.error(`[module-validator] ${error instanceof Error ? error.message : error}`);
|
|
20
|
-
process.exitCode = 1;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
void main();
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtbW9kdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vdmFsaWRhdGUtbW9kdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxvRUFBbUU7QUFFbkUsS0FBSyxVQUFVLElBQUk7SUFDakIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSx5Q0FBdUIsR0FBRSxDQUFDO1FBQ3pDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQ1QscUNBQXFDLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxDQUNyRixDQUFDO1lBQ0YsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxRQUFRLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQ3pFLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0RixPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssSUFBSSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgeyBhc3NlcnRNb2R1bGVTY2FmZm9sZGluZyB9IGZyb20gXCIuLi91dGlscy9tb2R1bGVWYWxpZGF0b3JcIjtcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBpc3N1ZXMgPSBhc3NlcnRNb2R1bGVTY2FmZm9sZGluZygpO1xuICAgIGlmIChpc3N1ZXMubGVuZ3RoKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFttb2R1bGUtdmFsaWRhdG9yXSBDb21wbGV0ZWQgd2l0aCAke2lzc3Vlcy5sZW5ndGh9IGlzc3VlKHMpICh3YXJuaW5ncyBtYXkgcGVyc2lzdClgXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBpc3N1ZSBvZiBpc3N1ZXMpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYCAgLSBbJHtpc3N1ZS5zZXZlcml0eS50b1VwcGVyQ2FzZSgpfV0gJHtpc3N1ZS5tb2R1bGV9OiAke2lzc3VlLmRldGFpbH1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiW21vZHVsZS12YWxpZGF0b3JdIE1vZHVsZXMgdmFsaWRhdGVkIHN1Y2Nlc3NmdWxseVwiKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihgW21vZHVsZS12YWxpZGF0b3JdICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBlcnJvcn1gKTtcbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgfVxufVxuXG52b2lkIG1haW4oKTtcbiJdfQ==
|
package/lib/esm/McpWrapper.d.ts
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { LoggedClass } from "@decaf-ts/logging";
|
|
2
|
-
/**
|
|
3
|
-
* @description Utility class to handle CLI functionality from all Decaf modules
|
|
4
|
-
* @summary This class provides a wrapper around Commander.js to handle CLI commands from different Decaf modules.
|
|
5
|
-
* It crawls the filesystem to find CLI modules, loads them, and registers their commands.
|
|
6
|
-
*/
|
|
7
|
-
export declare class McpWrapper extends LoggedClass {
|
|
8
|
-
private basePath;
|
|
9
|
-
private crawlLevels;
|
|
10
|
-
private _mcp?;
|
|
11
|
-
private modules;
|
|
12
|
-
private readonly rootPath;
|
|
13
|
-
constructor(basePath?: string, crawlLevels?: number);
|
|
14
|
-
/**
|
|
15
|
-
* @description Retrieves and initializes the Commander Command object
|
|
16
|
-
* @summary Lazy-loads the Command object, initializing it with the package name, description, and version
|
|
17
|
-
* @return {FastMCP} The initialized Command object
|
|
18
|
-
* @private
|
|
19
|
-
*/
|
|
20
|
-
private get mcp();
|
|
21
|
-
/**
|
|
22
|
-
* @description Loads and registers an mcp extension module from a file
|
|
23
|
-
* @summary Dynamically imports an mcp extension module from the specified file path, initializes it, and registers it in the modules collection
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
private load;
|
|
27
|
-
/**
|
|
28
|
-
* @description Finds and loads all CLI modules in the basePath
|
|
29
|
-
* @summary Uses the crawl method to find all CLI modules in the specified base path,
|
|
30
|
-
* then loads and registers each module as a subcommand
|
|
31
|
-
*
|
|
32
|
-
* @return {Promise<void>} A promise that resolves when all modules are loaded
|
|
33
|
-
*
|
|
34
|
-
* @private
|
|
35
|
-
* @mermaid
|
|
36
|
-
* sequenceDiagram
|
|
37
|
-
* participant CliWrapper
|
|
38
|
-
* participant Filesystem
|
|
39
|
-
* participant Module
|
|
40
|
-
*
|
|
41
|
-
* CliWrapper->>Filesystem: Join basePath with cwd
|
|
42
|
-
* CliWrapper->>CliWrapper: crawl(basePath, crawlLevels)
|
|
43
|
-
* CliWrapper-->>CliWrapper: modules[]
|
|
44
|
-
* loop For each module
|
|
45
|
-
* alt Not @decaf-ts/cli
|
|
46
|
-
* CliWrapper->>CliWrapper: load(module, cwd)
|
|
47
|
-
* CliWrapper-->>CliWrapper: name
|
|
48
|
-
* CliWrapper->>CliWrapper: Check if command exists
|
|
49
|
-
* alt Command doesn't exist
|
|
50
|
-
* CliWrapper->>Command: command(name).addCommand(modules[name])
|
|
51
|
-
* end
|
|
52
|
-
* end
|
|
53
|
-
* end
|
|
54
|
-
* CliWrapper->>Console: Log loaded modules
|
|
55
|
-
*/
|
|
56
|
-
private boot;
|
|
57
|
-
/**
|
|
58
|
-
* @description Recursively searches for CLI module files in the directory structure
|
|
59
|
-
* @summary Crawls the basePath up to the specified number of folder levels to find files named according to CLI_FILE_NAME
|
|
60
|
-
*
|
|
61
|
-
* @param {string} basePath The absolute base path to start searching in
|
|
62
|
-
* @param {number} [levels=2] The maximum number of directory levels to crawl
|
|
63
|
-
* @return {string[]} An array of file paths to CLI modules
|
|
64
|
-
*
|
|
65
|
-
* @private
|
|
66
|
-
*/
|
|
67
|
-
private crawl;
|
|
68
|
-
/**
|
|
69
|
-
* @description Executes the CLI with the provided arguments
|
|
70
|
-
* @summary Boots the CLI by loading all modules, then parses and executes the command specified in the arguments
|
|
71
|
-
*
|
|
72
|
-
* @param {string[]} [args=process.argv] Command line arguments to parse and execute
|
|
73
|
-
* @return {Promise<void>} A promise that resolves when the command execution is complete
|
|
74
|
-
*
|
|
75
|
-
* @mermaid
|
|
76
|
-
* sequenceDiagram
|
|
77
|
-
* participant Client
|
|
78
|
-
* participant CliWrapper
|
|
79
|
-
* participant Command
|
|
80
|
-
*
|
|
81
|
-
* Client->>CliWrapper: run(args)
|
|
82
|
-
* CliWrapper->>CliWrapper: boot()
|
|
83
|
-
* Note over CliWrapper: Loads all modules
|
|
84
|
-
* CliWrapper->>Command: parseAsync(args)
|
|
85
|
-
* Command-->>CliWrapper: result
|
|
86
|
-
* CliWrapper-->>Client: result
|
|
87
|
-
*/
|
|
88
|
-
run(args?: string[]): Promise<void>;
|
|
89
|
-
}
|