@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/mcp/types.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { analyzeRepoSchema, enumerateCapabilitiesSchema, planFeatureSchema, documentCodeSchema, codeChangeSchema, documentObjectSchema, coverageTaskSchema, readmeImprovementSchema } from "./schemas";
|
|
3
|
-
export type AnalyzeRepoArgs = z.infer<typeof analyzeRepoSchema>;
|
|
4
|
-
export type EnumerateCapabilitiesArgs = z.infer<typeof enumerateCapabilitiesSchema>;
|
|
5
|
-
export type PlanFeatureArgs = z.infer<typeof planFeatureSchema>;
|
|
6
|
-
export type DecorationResourceTemplate = {
|
|
7
|
-
name: string;
|
|
8
|
-
description: string;
|
|
9
|
-
uriTemplate: string;
|
|
10
|
-
mimeType: string;
|
|
11
|
-
arguments: ReadonlyArray<{
|
|
12
|
-
name: string;
|
|
13
|
-
description: string;
|
|
14
|
-
required: boolean;
|
|
15
|
-
}>;
|
|
16
|
-
load: (args: {
|
|
17
|
-
path: string;
|
|
18
|
-
}) => Promise<{
|
|
19
|
-
text: string;
|
|
20
|
-
}>;
|
|
21
|
-
};
|
|
22
|
-
export type DocumentCodeArgs = z.infer<typeof documentCodeSchema>;
|
|
23
|
-
export type ApplyCodeChangeArgs = z.infer<typeof codeChangeSchema>;
|
|
24
|
-
export type DocumentObjectArgs = z.infer<typeof documentObjectSchema>;
|
|
25
|
-
export type CoverageTaskArgs = z.infer<typeof coverageTaskSchema>;
|
|
26
|
-
export type ReadmeImprovementArgs = z.infer<typeof readmeImprovementSchema>;
|
|
27
|
-
export type DocPrompt = {
|
|
28
|
-
name: string;
|
|
29
|
-
title: string;
|
|
30
|
-
description: string;
|
|
31
|
-
content: string;
|
|
32
|
-
absolutePath: string;
|
|
33
|
-
};
|
|
34
|
-
export type WorkspaceResourceTemplate = {
|
|
35
|
-
name: string;
|
|
36
|
-
description: string;
|
|
37
|
-
uriTemplate: string;
|
|
38
|
-
mimeType: string;
|
|
39
|
-
arguments: ReadonlyArray<{
|
|
40
|
-
name: string;
|
|
41
|
-
description: string;
|
|
42
|
-
required: boolean;
|
|
43
|
-
}>;
|
|
44
|
-
load: (args: {
|
|
45
|
-
path: string;
|
|
46
|
-
}) => Promise<{
|
|
47
|
-
text: string;
|
|
48
|
-
}>;
|
|
49
|
-
};
|
|
50
|
-
export type PromptResourceTemplate = {
|
|
51
|
-
name: string;
|
|
52
|
-
description: string;
|
|
53
|
-
uriTemplate: string;
|
|
54
|
-
mimeType: string;
|
|
55
|
-
arguments: ReadonlyArray<{
|
|
56
|
-
name: string;
|
|
57
|
-
description: string;
|
|
58
|
-
required: boolean;
|
|
59
|
-
}>;
|
|
60
|
-
load: (args: {
|
|
61
|
-
name: string;
|
|
62
|
-
}) => Promise<{
|
|
63
|
-
text: string;
|
|
64
|
-
uri?: string;
|
|
65
|
-
}>;
|
|
66
|
-
};
|
package/lib/mcp/utils.cjs
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.readFileSafe = readFileSafe;
|
|
7
|
-
exports.listFilesRecursive = listFilesRecursive;
|
|
8
|
-
exports.deriveCapabilities = deriveCapabilities;
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
|
-
function readFileSafe(filePath, encoding = "utf8") {
|
|
12
|
-
try {
|
|
13
|
-
return fs_1.default.readFileSync(filePath, { encoding });
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function listFilesRecursive(root, matcher) {
|
|
20
|
-
const out = [];
|
|
21
|
-
const stack = [root];
|
|
22
|
-
while (stack.length) {
|
|
23
|
-
const cur = stack.pop();
|
|
24
|
-
const stat = fs_1.default.statSync(cur);
|
|
25
|
-
if (stat.isDirectory()) {
|
|
26
|
-
for (const f of fs_1.default.readdirSync(cur))
|
|
27
|
-
stack.push(path_1.default.join(cur, f));
|
|
28
|
-
}
|
|
29
|
-
else if (!matcher || matcher(cur)) {
|
|
30
|
-
out.push(cur);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return out.sort();
|
|
34
|
-
}
|
|
35
|
-
function deriveCapabilities(analysis) {
|
|
36
|
-
const cap = new Set();
|
|
37
|
-
// heuristics: if decorators like Decoration, flavouredAs, extend, override appear, add capabilities
|
|
38
|
-
const allDecs = new Set();
|
|
39
|
-
for (const k of Object.keys(analysis.api)) {
|
|
40
|
-
for (const d of analysis.api[k].decorators)
|
|
41
|
-
allDecs.add(d);
|
|
42
|
-
for (const e of analysis.api[k].exports)
|
|
43
|
-
if (/Decoration|decorate|Builder|Flavour/i.test(e))
|
|
44
|
-
cap.add("use-decoration-api");
|
|
45
|
-
}
|
|
46
|
-
if ([...allDecs].some((d) => /override|extend/i.test(d)))
|
|
47
|
-
cap.add("override-and-extend-decorations");
|
|
48
|
-
if (Object.keys(analysis.tests).length > 0)
|
|
49
|
-
cap.add("validate-with-tests");
|
|
50
|
-
if (analysis.readme)
|
|
51
|
-
cap.add("follow-readme-guides");
|
|
52
|
-
return [...cap].sort();
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWNwL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esb0NBU0M7QUFFRCxnREFnQkM7QUFFRCxnREFlQztBQS9DRCw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBRXhCLFNBQWdCLFlBQVksQ0FDMUIsUUFBZ0IsRUFDaEIsV0FBMkIsTUFBTTtJQUVqQyxJQUFJLENBQUM7UUFDSCxPQUFPLFlBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FDaEMsSUFBWSxFQUNaLE9BQWdDO0lBRWhDLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztJQUN6QixNQUFNLEtBQUssR0FBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUcsQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRyxZQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsS0FBSyxNQUFNLENBQUMsSUFBSSxZQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztnQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQzthQUFNLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxRQUFhO0lBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDOUIsb0dBQW9HO0lBQ3BHLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDbEMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFDLEtBQUssTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO1lBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUNyQyxJQUFJLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELEdBQUcsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQzdDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUM7UUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0UsSUFBSSxRQUFRLENBQUMsTUFBTTtRQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRGaWxlU2FmZShcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nID0gXCJ1dGY4XCJcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgeyBlbmNvZGluZyB9KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlzdEZpbGVzUmVjdXJzaXZlKFxuICByb290OiBzdHJpbmcsXG4gIG1hdGNoZXI/OiAocDogc3RyaW5nKSA9PiBib29sZWFuXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG91dDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3Qgc3RhY2s6IHN0cmluZ1tdID0gW3Jvb3RdO1xuICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgY29uc3QgY3VyID0gc3RhY2sucG9wKCkhO1xuICAgIGNvbnN0IHN0YXQgPSBmcy5zdGF0U3luYyhjdXIpO1xuICAgIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBmcy5yZWFkZGlyU3luYyhjdXIpKSBzdGFjay5wdXNoKHBhdGguam9pbihjdXIsIGYpKTtcbiAgICB9IGVsc2UgaWYgKCFtYXRjaGVyIHx8IG1hdGNoZXIoY3VyKSkge1xuICAgICAgb3V0LnB1c2goY3VyKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dC5zb3J0KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXJpdmVDYXBhYmlsaXRpZXMoYW5hbHlzaXM6IGFueSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgY2FwID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIC8vIGhldXJpc3RpY3M6IGlmIGRlY29yYXRvcnMgbGlrZSBEZWNvcmF0aW9uLCBmbGF2b3VyZWRBcywgZXh0ZW5kLCBvdmVycmlkZSBhcHBlYXIsIGFkZCBjYXBhYmlsaXRpZXNcbiAgY29uc3QgYWxsRGVjcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoYW5hbHlzaXMuYXBpKSkge1xuICAgIGZvciAoY29uc3QgZCBvZiBhbmFseXNpcy5hcGlba10uZGVjb3JhdG9ycykgYWxsRGVjcy5hZGQoZCk7XG4gICAgZm9yIChjb25zdCBlIG9mIGFuYWx5c2lzLmFwaVtrXS5leHBvcnRzKVxuICAgICAgaWYgKC9EZWNvcmF0aW9ufGRlY29yYXRlfEJ1aWxkZXJ8Rmxhdm91ci9pLnRlc3QoZSkpXG4gICAgICAgIGNhcC5hZGQoXCJ1c2UtZGVjb3JhdGlvbi1hcGlcIik7XG4gIH1cbiAgaWYgKFsuLi5hbGxEZWNzXS5zb21lKChkKSA9PiAvb3ZlcnJpZGV8ZXh0ZW5kL2kudGVzdChkKSkpXG4gICAgY2FwLmFkZChcIm92ZXJyaWRlLWFuZC1leHRlbmQtZGVjb3JhdGlvbnNcIik7XG4gIGlmIChPYmplY3Qua2V5cyhhbmFseXNpcy50ZXN0cykubGVuZ3RoID4gMCkgY2FwLmFkZChcInZhbGlkYXRlLXdpdGgtdGVzdHNcIik7XG4gIGlmIChhbmFseXNpcy5yZWFkbWUpIGNhcC5hZGQoXCJmb2xsb3ctcmVhZG1lLWd1aWRlc1wiKTtcbiAgcmV0dXJuIFsuLi5jYXBdLnNvcnQoKTtcbn1cblxuIl19
|
package/lib/mcp/utils.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare function readFileSafe(filePath: string, encoding?: BufferEncoding): string | undefined;
|
|
2
|
-
export declare function listFilesRecursive(root: string, matcher?: (p: string) => boolean): string[];
|
|
3
|
-
export declare function deriveCapabilities(analysis: any): string[];
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.findModuleDirs = findModuleDirs;
|
|
7
|
-
exports.validateModules = validateModules;
|
|
8
|
-
// New: validation entrypoint for module structure
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const REQUIRED_SUBFOLDERS = ["prompts", "resources", "templates", "tools"];
|
|
12
|
-
function findModuleDirs(repoRoot) {
|
|
13
|
-
const modulesPath = path_1.default.resolve(repoRoot, "src", "modules");
|
|
14
|
-
if (!fs_1.default.existsSync(modulesPath) || !fs_1.default.statSync(modulesPath).isDirectory()) {
|
|
15
|
-
return [];
|
|
16
|
-
}
|
|
17
|
-
return fs_1.default
|
|
18
|
-
.readdirSync(modulesPath, { withFileTypes: true })
|
|
19
|
-
.filter((d) => d.isDirectory())
|
|
20
|
-
.map((d) => path_1.default.join(modulesPath, d.name));
|
|
21
|
-
}
|
|
22
|
-
function hasIndexExport(folderPath) {
|
|
23
|
-
const candidates = [
|
|
24
|
-
"index.ts",
|
|
25
|
-
"index.tsx",
|
|
26
|
-
"index.js",
|
|
27
|
-
"index.cjs",
|
|
28
|
-
"index.mjs",
|
|
29
|
-
];
|
|
30
|
-
for (const c of candidates) {
|
|
31
|
-
if (fs_1.default.existsSync(path_1.default.join(folderPath, c)))
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
function validateModules(repoRoot) {
|
|
37
|
-
const dirs = findModuleDirs(repoRoot);
|
|
38
|
-
const issues = [];
|
|
39
|
-
for (const moduleDir of dirs) {
|
|
40
|
-
const moduleName = path_1.default.basename(moduleDir);
|
|
41
|
-
for (const sub of REQUIRED_SUBFOLDERS) {
|
|
42
|
-
const subPath = path_1.default.join(moduleDir, sub);
|
|
43
|
-
if (!fs_1.default.existsSync(subPath) || !fs_1.default.statSync(subPath).isDirectory()) {
|
|
44
|
-
issues.push({
|
|
45
|
-
module: moduleName,
|
|
46
|
-
path: subPath,
|
|
47
|
-
type: "missing-folder",
|
|
48
|
-
detail: `Required folder '${sub}' is missing in module '${moduleName}'`,
|
|
49
|
-
});
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
// If folder exists, check for index export
|
|
53
|
-
if (!hasIndexExport(subPath)) {
|
|
54
|
-
issues.push({
|
|
55
|
-
module: moduleName,
|
|
56
|
-
path: subPath,
|
|
57
|
-
type: "missing-export",
|
|
58
|
-
detail: `No index export found in '${subPath}'. Expected one of index.ts, index.js, etc.`,
|
|
59
|
-
});
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
// Optionally inspect the index file to see if it exports a list (lightweight check)
|
|
63
|
-
try {
|
|
64
|
-
const indexFile = candidatesFindingIndex(subPath);
|
|
65
|
-
if (indexFile) {
|
|
66
|
-
const content = fs_1.default.readFileSync(indexFile, "utf8");
|
|
67
|
-
// crude heuristics: look for `export const name = [` or `export const name: Type[] = [`,
|
|
68
|
-
// or any named export like `export { something }` which implies exports exist.
|
|
69
|
-
const exportListPattern = /export\s+(const|let|var)\s+[\w$]+(?:\s*:\s*[^=]+)?\s*=\s*\[/;
|
|
70
|
-
if (!exportListPattern.test(content) &&
|
|
71
|
-
!/export\s+\{/.test(content)) {
|
|
72
|
-
issues.push({
|
|
73
|
-
module: moduleName,
|
|
74
|
-
path: indexFile,
|
|
75
|
-
type: "empty-list",
|
|
76
|
-
detail: `Index file does not appear to export a list of assets: ${path_1.default.basename(indexFile)}`,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
issues.push({
|
|
83
|
-
module: moduleName,
|
|
84
|
-
path: subPath,
|
|
85
|
-
type: "other",
|
|
86
|
-
detail: `Error reading index file: ${err.message}`,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return {
|
|
92
|
-
ok: issues.length === 0,
|
|
93
|
-
modulesChecked: dirs.length,
|
|
94
|
-
issues,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
function candidatesFindingIndex(folderPath) {
|
|
98
|
-
const candidates = [
|
|
99
|
-
"index.ts",
|
|
100
|
-
"index.tsx",
|
|
101
|
-
"index.js",
|
|
102
|
-
"index.cjs",
|
|
103
|
-
"index.mjs",
|
|
104
|
-
];
|
|
105
|
-
for (const c of candidates) {
|
|
106
|
-
const full = path_1.default.join(folderPath, c);
|
|
107
|
-
if (fs_1.default.existsSync(full))
|
|
108
|
-
return full;
|
|
109
|
-
}
|
|
110
|
-
return undefined;
|
|
111
|
-
}
|
|
112
|
-
// CLI helper
|
|
113
|
-
if (require.main === module) {
|
|
114
|
-
const repoRoot = process.cwd();
|
|
115
|
-
const report = validateModules(repoRoot);
|
|
116
|
-
if (!report.ok) {
|
|
117
|
-
console.error("Module validation failed:\n", JSON.stringify(report, null, 2));
|
|
118
|
-
process.exit(2);
|
|
119
|
-
}
|
|
120
|
-
console.log("Module validation passed");
|
|
121
|
-
process.exit(0);
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWNwL3ZhbGlkYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUF3QkEsd0NBU0M7QUFnQkQsMENBZ0VDO0FBakhELGtEQUFrRDtBQUNsRCw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBb0J4QixNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFM0UsU0FBZ0IsY0FBYyxDQUFDLFFBQWdCO0lBQzdDLE1BQU0sV0FBVyxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3RCxJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUMzRSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLFlBQUU7U0FDTixXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2pELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLFVBQWtCO0lBQ3hDLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLFVBQVU7UUFDVixXQUFXO1FBQ1gsVUFBVTtRQUNWLFdBQVc7UUFDWCxXQUFXO0tBQ1osQ0FBQztJQUNGLEtBQUssTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDM0IsSUFBSSxZQUFFLENBQUMsVUFBVSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7SUFDM0QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxRQUFnQjtJQUM5QyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQztJQUVyQyxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUNuRSxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNWLE1BQU0sRUFBRSxVQUFVO29CQUNsQixJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixNQUFNLEVBQUUsb0JBQW9CLEdBQUcsMkJBQTJCLFVBQVUsR0FBRztpQkFDeEUsQ0FBQyxDQUFDO2dCQUNILFNBQVM7WUFDWCxDQUFDO1lBQ0QsMkNBQTJDO1lBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixNQUFNLEVBQUUsVUFBVTtvQkFDbEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsTUFBTSxFQUFFLDZCQUE2QixPQUFPLDZDQUE2QztpQkFDMUYsQ0FBQyxDQUFDO2dCQUNILFNBQVM7WUFDWCxDQUFDO1lBQ0Qsb0ZBQW9GO1lBQ3BGLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDZCxNQUFNLE9BQU8sR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDbkQseUZBQXlGO29CQUN6RiwrRUFBK0U7b0JBQy9FLE1BQU0saUJBQWlCLEdBQ3JCLDZEQUE2RCxDQUFDO29CQUNoRSxJQUNFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzt3QkFDaEMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUM1QixDQUFDO3dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQUM7NEJBQ1YsTUFBTSxFQUFFLFVBQVU7NEJBQ2xCLElBQUksRUFBRSxTQUFTOzRCQUNmLElBQUksRUFBRSxZQUFZOzRCQUNsQixNQUFNLEVBQUUsMERBQTBELGNBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7eUJBQzdGLENBQUMsQ0FBQztvQkFDTCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixNQUFNLEVBQUUsVUFBVTtvQkFDbEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLE9BQU87b0JBQ2IsTUFBTSxFQUFFLDZCQUE2QixHQUFHLENBQUMsT0FBTyxFQUFFO2lCQUNuRCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDM0IsTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxVQUFrQjtJQUNoRCxNQUFNLFVBQVUsR0FBRztRQUNqQixVQUFVO1FBQ1YsV0FBVztRQUNYLFVBQVU7UUFDVixXQUFXO1FBQ1gsV0FBVztLQUNaLENBQUM7SUFDRixLQUFLLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksWUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELGFBQWE7QUFDYixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDNUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FDWCw2QkFBNkIsRUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUNoQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5ldzogdmFsaWRhdGlvbiBlbnRyeXBvaW50IGZvciBtb2R1bGUgc3RydWN0dXJlXG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uSXNzdWUgPSB7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIHR5cGU6XG4gICAgfCBcIm1pc3NpbmctZm9sZGVyXCJcbiAgICB8IFwibWlzc2luZy1leHBvcnRcIlxuICAgIHwgXCJlbXB0eS1saXN0XCJcbiAgICB8IFwiZGlzYWJsZWRcIlxuICAgIHwgXCJvdGhlclwiO1xuICBkZXRhaWw/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uUmVwb3J0ID0ge1xuICBvazogYm9vbGVhbjtcbiAgbW9kdWxlc0NoZWNrZWQ6IG51bWJlcjtcbiAgaXNzdWVzOiBWYWxpZGF0aW9uSXNzdWVbXTtcbn07XG5cbmNvbnN0IFJFUVVJUkVEX1NVQkZPTERFUlMgPSBbXCJwcm9tcHRzXCIsIFwicmVzb3VyY2VzXCIsIFwidGVtcGxhdGVzXCIsIFwidG9vbHNcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTW9kdWxlRGlycyhyZXBvUm9vdDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBtb2R1bGVzUGF0aCA9IHBhdGgucmVzb2x2ZShyZXBvUm9vdCwgXCJzcmNcIiwgXCJtb2R1bGVzXCIpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMobW9kdWxlc1BhdGgpIHx8ICFmcy5zdGF0U3luYyhtb2R1bGVzUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gZnNcbiAgICAucmVhZGRpclN5bmMobW9kdWxlc1BhdGgsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KVxuICAgIC5maWx0ZXIoKGQpID0+IGQuaXNEaXJlY3RvcnkoKSlcbiAgICAubWFwKChkKSA9PiBwYXRoLmpvaW4obW9kdWxlc1BhdGgsIGQubmFtZSkpO1xufVxuXG5mdW5jdGlvbiBoYXNJbmRleEV4cG9ydChmb2xkZXJQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IFtcbiAgICBcImluZGV4LnRzXCIsXG4gICAgXCJpbmRleC50c3hcIixcbiAgICBcImluZGV4LmpzXCIsXG4gICAgXCJpbmRleC5janNcIixcbiAgICBcImluZGV4Lm1qc1wiLFxuICBdO1xuICBmb3IgKGNvbnN0IGMgb2YgY2FuZGlkYXRlcykge1xuICAgIGlmIChmcy5leGlzdHNTeW5jKHBhdGguam9pbihmb2xkZXJQYXRoLCBjKSkpIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTW9kdWxlcyhyZXBvUm9vdDogc3RyaW5nKTogVmFsaWRhdGlvblJlcG9ydCB7XG4gIGNvbnN0IGRpcnMgPSBmaW5kTW9kdWxlRGlycyhyZXBvUm9vdCk7XG4gIGNvbnN0IGlzc3VlczogVmFsaWRhdGlvbklzc3VlW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IG1vZHVsZURpciBvZiBkaXJzKSB7XG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IHBhdGguYmFzZW5hbWUobW9kdWxlRGlyKTtcbiAgICBmb3IgKGNvbnN0IHN1YiBvZiBSRVFVSVJFRF9TVUJGT0xERVJTKSB7XG4gICAgICBjb25zdCBzdWJQYXRoID0gcGF0aC5qb2luKG1vZHVsZURpciwgc3ViKTtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhzdWJQYXRoKSB8fCAhZnMuc3RhdFN5bmMoc3ViUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBpc3N1ZXMucHVzaCh7XG4gICAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICAgIHBhdGg6IHN1YlBhdGgsXG4gICAgICAgICAgdHlwZTogXCJtaXNzaW5nLWZvbGRlclwiLFxuICAgICAgICAgIGRldGFpbDogYFJlcXVpcmVkIGZvbGRlciAnJHtzdWJ9JyBpcyBtaXNzaW5nIGluIG1vZHVsZSAnJHttb2R1bGVOYW1lfSdgLFxuICAgICAgICB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBJZiBmb2xkZXIgZXhpc3RzLCBjaGVjayBmb3IgaW5kZXggZXhwb3J0XG4gICAgICBpZiAoIWhhc0luZGV4RXhwb3J0KHN1YlBhdGgpKSB7XG4gICAgICAgIGlzc3Vlcy5wdXNoKHtcbiAgICAgICAgICBtb2R1bGU6IG1vZHVsZU5hbWUsXG4gICAgICAgICAgcGF0aDogc3ViUGF0aCxcbiAgICAgICAgICB0eXBlOiBcIm1pc3NpbmctZXhwb3J0XCIsXG4gICAgICAgICAgZGV0YWlsOiBgTm8gaW5kZXggZXhwb3J0IGZvdW5kIGluICcke3N1YlBhdGh9Jy4gRXhwZWN0ZWQgb25lIG9mIGluZGV4LnRzLCBpbmRleC5qcywgZXRjLmAsXG4gICAgICAgIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIE9wdGlvbmFsbHkgaW5zcGVjdCB0aGUgaW5kZXggZmlsZSB0byBzZWUgaWYgaXQgZXhwb3J0cyBhIGxpc3QgKGxpZ2h0d2VpZ2h0IGNoZWNrKVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaW5kZXhGaWxlID0gY2FuZGlkYXRlc0ZpbmRpbmdJbmRleChzdWJQYXRoKTtcbiAgICAgICAgaWYgKGluZGV4RmlsZSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoaW5kZXhGaWxlLCBcInV0ZjhcIik7XG4gICAgICAgICAgLy8gY3J1ZGUgaGV1cmlzdGljczogbG9vayBmb3IgYGV4cG9ydCBjb25zdCBuYW1lID0gW2Agb3IgYGV4cG9ydCBjb25zdCBuYW1lOiBUeXBlW10gPSBbYCxcbiAgICAgICAgICAvLyBvciBhbnkgbmFtZWQgZXhwb3J0IGxpa2UgYGV4cG9ydCB7IHNvbWV0aGluZyB9YCB3aGljaCBpbXBsaWVzIGV4cG9ydHMgZXhpc3QuXG4gICAgICAgICAgY29uc3QgZXhwb3J0TGlzdFBhdHRlcm4gPVxuICAgICAgICAgICAgL2V4cG9ydFxccysoY29uc3R8bGV0fHZhcilcXHMrW1xcdyRdKyg/Olxccyo6XFxzKltePV0rKT9cXHMqPVxccypcXFsvO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFleHBvcnRMaXN0UGF0dGVybi50ZXN0KGNvbnRlbnQpICYmXG4gICAgICAgICAgICAhL2V4cG9ydFxccytcXHsvLnRlc3QoY29udGVudClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlzc3Vlcy5wdXNoKHtcbiAgICAgICAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICAgICAgICBwYXRoOiBpbmRleEZpbGUsXG4gICAgICAgICAgICAgIHR5cGU6IFwiZW1wdHktbGlzdFwiLFxuICAgICAgICAgICAgICBkZXRhaWw6IGBJbmRleCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBleHBvcnQgYSBsaXN0IG9mIGFzc2V0czogJHtwYXRoLmJhc2VuYW1lKGluZGV4RmlsZSl9YCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgaXNzdWVzLnB1c2goe1xuICAgICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgICBwYXRoOiBzdWJQYXRoLFxuICAgICAgICAgIHR5cGU6IFwib3RoZXJcIixcbiAgICAgICAgICBkZXRhaWw6IGBFcnJvciByZWFkaW5nIGluZGV4IGZpbGU6ICR7ZXJyLm1lc3NhZ2V9YCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvazogaXNzdWVzLmxlbmd0aCA9PT0gMCxcbiAgICBtb2R1bGVzQ2hlY2tlZDogZGlycy5sZW5ndGgsXG4gICAgaXNzdWVzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBjYW5kaWRhdGVzRmluZGluZ0luZGV4KGZvbGRlclBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXG4gICAgXCJpbmRleC50c1wiLFxuICAgIFwiaW5kZXgudHN4XCIsXG4gICAgXCJpbmRleC5qc1wiLFxuICAgIFwiaW5kZXguY2pzXCIsXG4gICAgXCJpbmRleC5tanNcIixcbiAgXTtcbiAgZm9yIChjb25zdCBjIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBjb25zdCBmdWxsID0gcGF0aC5qb2luKGZvbGRlclBhdGgsIGMpO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKGZ1bGwpKSByZXR1cm4gZnVsbDtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLyBDTEkgaGVscGVyXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgY29uc3QgcmVwb1Jvb3QgPSBwcm9jZXNzLmN3ZCgpO1xuICBjb25zdCByZXBvcnQgPSB2YWxpZGF0ZU1vZHVsZXMocmVwb1Jvb3QpO1xuICBpZiAoIXJlcG9ydC5vaykge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBcIk1vZHVsZSB2YWxpZGF0aW9uIGZhaWxlZDpcXG5cIixcbiAgICAgIEpTT04uc3RyaW5naWZ5KHJlcG9ydCwgbnVsbCwgMilcbiAgICApO1xuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxuICBjb25zb2xlLmxvZyhcIk1vZHVsZSB2YWxpZGF0aW9uIHBhc3NlZFwiKTtcbiAgcHJvY2Vzcy5leGl0KDApO1xufVxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export type ValidationIssue = {
|
|
2
|
-
module: string;
|
|
3
|
-
path: string;
|
|
4
|
-
type: "missing-folder" | "missing-export" | "empty-list" | "disabled" | "other";
|
|
5
|
-
detail?: string;
|
|
6
|
-
};
|
|
7
|
-
export type ValidationReport = {
|
|
8
|
-
ok: boolean;
|
|
9
|
-
modulesChecked: number;
|
|
10
|
-
issues: ValidationIssue[];
|
|
11
|
-
};
|
|
12
|
-
export declare function findModuleDirs(repoRoot: string): string[];
|
|
13
|
-
export declare function validateModules(repoRoot: string): ValidationReport;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.scaffoldModule = scaffoldModule;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const DEFAULT_PLACEHOLDERS = {
|
|
10
|
-
prompts: `export const promptList = [
|
|
11
|
-
{
|
|
12
|
-
id: "example-prompt",
|
|
13
|
-
title: "Example prompt",
|
|
14
|
-
description: "A placeholder prompt created by scaffoldModule",
|
|
15
|
-
content: "Describe the task for the assistant...",
|
|
16
|
-
absolutePath: __filename,
|
|
17
|
-
},
|
|
18
|
-
] as const;
|
|
19
|
-
`,
|
|
20
|
-
resources: `export const resources = [
|
|
21
|
-
{
|
|
22
|
-
id: "example-resource",
|
|
23
|
-
name: "Example Resource",
|
|
24
|
-
description: "A placeholder resource created by scaffoldModule",
|
|
25
|
-
uri: "file://placeholder",
|
|
26
|
-
absolutePath: __filename,
|
|
27
|
-
},
|
|
28
|
-
] as const;
|
|
29
|
-
`,
|
|
30
|
-
templates: `export const templates = [
|
|
31
|
-
{
|
|
32
|
-
name: "example-template",
|
|
33
|
-
description: "A placeholder template created by scaffoldModule",
|
|
34
|
-
uriTemplate: "file://template/{path}",
|
|
35
|
-
mimeType: "text/plain",
|
|
36
|
-
},
|
|
37
|
-
] as const;
|
|
38
|
-
`,
|
|
39
|
-
tools: `export const toolList = [
|
|
40
|
-
{
|
|
41
|
-
id: "example-tool",
|
|
42
|
-
name: "example-tool",
|
|
43
|
-
description: "A placeholder tool created by scaffoldModule",
|
|
44
|
-
run: async () => ({ result: "placeholder" }),
|
|
45
|
-
},
|
|
46
|
-
] as const;
|
|
47
|
-
`,
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Create a module scaffold under repoRoot/src/modules/<moduleName>
|
|
51
|
-
* Returns created files list.
|
|
52
|
-
*/
|
|
53
|
-
function scaffoldModule(repoRoot, moduleName) {
|
|
54
|
-
if (!repoRoot)
|
|
55
|
-
throw new Error("repoRoot is required");
|
|
56
|
-
if (!moduleName)
|
|
57
|
-
throw new Error("moduleName is required");
|
|
58
|
-
const modulePath = path_1.default.join(repoRoot, "src", "modules", moduleName);
|
|
59
|
-
const createdFiles = [];
|
|
60
|
-
const subfolders = ["prompts", "resources", "templates", "tools"];
|
|
61
|
-
for (const folder of subfolders) {
|
|
62
|
-
const folderPath = path_1.default.join(modulePath, folder);
|
|
63
|
-
fs_1.default.mkdirSync(folderPath, { recursive: true });
|
|
64
|
-
const indexPath = path_1.default.join(folderPath, "index.ts");
|
|
65
|
-
// if file exists, skip writing
|
|
66
|
-
if (!fs_1.default.existsSync(indexPath)) {
|
|
67
|
-
// insert __filename for absolutePath in placeholders
|
|
68
|
-
const content = DEFAULT_PLACEHOLDERS[folder].replace(/__filename/g, JSON.stringify(indexPath));
|
|
69
|
-
fs_1.default.writeFileSync(indexPath, content, { encoding: "utf8" });
|
|
70
|
-
createdFiles.push(indexPath);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return { modulePath, createdFiles };
|
|
74
|
-
}
|
|
75
|
-
// CLI support when required directly via ts-node registration
|
|
76
|
-
if (require.main === module) {
|
|
77
|
-
const [, , moduleName] = process.argv;
|
|
78
|
-
if (!moduleName) {
|
|
79
|
-
console.error("Usage: scaffold-module <module-name>");
|
|
80
|
-
process.exit(1);
|
|
81
|
-
}
|
|
82
|
-
try {
|
|
83
|
-
const res = scaffoldModule(process.cwd(), moduleName);
|
|
84
|
-
console.log("Scaffolded module:", res.modulePath);
|
|
85
|
-
for (const f of res.createdFiles)
|
|
86
|
-
console.log(" created:", f);
|
|
87
|
-
process.exit(0);
|
|
88
|
-
}
|
|
89
|
-
catch (err) {
|
|
90
|
-
console.error(err && err.message ? err.message : err);
|
|
91
|
-
process.exit(2);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhZmZvbGRNb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWNwL3ZhbGlkYXRpb24vc2NhZmZvbGRNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFxREEsd0NBNEJDO0FBakZELDRDQUFvQjtBQUNwQixnREFBd0I7QUFPeEIsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixPQUFPLEVBQUU7Ozs7Ozs7OztDQVNWO0lBQ0MsU0FBUyxFQUFFOzs7Ozs7Ozs7Q0FTWjtJQUNDLFNBQVMsRUFBRTs7Ozs7Ozs7Q0FRWjtJQUNDLEtBQUssRUFBRTs7Ozs7Ozs7Q0FRUjtDQUNBLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxTQUFnQixjQUFjLENBQzVCLFFBQWdCLEVBQ2hCLFVBQWtCO0lBRWxCLElBQUksQ0FBQyxRQUFRO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxVQUFVO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRTNELE1BQU0sVUFBVSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO0lBRWxDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFbEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxZQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELCtCQUErQjtRQUMvQixJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlCLHFEQUFxRDtZQUNyRCxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FDbEMsTUFBMkMsQ0FDNUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNwRCxZQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMzRCxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQsOERBQThEO0FBQzlELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUM1QixNQUFNLENBQUMsRUFBRSxBQUFELEVBQUcsVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsWUFBWTtZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmV4cG9ydCB0eXBlIFNjYWZmb2xkUmVzdWx0ID0ge1xuICBtb2R1bGVQYXRoOiBzdHJpbmc7XG4gIGNyZWF0ZWRGaWxlczogc3RyaW5nW107XG59O1xuXG5jb25zdCBERUZBVUxUX1BMQUNFSE9MREVSUyA9IHtcbiAgcHJvbXB0czogYGV4cG9ydCBjb25zdCBwcm9tcHRMaXN0ID0gW1xuICB7XG4gICAgaWQ6IFwiZXhhbXBsZS1wcm9tcHRcIixcbiAgICB0aXRsZTogXCJFeGFtcGxlIHByb21wdFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgcGxhY2Vob2xkZXIgcHJvbXB0IGNyZWF0ZWQgYnkgc2NhZmZvbGRNb2R1bGVcIixcbiAgICBjb250ZW50OiBcIkRlc2NyaWJlIHRoZSB0YXNrIGZvciB0aGUgYXNzaXN0YW50Li4uXCIsXG4gICAgYWJzb2x1dGVQYXRoOiBfX2ZpbGVuYW1lLFxuICB9LFxuXSBhcyBjb25zdDtcbmAsXG4gIHJlc291cmNlczogYGV4cG9ydCBjb25zdCByZXNvdXJjZXMgPSBbXG4gIHtcbiAgICBpZDogXCJleGFtcGxlLXJlc291cmNlXCIsXG4gICAgbmFtZTogXCJFeGFtcGxlIFJlc291cmNlXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciByZXNvdXJjZSBjcmVhdGVkIGJ5IHNjYWZmb2xkTW9kdWxlXCIsXG4gICAgdXJpOiBcImZpbGU6Ly9wbGFjZWhvbGRlclwiLFxuICAgIGFic29sdXRlUGF0aDogX19maWxlbmFtZSxcbiAgfSxcbl0gYXMgY29uc3Q7XG5gLFxuICB0ZW1wbGF0ZXM6IGBleHBvcnQgY29uc3QgdGVtcGxhdGVzID0gW1xuICB7XG4gICAgbmFtZTogXCJleGFtcGxlLXRlbXBsYXRlXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciB0ZW1wbGF0ZSBjcmVhdGVkIGJ5IHNjYWZmb2xkTW9kdWxlXCIsXG4gICAgdXJpVGVtcGxhdGU6IFwiZmlsZTovL3RlbXBsYXRlL3twYXRofVwiLFxuICAgIG1pbWVUeXBlOiBcInRleHQvcGxhaW5cIixcbiAgfSxcbl0gYXMgY29uc3Q7XG5gLFxuICB0b29sczogYGV4cG9ydCBjb25zdCB0b29sTGlzdCA9IFtcbiAge1xuICAgIGlkOiBcImV4YW1wbGUtdG9vbFwiLFxuICAgIG5hbWU6IFwiZXhhbXBsZS10b29sXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciB0b29sIGNyZWF0ZWQgYnkgc2NhZmZvbGRNb2R1bGVcIixcbiAgICBydW46IGFzeW5jICgpID0+ICh7IHJlc3VsdDogXCJwbGFjZWhvbGRlclwiIH0pLFxuICB9LFxuXSBhcyBjb25zdDtcbmAsXG59O1xuXG4vKipcbiAqIENyZWF0ZSBhIG1vZHVsZSBzY2FmZm9sZCB1bmRlciByZXBvUm9vdC9zcmMvbW9kdWxlcy88bW9kdWxlTmFtZT5cbiAqIFJldHVybnMgY3JlYXRlZCBmaWxlcyBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NhZmZvbGRNb2R1bGUoXG4gIHJlcG9Sb290OiBzdHJpbmcsXG4gIG1vZHVsZU5hbWU6IHN0cmluZ1xuKTogU2NhZmZvbGRSZXN1bHQge1xuICBpZiAoIXJlcG9Sb290KSB0aHJvdyBuZXcgRXJyb3IoXCJyZXBvUm9vdCBpcyByZXF1aXJlZFwiKTtcbiAgaWYgKCFtb2R1bGVOYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJtb2R1bGVOYW1lIGlzIHJlcXVpcmVkXCIpO1xuXG4gIGNvbnN0IG1vZHVsZVBhdGggPSBwYXRoLmpvaW4ocmVwb1Jvb3QsIFwic3JjXCIsIFwibW9kdWxlc1wiLCBtb2R1bGVOYW1lKTtcbiAgY29uc3QgY3JlYXRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IHN1YmZvbGRlcnMgPSBbXCJwcm9tcHRzXCIsIFwicmVzb3VyY2VzXCIsIFwidGVtcGxhdGVzXCIsIFwidG9vbHNcIl07XG5cbiAgZm9yIChjb25zdCBmb2xkZXIgb2Ygc3ViZm9sZGVycykge1xuICAgIGNvbnN0IGZvbGRlclBhdGggPSBwYXRoLmpvaW4obW9kdWxlUGF0aCwgZm9sZGVyKTtcbiAgICBmcy5ta2RpclN5bmMoZm9sZGVyUGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgY29uc3QgaW5kZXhQYXRoID0gcGF0aC5qb2luKGZvbGRlclBhdGgsIFwiaW5kZXgudHNcIik7XG4gICAgLy8gaWYgZmlsZSBleGlzdHMsIHNraXAgd3JpdGluZ1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhpbmRleFBhdGgpKSB7XG4gICAgICAvLyBpbnNlcnQgX19maWxlbmFtZSBmb3IgYWJzb2x1dGVQYXRoIGluIHBsYWNlaG9sZGVyc1xuICAgICAgY29uc3QgY29udGVudCA9IERFRkFVTFRfUExBQ0VIT0xERVJTW1xuICAgICAgICBmb2xkZXIgYXMga2V5b2YgdHlwZW9mIERFRkFVTFRfUExBQ0VIT0xERVJTXG4gICAgICBdLnJlcGxhY2UoL19fZmlsZW5hbWUvZywgSlNPTi5zdHJpbmdpZnkoaW5kZXhQYXRoKSk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGluZGV4UGF0aCwgY29udGVudCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSk7XG4gICAgICBjcmVhdGVkRmlsZXMucHVzaChpbmRleFBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IG1vZHVsZVBhdGgsIGNyZWF0ZWRGaWxlcyB9O1xufVxuXG4vLyBDTEkgc3VwcG9ydCB3aGVuIHJlcXVpcmVkIGRpcmVjdGx5IHZpYSB0cy1ub2RlIHJlZ2lzdHJhdGlvblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGNvbnN0IFssICwgbW9kdWxlTmFtZV0gPSBwcm9jZXNzLmFyZ3Y7XG4gIGlmICghbW9kdWxlTmFtZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJVc2FnZTogc2NhZmZvbGQtbW9kdWxlIDxtb2R1bGUtbmFtZT5cIik7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzID0gc2NhZmZvbGRNb2R1bGUocHJvY2Vzcy5jd2QoKSwgbW9kdWxlTmFtZSk7XG4gICAgY29uc29sZS5sb2coXCJTY2FmZm9sZGVkIG1vZHVsZTpcIiwgcmVzLm1vZHVsZVBhdGgpO1xuICAgIGZvciAoY29uc3QgZiBvZiByZXMuY3JlYXRlZEZpbGVzKSBjb25zb2xlLmxvZyhcIiAgY3JlYXRlZDpcIiwgZik7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyICYmIGVyci5tZXNzYWdlID8gZXJyLm1lc3NhZ2UgOiBlcnIpO1xuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxufVxuIl19
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export type ScaffoldResult = {
|
|
2
|
-
modulePath: string;
|
|
3
|
-
createdFiles: string[];
|
|
4
|
-
};
|
|
5
|
-
/**
|
|
6
|
-
* Create a module scaffold under repoRoot/src/modules/<moduleName>
|
|
7
|
-
* Returns created files list.
|
|
8
|
-
*/
|
|
9
|
-
export declare function scaffoldModule(repoRoot: string, moduleName: string): ScaffoldResult;
|
package/lib/mcp/workspace.cjs
DELETED
|
@@ -1,119 +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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.WorkspaceError = void 0;
|
|
40
|
-
exports.throwUserError = throwUserError;
|
|
41
|
-
exports.setWorkspaceRoot = setWorkspaceRoot;
|
|
42
|
-
exports.getWorkspaceRoot = getWorkspaceRoot;
|
|
43
|
-
exports.resolveInWorkspace = resolveInWorkspace;
|
|
44
|
-
exports.readWorkspaceFile = readWorkspaceFile;
|
|
45
|
-
exports.__resetWorkspaceRoot = __resetWorkspaceRoot;
|
|
46
|
-
const fs_1 = __importDefault(require("fs"));
|
|
47
|
-
const path_1 = __importDefault(require("path"));
|
|
48
|
-
const constants_1 = require("./../constants.cjs");
|
|
49
|
-
let workspaceRoot = initializeWorkspaceRoot();
|
|
50
|
-
let userErrorCtor;
|
|
51
|
-
class WorkspaceError extends Error {
|
|
52
|
-
constructor(message) {
|
|
53
|
-
super(message);
|
|
54
|
-
this.name = "WorkspaceError";
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
exports.WorkspaceError = WorkspaceError;
|
|
58
|
-
function initializeWorkspaceRoot() {
|
|
59
|
-
const configured = process.env[constants_1.WORKSPACE_ROOT_ENV];
|
|
60
|
-
if (configured && configured.trim().length > 0) {
|
|
61
|
-
return path_1.default.resolve(configured.trim());
|
|
62
|
-
}
|
|
63
|
-
return process.cwd();
|
|
64
|
-
}
|
|
65
|
-
async function getUserErrorCtor() {
|
|
66
|
-
if (!userErrorCtor) {
|
|
67
|
-
try {
|
|
68
|
-
const mod = await Promise.resolve().then(() => __importStar(require("fastmcp")));
|
|
69
|
-
userErrorCtor = mod
|
|
70
|
-
.UserError;
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
userErrorCtor = class MCPUserError extends Error {
|
|
74
|
-
constructor(message) {
|
|
75
|
-
super(message);
|
|
76
|
-
this.name = "MCPUserError";
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return userErrorCtor;
|
|
82
|
-
}
|
|
83
|
-
async function throwUserError(message) {
|
|
84
|
-
const Ctor = await getUserErrorCtor();
|
|
85
|
-
throw new Ctor(message);
|
|
86
|
-
}
|
|
87
|
-
function setWorkspaceRoot(root) {
|
|
88
|
-
workspaceRoot = path_1.default.resolve(root);
|
|
89
|
-
}
|
|
90
|
-
function getWorkspaceRoot() {
|
|
91
|
-
return workspaceRoot;
|
|
92
|
-
}
|
|
93
|
-
function resolveInWorkspace(root, targetPath) {
|
|
94
|
-
const resolved = path_1.default.isAbsolute(targetPath)
|
|
95
|
-
? path_1.default.normalize(targetPath)
|
|
96
|
-
: path_1.default.resolve(root, targetPath);
|
|
97
|
-
const relative = path_1.default.relative(root, resolved);
|
|
98
|
-
if (relative.startsWith("..") || path_1.default.isAbsolute(relative)) {
|
|
99
|
-
throw new WorkspaceError(`Path ${targetPath} escapes the workspace root at ${root}`);
|
|
100
|
-
}
|
|
101
|
-
return resolved;
|
|
102
|
-
}
|
|
103
|
-
async function readWorkspaceFile(root, target) {
|
|
104
|
-
try {
|
|
105
|
-
const absolute = resolveInWorkspace(root, target);
|
|
106
|
-
return fs_1.default.readFileSync(absolute, "utf8");
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
if (error instanceof WorkspaceError) {
|
|
110
|
-
await throwUserError(error.message);
|
|
111
|
-
}
|
|
112
|
-
/* istanbul ignore next */
|
|
113
|
-
throw error;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
function __resetWorkspaceRoot(root) {
|
|
117
|
-
setWorkspaceRoot(root);
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21jcC93b3Jrc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0NBLHdDQUdDO0FBRUQsNENBRUM7QUFFRCw0Q0FFQztBQUVELGdEQWFDO0FBRUQsOENBY0M7QUFFRCxvREFFQztBQXRGRCw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLGtEQUFrRDtBQUVsRCxJQUFJLGFBQWEsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO0FBQzlDLElBQUksYUFBMkQsQ0FBQztBQUVoRSxNQUFhLGNBQWUsU0FBUSxLQUFLO0lBQ3ZDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQUxELHdDQUtDO0FBRUQsU0FBUyx1QkFBdUI7SUFDOUIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBa0IsQ0FBQyxDQUFDO0lBQ25ELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0MsT0FBTyxjQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBRUQsS0FBSyxVQUFVLGdCQUFnQjtJQUM3QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsd0RBQWEsU0FBUyxHQUFDLENBQUM7WUFDcEMsYUFBYSxHQUFJLEdBQXFEO2lCQUNuRSxTQUFTLENBQUM7UUFDZixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsYUFBYSxHQUFHLE1BQU0sWUFBYSxTQUFRLEtBQUs7Z0JBQzlDLFlBQVksT0FBZTtvQkFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO2dCQUM3QixDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBZTtJQUNsRCxNQUFNLElBQUksR0FBRyxNQUFNLGdCQUFnQixFQUFFLENBQUM7SUFDdEMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxhQUFhLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCO0lBQzlCLE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxJQUFZLEVBQUUsVUFBa0I7SUFDakUsTUFBTSxRQUFRLEdBQUcsY0FBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDMUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUVuQyxNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksY0FBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxjQUFjLENBQ3RCLFFBQVEsVUFBVSxrQ0FBa0MsSUFBSSxFQUFFLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVNLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsSUFBWSxFQUNaLE1BQWM7SUFFZCxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEQsT0FBTyxZQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUF3QixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELDBCQUEwQjtRQUMxQixNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsSUFBWTtJQUMvQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFdPUktTUEFDRV9ST09UX0VOViB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxubGV0IHdvcmtzcGFjZVJvb3QgPSBpbml0aWFsaXplV29ya3NwYWNlUm9vdCgpO1xubGV0IHVzZXJFcnJvckN0b3I6IChuZXcgKG1lc3NhZ2U6IHN0cmluZykgPT4gRXJyb3IpIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiV29ya3NwYWNlRXJyb3JcIjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0aWFsaXplV29ya3NwYWNlUm9vdCgpOiBzdHJpbmcge1xuICBjb25zdCBjb25maWd1cmVkID0gcHJvY2Vzcy5lbnZbV09SS1NQQUNFX1JPT1RfRU5WXTtcbiAgaWYgKGNvbmZpZ3VyZWQgJiYgY29uZmlndXJlZC50cmltKCkubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBwYXRoLnJlc29sdmUoY29uZmlndXJlZC50cmltKCkpO1xuICB9XG4gIHJldHVybiBwcm9jZXNzLmN3ZCgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRVc2VyRXJyb3JDdG9yKCk6IFByb21pc2U8bmV3IChtZXNzYWdlOiBzdHJpbmcpID0+IEVycm9yPiB7XG4gIGlmICghdXNlckVycm9yQ3Rvcikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb2QgPSBhd2FpdCBpbXBvcnQoXCJmYXN0bWNwXCIpO1xuICAgICAgdXNlckVycm9yQ3RvciA9IChtb2QgYXMgeyBVc2VyRXJyb3I6IG5ldyAobWVzc2FnZTogc3RyaW5nKSA9PiBFcnJvciB9KVxuICAgICAgICAuVXNlckVycm9yO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdXNlckVycm9yQ3RvciA9IGNsYXNzIE1DUFVzZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICAgICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgICAgdGhpcy5uYW1lID0gXCJNQ1BVc2VyRXJyb3JcIjtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVzZXJFcnJvckN0b3I7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0aHJvd1VzZXJFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPG5ldmVyPiB7XG4gIGNvbnN0IEN0b3IgPSBhd2FpdCBnZXRVc2VyRXJyb3JDdG9yKCk7XG4gIHRocm93IG5ldyBDdG9yKG1lc3NhZ2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0V29ya3NwYWNlUm9vdChyb290OiBzdHJpbmcpIHtcbiAgd29ya3NwYWNlUm9vdCA9IHBhdGgucmVzb2x2ZShyb290KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdvcmtzcGFjZVJvb3QoKTogc3RyaW5nIHtcbiAgcmV0dXJuIHdvcmtzcGFjZVJvb3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSW5Xb3Jrc3BhY2Uocm9vdDogc3RyaW5nLCB0YXJnZXRQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByZXNvbHZlZCA9IHBhdGguaXNBYnNvbHV0ZSh0YXJnZXRQYXRoKVxuICAgID8gcGF0aC5ub3JtYWxpemUodGFyZ2V0UGF0aClcbiAgICA6IHBhdGgucmVzb2x2ZShyb290LCB0YXJnZXRQYXRoKTtcblxuICBjb25zdCByZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUocm9vdCwgcmVzb2x2ZWQpO1xuICBpZiAocmVsYXRpdmUuc3RhcnRzV2l0aChcIi4uXCIpIHx8IHBhdGguaXNBYnNvbHV0ZShyZWxhdGl2ZSkpIHtcbiAgICB0aHJvdyBuZXcgV29ya3NwYWNlRXJyb3IoXG4gICAgICBgUGF0aCAke3RhcmdldFBhdGh9IGVzY2FwZXMgdGhlIHdvcmtzcGFjZSByb290IGF0ICR7cm9vdH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiByZXNvbHZlZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRXb3Jrc3BhY2VGaWxlKFxuICByb290OiBzdHJpbmcsXG4gIHRhcmdldDogc3RyaW5nXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICB0cnkge1xuICAgIGNvbnN0IGFic29sdXRlID0gcmVzb2x2ZUluV29ya3NwYWNlKHJvb3QsIHRhcmdldCk7XG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhhYnNvbHV0ZSwgXCJ1dGY4XCIgYXMgQnVmZmVyRW5jb2RpbmcpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFdvcmtzcGFjZUVycm9yKSB7XG4gICAgICBhd2FpdCB0aHJvd1VzZXJFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXNldFdvcmtzcGFjZVJvb3Qocm9vdDogc3RyaW5nKSB7XG4gIHNldFdvcmtzcGFjZVJvb3Qocm9vdCk7XG59XG4iXX0=
|
package/lib/mcp/workspace.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare class WorkspaceError extends Error {
|
|
2
|
-
constructor(message: string);
|
|
3
|
-
}
|
|
4
|
-
export declare function throwUserError(message: string): Promise<never>;
|
|
5
|
-
export declare function setWorkspaceRoot(root: string): void;
|
|
6
|
-
export declare function getWorkspaceRoot(): string;
|
|
7
|
-
export declare function resolveInWorkspace(root: string, targetPath: string): string;
|
|
8
|
-
export declare function readWorkspaceFile(root: string, target: string): Promise<string>;
|
|
9
|
-
export declare function __resetWorkspaceRoot(root: string): void;
|
package/lib/metadata.cjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PACKAGE_NAME = exports.VERSION = void 0;
|
|
4
|
-
const decoration_1 = require("@decaf-ts/decoration");
|
|
5
|
-
/**
|
|
6
|
-
* @const VERSION
|
|
7
|
-
* @name VERSION
|
|
8
|
-
* @description Represents the current version of the ts-workspace module.
|
|
9
|
-
* @summary The actual version number is replaced during the build process.
|
|
10
|
-
* @type {string}
|
|
11
|
-
*/
|
|
12
|
-
exports.VERSION = "0.4.1";
|
|
13
|
-
exports.PACKAGE_NAME = "##PACKAGE_NAME##";
|
|
14
|
-
try {
|
|
15
|
-
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
if (error instanceof Error && error.message.includes("already")) {
|
|
19
|
-
// Ignore duplicate registration during tests/bundling checks.
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
throw error;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWdEO0FBRWhEOzs7Ozs7R0FNRztBQUNVLFFBQUEsT0FBTyxHQUFHLGFBQWEsQ0FBQztBQUN4QixRQUFBLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztBQUUvQyxJQUFJLENBQUM7SUFDSCxxQkFBUSxDQUFDLGVBQWUsQ0FBQyxvQkFBWSxFQUFFLGVBQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQ2YsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDaEUsOERBQThEO0lBQ2hFLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBuYW1lIFZFUlNJT05cbiAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIHRzLXdvcmtzcGFjZSBtb2R1bGUuXG4gKiBAc3VtbWFyeSBUaGUgYWN0dWFsIHZlcnNpb24gbnVtYmVyIGlzIHJlcGxhY2VkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9IFwiIyNQQUNLQUdFX05BTUUjI1wiO1xuXG50cnkge1xuICBNZXRhZGF0YS5yZWdpc3RlckxpYnJhcnkoUEFDS0FHRV9OQU1FLCBWRVJTSU9OKTtcbn0gY2F0Y2ggKGVycm9yKSB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5XCIpKSB7XG4gICAgLy8gSWdub3JlIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gZHVyaW5nIHRlc3RzL2J1bmRsaW5nIGNoZWNrcy5cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuIl19
|
package/lib/metadata.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @const VERSION
|
|
3
|
-
* @name VERSION
|
|
4
|
-
* @description Represents the current version of the ts-workspace module.
|
|
5
|
-
* @summary The actual version number is replaced during the build process.
|
|
6
|
-
* @type {string}
|
|
7
|
-
*/
|
|
8
|
-
export declare const VERSION = "0.4.1";
|
|
9
|
-
export declare const PACKAGE_NAME = "##PACKAGE_NAME##";
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.modulePackage = exports.tools = exports.templates = exports.resources = exports.prompts = void 0;
|
|
4
|
-
const index_1 = require("./prompts/index.cjs");
|
|
5
|
-
const index_2 = require("./resources/index.cjs");
|
|
6
|
-
const index_3 = require("./templates/index.cjs");
|
|
7
|
-
const index_4 = require("./tools/index.cjs");
|
|
8
|
-
var index_5 = require("./prompts/index.cjs");
|
|
9
|
-
Object.defineProperty(exports, "prompts", { enumerable: true, get: function () { return index_5.prompts; } });
|
|
10
|
-
var index_6 = require("./resources/index.cjs");
|
|
11
|
-
Object.defineProperty(exports, "resources", { enumerable: true, get: function () { return index_6.resources; } });
|
|
12
|
-
var index_7 = require("./templates/index.cjs");
|
|
13
|
-
Object.defineProperty(exports, "templates", { enumerable: true, get: function () { return index_7.templates; } });
|
|
14
|
-
var index_8 = require("./tools/index.cjs");
|
|
15
|
-
Object.defineProperty(exports, "tools", { enumerable: true, get: function () { return index_8.tools; } });
|
|
16
|
-
exports.modulePackage = {
|
|
17
|
-
name: "_template",
|
|
18
|
-
prompts: index_1.prompts,
|
|
19
|
-
resources: index_2.resources,
|
|
20
|
-
templates: index_3.templates,
|
|
21
|
-
tools: index_4.tools,
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kdWxlcy9fdGVtcGxhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQTBDO0FBQzFDLGlEQUE4QztBQUM5QyxpREFBOEM7QUFDOUMsNkNBQXNDO0FBQ3RDLDZDQUEwQztBQUFqQyxnR0FBQSxPQUFPLE9BQUE7QUFDaEIsK0NBQThDO0FBQXJDLGtHQUFBLFNBQVMsT0FBQTtBQUNsQiwrQ0FBOEM7QUFBckMsa0dBQUEsU0FBUyxPQUFBO0FBQ2xCLDJDQUFzQztBQUE3Qiw4RkFBQSxLQUFLLE9BQUE7QUFDRCxRQUFBLGFBQWEsR0FBRztJQUMzQixJQUFJLEVBQUUsV0FBVztJQUNqQixPQUFPLEVBQVAsZUFBTztJQUNQLFNBQVMsRUFBVCxpQkFBUztJQUNULFNBQVMsRUFBVCxpQkFBUztJQUNULEtBQUssRUFBTCxhQUFLO0NBQ0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21wdHMgfSBmcm9tIFwiLi9wcm9tcHRzL2luZGV4XCI7XG5pbXBvcnQgeyByZXNvdXJjZXMgfSBmcm9tIFwiLi9yZXNvdXJjZXMvaW5kZXhcIjtcbmltcG9ydCB7IHRlbXBsYXRlcyB9IGZyb20gXCIuL3RlbXBsYXRlcy9pbmRleFwiO1xuaW1wb3J0IHsgdG9vbHMgfSBmcm9tIFwiLi90b29scy9pbmRleFwiO1xuZXhwb3J0IHsgcHJvbXB0cyB9IGZyb20gXCIuL3Byb21wdHMvaW5kZXhcIjtcbmV4cG9ydCB7IHJlc291cmNlcyB9IGZyb20gXCIuL3Jlc291cmNlcy9pbmRleFwiO1xuZXhwb3J0IHsgdGVtcGxhdGVzIH0gZnJvbSBcIi4vdGVtcGxhdGVzL2luZGV4XCI7XG5leHBvcnQgeyB0b29scyB9IGZyb20gXCIuL3Rvb2xzL2luZGV4XCI7XG5leHBvcnQgY29uc3QgbW9kdWxlUGFja2FnZSA9IHtcbiAgbmFtZTogXCJfdGVtcGxhdGVcIixcbiAgcHJvbXB0cyxcbiAgcmVzb3VyY2VzLFxuICB0ZW1wbGF0ZXMsXG4gIHRvb2xzLFxufSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export { prompts } from "./prompts/index";
|
|
2
|
-
export { resources } from "./resources/index";
|
|
3
|
-
export { templates } from "./templates/index";
|
|
4
|
-
export { tools } from "./tools/index";
|
|
5
|
-
export declare const modulePackage: {
|
|
6
|
-
readonly name: "_template";
|
|
7
|
-
readonly prompts: readonly [{
|
|
8
|
-
readonly id: "_template.readme";
|
|
9
|
-
readonly title: "Template README";
|
|
10
|
-
readonly description: "A README prompt for module template";
|
|
11
|
-
readonly load: () => string;
|
|
12
|
-
}];
|
|
13
|
-
readonly resources: readonly [{
|
|
14
|
-
readonly id: "_template.repo";
|
|
15
|
-
readonly name: "template repo";
|
|
16
|
-
readonly description: "Template resource";
|
|
17
|
-
readonly uri: "file:///tmp/template";
|
|
18
|
-
}];
|
|
19
|
-
readonly templates: readonly [{
|
|
20
|
-
readonly id: "_template.readme";
|
|
21
|
-
readonly name: "template-readme";
|
|
22
|
-
readonly description: "README guidance";
|
|
23
|
-
readonly uriTemplate: "file:///tmp/template/README.md";
|
|
24
|
-
readonly mimeType: "text/markdown";
|
|
25
|
-
}];
|
|
26
|
-
readonly tools: readonly [{
|
|
27
|
-
readonly id: "_template.tool";
|
|
28
|
-
readonly title: "template tool";
|
|
29
|
-
readonly description: "A placeholder tool";
|
|
30
|
-
readonly tool: any;
|
|
31
|
-
}];
|
|
32
|
-
};
|