@decaf-ts/mcp-server 0.0.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -2
- package/dist/mcp-server.cjs +1989 -341
- package/dist/mcp-server.esm.cjs +1963 -338
- package/lib/McpWrapper.cjs +12 -10
- package/lib/McpWrapper.d.ts +1 -1
- package/lib/bin/validate-modules.cjs +24 -0
- package/lib/bin/validate-modules.d.ts +2 -0
- package/lib/constants.cjs +22 -2
- package/lib/constants.d.ts +16 -0
- package/lib/esm/McpWrapper.d.ts +1 -1
- package/lib/esm/McpWrapper.js +12 -10
- package/lib/esm/bin/validate-modules.d.ts +2 -0
- package/lib/esm/bin/validate-modules.js +22 -0
- package/lib/esm/constants.d.ts +16 -0
- package/lib/esm/constants.js +21 -1
- package/lib/esm/mcp/aggregateModules.d.ts +26 -0
- package/lib/esm/mcp/aggregateModules.js +185 -0
- package/lib/esm/mcp/code.d.ts +23 -0
- package/lib/esm/mcp/code.js +70 -0
- package/lib/esm/mcp/decorator-tools.js +237 -0
- package/lib/esm/mcp/fastmcp-wiring.d.ts +14 -0
- package/lib/esm/mcp/fastmcp-wiring.js +56 -0
- package/lib/esm/mcp/index.d.ts +7 -1
- package/lib/esm/mcp/index.js +26 -2
- package/lib/esm/mcp/mcp-module.d.ts +11 -0
- package/lib/esm/mcp/mcp-module.js +31 -0
- package/lib/esm/mcp/moduleRegistry.d.ts +12 -0
- package/lib/esm/mcp/moduleRegistry.js +46 -0
- package/lib/esm/mcp/prompts/index.d.ts +4 -0
- package/lib/esm/mcp/prompts/index.js +7 -0
- package/lib/esm/mcp/prompts/prompts.d.ts +22 -0
- package/lib/esm/mcp/prompts/prompts.js +197 -0
- package/lib/esm/mcp/resources/index.d.ts +1 -0
- package/lib/esm/mcp/resources/index.js +2 -0
- package/lib/esm/mcp/resources/resources.d.ts +2 -0
- package/lib/esm/mcp/resources/resources.js +69 -0
- package/lib/esm/mcp/schemas.d.ts +53 -0
- package/lib/esm/mcp/schemas.js +97 -0
- package/lib/esm/mcp/templates/codex-templates.d.ts +3 -0
- package/lib/esm/mcp/templates/codex-templates.js +33 -0
- package/lib/esm/mcp/templates/index.d.ts +71 -0
- package/lib/esm/mcp/templates/index.js +66 -0
- package/lib/esm/mcp/templates/resource-templates.d.ts +3 -0
- package/lib/esm/mcp/templates/resource-templates.js +60 -0
- package/lib/esm/mcp/templates/workspace-templates.d.ts +3 -0
- package/lib/esm/mcp/templates/workspace-templates.js +66 -0
- package/lib/esm/mcp/tools/codex-tools.d.ts +5 -0
- package/lib/esm/mcp/tools/codex-tools.js +244 -0
- package/lib/esm/mcp/tools/generateMcpModule.d.ts +9 -0
- package/lib/esm/mcp/tools/generateMcpModule.js +133 -0
- package/lib/esm/mcp/tools/index.d.ts +321 -0
- package/lib/esm/mcp/tools/index.js +29 -0
- package/lib/esm/mcp/tools/tools.d.ts +10 -0
- package/lib/esm/mcp/tools/tools.js +273 -0
- package/lib/esm/mcp/types.d.ts +66 -0
- package/lib/esm/mcp/types.js +2 -0
- package/lib/esm/mcp/utils.d.ts +4 -0
- package/lib/esm/mcp/utils.js +46 -0
- package/lib/esm/mcp/validation/index.d.ts +13 -0
- package/lib/esm/mcp/validation/index.js +116 -0
- package/lib/esm/mcp/validation/scaffoldModule.d.ts +9 -0
- package/lib/esm/mcp/validation/scaffoldModule.js +88 -0
- package/lib/esm/mcp/workspace.d.ts +9 -0
- package/lib/esm/mcp/workspace.js +73 -0
- package/lib/esm/metadata.d.ts +1 -1
- package/lib/esm/metadata.js +1 -1
- package/lib/esm/modules/_template/index.d.ts +32 -0
- package/lib/esm/modules/_template/index.js +16 -0
- package/lib/esm/modules/_template/prompts/index.d.ts +6 -0
- package/lib/esm/modules/_template/prompts/index.js +9 -0
- package/lib/esm/modules/_template/resources/index.d.ts +6 -0
- package/lib/esm/modules/_template/resources/index.js +9 -0
- package/lib/esm/modules/_template/templates/index.d.ts +7 -0
- package/lib/esm/modules/_template/templates/index.js +10 -0
- package/lib/esm/modules/_template/tools/index.d.ts +6 -0
- package/lib/esm/modules/_template/tools/index.js +15 -0
- package/lib/esm/modules/decoration/index.d.ts +46 -0
- package/lib/esm/modules/decoration/index.js +10 -2
- package/lib/esm/modules/decoration/prompts/index.d.ts +1 -0
- package/lib/esm/modules/decoration/prompts/index.js +2 -0
- package/lib/esm/modules/decoration/resources/index.d.ts +7 -0
- package/lib/esm/modules/decoration/resources/index.js +10 -0
- package/lib/esm/modules/decoration/templates/index.d.ts +6 -0
- package/lib/esm/modules/decoration/templates/index.js +9 -0
- package/lib/esm/modules/decoration/tools/index.d.ts +26 -0
- package/lib/esm/modules/decoration/tools/index.js +7 -0
- package/lib/esm/modules/index.d.ts +2 -0
- package/lib/esm/modules/index.js +10 -0
- package/lib/esm/modules/mcp/decoration-assist.d.ts +4 -0
- package/lib/esm/modules/mcp/decoration-assist.js +6 -0
- package/lib/esm/modules/mcp/index.d.ts +6 -2
- package/lib/esm/modules/mcp/index.js +16 -3
- package/lib/esm/modules/mcp/prompts/index.d.ts +2 -0
- package/lib/esm/modules/mcp/prompts/index.js +9 -0
- package/lib/esm/modules/mcp/resources/index.d.ts +2 -0
- package/lib/esm/modules/mcp/resources/index.js +24 -0
- package/lib/esm/modules/mcp/templates/index.d.ts +2 -0
- package/lib/esm/modules/mcp/templates/index.js +28 -0
- package/lib/esm/modules/mcp/tools/index.d.ts +6 -0
- package/lib/esm/modules/mcp/tools/index.js +15 -0
- package/lib/esm/types.d.ts +41 -1
- package/lib/esm/types.js +1 -1
- package/lib/esm/utils/modulePaths.d.ts +6 -0
- package/lib/esm/utils/modulePaths.js +33 -0
- package/lib/esm/utils/moduleValidator.d.ts +14 -0
- package/lib/esm/utils/moduleValidator.js +176 -0
- package/lib/esm/utils.d.ts +1 -0
- package/lib/esm/utils.js +2 -1
- package/lib/mcp/aggregateModules.cjs +225 -0
- package/lib/mcp/aggregateModules.d.ts +26 -0
- package/lib/mcp/code.cjs +81 -0
- package/lib/mcp/code.d.ts +23 -0
- package/lib/mcp/decorator-tools.cjs +243 -0
- package/lib/mcp/fastmcp-wiring.cjs +59 -0
- package/lib/mcp/fastmcp-wiring.d.ts +14 -0
- package/lib/mcp/index.cjs +47 -12
- package/lib/mcp/index.d.ts +7 -1
- package/lib/mcp/mcp-module.cjs +53 -0
- package/lib/mcp/mcp-module.d.ts +11 -0
- package/lib/mcp/moduleRegistry.cjs +50 -0
- package/lib/mcp/moduleRegistry.d.ts +12 -0
- package/lib/mcp/prompts/index.cjs +25 -0
- package/lib/mcp/prompts/index.d.ts +4 -0
- package/lib/mcp/prompts/prompts.cjs +211 -0
- package/lib/mcp/prompts/prompts.d.ts +22 -0
- package/lib/mcp/resources/index.cjs +18 -0
- package/lib/mcp/resources/index.d.ts +1 -0
- package/lib/mcp/resources/resources.cjs +72 -0
- package/lib/mcp/resources/resources.d.ts +2 -0
- package/lib/mcp/schemas.cjs +100 -0
- package/lib/mcp/schemas.d.ts +53 -0
- package/lib/mcp/templates/codex-templates.cjs +40 -0
- package/lib/mcp/templates/codex-templates.d.ts +3 -0
- package/lib/mcp/templates/index.cjs +76 -0
- package/lib/mcp/templates/index.d.ts +71 -0
- package/lib/mcp/templates/resource-templates.cjs +67 -0
- package/lib/mcp/templates/resource-templates.d.ts +3 -0
- package/lib/mcp/templates/workspace-templates.cjs +70 -0
- package/lib/mcp/templates/workspace-templates.d.ts +3 -0
- package/lib/mcp/tools/codex-tools.cjs +250 -0
- package/lib/mcp/tools/codex-tools.d.ts +5 -0
- package/lib/mcp/tools/generateMcpModule.cjs +139 -0
- package/lib/mcp/tools/generateMcpModule.d.ts +9 -0
- package/lib/mcp/tools/index.cjs +46 -0
- package/lib/mcp/tools/index.d.ts +321 -0
- package/lib/mcp/tools/tools.cjs +282 -0
- package/lib/mcp/tools/tools.d.ts +10 -0
- package/lib/mcp/types.cjs +3 -0
- package/lib/mcp/types.d.ts +66 -0
- package/lib/mcp/utils.cjs +54 -0
- package/lib/mcp/utils.d.ts +4 -0
- package/lib/mcp/validation/index.cjs +123 -0
- package/lib/mcp/validation/index.d.ts +13 -0
- package/lib/mcp/validation/scaffoldModule.cjs +94 -0
- package/lib/mcp/validation/scaffoldModule.d.ts +9 -0
- package/lib/mcp/workspace.cjs +119 -0
- package/lib/mcp/workspace.d.ts +9 -0
- package/lib/metadata.cjs +1 -1
- package/lib/metadata.d.ts +1 -1
- package/lib/modules/_template/index.cjs +23 -0
- package/lib/modules/_template/index.d.ts +32 -0
- package/lib/modules/_template/prompts/index.cjs +12 -0
- package/lib/modules/_template/prompts/index.d.ts +6 -0
- package/lib/modules/_template/resources/index.cjs +12 -0
- package/lib/modules/_template/resources/index.d.ts +6 -0
- package/lib/modules/_template/templates/index.cjs +13 -0
- package/lib/modules/_template/templates/index.d.ts +7 -0
- package/lib/modules/_template/tools/index.cjs +18 -0
- package/lib/modules/_template/tools/index.d.ts +6 -0
- package/lib/modules/decoration/index.cjs +16 -1
- package/lib/modules/decoration/index.d.ts +46 -0
- package/lib/modules/decoration/prompts/index.cjs +5 -0
- package/lib/modules/decoration/prompts/index.d.ts +1 -0
- package/lib/modules/decoration/resources/index.cjs +13 -0
- package/lib/modules/decoration/resources/index.d.ts +7 -0
- package/lib/modules/decoration/templates/index.cjs +12 -0
- package/lib/modules/decoration/templates/index.d.ts +6 -0
- package/lib/modules/decoration/tools/index.cjs +10 -0
- package/lib/modules/decoration/tools/index.d.ts +26 -0
- package/lib/modules/index.cjs +13 -0
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/mcp/decoration-assist.cjs +13 -0
- package/lib/modules/mcp/decoration-assist.d.ts +4 -0
- package/lib/modules/mcp/index.cjs +21 -22
- package/lib/modules/mcp/index.d.ts +6 -2
- package/lib/modules/mcp/prompts/index.cjs +12 -0
- package/lib/modules/mcp/prompts/index.d.ts +2 -0
- package/lib/modules/mcp/resources/index.cjs +27 -0
- package/lib/modules/mcp/resources/index.d.ts +2 -0
- package/lib/modules/mcp/templates/index.cjs +31 -0
- package/lib/modules/mcp/templates/index.d.ts +2 -0
- package/lib/modules/mcp/tools/index.cjs +18 -0
- package/lib/modules/mcp/tools/index.d.ts +6 -0
- package/lib/types.cjs +1 -1
- package/lib/types.d.ts +41 -1
- package/lib/utils/modulePaths.cjs +43 -0
- package/lib/utils/modulePaths.d.ts +6 -0
- package/lib/utils/moduleValidator.cjs +184 -0
- package/lib/utils/moduleValidator.d.ts +14 -0
- package/lib/utils.cjs +5 -1
- package/lib/utils.d.ts +1 -0
- package/package.json +18 -12
- package/lib/esm/modules/decoration-assist/index.d.ts +0 -39
- package/lib/esm/modules/decoration-assist/index.js +0 -353
- package/lib/esm/modules/mcp/decorator-tools.js +0 -237
- package/lib/esm/modules/mcp/mcp-module.d.ts +0 -230
- package/lib/esm/modules/mcp/mcp-module.js +0 -406
- package/lib/modules/decoration-assist/index.cjs +0 -360
- package/lib/modules/decoration-assist/index.d.ts +0 -39
- package/lib/modules/mcp/decorator-tools.cjs +0 -243
- package/lib/modules/mcp/mcp-module.cjs +0 -452
- package/lib/modules/mcp/mcp-module.d.ts +0 -230
- /package/lib/esm/{modules/mcp → mcp}/decorator-tools.d.ts +0 -0
- /package/lib/{modules/mcp → mcp}/decorator-tools.d.ts +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
const DEFAULT_PLACEHOLDERS = {
|
|
4
|
+
prompts: `export const promptList = [
|
|
5
|
+
{
|
|
6
|
+
id: "example-prompt",
|
|
7
|
+
title: "Example prompt",
|
|
8
|
+
description: "A placeholder prompt created by scaffoldModule",
|
|
9
|
+
content: "Describe the task for the assistant...",
|
|
10
|
+
absolutePath: __filename,
|
|
11
|
+
},
|
|
12
|
+
] as const;
|
|
13
|
+
`,
|
|
14
|
+
resources: `export const resources = [
|
|
15
|
+
{
|
|
16
|
+
id: "example-resource",
|
|
17
|
+
name: "Example Resource",
|
|
18
|
+
description: "A placeholder resource created by scaffoldModule",
|
|
19
|
+
uri: "file://placeholder",
|
|
20
|
+
absolutePath: __filename,
|
|
21
|
+
},
|
|
22
|
+
] as const;
|
|
23
|
+
`,
|
|
24
|
+
templates: `export const templates = [
|
|
25
|
+
{
|
|
26
|
+
name: "example-template",
|
|
27
|
+
description: "A placeholder template created by scaffoldModule",
|
|
28
|
+
uriTemplate: "file://template/{path}",
|
|
29
|
+
mimeType: "text/plain",
|
|
30
|
+
},
|
|
31
|
+
] as const;
|
|
32
|
+
`,
|
|
33
|
+
tools: `export const toolList = [
|
|
34
|
+
{
|
|
35
|
+
id: "example-tool",
|
|
36
|
+
name: "example-tool",
|
|
37
|
+
description: "A placeholder tool created by scaffoldModule",
|
|
38
|
+
run: async () => ({ result: "placeholder" }),
|
|
39
|
+
},
|
|
40
|
+
] as const;
|
|
41
|
+
`,
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Create a module scaffold under repoRoot/src/modules/<moduleName>
|
|
45
|
+
* Returns created files list.
|
|
46
|
+
*/
|
|
47
|
+
export function scaffoldModule(repoRoot, moduleName) {
|
|
48
|
+
if (!repoRoot)
|
|
49
|
+
throw new Error("repoRoot is required");
|
|
50
|
+
if (!moduleName)
|
|
51
|
+
throw new Error("moduleName is required");
|
|
52
|
+
const modulePath = path.join(repoRoot, "src", "modules", moduleName);
|
|
53
|
+
const createdFiles = [];
|
|
54
|
+
const subfolders = ["prompts", "resources", "templates", "tools"];
|
|
55
|
+
for (const folder of subfolders) {
|
|
56
|
+
const folderPath = path.join(modulePath, folder);
|
|
57
|
+
fs.mkdirSync(folderPath, { recursive: true });
|
|
58
|
+
const indexPath = path.join(folderPath, "index.ts");
|
|
59
|
+
// if file exists, skip writing
|
|
60
|
+
if (!fs.existsSync(indexPath)) {
|
|
61
|
+
// insert __filename for absolutePath in placeholders
|
|
62
|
+
const content = DEFAULT_PLACEHOLDERS[folder].replace(/__filename/g, JSON.stringify(indexPath));
|
|
63
|
+
fs.writeFileSync(indexPath, content, { encoding: "utf8" });
|
|
64
|
+
createdFiles.push(indexPath);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { modulePath, createdFiles };
|
|
68
|
+
}
|
|
69
|
+
// CLI support when required directly via ts-node registration
|
|
70
|
+
if (require.main === module) {
|
|
71
|
+
const [, , moduleName] = process.argv;
|
|
72
|
+
if (!moduleName) {
|
|
73
|
+
console.error("Usage: scaffold-module <module-name>");
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const res = scaffoldModule(process.cwd(), moduleName);
|
|
78
|
+
console.log("Scaffolded module:", res.modulePath);
|
|
79
|
+
for (const f of res.createdFiles)
|
|
80
|
+
console.log(" created:", f);
|
|
81
|
+
process.exit(0);
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
console.error(err && err.message ? err.message : err);
|
|
85
|
+
process.exit(2);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhZmZvbGRNb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWNwL3ZhbGlkYXRpb24vc2NhZmZvbGRNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQU94QixNQUFNLG9CQUFvQixHQUFHO0lBQzNCLE9BQU8sRUFBRTs7Ozs7Ozs7O0NBU1Y7SUFDQyxTQUFTLEVBQUU7Ozs7Ozs7OztDQVNaO0lBQ0MsU0FBUyxFQUFFOzs7Ozs7OztDQVFaO0lBQ0MsS0FBSyxFQUFFOzs7Ozs7OztDQVFSO0NBQ0EsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQzVCLFFBQWdCLEVBQ2hCLFVBQWtCO0lBRWxCLElBQUksQ0FBQyxRQUFRO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxVQUFVO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRTNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO0lBRWxDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFbEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELCtCQUErQjtRQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlCLHFEQUFxRDtZQUNyRCxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FDbEMsTUFBMkMsQ0FDNUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNwRCxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMzRCxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQsOERBQThEO0FBQzlELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUM1QixNQUFNLENBQUMsRUFBRSxBQUFELEVBQUcsVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsWUFBWTtZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmV4cG9ydCB0eXBlIFNjYWZmb2xkUmVzdWx0ID0ge1xuICBtb2R1bGVQYXRoOiBzdHJpbmc7XG4gIGNyZWF0ZWRGaWxlczogc3RyaW5nW107XG59O1xuXG5jb25zdCBERUZBVUxUX1BMQUNFSE9MREVSUyA9IHtcbiAgcHJvbXB0czogYGV4cG9ydCBjb25zdCBwcm9tcHRMaXN0ID0gW1xuICB7XG4gICAgaWQ6IFwiZXhhbXBsZS1wcm9tcHRcIixcbiAgICB0aXRsZTogXCJFeGFtcGxlIHByb21wdFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgcGxhY2Vob2xkZXIgcHJvbXB0IGNyZWF0ZWQgYnkgc2NhZmZvbGRNb2R1bGVcIixcbiAgICBjb250ZW50OiBcIkRlc2NyaWJlIHRoZSB0YXNrIGZvciB0aGUgYXNzaXN0YW50Li4uXCIsXG4gICAgYWJzb2x1dGVQYXRoOiBfX2ZpbGVuYW1lLFxuICB9LFxuXSBhcyBjb25zdDtcbmAsXG4gIHJlc291cmNlczogYGV4cG9ydCBjb25zdCByZXNvdXJjZXMgPSBbXG4gIHtcbiAgICBpZDogXCJleGFtcGxlLXJlc291cmNlXCIsXG4gICAgbmFtZTogXCJFeGFtcGxlIFJlc291cmNlXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciByZXNvdXJjZSBjcmVhdGVkIGJ5IHNjYWZmb2xkTW9kdWxlXCIsXG4gICAgdXJpOiBcImZpbGU6Ly9wbGFjZWhvbGRlclwiLFxuICAgIGFic29sdXRlUGF0aDogX19maWxlbmFtZSxcbiAgfSxcbl0gYXMgY29uc3Q7XG5gLFxuICB0ZW1wbGF0ZXM6IGBleHBvcnQgY29uc3QgdGVtcGxhdGVzID0gW1xuICB7XG4gICAgbmFtZTogXCJleGFtcGxlLXRlbXBsYXRlXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciB0ZW1wbGF0ZSBjcmVhdGVkIGJ5IHNjYWZmb2xkTW9kdWxlXCIsXG4gICAgdXJpVGVtcGxhdGU6IFwiZmlsZTovL3RlbXBsYXRlL3twYXRofVwiLFxuICAgIG1pbWVUeXBlOiBcInRleHQvcGxhaW5cIixcbiAgfSxcbl0gYXMgY29uc3Q7XG5gLFxuICB0b29sczogYGV4cG9ydCBjb25zdCB0b29sTGlzdCA9IFtcbiAge1xuICAgIGlkOiBcImV4YW1wbGUtdG9vbFwiLFxuICAgIG5hbWU6IFwiZXhhbXBsZS10b29sXCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciB0b29sIGNyZWF0ZWQgYnkgc2NhZmZvbGRNb2R1bGVcIixcbiAgICBydW46IGFzeW5jICgpID0+ICh7IHJlc3VsdDogXCJwbGFjZWhvbGRlclwiIH0pLFxuICB9LFxuXSBhcyBjb25zdDtcbmAsXG59O1xuXG4vKipcbiAqIENyZWF0ZSBhIG1vZHVsZSBzY2FmZm9sZCB1bmRlciByZXBvUm9vdC9zcmMvbW9kdWxlcy88bW9kdWxlTmFtZT5cbiAqIFJldHVybnMgY3JlYXRlZCBmaWxlcyBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NhZmZvbGRNb2R1bGUoXG4gIHJlcG9Sb290OiBzdHJpbmcsXG4gIG1vZHVsZU5hbWU6IHN0cmluZ1xuKTogU2NhZmZvbGRSZXN1bHQge1xuICBpZiAoIXJlcG9Sb290KSB0aHJvdyBuZXcgRXJyb3IoXCJyZXBvUm9vdCBpcyByZXF1aXJlZFwiKTtcbiAgaWYgKCFtb2R1bGVOYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJtb2R1bGVOYW1lIGlzIHJlcXVpcmVkXCIpO1xuXG4gIGNvbnN0IG1vZHVsZVBhdGggPSBwYXRoLmpvaW4ocmVwb1Jvb3QsIFwic3JjXCIsIFwibW9kdWxlc1wiLCBtb2R1bGVOYW1lKTtcbiAgY29uc3QgY3JlYXRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IHN1YmZvbGRlcnMgPSBbXCJwcm9tcHRzXCIsIFwicmVzb3VyY2VzXCIsIFwidGVtcGxhdGVzXCIsIFwidG9vbHNcIl07XG5cbiAgZm9yIChjb25zdCBmb2xkZXIgb2Ygc3ViZm9sZGVycykge1xuICAgIGNvbnN0IGZvbGRlclBhdGggPSBwYXRoLmpvaW4obW9kdWxlUGF0aCwgZm9sZGVyKTtcbiAgICBmcy5ta2RpclN5bmMoZm9sZGVyUGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgY29uc3QgaW5kZXhQYXRoID0gcGF0aC5qb2luKGZvbGRlclBhdGgsIFwiaW5kZXgudHNcIik7XG4gICAgLy8gaWYgZmlsZSBleGlzdHMsIHNraXAgd3JpdGluZ1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhpbmRleFBhdGgpKSB7XG4gICAgICAvLyBpbnNlcnQgX19maWxlbmFtZSBmb3IgYWJzb2x1dGVQYXRoIGluIHBsYWNlaG9sZGVyc1xuICAgICAgY29uc3QgY29udGVudCA9IERFRkFVTFRfUExBQ0VIT0xERVJTW1xuICAgICAgICBmb2xkZXIgYXMga2V5b2YgdHlwZW9mIERFRkFVTFRfUExBQ0VIT0xERVJTXG4gICAgICBdLnJlcGxhY2UoL19fZmlsZW5hbWUvZywgSlNPTi5zdHJpbmdpZnkoaW5kZXhQYXRoKSk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGluZGV4UGF0aCwgY29udGVudCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSk7XG4gICAgICBjcmVhdGVkRmlsZXMucHVzaChpbmRleFBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IG1vZHVsZVBhdGgsIGNyZWF0ZWRGaWxlcyB9O1xufVxuXG4vLyBDTEkgc3VwcG9ydCB3aGVuIHJlcXVpcmVkIGRpcmVjdGx5IHZpYSB0cy1ub2RlIHJlZ2lzdHJhdGlvblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGNvbnN0IFssICwgbW9kdWxlTmFtZV0gPSBwcm9jZXNzLmFyZ3Y7XG4gIGlmICghbW9kdWxlTmFtZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJVc2FnZTogc2NhZmZvbGQtbW9kdWxlIDxtb2R1bGUtbmFtZT5cIik7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzID0gc2NhZmZvbGRNb2R1bGUocHJvY2Vzcy5jd2QoKSwgbW9kdWxlTmFtZSk7XG4gICAgY29uc29sZS5sb2coXCJTY2FmZm9sZGVkIG1vZHVsZTpcIiwgcmVzLm1vZHVsZVBhdGgpO1xuICAgIGZvciAoY29uc3QgZiBvZiByZXMuY3JlYXRlZEZpbGVzKSBjb25zb2xlLmxvZyhcIiAgY3JlYXRlZDpcIiwgZik7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyICYmIGVyci5tZXNzYWdlID8gZXJyLm1lc3NhZ2UgOiBlcnIpO1xuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
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;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { WORKSPACE_ROOT_ENV } from "../constants";
|
|
4
|
+
let workspaceRoot = initializeWorkspaceRoot();
|
|
5
|
+
let userErrorCtor;
|
|
6
|
+
export class WorkspaceError extends Error {
|
|
7
|
+
constructor(message) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = "WorkspaceError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function initializeWorkspaceRoot() {
|
|
13
|
+
const configured = process.env[WORKSPACE_ROOT_ENV];
|
|
14
|
+
if (configured && configured.trim().length > 0) {
|
|
15
|
+
return path.resolve(configured.trim());
|
|
16
|
+
}
|
|
17
|
+
return process.cwd();
|
|
18
|
+
}
|
|
19
|
+
async function getUserErrorCtor() {
|
|
20
|
+
if (!userErrorCtor) {
|
|
21
|
+
try {
|
|
22
|
+
const mod = await import("fastmcp");
|
|
23
|
+
userErrorCtor = mod
|
|
24
|
+
.UserError;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
userErrorCtor = class MCPUserError extends Error {
|
|
28
|
+
constructor(message) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.name = "MCPUserError";
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return userErrorCtor;
|
|
36
|
+
}
|
|
37
|
+
export async function throwUserError(message) {
|
|
38
|
+
const Ctor = await getUserErrorCtor();
|
|
39
|
+
throw new Ctor(message);
|
|
40
|
+
}
|
|
41
|
+
export function setWorkspaceRoot(root) {
|
|
42
|
+
workspaceRoot = path.resolve(root);
|
|
43
|
+
}
|
|
44
|
+
export function getWorkspaceRoot() {
|
|
45
|
+
return workspaceRoot;
|
|
46
|
+
}
|
|
47
|
+
export function resolveInWorkspace(root, targetPath) {
|
|
48
|
+
const resolved = path.isAbsolute(targetPath)
|
|
49
|
+
? path.normalize(targetPath)
|
|
50
|
+
: path.resolve(root, targetPath);
|
|
51
|
+
const relative = path.relative(root, resolved);
|
|
52
|
+
if (relative.startsWith("..") || path.isAbsolute(relative)) {
|
|
53
|
+
throw new WorkspaceError(`Path ${targetPath} escapes the workspace root at ${root}`);
|
|
54
|
+
}
|
|
55
|
+
return resolved;
|
|
56
|
+
}
|
|
57
|
+
export async function readWorkspaceFile(root, target) {
|
|
58
|
+
try {
|
|
59
|
+
const absolute = resolveInWorkspace(root, target);
|
|
60
|
+
return fs.readFileSync(absolute, "utf8");
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (error instanceof WorkspaceError) {
|
|
64
|
+
await throwUserError(error.message);
|
|
65
|
+
}
|
|
66
|
+
/* istanbul ignore next */
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export function __resetWorkspaceRoot(root) {
|
|
71
|
+
setWorkspaceRoot(root);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21jcC93b3Jrc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEQsSUFBSSxhQUFhLEdBQUcsdUJBQXVCLEVBQUUsQ0FBQztBQUM5QyxJQUFJLGFBQTJELENBQUM7QUFFaEUsTUFBTSxPQUFPLGNBQWUsU0FBUSxLQUFLO0lBQ3ZDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQUVELFNBQVMsdUJBQXVCO0lBQzlCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNuRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdkIsQ0FBQztBQUVELEtBQUssVUFBVSxnQkFBZ0I7SUFDN0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLGFBQWEsR0FBSSxHQUFxRDtpQkFDbkUsU0FBUyxDQUFDO1FBQ2YsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLGFBQWEsR0FBRyxNQUFNLFlBQWEsU0FBUSxLQUFLO2dCQUM5QyxZQUFZLE9BQWU7b0JBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztnQkFDN0IsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUFlO0lBQ2xELE1BQU0sSUFBSSxHQUFHLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztJQUN0QyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQVksRUFBRSxVQUFrQjtJQUNqRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLGNBQWMsQ0FDdEIsUUFBUSxVQUFVLGtDQUFrQyxJQUFJLEVBQUUsQ0FDM0QsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsSUFBWSxFQUNaLE1BQWM7SUFFZCxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUF3QixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELDBCQUEwQjtRQUMxQixNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBXT1JLU1BBQ0VfUk9PVF9FTlYgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmxldCB3b3Jrc3BhY2VSb290ID0gaW5pdGlhbGl6ZVdvcmtzcGFjZVJvb3QoKTtcbmxldCB1c2VyRXJyb3JDdG9yOiAobmV3IChtZXNzYWdlOiBzdHJpbmcpID0+IEVycm9yKSB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSBcIldvcmtzcGFjZUVycm9yXCI7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZVdvcmtzcGFjZVJvb3QoKTogc3RyaW5nIHtcbiAgY29uc3QgY29uZmlndXJlZCA9IHByb2Nlc3MuZW52W1dPUktTUEFDRV9ST09UX0VOVl07XG4gIGlmIChjb25maWd1cmVkICYmIGNvbmZpZ3VyZWQudHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKGNvbmZpZ3VyZWQudHJpbSgpKTtcbiAgfVxuICByZXR1cm4gcHJvY2Vzcy5jd2QoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0VXNlckVycm9yQ3RvcigpOiBQcm9taXNlPG5ldyAobWVzc2FnZTogc3RyaW5nKSA9PiBFcnJvcj4ge1xuICBpZiAoIXVzZXJFcnJvckN0b3IpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbW9kID0gYXdhaXQgaW1wb3J0KFwiZmFzdG1jcFwiKTtcbiAgICAgIHVzZXJFcnJvckN0b3IgPSAobW9kIGFzIHsgVXNlckVycm9yOiBuZXcgKG1lc3NhZ2U6IHN0cmluZykgPT4gRXJyb3IgfSlcbiAgICAgICAgLlVzZXJFcnJvcjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHVzZXJFcnJvckN0b3IgPSBjbGFzcyBNQ1BVc2VyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICAgIHRoaXMubmFtZSA9IFwiTUNQVXNlckVycm9yXCI7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiB1c2VyRXJyb3JDdG9yO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGhyb3dVc2VyRXJyb3IobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxuZXZlcj4ge1xuICBjb25zdCBDdG9yID0gYXdhaXQgZ2V0VXNlckVycm9yQ3RvcigpO1xuICB0aHJvdyBuZXcgQ3RvcihtZXNzYWdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFdvcmtzcGFjZVJvb3Qocm9vdDogc3RyaW5nKSB7XG4gIHdvcmtzcGFjZVJvb3QgPSBwYXRoLnJlc29sdmUocm9vdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXb3Jrc3BhY2VSb290KCk6IHN0cmluZyB7XG4gIHJldHVybiB3b3Jrc3BhY2VSb290O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUluV29ya3NwYWNlKHJvb3Q6IHN0cmluZywgdGFyZ2V0UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcmVzb2x2ZWQgPSBwYXRoLmlzQWJzb2x1dGUodGFyZ2V0UGF0aClcbiAgICA/IHBhdGgubm9ybWFsaXplKHRhcmdldFBhdGgpXG4gICAgOiBwYXRoLnJlc29sdmUocm9vdCwgdGFyZ2V0UGF0aCk7XG5cbiAgY29uc3QgcmVsYXRpdmUgPSBwYXRoLnJlbGF0aXZlKHJvb3QsIHJlc29sdmVkKTtcbiAgaWYgKHJlbGF0aXZlLnN0YXJ0c1dpdGgoXCIuLlwiKSB8fCBwYXRoLmlzQWJzb2x1dGUocmVsYXRpdmUpKSB7XG4gICAgdGhyb3cgbmV3IFdvcmtzcGFjZUVycm9yKFxuICAgICAgYFBhdGggJHt0YXJnZXRQYXRofSBlc2NhcGVzIHRoZSB3b3Jrc3BhY2Ugcm9vdCBhdCAke3Jvb3R9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcmVzb2x2ZWQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkV29ya3NwYWNlRmlsZShcbiAgcm9vdDogc3RyaW5nLFxuICB0YXJnZXQ6IHN0cmluZ1xuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBhYnNvbHV0ZSA9IHJlc29sdmVJbldvcmtzcGFjZShyb290LCB0YXJnZXQpO1xuICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMoYWJzb2x1dGUsIFwidXRmOFwiIGFzIEJ1ZmZlckVuY29kaW5nKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBXb3Jrc3BhY2VFcnJvcikge1xuICAgICAgYXdhaXQgdGhyb3dVc2VyRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzZXRXb3Jrc3BhY2VSb290KHJvb3Q6IHN0cmluZykge1xuICBzZXRXb3Jrc3BhY2VSb290KHJvb3QpO1xufVxuIl19
|
package/lib/esm/metadata.d.ts
CHANGED
package/lib/esm/metadata.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Metadata } from "@decaf-ts/decoration";
|
|
|
6
6
|
* @summary The actual version number is replaced during the build process.
|
|
7
7
|
* @type {string}
|
|
8
8
|
*/
|
|
9
|
-
export const VERSION = "0.0
|
|
9
|
+
export const VERSION = "0.1.0";
|
|
10
10
|
export const PACKAGE_NAME = "##PACKAGE_NAME##";
|
|
11
11
|
try {
|
|
12
12
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { prompts } from "./prompts";
|
|
2
|
+
export { resources } from "./resources";
|
|
3
|
+
export { templates } from "./templates";
|
|
4
|
+
export { tools } from "./tools";
|
|
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
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { prompts } from "./prompts";
|
|
2
|
+
import { resources } from "./resources";
|
|
3
|
+
import { templates } from "./templates";
|
|
4
|
+
import { tools } from "./tools";
|
|
5
|
+
export { prompts } from "./prompts";
|
|
6
|
+
export { resources } from "./resources";
|
|
7
|
+
export { templates } from "./templates";
|
|
8
|
+
export { tools } from "./tools";
|
|
9
|
+
export const modulePackage = {
|
|
10
|
+
name: "_template",
|
|
11
|
+
prompts,
|
|
12
|
+
resources,
|
|
13
|
+
templates,
|
|
14
|
+
tools,
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9fdGVtcGxhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixJQUFJLEVBQUUsV0FBVztJQUNqQixPQUFPO0lBQ1AsU0FBUztJQUNULFNBQVM7SUFDVCxLQUFLO0NBQ0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21wdHMgfSBmcm9tIFwiLi9wcm9tcHRzXCI7XG5pbXBvcnQgeyByZXNvdXJjZXMgfSBmcm9tIFwiLi9yZXNvdXJjZXNcIjtcbmltcG9ydCB7IHRlbXBsYXRlcyB9IGZyb20gXCIuL3RlbXBsYXRlc1wiO1xuaW1wb3J0IHsgdG9vbHMgfSBmcm9tIFwiLi90b29sc1wiO1xuZXhwb3J0IHsgcHJvbXB0cyB9IGZyb20gXCIuL3Byb21wdHNcIjtcbmV4cG9ydCB7IHJlc291cmNlcyB9IGZyb20gXCIuL3Jlc291cmNlc1wiO1xuZXhwb3J0IHsgdGVtcGxhdGVzIH0gZnJvbSBcIi4vdGVtcGxhdGVzXCI7XG5leHBvcnQgeyB0b29scyB9IGZyb20gXCIuL3Rvb2xzXCI7XG5leHBvcnQgY29uc3QgbW9kdWxlUGFja2FnZSA9IHtcbiAgbmFtZTogXCJfdGVtcGxhdGVcIixcbiAgcHJvbXB0cyxcbiAgcmVzb3VyY2VzLFxuICB0ZW1wbGF0ZXMsXG4gIHRvb2xzLFxufSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const prompts = [
|
|
2
|
+
{
|
|
3
|
+
id: "_template.readme",
|
|
4
|
+
title: "Template README",
|
|
5
|
+
description: "A README prompt for module template",
|
|
6
|
+
load: () => "Template prompt content",
|
|
7
|
+
},
|
|
8
|
+
];
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9fdGVtcGxhdGUvcHJvbXB0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckI7UUFDRSxFQUFFLEVBQUUsa0JBQWtCO1FBQ3RCLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsV0FBVyxFQUFFLHFDQUFxQztRQUNsRCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMseUJBQXlCO0tBQ3RDO0NBQ08sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBwcm9tcHRzID0gW1xuICB7XG4gICAgaWQ6IFwiX3RlbXBsYXRlLnJlYWRtZVwiLFxuICAgIHRpdGxlOiBcIlRlbXBsYXRlIFJFQURNRVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgUkVBRE1FIHByb21wdCBmb3IgbW9kdWxlIHRlbXBsYXRlXCIsXG4gICAgbG9hZDogKCkgPT4gXCJUZW1wbGF0ZSBwcm9tcHQgY29udGVudFwiLFxuICB9LFxuXSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const resources = [
|
|
2
|
+
{
|
|
3
|
+
id: "_template.repo",
|
|
4
|
+
name: "template repo",
|
|
5
|
+
description: "Template resource",
|
|
6
|
+
uri: "file:///tmp/template",
|
|
7
|
+
},
|
|
8
|
+
];
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9fdGVtcGxhdGUvcmVzb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QjtRQUNFLEVBQUUsRUFBRSxnQkFBZ0I7UUFDcEIsSUFBSSxFQUFFLGVBQWU7UUFDckIsV0FBVyxFQUFFLG1CQUFtQjtRQUNoQyxHQUFHLEVBQUUsc0JBQXNCO0tBQzVCO0NBQ08sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCByZXNvdXJjZXMgPSBbXG4gIHtcbiAgICBpZDogXCJfdGVtcGxhdGUucmVwb1wiLFxuICAgIG5hbWU6IFwidGVtcGxhdGUgcmVwb1wiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRlbXBsYXRlIHJlc291cmNlXCIsXG4gICAgdXJpOiBcImZpbGU6Ly8vdG1wL3RlbXBsYXRlXCIsXG4gIH0sXG5dIGFzIGNvbnN0O1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const templates = [
|
|
2
|
+
{
|
|
3
|
+
id: "_template.readme",
|
|
4
|
+
name: "template-readme",
|
|
5
|
+
description: "README guidance",
|
|
6
|
+
uriTemplate: "file:///tmp/template/README.md",
|
|
7
|
+
mimeType: "text/markdown",
|
|
8
|
+
},
|
|
9
|
+
];
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9fdGVtcGxhdGUvdGVtcGxhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QjtRQUNFLEVBQUUsRUFBRSxrQkFBa0I7UUFDdEIsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixXQUFXLEVBQUUsaUJBQWlCO1FBQzlCLFdBQVcsRUFBRSxnQ0FBZ0M7UUFDN0MsUUFBUSxFQUFFLGVBQWU7S0FDMUI7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRlbXBsYXRlcyA9IFtcbiAge1xuICAgIGlkOiBcIl90ZW1wbGF0ZS5yZWFkbWVcIixcbiAgICBuYW1lOiBcInRlbXBsYXRlLXJlYWRtZVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJFQURNRSBndWlkYW5jZVwiLFxuICAgIHVyaVRlbXBsYXRlOiBcImZpbGU6Ly8vdG1wL3RlbXBsYXRlL1JFQURNRS5tZFwiLFxuICAgIG1pbWVUeXBlOiBcInRleHQvbWFya2Rvd25cIixcbiAgfSxcbl0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const placeholderTool = {
|
|
2
|
+
name: "_template.tool",
|
|
3
|
+
description: "A placeholder tool",
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5
|
+
execute: async (_input, _context) => "ok",
|
|
6
|
+
};
|
|
7
|
+
export const tools = [
|
|
8
|
+
{
|
|
9
|
+
id: "_template.tool",
|
|
10
|
+
title: "template tool",
|
|
11
|
+
description: "A placeholder tool",
|
|
12
|
+
tool: placeholderTool,
|
|
13
|
+
},
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9fdGVtcGxhdGUvdG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxlQUFlLEdBQVE7SUFDM0IsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLDZEQUE2RDtJQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQVcsRUFBRSxRQUFhLEVBQW1CLEVBQUUsQ0FBQyxJQUFJO0NBQ3JFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkI7UUFDRSxFQUFFLEVBQUUsZ0JBQWdCO1FBQ3BCLEtBQUssRUFBRSxlQUFlO1FBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsSUFBSSxFQUFFLGVBQWU7S0FDdEI7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGxhY2Vob2xkZXJUb29sOiBhbnkgPSB7XG4gIG5hbWU6IFwiX3RlbXBsYXRlLnRvb2xcIixcbiAgZGVzY3JpcHRpb246IFwiQSBwbGFjZWhvbGRlciB0b29sXCIsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgZXhlY3V0ZTogYXN5bmMgKF9pbnB1dDogYW55LCBfY29udGV4dDogYW55KTogUHJvbWlzZTxzdHJpbmc+ID0+IFwib2tcIixcbn07XG5cbmV4cG9ydCBjb25zdCB0b29scyA9IFtcbiAge1xuICAgIGlkOiBcIl90ZW1wbGF0ZS50b29sXCIsXG4gICAgdGl0bGU6IFwidGVtcGxhdGUgdG9vbFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgcGxhY2Vob2xkZXIgdG9vbFwiLFxuICAgIHRvb2w6IHBsYWNlaG9sZGVyVG9vbCxcbiAgfSxcbl0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export { prompts } from './prompts';
|
|
2
|
+
export { resources } from './resources';
|
|
3
|
+
export { templates } from './templates';
|
|
4
|
+
export { tools } from './tools';
|
|
5
|
+
export declare const modulePackage: {
|
|
6
|
+
readonly name: "decoration";
|
|
7
|
+
readonly prompts: readonly [];
|
|
8
|
+
readonly resources: readonly [{
|
|
9
|
+
readonly id: "decoration.repo";
|
|
10
|
+
readonly name: "decoration repository";
|
|
11
|
+
readonly description: "Source repository";
|
|
12
|
+
readonly uri: "file:///home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration";
|
|
13
|
+
readonly absolutePath: "/home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration";
|
|
14
|
+
}];
|
|
15
|
+
readonly templates: readonly [{
|
|
16
|
+
readonly name: "readme-template";
|
|
17
|
+
readonly description: "README as guidance";
|
|
18
|
+
readonly uriTemplate: "file:///home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration/README.md";
|
|
19
|
+
readonly mimeType: "text/markdown";
|
|
20
|
+
}];
|
|
21
|
+
readonly tools: readonly [{
|
|
22
|
+
readonly id: "decoration.analyze";
|
|
23
|
+
readonly title: "Analyze decoration";
|
|
24
|
+
readonly description: "Analyze the target repository";
|
|
25
|
+
readonly tool: import("fastmcp").Tool<undefined, import("zod").ZodObject<{
|
|
26
|
+
repoPath: import("zod").ZodString;
|
|
27
|
+
includeTests: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
28
|
+
includeDocs: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
29
|
+
}, import("zod/v4/core").$strict>>;
|
|
30
|
+
}, {
|
|
31
|
+
readonly id: "decoration.enumerate";
|
|
32
|
+
readonly title: "Enumerate capabilities for decoration";
|
|
33
|
+
readonly description: "Enumerate capabilities";
|
|
34
|
+
readonly tool: import("fastmcp").Tool<undefined, import("zod").ZodObject<{
|
|
35
|
+
repoPath: import("zod").ZodString;
|
|
36
|
+
}, import("zod/v4/core").$strict>>;
|
|
37
|
+
}, {
|
|
38
|
+
readonly id: "decoration.plan";
|
|
39
|
+
readonly title: "Plan features for decoration";
|
|
40
|
+
readonly description: "Plan feature implementation";
|
|
41
|
+
readonly tool: import("fastmcp").Tool<undefined, import("zod").ZodObject<{
|
|
42
|
+
feature: import("zod").ZodString;
|
|
43
|
+
repoPath: import("zod").ZodDefault<import("zod").ZodString>;
|
|
44
|
+
}, import("zod/v4/core").$strict>>;
|
|
45
|
+
}];
|
|
46
|
+
};
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { prompts } from './prompts';
|
|
2
|
+
import { resources } from './resources';
|
|
3
|
+
import { templates } from './templates';
|
|
4
|
+
import { tools } from './tools';
|
|
5
|
+
export { prompts } from './prompts';
|
|
6
|
+
export { resources } from './resources';
|
|
7
|
+
export { templates } from './templates';
|
|
8
|
+
export { tools } from './tools';
|
|
9
|
+
export const modulePackage = { name: 'decoration', prompts, resources, templates, tools };
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWNvcmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbXB0cyB9IGZyb20gJy4vcHJvbXB0cyc7XG5pbXBvcnQgeyByZXNvdXJjZXMgfSBmcm9tICcuL3Jlc291cmNlcyc7XG5pbXBvcnQgeyB0ZW1wbGF0ZXMgfSBmcm9tICcuL3RlbXBsYXRlcyc7XG5pbXBvcnQgeyB0b29scyB9IGZyb20gJy4vdG9vbHMnO1xuZXhwb3J0IHsgcHJvbXB0cyB9IGZyb20gJy4vcHJvbXB0cyc7XG5leHBvcnQgeyByZXNvdXJjZXMgfSBmcm9tICcuL3Jlc291cmNlcyc7XG5leHBvcnQgeyB0ZW1wbGF0ZXMgfSBmcm9tICcuL3RlbXBsYXRlcyc7XG5leHBvcnQgeyB0b29scyB9IGZyb20gJy4vdG9vbHMnO1xuZXhwb3J0IGNvbnN0IG1vZHVsZVBhY2thZ2UgPSB7IG5hbWU6ICdkZWNvcmF0aW9uJywgcHJvbXB0cywgcmVzb3VyY2VzLCB0ZW1wbGF0ZXMsIHRvb2xzIH0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const prompts: readonly [];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const prompts = [];
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWNvcmF0aW9uL3Byb21wdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEVBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBwcm9tcHRzID0gW10gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const resources: readonly [{
|
|
2
|
+
readonly id: "decoration.repo";
|
|
3
|
+
readonly name: "decoration repository";
|
|
4
|
+
readonly description: "Source repository";
|
|
5
|
+
readonly uri: "file:///home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration";
|
|
6
|
+
readonly absolutePath: "/home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration";
|
|
7
|
+
}];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const resources = [
|
|
2
|
+
{
|
|
3
|
+
"id": "decoration.repo",
|
|
4
|
+
"name": "decoration repository",
|
|
5
|
+
"description": "Source repository",
|
|
6
|
+
"uri": "file:///home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration",
|
|
7
|
+
"absolutePath": "/home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration"
|
|
8
|
+
}
|
|
9
|
+
];
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWNvcmF0aW9uL3Jlc291cmNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkI7UUFDRSxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsYUFBYSxFQUFFLG1CQUFtQjtRQUNsQyxLQUFLLEVBQUUsb0ZBQW9GO1FBQzNGLGNBQWMsRUFBRSw2RUFBNkU7S0FDOUY7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHJlc291cmNlcyA9IFtcbiAge1xuICAgIFwiaWRcIjogXCJkZWNvcmF0aW9uLnJlcG9cIixcbiAgICBcIm5hbWVcIjogXCJkZWNvcmF0aW9uIHJlcG9zaXRvcnlcIixcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwiU291cmNlIHJlcG9zaXRvcnlcIixcbiAgICBcInVyaVwiOiBcImZpbGU6Ly8vaG9tZS90dmVuY2VzbGF1L2xvY2FsLXdvcmtzcGFjZS9kZWNhZi10cy9tY3Atc2VydmVyL3NyYy9tb2R1bGVzL2RlY29yYXRpb25cIixcbiAgICBcImFic29sdXRlUGF0aFwiOiBcIi9ob21lL3R2ZW5jZXNsYXUvbG9jYWwtd29ya3NwYWNlL2RlY2FmLXRzL21jcC1zZXJ2ZXIvc3JjL21vZHVsZXMvZGVjb3JhdGlvblwiXG4gIH1cbl0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const templates: readonly [{
|
|
2
|
+
readonly name: "readme-template";
|
|
3
|
+
readonly description: "README as guidance";
|
|
4
|
+
readonly uriTemplate: "file:///home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration/README.md";
|
|
5
|
+
readonly mimeType: "text/markdown";
|
|
6
|
+
}];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const templates = [
|
|
2
|
+
{
|
|
3
|
+
"name": "readme-template",
|
|
4
|
+
"description": "README as guidance",
|
|
5
|
+
"uriTemplate": "file:///home/tvenceslau/local-workspace/decaf-ts/mcp-server/src/modules/decoration/README.md",
|
|
6
|
+
"mimeType": "text/markdown"
|
|
7
|
+
}
|
|
8
|
+
];
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWNvcmF0aW9uL3RlbXBsYXRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkI7UUFDRSxNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLGFBQWEsRUFBRSxvQkFBb0I7UUFDbkMsYUFBYSxFQUFFLDhGQUE4RjtRQUM3RyxVQUFVLEVBQUUsZUFBZTtLQUM1QjtDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdGVtcGxhdGVzID0gW1xuICB7XG4gICAgXCJuYW1lXCI6IFwicmVhZG1lLXRlbXBsYXRlXCIsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcIlJFQURNRSBhcyBndWlkYW5jZVwiLFxuICAgIFwidXJpVGVtcGxhdGVcIjogXCJmaWxlOi8vL2hvbWUvdHZlbmNlc2xhdS9sb2NhbC13b3Jrc3BhY2UvZGVjYWYtdHMvbWNwLXNlcnZlci9zcmMvbW9kdWxlcy9kZWNvcmF0aW9uL1JFQURNRS5tZFwiLFxuICAgIFwibWltZVR5cGVcIjogXCJ0ZXh0L21hcmtkb3duXCJcbiAgfVxuXSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Tool } from 'fastmcp';
|
|
2
|
+
export declare const tools: readonly [{
|
|
3
|
+
readonly id: "decoration.analyze";
|
|
4
|
+
readonly title: "Analyze decoration";
|
|
5
|
+
readonly description: "Analyze the target repository";
|
|
6
|
+
readonly tool: Tool<undefined, import("zod").ZodObject<{
|
|
7
|
+
repoPath: import("zod").ZodString;
|
|
8
|
+
includeTests: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
9
|
+
includeDocs: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
10
|
+
}, import("zod/v4/core").$strict>>;
|
|
11
|
+
}, {
|
|
12
|
+
readonly id: "decoration.enumerate";
|
|
13
|
+
readonly title: "Enumerate capabilities for decoration";
|
|
14
|
+
readonly description: "Enumerate capabilities";
|
|
15
|
+
readonly tool: Tool<undefined, import("zod").ZodObject<{
|
|
16
|
+
repoPath: import("zod").ZodString;
|
|
17
|
+
}, import("zod/v4/core").$strict>>;
|
|
18
|
+
}, {
|
|
19
|
+
readonly id: "decoration.plan";
|
|
20
|
+
readonly title: "Plan features for decoration";
|
|
21
|
+
readonly description: "Plan feature implementation";
|
|
22
|
+
readonly tool: Tool<undefined, import("zod").ZodObject<{
|
|
23
|
+
feature: import("zod").ZodString;
|
|
24
|
+
repoPath: import("zod").ZodDefault<import("zod").ZodString>;
|
|
25
|
+
}, import("zod/v4/core").$strict>>;
|
|
26
|
+
}];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { buildAnalyzeRepositoryTool, buildEnumerateCapabilitiesTool, buildPlanFeatureTool } from '../../../mcp/tools/tools';
|
|
2
|
+
export const tools = [
|
|
3
|
+
{ id: 'decoration.analyze', title: 'Analyze decoration', description: 'Analyze the target repository', tool: buildAnalyzeRepositoryTool() },
|
|
4
|
+
{ id: 'decoration.enumerate', title: 'Enumerate capabilities for decoration', description: 'Enumerate capabilities', tool: buildEnumerateCapabilitiesTool() },
|
|
5
|
+
{ id: 'decoration.plan', title: 'Plan features for decoration', description: 'Plan feature implementation', tool: buildPlanFeatureTool() },
|
|
6
|
+
];
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWNvcmF0aW9uL3Rvb2xzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVILE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRztJQUNuQixFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSxFQUFFO0lBQzNJLEVBQUUsRUFBRSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSx1Q0FBdUMsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLDhCQUE4QixFQUFFLEVBQUU7SUFDN0osRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLDhCQUE4QixFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtDQUNsSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUb29sIH0gZnJvbSAnZmFzdG1jcCc7XG5pbXBvcnQgeyBidWlsZEFuYWx5emVSZXBvc2l0b3J5VG9vbCwgYnVpbGRFbnVtZXJhdGVDYXBhYmlsaXRpZXNUb29sLCBidWlsZFBsYW5GZWF0dXJlVG9vbCB9IGZyb20gJy4uLy4uLy4uL21jcC90b29scy90b29scyc7XG5leHBvcnQgY29uc3QgdG9vbHMgPSBbXG4gIHsgaWQ6ICdkZWNvcmF0aW9uLmFuYWx5emUnLCB0aXRsZTogJ0FuYWx5emUgZGVjb3JhdGlvbicsIGRlc2NyaXB0aW9uOiAnQW5hbHl6ZSB0aGUgdGFyZ2V0IHJlcG9zaXRvcnknLCB0b29sOiBidWlsZEFuYWx5emVSZXBvc2l0b3J5VG9vbCgpIH0sXG4gIHsgaWQ6ICdkZWNvcmF0aW9uLmVudW1lcmF0ZScsIHRpdGxlOiAnRW51bWVyYXRlIGNhcGFiaWxpdGllcyBmb3IgZGVjb3JhdGlvbicsIGRlc2NyaXB0aW9uOiAnRW51bWVyYXRlIGNhcGFiaWxpdGllcycsIHRvb2w6IGJ1aWxkRW51bWVyYXRlQ2FwYWJpbGl0aWVzVG9vbCgpIH0sXG4gIHsgaWQ6ICdkZWNvcmF0aW9uLnBsYW4nLCB0aXRsZTogJ1BsYW4gZmVhdHVyZXMgZm9yIGRlY29yYXRpb24nLCBkZXNjcmlwdGlvbjogJ1BsYW4gZmVhdHVyZSBpbXBsZW1lbnRhdGlvbicsIHRvb2w6IGJ1aWxkUGxhbkZlYXR1cmVUb29sKCkgfSxcbl0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { modulePackage as decorationModule } from "./decoration";
|
|
2
|
+
import { modulePackage as mcpModule } from "./mcp";
|
|
3
|
+
import { modulePackage as templateModule } from "./_template";
|
|
4
|
+
// modulePackage objects may be declared with readonly arrays (as const). Cast to the mutable type expected by runtime APIs.
|
|
5
|
+
export const modulePackages = [
|
|
6
|
+
decorationModule,
|
|
7
|
+
mcpModule,
|
|
8
|
+
templateModule,
|
|
9
|
+
];
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kdWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLElBQUksU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLElBQUksY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlELDRIQUE0SDtBQUM1SCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQTBCO0lBQ25ELGdCQUFrRDtJQUNsRCxTQUEyQztJQUMzQyxjQUFnRDtDQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNb2R1bGVFeHBvcnRQYWNrYWdlIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBtb2R1bGVQYWNrYWdlIGFzIGRlY29yYXRpb25Nb2R1bGUgfSBmcm9tIFwiLi9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBtb2R1bGVQYWNrYWdlIGFzIG1jcE1vZHVsZSB9IGZyb20gXCIuL21jcFwiO1xuaW1wb3J0IHsgbW9kdWxlUGFja2FnZSBhcyB0ZW1wbGF0ZU1vZHVsZSB9IGZyb20gXCIuL190ZW1wbGF0ZVwiO1xuXG4vLyBtb2R1bGVQYWNrYWdlIG9iamVjdHMgbWF5IGJlIGRlY2xhcmVkIHdpdGggcmVhZG9ubHkgYXJyYXlzIChhcyBjb25zdCkuIENhc3QgdG8gdGhlIG11dGFibGUgdHlwZSBleHBlY3RlZCBieSBydW50aW1lIEFQSXMuXG5leHBvcnQgY29uc3QgbW9kdWxlUGFja2FnZXM6IE1vZHVsZUV4cG9ydFBhY2thZ2VbXSA9IFtcbiAgZGVjb3JhdGlvbk1vZHVsZSBhcyB1bmtub3duIGFzIE1vZHVsZUV4cG9ydFBhY2thZ2UsXG4gIG1jcE1vZHVsZSBhcyB1bmtub3duIGFzIE1vZHVsZUV4cG9ydFBhY2thZ2UsXG4gIHRlbXBsYXRlTW9kdWxlIGFzIHVua25vd24gYXMgTW9kdWxlRXhwb3J0UGFja2FnZSxcbl07XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import enrich from "../../mcp/mcp-module";
|
|
2
|
+
export default function decorationAssist(server) {
|
|
3
|
+
return enrich(server);
|
|
4
|
+
}
|
|
5
|
+
export { enrich };
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGlvbi1hc3Npc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tY3AvZGVjb3JhdGlvbi1hc3Npc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sc0JBQXNCLENBQUM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFlO0lBQ3RELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZhc3RNQ1AgfSBmcm9tIFwiZmFzdG1jcFwiO1xuaW1wb3J0IGVucmljaCBmcm9tIFwiLi4vLi4vbWNwL21jcC1tb2R1bGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVjb3JhdGlvbkFzc2lzdChzZXJ2ZXI6IEZhc3RNQ1ApOiBGYXN0TUNQIHtcbiAgcmV0dXJuIGVucmljaChzZXJ2ZXIpO1xufVxuXG5leHBvcnQgeyBlbnJpY2ggfTtcbiJdfQ==
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
import type { ModuleExportPackage } from "../../types";
|
|
2
|
+
export { prompts } from "./prompts";
|
|
3
|
+
export { resources } from "./resources";
|
|
4
|
+
export { templates } from "./templates";
|
|
5
|
+
export { tools } from "./tools";
|
|
6
|
+
export declare const modulePackage: ModuleExportPackage;
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { prompts } from "./prompts";
|
|
2
|
+
import { resources } from "./resources";
|
|
3
|
+
import { templates } from "./templates";
|
|
4
|
+
import { tools } from "./tools";
|
|
5
|
+
export { prompts } from "./prompts";
|
|
6
|
+
export { resources } from "./resources";
|
|
7
|
+
export { templates } from "./templates";
|
|
8
|
+
export { tools } from "./tools";
|
|
9
|
+
export const modulePackage = {
|
|
10
|
+
name: "mcp",
|
|
11
|
+
prompts,
|
|
12
|
+
resources,
|
|
13
|
+
templates,
|
|
14
|
+
tools,
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tY3AvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBd0I7SUFDaEQsSUFBSSxFQUFFLEtBQUs7SUFDWCxPQUFPO0lBQ1AsU0FBUztJQUNULFNBQVM7SUFDVCxLQUFLO0NBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTW9kdWxlRXhwb3J0UGFja2FnZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgcHJvbXB0cyB9IGZyb20gXCIuL3Byb21wdHNcIjtcbmltcG9ydCB7IHJlc291cmNlcyB9IGZyb20gXCIuL3Jlc291cmNlc1wiO1xuaW1wb3J0IHsgdGVtcGxhdGVzIH0gZnJvbSBcIi4vdGVtcGxhdGVzXCI7XG5pbXBvcnQgeyB0b29scyB9IGZyb20gXCIuL3Rvb2xzXCI7XG5cbmV4cG9ydCB7IHByb21wdHMgfSBmcm9tIFwiLi9wcm9tcHRzXCI7XG5leHBvcnQgeyByZXNvdXJjZXMgfSBmcm9tIFwiLi9yZXNvdXJjZXNcIjtcbmV4cG9ydCB7IHRlbXBsYXRlcyB9IGZyb20gXCIuL3RlbXBsYXRlc1wiO1xuZXhwb3J0IHsgdG9vbHMgfSBmcm9tIFwiLi90b29sc1wiO1xuXG5leHBvcnQgY29uc3QgbW9kdWxlUGFja2FnZTogTW9kdWxlRXhwb3J0UGFja2FnZSA9IHtcbiAgbmFtZTogXCJtY3BcIixcbiAgcHJvbXB0cyxcbiAgcmVzb3VyY2VzLFxuICB0ZW1wbGF0ZXMsXG4gIHRvb2xzLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const prompts = [
|
|
2
|
+
{
|
|
3
|
+
id: "mcp.prompt.module-catalog",
|
|
4
|
+
title: "Decaf MCP Module Catalog",
|
|
5
|
+
description: "Summarizes the modules contributing prompts/resources/templates/tools to FASTMCP.",
|
|
6
|
+
load: async () => "Use the module catalog tool to enumerate available module assets before fulfilling assistant requests.",
|
|
7
|
+
},
|
|
8
|
+
];
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tY3AvcHJvbXB0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWtCO0lBQ3BDO1FBQ0UsRUFBRSxFQUFFLDJCQUEyQjtRQUMvQixLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLFdBQVcsRUFBRSxtRkFBbUY7UUFDaEcsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQ2Ysd0dBQXdHO0tBQzNHO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvbXB0QXNzZXQgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHByb21wdHM6IFByb21wdEFzc2V0W10gPSBbXG4gIHtcbiAgICBpZDogXCJtY3AucHJvbXB0Lm1vZHVsZS1jYXRhbG9nXCIsXG4gICAgdGl0bGU6IFwiRGVjYWYgTUNQIE1vZHVsZSBDYXRhbG9nXCIsXG4gICAgZGVzY3JpcHRpb246IFwiU3VtbWFyaXplcyB0aGUgbW9kdWxlcyBjb250cmlidXRpbmcgcHJvbXB0cy9yZXNvdXJjZXMvdGVtcGxhdGVzL3Rvb2xzIHRvIEZBU1RNQ1AuXCIsXG4gICAgbG9hZDogYXN5bmMgKCkgPT5cbiAgICAgIFwiVXNlIHRoZSBtb2R1bGUgY2F0YWxvZyB0b29sIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbW9kdWxlIGFzc2V0cyBiZWZvcmUgZnVsZmlsbGluZyBhc3Npc3RhbnQgcmVxdWVzdHMuXCIsXG4gIH0sXG5dO1xuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const resources = [
|
|
2
|
+
{
|
|
3
|
+
id: "mcp.resource.registry-overview",
|
|
4
|
+
title: "Module Registry Overview",
|
|
5
|
+
description: "Explains how the ModuleRegistry aggregates module exports into FASTMCP catalogs.",
|
|
6
|
+
uri: "decaf://mcp/module-registry",
|
|
7
|
+
mimeType: "text/markdown",
|
|
8
|
+
load: async () => ({
|
|
9
|
+
content: [
|
|
10
|
+
{
|
|
11
|
+
type: "text",
|
|
12
|
+
text: [
|
|
13
|
+
"# Module Registry",
|
|
14
|
+
"",
|
|
15
|
+
"The Decaf MCP server aggregates prompts, resources, templates, and tools from every module under src/modules.",
|
|
16
|
+
"Validators ensure each module contains the canonical folder layout before the registry loads it.",
|
|
17
|
+
].join("\n"),
|
|
18
|
+
mimeType: "text/markdown",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
}),
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tY3AvcmVzb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBb0I7SUFDeEM7UUFDRSxFQUFFLEVBQUUsZ0NBQWdDO1FBQ3BDLEtBQUssRUFBRSwwQkFBMEI7UUFDakMsV0FBVyxFQUNULGtGQUFrRjtRQUNwRixHQUFHLEVBQUUsNkJBQTZCO1FBQ2xDLFFBQVEsRUFBRSxlQUFlO1FBQ3pCLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDakIsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRTt3QkFDSixtQkFBbUI7d0JBQ25CLEVBQUU7d0JBQ0YsK0dBQStHO3dCQUMvRyxrR0FBa0c7cUJBQ25HLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDWixRQUFRLEVBQUUsZUFBZTtpQkFDMUI7YUFDRjtTQUNGLENBQUM7S0FDSDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc291cmNlQXNzZXQgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlczogUmVzb3VyY2VBc3NldFtdID0gW1xuICB7XG4gICAgaWQ6IFwibWNwLnJlc291cmNlLnJlZ2lzdHJ5LW92ZXJ2aWV3XCIsXG4gICAgdGl0bGU6IFwiTW9kdWxlIFJlZ2lzdHJ5IE92ZXJ2aWV3XCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkV4cGxhaW5zIGhvdyB0aGUgTW9kdWxlUmVnaXN0cnkgYWdncmVnYXRlcyBtb2R1bGUgZXhwb3J0cyBpbnRvIEZBU1RNQ1AgY2F0YWxvZ3MuXCIsXG4gICAgdXJpOiBcImRlY2FmOi8vbWNwL21vZHVsZS1yZWdpc3RyeVwiLFxuICAgIG1pbWVUeXBlOiBcInRleHQvbWFya2Rvd25cIixcbiAgICBsb2FkOiBhc3luYyAoKSA9PiAoe1xuICAgICAgY29udGVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgdGV4dDogW1xuICAgICAgICAgICAgXCIjIE1vZHVsZSBSZWdpc3RyeVwiLFxuICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgIFwiVGhlIERlY2FmIE1DUCBzZXJ2ZXIgYWdncmVnYXRlcyBwcm9tcHRzLCByZXNvdXJjZXMsIHRlbXBsYXRlcywgYW5kIHRvb2xzIGZyb20gZXZlcnkgbW9kdWxlIHVuZGVyIHNyYy9tb2R1bGVzLlwiLFxuICAgICAgICAgICAgXCJWYWxpZGF0b3JzIGVuc3VyZSBlYWNoIG1vZHVsZSBjb250YWlucyB0aGUgY2Fub25pY2FsIGZvbGRlciBsYXlvdXQgYmVmb3JlIHRoZSByZWdpc3RyeSBsb2FkcyBpdC5cIixcbiAgICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICAgICAgbWltZVR5cGU6IFwidGV4dC9tYXJrZG93blwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KSxcbiAgfSxcbl07XG5cbiJdfQ==
|