@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
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { LoggedClass } from "@decaf-ts/logging";
|
|
2
|
+
import { McpServer as MCP } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { printBanner } from "./utils/banner.js";
|
|
4
|
+
import { Tools } from "./tools/index.js";
|
|
5
|
+
import { Prompts } from "./prompts/index.js";
|
|
6
|
+
import { Resources } from "./resources/index.js";
|
|
7
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp";
|
|
8
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
|
|
9
|
+
import { v4 } from "uuid";
|
|
10
|
+
import { SystemPrompt } from "./constants.js";
|
|
11
|
+
import { Environment } from "./environment.js";
|
|
12
|
+
export class McpServer extends LoggedClass {
|
|
13
|
+
get client() {
|
|
14
|
+
if (!this._mcp)
|
|
15
|
+
throw new Error("Mcp server requires Mcp client");
|
|
16
|
+
return this._mcp;
|
|
17
|
+
}
|
|
18
|
+
constructor() {
|
|
19
|
+
super();
|
|
20
|
+
}
|
|
21
|
+
async load() {
|
|
22
|
+
try {
|
|
23
|
+
const loadedResourced = await Promise.all(Resources.map((r) => r.build(this.client)));
|
|
24
|
+
this.log.verbose(`Loaded ${loadedResourced.length} resources`);
|
|
25
|
+
const loadedPrompts = await Promise.all(Prompts.map((r) => r.build(this.client)));
|
|
26
|
+
this.log.verbose(`Loaded ${loadedPrompts.length} prompts`);
|
|
27
|
+
const loadedTools = await Promise.all(Tools.map((r) => r.build(this.client)));
|
|
28
|
+
this.log.verbose(`Loaded ${loadedTools.length} tools`);
|
|
29
|
+
// Also attempt to load any exported builder-like objects from the tools module itself.
|
|
30
|
+
// Some modules export individual builders (not only the Tools array). Load those
|
|
31
|
+
// exported objects if they expose a `build` method and were not already loaded
|
|
32
|
+
// via the `Tools` array above.
|
|
33
|
+
try {
|
|
34
|
+
// dynamic import so this code runs at runtime and picks up whatever the module exports
|
|
35
|
+
// (uses the same resolution as the static imports above)
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
37
|
+
const toolsModule = await import("./tools");
|
|
38
|
+
const candidates = Object.values(toolsModule).filter((v) => v && typeof v.build === "function");
|
|
39
|
+
// remove duplicates that are already present in Tools (by identity)
|
|
40
|
+
const toLoad = candidates.filter((c) => !Tools.includes(c));
|
|
41
|
+
if (toLoad.length > 0) {
|
|
42
|
+
const loadedExported = await Promise.all(toLoad.map((t) => t.build(this.client)));
|
|
43
|
+
this.log.verbose(`Loaded ${loadedExported.length} exported builders from tools module`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
// don't fail the whole load if the dynamic step can't run; just log it for debugging
|
|
48
|
+
this.log.verbose(`No additional exported builders loaded from tools module: ${err}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
// nothing else. just for debugging
|
|
53
|
+
this.log.error(`Error loading core MCP components`, e);
|
|
54
|
+
throw e;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async boot(transportType = "stdio") {
|
|
58
|
+
const log = this.log;
|
|
59
|
+
this.log.for(this.boot).info("McpServer booting...");
|
|
60
|
+
printBanner(this.log);
|
|
61
|
+
const iconsRaw = Array.isArray(Environment.icons) ? Environment.icons : [Environment.icons];
|
|
62
|
+
const normalizedIcons = (iconsRaw || []).map((i) => {
|
|
63
|
+
const src = typeof i?.src === 'string' ? i.src : String(i?.src ?? '');
|
|
64
|
+
const mimeType = typeof i?.mimeType === 'string' ? i.mimeType : String(i?.mimeType ?? '');
|
|
65
|
+
let sizes = [];
|
|
66
|
+
if (Array.isArray(i?.sizes))
|
|
67
|
+
sizes = i.sizes.map((s) => String(s));
|
|
68
|
+
else if (typeof i?.sizes === 'string')
|
|
69
|
+
sizes = String(i.sizes).split(',').map((s) => s.trim());
|
|
70
|
+
return { src, mimeType, sizes };
|
|
71
|
+
});
|
|
72
|
+
// Normalize contacts: Environment may expose proxies or array-like objects
|
|
73
|
+
// (from the LoggedEnvironment proxy). Ensure a real array of plain objects
|
|
74
|
+
// with string fields is provided to the MCP protocol.
|
|
75
|
+
const contactsRaw = Environment.contacts;
|
|
76
|
+
let normalizedContacts;
|
|
77
|
+
if (typeof contactsRaw !== "undefined" && contactsRaw !== null) {
|
|
78
|
+
if (Array.isArray(contactsRaw)) {
|
|
79
|
+
normalizedContacts = contactsRaw.map((c) => ({
|
|
80
|
+
name: typeof c?.name === "string" ? c.name : String(c?.name ?? ""),
|
|
81
|
+
email: typeof c?.email === "string" ? c.email : c?.email ? String(c.email) : undefined,
|
|
82
|
+
url: typeof c?.url === "string" ? c.url : c?.url ? String(c.url) : undefined,
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
else if (typeof contactsRaw === "object") {
|
|
86
|
+
// Prefer numeric-indexed properties if present (handles array-like proxies)
|
|
87
|
+
const keys = Object.keys(contactsRaw || {});
|
|
88
|
+
const numericKeys = keys.filter((k) => /^[0-9]+$/.test(k)).sort((a, b) => Number(a) - Number(b));
|
|
89
|
+
if (numericKeys.length > 0) {
|
|
90
|
+
normalizedContacts = numericKeys.map((k) => {
|
|
91
|
+
const c = contactsRaw[k];
|
|
92
|
+
return {
|
|
93
|
+
name: typeof c?.name === "string" ? c.name : String(c?.name ?? ""),
|
|
94
|
+
email: typeof c?.email === "string" ? c.email : c?.email ? String(c.email) : undefined,
|
|
95
|
+
url: typeof c?.url === "string" ? c.url : c?.url ? String(c.url) : undefined,
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
else if (typeof contactsRaw.length === "number") {
|
|
100
|
+
const len = Number(contactsRaw.length) || 0;
|
|
101
|
+
normalizedContacts = [];
|
|
102
|
+
for (let i = 0; i < len; i++) {
|
|
103
|
+
const c = contactsRaw[i];
|
|
104
|
+
normalizedContacts.push({
|
|
105
|
+
name: typeof c?.name === "string" ? c.name : String(c?.name ?? ""),
|
|
106
|
+
email: typeof c?.email === "string" ? c.email : c?.email ? String(c.email) : undefined,
|
|
107
|
+
url: typeof c?.url === "string" ? c.url : c?.url ? String(c.url) : undefined,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// Fallback: collect own enumerable values but ignore the `length` pseudo-property
|
|
113
|
+
normalizedContacts = Object.keys(contactsRaw)
|
|
114
|
+
.filter((k) => k !== "length")
|
|
115
|
+
.map((k) => {
|
|
116
|
+
const c = contactsRaw[k];
|
|
117
|
+
return {
|
|
118
|
+
name: typeof c?.name === "string" ? c.name : String(c?.name ?? ""),
|
|
119
|
+
email: typeof c?.email === "string" ? c.email : c?.email ? String(c.email) : undefined,
|
|
120
|
+
url: typeof c?.url === "string" ? c.url : c?.url ? String(c.url) : undefined,
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const serverInfo = {
|
|
127
|
+
id: Environment.mcpId,
|
|
128
|
+
name: Environment.name,
|
|
129
|
+
title: Environment.title,
|
|
130
|
+
description: Environment.description,
|
|
131
|
+
websiteUrl: Environment.websiteUrl,
|
|
132
|
+
repositoryUrl: Environment.repositoryUrl,
|
|
133
|
+
version: Environment.version,
|
|
134
|
+
license: Environment.license,
|
|
135
|
+
contacts: normalizedContacts,
|
|
136
|
+
tags: Environment.tags ? Environment.tags.split(",") : undefined,
|
|
137
|
+
metadata: Environment.metadata,
|
|
138
|
+
icons: normalizedIcons,
|
|
139
|
+
};
|
|
140
|
+
const options = {
|
|
141
|
+
instructions: SystemPrompt,
|
|
142
|
+
capabilities: {
|
|
143
|
+
logging: {},
|
|
144
|
+
completions: {},
|
|
145
|
+
resources: {
|
|
146
|
+
// subscribe: false,
|
|
147
|
+
// listChanged: false,
|
|
148
|
+
},
|
|
149
|
+
tools: {
|
|
150
|
+
// listChanged: false,
|
|
151
|
+
},
|
|
152
|
+
prompts: {
|
|
153
|
+
// listChanged: false,
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
this._mcp = new MCP(serverInfo, options);
|
|
158
|
+
try {
|
|
159
|
+
await this.load();
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
this.log.error(`Error loading resources/prompts/tools: ${err}`);
|
|
163
|
+
throw err;
|
|
164
|
+
}
|
|
165
|
+
if (typeof transportType === "string") {
|
|
166
|
+
switch (transportType) {
|
|
167
|
+
case "stdio":
|
|
168
|
+
transportType = new StdioServerTransport();
|
|
169
|
+
break;
|
|
170
|
+
case "http":
|
|
171
|
+
transportType = new StreamableHTTPServerTransport({
|
|
172
|
+
sessionIdGenerator: () => v4(),
|
|
173
|
+
onsessioninitialized: (sessionId) => log.verbose(`Session initialized: ${sessionId}`),
|
|
174
|
+
onsessionclosed: (sessionId) => log.verbose(`Session closed: ${sessionId}`),
|
|
175
|
+
enableJsonResponse: true,
|
|
176
|
+
eventStore: undefined,
|
|
177
|
+
allowedHosts: ["*"],
|
|
178
|
+
allowedOrigins: ["*"],
|
|
179
|
+
enableDnsRebindingProtection: true,
|
|
180
|
+
});
|
|
181
|
+
break;
|
|
182
|
+
default:
|
|
183
|
+
throw new Error(`Invalid transport type: ${transportType}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return this.client.connect(transportType);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,IAAI,GAAG,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,0BAAuB;AAC7C,OAAO,EAAE,KAAK,EAAE,yBAAgB;AAChC,OAAO,EAAE,OAAO,EAAE,2BAAkB;AACpC,OAAO,EAAE,SAAS,EAAE,6BAAoB;AACxC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAG1B,OAAO,EAAE,YAAY,EAAE,uBAAoB;AAC3C,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAE5C,MAAM,OAAO,SAAU,SAAQ,WAAW;IAGxC,IAAc,MAAM;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAES,KAAK,CAAC,IAAI;QAClB,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAC3C,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,eAAe,CAAC,MAAM,YAAY,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACzC,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,aAAa,CAAC,MAAM,UAAU,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACvC,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,WAAW,CAAC,MAAM,QAAQ,CAAC,CAAC;YACvD,uFAAuF;YACvF,iFAAiF;YACjF,+EAA+E;YAC/E,+BAA+B;YAC/B,IAAI,CAAC;gBACH,uFAAuF;gBACvF,yDAAyD;gBACzD,8DAA8D;gBAC9D,MAAM,WAAW,GAA4B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAQ,CAAS,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;gBACzG,oEAAoE;gBACpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAQ,CAAC,CAAC,CAAC;gBACnE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CAAE,MAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC7F,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,cAAc,CAAC,MAAM,sCAAsC,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,qFAAqF;gBACrF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,6DAA6D,GAAG,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,mCAAmC;YACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAU,CAAC,CAAC;YAChE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,gBAA8C,OAAO;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5F,MAAM,eAAe,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACtD,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC1F,IAAI,KAAK,GAAa,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC;gBAAE,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnE,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,QAAQ;gBAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,2EAA2E;QAC3E,sDAAsD;QACtD,MAAM,WAAW,GAAQ,WAAW,CAAC,QAAQ,CAAC;QAC9C,IAAI,kBAAgF,CAAC;QACrF,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBAChD,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;oBAClE,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtF,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC7E,CAAC,CAAC,CAAC;YACN,CAAC;iBAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC3C,4EAA4E;gBAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACzC,MAAM,CAAC,GAAI,WAAmB,CAAC,CAAC,CAAC,CAAC;wBAClC,OAAO;4BACL,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;4BAClE,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;4BACtF,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;yBAC7E,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAQ,WAAmB,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC3D,MAAM,GAAG,GAAG,MAAM,CAAE,WAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACrD,kBAAkB,GAAG,EAAE,CAAC;oBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7B,MAAM,CAAC,GAAI,WAAmB,CAAC,CAAC,CAAC,CAAC;wBAClC,kBAAkB,CAAC,IAAI,CAAC;4BACtB,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;4BAClE,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;4BACtF,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;yBAC7E,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,kFAAkF;oBAClF,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;yBAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC;yBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACT,MAAM,CAAC,GAAI,WAAmB,CAAC,CAAC,CAAC,CAAC;wBAClC,OAAO;4BACL,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;4BAClE,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;4BACtF,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;yBAC7E,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAmB;YACjC,EAAE,EAAE,WAAW,CAAC,KAAK;YACrB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YAChE,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,KAAK,EAAE,eAAsB;SAC9B,CAAC;QAEF,MAAM,OAAO,GAAkB;YAC7B,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE;gBACZ,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE;gBACT,oBAAoB;gBACpB,sBAAsB;iBACvB;gBACD,KAAK,EAAE;gBACL,sBAAsB;iBACvB;gBACD,OAAO,EAAE;gBACP,sBAAsB;iBACvB;aACF;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;YAChE,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,QAAQ,aAAa,EAAE,CAAC;gBACtB,KAAK,OAAO;oBACV,aAAa,GAAG,IAAI,oBAAoB,EAAE,CAAC;oBAC3C,MAAM;gBACR,KAAK,MAAM;oBACT,aAAa,GAAG,IAAI,6BAA6B,CAAC;wBAChD,kBAAkB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;wBAC9B,oBAAoB,EAAE,CAAC,SAAiB,EAAE,EAAE,CAC1C,GAAG,CAAC,OAAO,CAAC,wBAAwB,SAAS,EAAE,CAAC;wBAClD,eAAe,EAAE,CAAC,SAAiB,EAAE,EAAE,CACrC,GAAG,CAAC,OAAO,CAAC,mBAAmB,SAAS,EAAE,CAAC;wBAC7C,kBAAkB,EAAE,IAAI;wBACxB,UAAU,EAAE,SAAS;wBACrB,YAAY,EAAE,CAAC,GAAG,CAAC;wBACnB,cAAc,EAAE,CAAC,GAAG,CAAC;wBACrB,4BAA4B,EAAE,IAAI;qBACnC,CAAC,CAAC;oBACH,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ToolBuilder } from "../../builders/tool-builder";
|
|
2
|
+
import { ResourceBuilder } from "../../builders/resource-builder";
|
|
3
|
+
import { PromptBuilder } from "../../builders/prompt-builder";
|
|
4
|
+
export declare const Tools: ToolBuilder[];
|
|
5
|
+
export declare const Resources: ResourceBuilder[];
|
|
6
|
+
export declare const Prompts: PromptBuilder[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/template-module/index.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,KAAK,GAAkB,EAAE,CAAC;AAEvC,MAAM,CAAC,MAAM,SAAS,GAAsB,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TsBaseCodePrompt = "You're a senior TypeScript developer writing typescript code.";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/prompts/code/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,+DAA+D,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { PromptBuilder } from "./../../../builders/prompt-builder.js";
|
|
3
|
+
import { ReasoningLevel } from "./../../../constants.js";
|
|
4
|
+
import { TsDPBasePromptClass } from "./constants.js";
|
|
5
|
+
import { toPascalCase } from "@decaf-ts/logging";
|
|
6
|
+
const promptName = "ts.code.dp.builder";
|
|
7
|
+
const argsSchema = z.object({
|
|
8
|
+
className: z.string().describe("the class name to turn into a builder"),
|
|
9
|
+
});
|
|
10
|
+
export const TsCodeDesignPatterBuilderPrompt = PromptBuilder.builder
|
|
11
|
+
.setName(promptName)
|
|
12
|
+
.setTitle("Typescript builder design patter prompt")
|
|
13
|
+
.setDescription("for a class, with a defined set of properties, scafold a builder design pattern")
|
|
14
|
+
.setArgsSchema(argsSchema)
|
|
15
|
+
.setReasoning(ReasoningLevel.BASIC)
|
|
16
|
+
.setCb((args,
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
|
+
extra) => {
|
|
19
|
+
args.className = toPascalCase(args.className);
|
|
20
|
+
const prompt = `${TsDPBasePromptClass}
|
|
21
|
+
Transform the selected class into a builder design pattern implementation in Typescript.
|
|
22
|
+
use @decaf-ts validation decorators to enforce the validation of your builder.
|
|
23
|
+
|
|
24
|
+
- must extend the Model Class from @decaf-ts/decorator-validation;
|
|
25
|
+
- each property must be marked as protected;
|
|
26
|
+
- each property must have a setter method that returns 'this' for chaining;
|
|
27
|
+
- the build() method must validate the properties using hasErrors() method from Model class;
|
|
28
|
+
- if validation fails, throw an error with the validation errors;
|
|
29
|
+
- if validation passes, return an instance of the original class with the set properties;
|
|
30
|
+
- optionally (but do so by default) add the static builder and from methods from the example;
|
|
31
|
+
- if the clasee already follows the pattern but has properties without decoration or without setters, simple add them;
|
|
32
|
+
|
|
33
|
+
example:
|
|
34
|
+
|
|
35
|
+
original class:
|
|
36
|
+
\`\`\`typescript
|
|
37
|
+
export class ${args.className} {
|
|
38
|
+
description!: string;
|
|
39
|
+
name!: string = "default name";
|
|
40
|
+
title!: string;
|
|
41
|
+
age?: string;
|
|
42
|
+
dateOfBirth!: Date;
|
|
43
|
+
}}
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
resulting builder pattern implementation:
|
|
47
|
+
\`\`\`typescript
|
|
48
|
+
export class ${args.className}Builder extends Model {
|
|
49
|
+
|
|
50
|
+
@minlength(10
|
|
51
|
+
@required()
|
|
52
|
+
protected description!: string;
|
|
53
|
+
|
|
54
|
+
@required()
|
|
55
|
+
protected name!: string = "default value;
|
|
56
|
+
|
|
57
|
+
@required()
|
|
58
|
+
protected title!: string;
|
|
59
|
+
|
|
60
|
+
@min(18)
|
|
61
|
+
protected age?: string;
|
|
62
|
+
|
|
63
|
+
@date()
|
|
64
|
+
protected dateOfBirth!: Date;
|
|
65
|
+
|
|
66
|
+
protected constructor(arg?: ModelArg<${args.className}Builder>>) {
|
|
67
|
+
super(arg);
|
|
68
|
+
Model.fromModel(this, arg);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
setDescription(value: string) {
|
|
72
|
+
this.description = value;
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
setName(value: string) {
|
|
77
|
+
this.name = value;
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
setTitle(value: string) {
|
|
82
|
+
this.title = value;
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
setAge(value: number) {
|
|
86
|
+
this.age = value;
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
setDate(value: Date) {
|
|
90
|
+
this.age = value;
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
build(...args: any[]): ${args.className}Builder | Promise<${args.className}Builder> {
|
|
95
|
+
const errs = this.hasErrors();
|
|
96
|
+
if (errs) throw new Error(errs.toString());
|
|
97
|
+
|
|
98
|
+
return // code that builds OBJ here
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
static get builder(): ${args.className}Builder {
|
|
102
|
+
return new ${args.className}Builder(); // static method to get a new builder instance
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
static from<K extends keyof ${args.className}Builder>(obj: K, ${args.className}Builder[K]): ${args.className}Builder {
|
|
106
|
+
return new ${args.className}Builder(); // static method to create a builder from an object
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
\`\`\`
|
|
110
|
+
|
|
111
|
+
`;
|
|
112
|
+
const result = {
|
|
113
|
+
messages: [{ role: "user", content: { type: "text", text: prompt } }],
|
|
114
|
+
_meta: {},
|
|
115
|
+
};
|
|
116
|
+
return result;
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../src/prompts/code/design-patterns/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,aAAa,EAAE,8CAAyC;AACjE,OAAO,EAAE,cAAc,EAAE,gCAA2B;AACpD,OAAO,EAAE,mBAAmB,EAAE,uBAAoB;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACxE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,aAAa,CAAC,OAAO;KAClB,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,yCAAyC,CAAC;KACnD,cAAc,CACb,iFAAiF,CAClF;KACA,aAAa,CAAC,UAAiB,CAAC;KAChC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC;KAClC,KAAK,CACJ,CACE,IAAS;AACT,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,GAAG,mBAAmB;;;;;;;;;;;;;;;;;eAiB9B,IAAI,CAAC,SAAS;;;;;;;;;;;eAWd,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;yCAkBY,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA4B5B,IAAI,CAAC,SAAS,qBAAqB,IAAI,CAAC,SAAS;;;;;;;0BAOlD,IAAI,CAAC,SAAS;iBACvB,IAAI,CAAC,SAAS;;;gCAGC,IAAI,CAAC,SAAS,oBAAoB,IAAI,CAAC,SAAS,gBAAgB,IAAI,CAAC,SAAS;iBAC7F,IAAI,CAAC,SAAS;;;;;CAK9B,CAAC;IAEM,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACrE,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TsDPBasePromptClass = "You're a senior TypeScript developer writing typescript code.You're a senior TypeScript developer writing typescript code.";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/prompts/code/design-patterns/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,0BAAqB;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,gBAAgB,+DAA+D,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { PromptBuilder } from "./../../builders/prompt-builder.js";
|
|
3
|
+
import { ReasoningLevel } from "./../../constants.js";
|
|
4
|
+
const promptName = "example.prompt.echo";
|
|
5
|
+
const argsSchema = z.object({ text: z.string().optional() });
|
|
6
|
+
export const ExamplePrompt = PromptBuilder.builder
|
|
7
|
+
.setName(promptName)
|
|
8
|
+
.setTitle("Example: Echo Prompt")
|
|
9
|
+
.setDescription("Returns a short prompt containing the provided `text` as a user message.")
|
|
10
|
+
.setArgsSchema(argsSchema)
|
|
11
|
+
.setReasoning(ReasoningLevel.BASIC)
|
|
12
|
+
.setCb((args, _extra) => {
|
|
13
|
+
const text = args?.text ?? "(no text provided)";
|
|
14
|
+
const messages = [{ role: "user", content: { type: "text", text } }];
|
|
15
|
+
return { messages, _meta: {} };
|
|
16
|
+
});
|
|
17
|
+
// Named export already provided above; avoid default exports per repository policy.
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/prompts/example-prompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAO9D,OAAO,EAAE,cAAc,EAAqB,6BAAwB;AAEpE,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAG7D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO;KAC/C,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,sBAAsB,CAAC;KAChC,cAAc,CAAC,0EAA0E,CAAC;KAC1F,aAAa,CAAC,UAAiB,CAAC;KAChC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC;KAClC,KAAK,CACJ,CACE,IAAU,EACV,MAA8D,EAC7C,EAAE;IACnB,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,oBAAoB,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAS,CAAC;AACxC,CAAC,CACF,CAAC;AAEJ,oFAAoF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TsDocClassPrompt } from "./jsdocs/class-prompt.js";
|
|
2
|
+
import { TsDocConstPrompt } from "./jsdocs/const-prompt.js";
|
|
3
|
+
import { TsDocDecoratorPrompt } from "./jsdocs/decorator-prompt.js";
|
|
4
|
+
import { TsDocEnumPrompt } from "./jsdocs/enum-prompt.js";
|
|
5
|
+
import { TsDocFunctionPrompt } from "./jsdocs/function-prompt.js";
|
|
6
|
+
import { TsDocInterfacePrompt } from "./jsdocs/interface-prompt.js";
|
|
7
|
+
import { TsDocTypeePrompt } from "./jsdocs/types-prompt.js";
|
|
8
|
+
import { TsCodeDesignPatterBuilderPrompt } from "./code/design-patterns/builder.js";
|
|
9
|
+
import { ExamplePrompt } from "./example-prompt/index.js";
|
|
10
|
+
import { InteractiveJsDocPrompt } from "./interactive-jsdoc/index.js";
|
|
11
|
+
export const Prompts = [
|
|
12
|
+
// Documentation prompts
|
|
13
|
+
TsDocClassPrompt,
|
|
14
|
+
TsDocConstPrompt,
|
|
15
|
+
TsDocDecoratorPrompt,
|
|
16
|
+
TsDocEnumPrompt,
|
|
17
|
+
TsDocFunctionPrompt,
|
|
18
|
+
TsDocInterfacePrompt,
|
|
19
|
+
TsDocTypeePrompt,
|
|
20
|
+
// Code generation prompts
|
|
21
|
+
TsCodeDesignPatterBuilderPrompt,
|
|
22
|
+
// Example prompt
|
|
23
|
+
ExamplePrompt,
|
|
24
|
+
InteractiveJsDocPrompt,
|
|
25
|
+
];
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iCAA8B;AACzD,OAAO,EAAE,gBAAgB,EAAE,iCAA8B;AACzD,OAAO,EAAE,oBAAoB,EAAE,qCAAkC;AACjE,OAAO,EAAE,eAAe,EAAE,gCAA6B;AACvD,OAAO,EAAE,mBAAmB,EAAE,oCAAiC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,qCAAkC;AACjE,OAAO,EAAE,gBAAgB,EAAE,iCAA8B;AAEzD,OAAO,EAAE,+BAA+B,EAAE,0CAAuC;AACjF,OAAO,EAAE,aAAa,EAAE,kCAAyB;AACjD,OAAO,EAAE,sBAAsB,EAAE,qCAA4B;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAoB;IACtC,wBAAwB;IACxB,gBAAgB;IAChB,gBAAgB;IAChB,oBAAoB;IACpB,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,gBAAgB;IAChB,0BAA0B;IAC1B,+BAA+B;IAC/B,iBAAiB;IACjB,aAAa;IACb,sBAAsB;CACvB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { PromptBuilder } from "./../../builders/prompt-builder.js";
|
|
3
|
+
import { ReasoningLevel } from "./../../constants.js";
|
|
4
|
+
const promptName = "interactive.jsdoc.assistant";
|
|
5
|
+
const argsSchema = z.object({ code: z.string().optional(), astObject: z.any().optional() });
|
|
6
|
+
export const InteractiveJsDocPrompt = PromptBuilder.builder
|
|
7
|
+
.setName(promptName)
|
|
8
|
+
.setTitle("Interactive JSDoc Assistant")
|
|
9
|
+
.setDescription("Produce a ready-to-insert JSDoc block for a provided code snippet or AST object.")
|
|
10
|
+
.setArgsSchema(argsSchema)
|
|
11
|
+
.setReasoning(ReasoningLevel.BASIC)
|
|
12
|
+
.setCb((args, _extra) => {
|
|
13
|
+
const code = args?.code ?? "";
|
|
14
|
+
const prompt = `Generate a complete JSDoc comment block for the following code. Respond only with the full JSDoc block.\n\n${code}`;
|
|
15
|
+
const result = { messages: [{ role: "user", content: { type: "text", text: prompt } }], _meta: {} };
|
|
16
|
+
return result;
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/prompts/interactive-jsdoc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAO9D,OAAO,EAAE,cAAc,EAAE,6BAAwB;AAEjD,MAAM,UAAU,GAAG,6BAA6B,CAAC;AAEjD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAG5F,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC,OAAO;KACxD,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,6BAA6B,CAAC;KACvC,cAAc,CAAC,kFAAkF,CAAC;KAClG,aAAa,CAAC,UAAiB,CAAC;KAChC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC;KAClC,KAAK,CAAC,CAAC,IAAU,EAAE,MAA8D,EAAmB,EAAE;IACrG,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,8GAA8G,IAAI,EAAE,CAAC;IACpI,MAAM,MAAM,GAAoB,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAS,CAAC;IAC5H,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { BaseJSDocPrompt, Footer } from "./constants.js";
|
|
3
|
+
import { PromptBuilder } from "./../../builders/prompt-builder.js";
|
|
4
|
+
import { ReasoningLevel } from "./../../constants.js";
|
|
5
|
+
const promptName = "ts.jsdoc.class";
|
|
6
|
+
const argsSchema = z.object({});
|
|
7
|
+
export const TsDocClassPrompt = PromptBuilder.builder
|
|
8
|
+
.setName(promptName)
|
|
9
|
+
.setTitle("Class JSDocs Prompt")
|
|
10
|
+
.setDescription("Generate JSDoc comments for a TypeScript class according to a curated template and prompt.")
|
|
11
|
+
.setArgsSchema(argsSchema)
|
|
12
|
+
.setReasoning(ReasoningLevel.BASIC)
|
|
13
|
+
.setCb((
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
+
args,
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
+
extra) => {
|
|
18
|
+
const prompt = `${BaseJSDocPrompt}
|
|
19
|
+
document the entire class and each of its functions including always including the @description tag with a short description of the target, and a@summary tag with a more detailed one.
|
|
20
|
+
Include @class tags when applicable.
|
|
21
|
+
include @param tags in the class documentation and its type definitions
|
|
22
|
+
Include detailed @description for all properties.
|
|
23
|
+
Include @template tags when necessary.
|
|
24
|
+
Do NOT document the constructor, but include the constructor arguments as @param in the class documentation
|
|
25
|
+
For methods and functions:
|
|
26
|
+
- include @description and @summary tags as defined for the target. also document every argument, including its type definition, and return type, referencing @template tags when necessary.
|
|
27
|
+
- create a usage example under the @example tag on the class documentation
|
|
28
|
+
- create mermaid sequence diagrams under the @mermaid tag;
|
|
29
|
+
|
|
30
|
+
The order of tags (when applicable) should be as follows:
|
|
31
|
+
1 - @description;
|
|
32
|
+
2 - @summary;
|
|
33
|
+
3 - @template;
|
|
34
|
+
4 - @param;
|
|
35
|
+
5 - @return;
|
|
36
|
+
6 - @class
|
|
37
|
+
7 - @example
|
|
38
|
+
8 - @mermaid;
|
|
39
|
+
|
|
40
|
+
ignore @mermaid for methods with less that 15 lines and constructors.
|
|
41
|
+
Respond only with the full JSDoc comment block for the class and its methods.
|
|
42
|
+
NEVER user @memberOf in the class or any of it's methods
|
|
43
|
+
if the element is already documented, only restructure, correct, or add to the documentation. NEVER remove existing information
|
|
44
|
+
never omit or change any code, including the constructor
|
|
45
|
+
${Footer}`;
|
|
46
|
+
const result = {
|
|
47
|
+
messages: [{ role: "user", content: { type: "text", text: prompt } }],
|
|
48
|
+
_meta: {},
|
|
49
|
+
};
|
|
50
|
+
return result;
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=class-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-prompt.js","sourceRoot":"","sources":["../../../../src/prompts/jsdocs/class-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAoB;AAOtD,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAC9D,OAAO,EAAE,cAAc,EAAE,6BAAwB;AAEjD,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAGhC,MAAM,CAAC,MAAM,gBAAgB,GAAkB,aAAa,CAAC,OAAO;KACjE,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,qBAAqB,CAAC;KAC/B,cAAc,CACb,4FAA4F,CAC7F;KACA,aAAa,CAAC,UAAiB,CAAC;KAChC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC;KAClC,KAAK,CACJ;AACE,6DAA6D;AAC7D,IAAU;AACV,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BrC,MAAM,EAAE,CAAC;IACL,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACrE,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { BaseJSDocPrompt, ConstantsPrompt, Footer } from "./constants.js";
|
|
3
|
+
import { PromptBuilder } from "./../../builders/prompt-builder.js";
|
|
4
|
+
const promptName = "ts.jsdoc.const";
|
|
5
|
+
const argsSchema = z.object({});
|
|
6
|
+
export const TsDocConstPrompt = PromptBuilder.builder
|
|
7
|
+
.setName(promptName)
|
|
8
|
+
.setTitle("Const JSDocs Prompt")
|
|
9
|
+
.setDescription("Generate JSDoc comments for a TypeScript constant according to a curated template and prompt.")
|
|
10
|
+
.setArgsSchema(argsSchema)
|
|
11
|
+
.setCb((
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13
|
+
args,
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
+
extra) => {
|
|
16
|
+
const prompt = `${BaseJSDocPrompt}
|
|
17
|
+
${ConstantsPrompt}
|
|
18
|
+
${Footer}`;
|
|
19
|
+
const result = {
|
|
20
|
+
messages: [{ role: "user", content: { type: "text", text: prompt } }],
|
|
21
|
+
};
|
|
22
|
+
return result;
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=const-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const-prompt.js","sourceRoot":"","sources":["../../../../src/prompts/jsdocs/const-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAoB;AAOvE,OAAO,EAAE,aAAa,EAAE,2CAAsC;AAE9D,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAGhC,MAAM,CAAC,MAAM,gBAAgB,GAAkB,aAAa,CAAC,OAAO;KACjE,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,qBAAqB,CAAC;KAC/B,cAAc,CACb,+FAA+F,CAChG;KACA,aAAa,CAAC,UAAiB,CAAC;KAChC,KAAK,CACJ;AACE,6DAA6D;AAC7D,IAAU;AACV,6DAA6D;AAC7D,KAA6D,EAC7D,EAAE;IACF,MAAM,MAAM,GAAG,GAAG,eAAe;EACrC,eAAe;EACf,MAAM,EAAE,CAAC;IAEL,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;KACtE,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const BaseJSDocPrompt = "You're a senior TypeScript developer writing JSDoc documentation for a class to be used with better-docs. Given the module code:\nGenerate a JSDoc comment block for a TypeScript module file using better-docs formatting:";
|
|
2
|
+
export declare const TypesPrompt = "document the target code, always including the @description tag with a short description of the target, and a@summary tag with a more detailed one.\n Include @interface and @typeDef an @template tags when appropriate.\n Include detailed @description for all properties.\n For methods, include @description and @summary tags as defined for the target. also document every argument, including its type definition, and return type, referencing @template tags when necessary.\n\n The order of tags (when applicable) should be as follows:\n1 - @description;\n2 - @summary;\n3 - @template;\n4 - @param;\n5 - @return;\n6 - @interface or @typeDef followed by the interface or type name;\n8 - @memberOf referencing the appropriate module using the appropriate syntax\n\nOutput only the completed JSDoc comment block for the type or interface.\nrefer to the module it belongs with @memberOf this the `@memberOf module:<module_name>` syntax\nnever omit or change any code\nif the element is already documented, only restructure, correct, or add to the documentation. NEVER remove existing information";
|
|
3
|
+
export declare const ConstantsPrompt = "document the target code, always including the @description tag with a short description of the target, and a@summary tag with a more detailed one.\nInclude @const and @typeDef tags when appropriate.\nInclude detailed @description for all properties.\n- For enums, include @enum and @readonly, and add inline documentation for each member\n- For object-like constants:\n - Create a @typedef with @property for each key\n - Reference it in the constant using @type\n - Alternatively, document each key inline if small\n\nThe order of tags (when applicable) should be as follows:\n1 - @description;\n2 - @summary;\n3 - @template;\n4 - @property;\n6 - @const followed by the const or enum name;\n8 - @memberOf referencing the appropriate module using the appropriate syntax\n\nRespond with the JSDoc comment block(s) for both the typedef and the constant or enum.\nrefer to the module it belongs with @memberOf this the `@memberOf module:<module_name>` syntax\nnever omit or change any code\nif the element is already documented, only restructure, correct, or add to the documentation. NEVER remove existing information";
|
|
4
|
+
export declare const Footer = "NOTES:\n - when document a function/method parameters, and there is a template type involved, ALWAYS reference it using the @template tag;\n - when documenting a function type as a parameter, ALWAYS use the function(type1,type2):return_type syntax;\n ";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export const BaseJSDocPrompt = `You're a senior TypeScript developer writing JSDoc documentation for a class to be used with better-docs. Given the module code:
|
|
2
|
+
Generate a JSDoc comment block for a TypeScript module file using better-docs formatting:`;
|
|
3
|
+
export const TypesPrompt = `document the target code, always including the @description tag with a short description of the target, and a@summary tag with a more detailed one.
|
|
4
|
+
Include @interface and @typeDef an @template tags when appropriate.
|
|
5
|
+
Include detailed @description for all properties.
|
|
6
|
+
For methods, include @description and @summary tags as defined for the target. also document every argument, including its type definition, and return type, referencing @template tags when necessary.
|
|
7
|
+
|
|
8
|
+
The order of tags (when applicable) should be as follows:
|
|
9
|
+
1 - @description;
|
|
10
|
+
2 - @summary;
|
|
11
|
+
3 - @template;
|
|
12
|
+
4 - @param;
|
|
13
|
+
5 - @return;
|
|
14
|
+
6 - @interface or @typeDef followed by the interface or type name;
|
|
15
|
+
8 - @memberOf referencing the appropriate module using the appropriate syntax
|
|
16
|
+
|
|
17
|
+
Output only the completed JSDoc comment block for the type or interface.
|
|
18
|
+
refer to the module it belongs with @memberOf this the \`@memberOf module:<module_name>\` syntax
|
|
19
|
+
never omit or change any code
|
|
20
|
+
if the element is already documented, only restructure, correct, or add to the documentation. NEVER remove existing information`;
|
|
21
|
+
export const ConstantsPrompt = `document the target code, always including the @description tag with a short description of the target, and a@summary tag with a more detailed one.
|
|
22
|
+
Include @const and @typeDef tags when appropriate.
|
|
23
|
+
Include detailed @description for all properties.
|
|
24
|
+
- For enums, include @enum and @readonly, and add inline documentation for each member
|
|
25
|
+
- For object-like constants:
|
|
26
|
+
- Create a @typedef with @property for each key
|
|
27
|
+
- Reference it in the constant using @type
|
|
28
|
+
- Alternatively, document each key inline if small
|
|
29
|
+
|
|
30
|
+
The order of tags (when applicable) should be as follows:
|
|
31
|
+
1 - @description;
|
|
32
|
+
2 - @summary;
|
|
33
|
+
3 - @template;
|
|
34
|
+
4 - @property;
|
|
35
|
+
6 - @const followed by the const or enum name;
|
|
36
|
+
8 - @memberOf referencing the appropriate module using the appropriate syntax
|
|
37
|
+
|
|
38
|
+
Respond with the JSDoc comment block(s) for both the typedef and the constant or enum.
|
|
39
|
+
refer to the module it belongs with @memberOf this the \`@memberOf module:<module_name>\` syntax
|
|
40
|
+
never omit or change any code
|
|
41
|
+
if the element is already documented, only restructure, correct, or add to the documentation. NEVER remove existing information`;
|
|
42
|
+
export const Footer = `NOTES:
|
|
43
|
+
- when document a function/method parameters, and there is a template type involved, ALWAYS reference it using the @template tag;
|
|
44
|
+
- when documenting a function type as a parameter, ALWAYS use the function(type1,type2):return_type syntax;
|
|
45
|
+
`;
|
|
46
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/prompts/jsdocs/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;0FAC2D,CAAC;AAE3F,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;gIAiBqG,CAAC;AAEjI,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;gIAoBiG,CAAC;AAEjI,MAAM,CAAC,MAAM,MAAM,GAAG;;;EAGpB,CAAC"}
|