@decaf-ts/mcp-server 0.0.4 → 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 +1986 -340
- package/dist/mcp-server.esm.cjs +1960 -337
- package/lib/McpWrapper.cjs +9 -9
- 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 +9 -9
- 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 +3 -38
- package/lib/esm/modules/mcp/decoration-assist.js +5 -352
- 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 +8 -355
- package/lib/modules/mcp/decoration-assist.d.ts +3 -38
- 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 +17 -11
- 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/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,53 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const analyzeRepoSchema: z.ZodObject<{
|
|
3
|
+
repoPath: z.ZodString;
|
|
4
|
+
includeTests: z.ZodDefault<z.ZodBoolean>;
|
|
5
|
+
includeDocs: z.ZodDefault<z.ZodBoolean>;
|
|
6
|
+
}, z.core.$strict>;
|
|
7
|
+
export declare const enumerateCapabilitiesSchema: z.ZodObject<{
|
|
8
|
+
repoPath: z.ZodString;
|
|
9
|
+
}, z.core.$strict>;
|
|
10
|
+
export declare const planFeatureSchema: z.ZodObject<{
|
|
11
|
+
feature: z.ZodString;
|
|
12
|
+
repoPath: z.ZodDefault<z.ZodString>;
|
|
13
|
+
}, z.core.$strict>;
|
|
14
|
+
export declare const documentCodeSchema: z.ZodObject<{
|
|
15
|
+
filePath: z.ZodString;
|
|
16
|
+
promptName: z.ZodOptional<z.ZodString>;
|
|
17
|
+
includePrompt: z.ZodDefault<z.ZodBoolean>;
|
|
18
|
+
includeCode: z.ZodDefault<z.ZodBoolean>;
|
|
19
|
+
includeMetadata: z.ZodDefault<z.ZodBoolean>;
|
|
20
|
+
additionalContext: z.ZodOptional<z.ZodString>;
|
|
21
|
+
encoding: z.ZodDefault<z.ZodString>;
|
|
22
|
+
}, z.core.$strict>;
|
|
23
|
+
export declare const codeChangeSchema: z.ZodObject<{
|
|
24
|
+
filePath: z.ZodString;
|
|
25
|
+
patch: z.ZodString;
|
|
26
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
showDiff: z.ZodDefault<z.ZodBoolean>;
|
|
28
|
+
diffContext: z.ZodDefault<z.ZodNumber>;
|
|
29
|
+
encoding: z.ZodDefault<z.ZodString>;
|
|
30
|
+
}, z.core.$strict>;
|
|
31
|
+
export declare const documentObjectSchema: z.ZodObject<{
|
|
32
|
+
basePath: z.ZodString;
|
|
33
|
+
objectType: z.ZodEnum<{
|
|
34
|
+
function: "function";
|
|
35
|
+
module: "module";
|
|
36
|
+
file: "file";
|
|
37
|
+
class: "class";
|
|
38
|
+
interface: "interface";
|
|
39
|
+
decorator: "decorator";
|
|
40
|
+
constant: "constant";
|
|
41
|
+
}>;
|
|
42
|
+
targetFile: z.ZodOptional<z.ZodString>;
|
|
43
|
+
includeContent: z.ZodDefault<z.ZodBoolean>;
|
|
44
|
+
}, z.core.$strict>;
|
|
45
|
+
export declare const coverageTaskSchema: z.ZodObject<{
|
|
46
|
+
basePath: z.ZodString;
|
|
47
|
+
coverage: z.ZodDefault<z.ZodNumber>;
|
|
48
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
49
|
+
}, z.core.$strict>;
|
|
50
|
+
export declare const readmeImprovementSchema: z.ZodObject<{
|
|
51
|
+
basePath: z.ZodString;
|
|
52
|
+
includeExamples: z.ZodDefault<z.ZodBoolean>;
|
|
53
|
+
}, z.core.$strict>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const analyzeRepoSchema = z
|
|
3
|
+
.object({
|
|
4
|
+
repoPath: z
|
|
5
|
+
.string()
|
|
6
|
+
.min(1, "repoPath is required")
|
|
7
|
+
.describe("Relative or absolute path to the target repository inside this monorepo, e.g. './decoration'."),
|
|
8
|
+
includeTests: z
|
|
9
|
+
.boolean()
|
|
10
|
+
.default(true)
|
|
11
|
+
.describe("If true, analyze the tests directory (if present) to derive expected behaviors."),
|
|
12
|
+
includeDocs: z
|
|
13
|
+
.boolean()
|
|
14
|
+
.default(true)
|
|
15
|
+
.describe("If true, analyze README.md and docs directories to extract documented features."),
|
|
16
|
+
})
|
|
17
|
+
.strict()
|
|
18
|
+
.describe("Analyze a local repository (e.g. ./decoration) to extract APIs, features, tests, and documentation cues.");
|
|
19
|
+
export const enumerateCapabilitiesSchema = z
|
|
20
|
+
.object({
|
|
21
|
+
repoPath: z
|
|
22
|
+
.string()
|
|
23
|
+
.min(1, "repoPath is required")
|
|
24
|
+
.describe("Relative or absolute path to the target repository to enumerate developer-facing capabilities."),
|
|
25
|
+
})
|
|
26
|
+
.strict()
|
|
27
|
+
.describe("Enumerate the complete set of capabilities a developer is expected to use from the given repository.");
|
|
28
|
+
export const planFeatureSchema = z
|
|
29
|
+
.object({
|
|
30
|
+
feature: z
|
|
31
|
+
.string()
|
|
32
|
+
.min(5, "feature must describe the goal clearly")
|
|
33
|
+
.describe("Natural-language description of a developer's requested feature or task to implement using the repository and available MCP tools."),
|
|
34
|
+
repoPath: z
|
|
35
|
+
.string()
|
|
36
|
+
.default("./decoration")
|
|
37
|
+
.describe("Target repository path providing the library to use, e.g. './decoration'."),
|
|
38
|
+
})
|
|
39
|
+
.strict()
|
|
40
|
+
.describe("Plan which MCP tools to use and in what sequence to implement a requested feature using the repository.");
|
|
41
|
+
export const documentCodeSchema = z
|
|
42
|
+
.object({
|
|
43
|
+
filePath: z.string().min(1, "filePath is required"),
|
|
44
|
+
promptName: z.string().optional(),
|
|
45
|
+
includePrompt: z.boolean().default(true),
|
|
46
|
+
includeCode: z.boolean().default(true),
|
|
47
|
+
includeMetadata: z.boolean().default(true),
|
|
48
|
+
additionalContext: z.string().optional(),
|
|
49
|
+
encoding: z.string().default("utf8"),
|
|
50
|
+
})
|
|
51
|
+
.strict();
|
|
52
|
+
export const codeChangeSchema = z
|
|
53
|
+
.object({
|
|
54
|
+
filePath: z.string().min(1, "filePath is required"),
|
|
55
|
+
patch: z.string().min(1, "patch is required"),
|
|
56
|
+
dryRun: z.boolean().default(false),
|
|
57
|
+
showDiff: z.boolean().default(true),
|
|
58
|
+
diffContext: z.number().int().min(0).max(100).default(3),
|
|
59
|
+
encoding: z.string().default("utf8"),
|
|
60
|
+
})
|
|
61
|
+
.strict();
|
|
62
|
+
const OBJECT_TYPES = [
|
|
63
|
+
"module",
|
|
64
|
+
"file",
|
|
65
|
+
"class",
|
|
66
|
+
"function",
|
|
67
|
+
"interface",
|
|
68
|
+
"decorator",
|
|
69
|
+
"constant",
|
|
70
|
+
];
|
|
71
|
+
export const documentObjectSchema = z
|
|
72
|
+
.object({
|
|
73
|
+
basePath: z.string().min(1, "basePath is required"),
|
|
74
|
+
objectType: z.enum(OBJECT_TYPES),
|
|
75
|
+
targetFile: z.string().optional(),
|
|
76
|
+
includeContent: z.boolean().default(false),
|
|
77
|
+
})
|
|
78
|
+
.strict();
|
|
79
|
+
export const coverageTaskSchema = z
|
|
80
|
+
.object({
|
|
81
|
+
basePath: z.string().min(1, "basePath is required"),
|
|
82
|
+
coverage: z
|
|
83
|
+
.number()
|
|
84
|
+
.min(0)
|
|
85
|
+
.max(100)
|
|
86
|
+
.default(90)
|
|
87
|
+
.describe("Target coverage percentage"),
|
|
88
|
+
dryRun: z.boolean().default(false),
|
|
89
|
+
})
|
|
90
|
+
.strict();
|
|
91
|
+
export const readmeImprovementSchema = z
|
|
92
|
+
.object({
|
|
93
|
+
basePath: z.string().min(1, "basePath is required"),
|
|
94
|
+
includeExamples: z.boolean().default(true),
|
|
95
|
+
})
|
|
96
|
+
.strict();
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tY3Avc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUM7S0FDL0IsTUFBTSxDQUFDO0lBQ04sUUFBUSxFQUFFLENBQUM7U0FDUixNQUFNLEVBQUU7U0FDUixHQUFHLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO1NBQzlCLFFBQVEsQ0FDUCwrRkFBK0YsQ0FDaEc7SUFDSCxZQUFZLEVBQUUsQ0FBQztTQUNaLE9BQU8sRUFBRTtTQUNULE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDYixRQUFRLENBQ1AsaUZBQWlGLENBQ2xGO0lBQ0gsV0FBVyxFQUFFLENBQUM7U0FDWCxPQUFPLEVBQUU7U0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDO1NBQ2IsUUFBUSxDQUNQLGlGQUFpRixDQUNsRjtDQUNKLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQ1AsMEdBQTBHLENBQzNHLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDO0tBQ3pDLE1BQU0sQ0FBQztJQUNOLFFBQVEsRUFBRSxDQUFDO1NBQ1IsTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztTQUM5QixRQUFRLENBQ1AsZ0dBQWdHLENBQ2pHO0NBQ0osQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FDUCxzR0FBc0csQ0FDdkcsQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUM7S0FDL0IsTUFBTSxDQUFDO0lBQ04sT0FBTyxFQUFFLENBQUM7U0FDUCxNQUFNLEVBQUU7U0FDUixHQUFHLENBQUMsQ0FBQyxFQUFFLHdDQUF3QyxDQUFDO1NBQ2hELFFBQVEsQ0FDUCxvSUFB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QUNOLEdBQUcsQ0FBQyxHQUFHLENBQUM7U0FDUixPQUFPLENBQUMsRUFBRSxDQUFDO1NBQ1gsUUFBUSxDQUFDLDRCQUE0QixDQUFDO0lBQ3pDLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztDQUNuQyxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUM7QUFFWixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDO0tBQ3JDLE1BQU0sQ0FBQztJQUNOLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztJQUNuRCxlQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Q0FDM0MsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IGFuYWx5emVSZXBvU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICByZXBvUGF0aDogelxuICAgICAgLnN0cmluZygpXG4gICAgICAubWluKDEsIFwicmVwb1BhdGggaXMgcmVxdWlyZWRcIilcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJSZWxhdGl2ZSBvciBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB0YXJnZXQgcmVwb3NpdG9yeSBpbnNpZGUgdGhpcyBtb25vcmVwbywgZS5nLiAnLi9kZWNvcmF0aW9uJy5cIlxuICAgICAgKSxcbiAgICBpbmNsdWRlVGVzdHM6IHpcbiAgICAgIC5ib29sZWFuKClcbiAgICAgIC5kZWZhdWx0KHRydWUpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwiSWYgdHJ1ZSwgYW5hbHl6ZSB0aGUgdGVzdHMgZGlyZWN0b3J5IChpZiBwcmVzZW50KSB0byBkZXJpdmUgZXhwZWN0ZWQgYmVoYXZpb3JzLlwiXG4gICAgICApLFxuICAgIGluY2x1ZGVEb2NzOiB6XG4gICAgICAuYm9vbGVhbigpXG4gICAgICAuZGVmYXVsdCh0cnVlKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIklmIHRydWUsIGFuYWx5emUgUkVBRE1FLm1kIGFuZCBkb2NzIGRpcmVjdG9yaWVzIHRvIGV4dHJhY3QgZG9jdW1lbnRlZCBmZWF0dXJlcy5cIlxuICAgICAgKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcbiAgICBcIkFuYWx5emUgYSBsb2NhbCByZXBvc2l0b3J5IChlLmcuIC4vZGVjb3JhdGlvbikgdG8gZXh0cmFjdCBBUElzLCBmZWF0dXJlcywgdGVzdHMsIGFuZCBkb2N1bWVudGF0aW9uIGN1ZXMuXCJcbiAgKTtcblxuZXhwb3J0IGNvbnN0IGVudW1lcmF0ZUNhcGFiaWxpdGllc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgcmVwb1BhdGg6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLm1pbigxLCBcInJlcG9QYXRoIGlzIHJlcXVpcmVkXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwiUmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aCB0byB0aGUgdGFyZ2V0IHJlcG9zaXRvcnkgdG8gZW51bWVyYXRlIGRldmVsb3Blci1mYWNpbmcgY2FwYWJpbGl0aWVzLlwiXG4gICAgICApLFxuICB9KVxuICAuc3RyaWN0KClcbiAgLmRlc2NyaWJlKFxuICAgIFwiRW51bWVyYXRlIHRoZSBjb21wbGV0ZSBzZXQgb2YgY2FwYWJpbGl0aWVzIGEgZGV2ZWxvcGVyIGlzIGV4cGVjdGVkIHRvIHVzZSBmcm9tIHRoZSBnaXZlbiByZXBvc2l0b3J5LlwiXG4gICk7XG5cbmV4cG9ydCBjb25zdCBwbGFuRmVhdHVyZVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZmVhdHVyZTogelxuICAgICAgLnN0cmluZygpXG4gICAgICAubWluKDUsIFwiZmVhdHVyZSBtdXN0IGRlc2NyaWJlIHRoZSBnb2FsIGNsZWFybHlcIilcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJOYXR1cmFsLWxhbmd1YWdlIGRlc2NyaXB0aW9uIG9mIGEgZGV2ZWxvcGVyJ3MgcmVxdWVzdGVkIGZlYXR1cmUgb3IgdGFzayB0byBpbXBsZW1lbnQgdXNpbmcgdGhlIHJlcG9zaXRvcnkgYW5kIGF2YWlsYWJsZSBNQ1AgdG9vbHMuXCJcbiAgICAgICksXG4gICAgcmVwb1BhdGg6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLmRlZmF1bHQoXCIuL2RlY29yYXRpb25cIilcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJUYXJnZXQgcmVwb3NpdG9yeSBwYXRoIHByb3ZpZGluZyB0aGUgbGlicmFyeSB0byB1c2UsIGUuZy4gJy4vZGVjb3JhdGlvbicuXCJcbiAgICAgICksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXG4gICAgXCJQbGFuIHdoaWNoIE1DUCB0b29scyB0byB1c2UgYW5kIGluIHdoYXQgc2VxdWVuY2UgdG8gaW1wbGVtZW50IGEgcmVxdWVzdGVkIGZlYXR1cmUgdXNpbmcgdGhlIHJlcG9zaXRvcnkuXCJcbiAgKTtcblxuZXhwb3J0IGNvbnN0IGRvY3VtZW50Q29kZVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZmlsZVBhdGg6IHouc3RyaW5nKCkubWluKDEsIFwiZmlsZVBhdGggaXMgcmVxdWlyZWRcIiksXG4gICAgcHJvbXB0TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGluY2x1ZGVQcm9tcHQ6IHouYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gICAgaW5jbHVkZUNvZGU6IHouYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gICAgaW5jbHVkZU1ldGFkYXRhOiB6LmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuICAgIGFkZGl0aW9uYWxDb250ZXh0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZW5jb2Rpbmc6IHouc3RyaW5nKCkuZGVmYXVsdChcInV0ZjhcIiksXG4gIH0pXG4gIC5zdHJpY3QoKTtcblxuZXhwb3J0IGNvbnN0IGNvZGVDaGFuZ2VTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGZpbGVQYXRoOiB6LnN0cmluZygpLm1pbigxLCBcImZpbGVQYXRoIGlzIHJlcXVpcmVkXCIpLFxuICAgIHBhdGNoOiB6LnN0cmluZygpLm1pbigxLCBcInBhdGNoIGlzIHJlcXVpcmVkXCIpLFxuICAgIGRyeVJ1bjogei5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgc2hvd0RpZmY6IHouYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gICAgZGlmZkNvbnRleHQ6IHoubnVtYmVyKCkuaW50KCkubWluKDApLm1heCgxMDApLmRlZmF1bHQoMyksXG4gICAgZW5jb2Rpbmc6IHouc3RyaW5nKCkuZGVmYXVsdChcInV0ZjhcIiksXG4gIH0pXG4gIC5zdHJpY3QoKTtcblxuY29uc3QgT0JKRUNUX1RZUEVTID0gW1xuICBcIm1vZHVsZVwiLFxuICBcImZpbGVcIixcbiAgXCJjbGFzc1wiLFxuICBcImZ1bmN0aW9uXCIsXG4gIFwiaW50ZXJmYWNlXCIsXG4gIFwiZGVjb3JhdG9yXCIsXG4gIFwiY29uc3RhbnRcIixcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBkb2N1bWVudE9iamVjdFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgYmFzZVBhdGg6IHouc3RyaW5nKCkubWluKDEsIFwiYmFzZVBhdGggaXMgcmVxdWlyZWRcIiksXG4gICAgb2JqZWN0VHlwZTogei5lbnVtKE9CSkVDVF9UWVBFUyksXG4gICAgdGFyZ2V0RmlsZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGluY2x1ZGVDb250ZW50OiB6LmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG5leHBvcnQgY29uc3QgY292ZXJhZ2VUYXNrU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBiYXNlUGF0aDogei5zdHJpbmcoKS5taW4oMSwgXCJiYXNlUGF0aCBpcyByZXF1aXJlZFwiKSxcbiAgICBjb3ZlcmFnZTogelxuICAgICAgLm51bWJlcigpXG4gICAgICAubWluKDApXG4gICAgICAubWF4KDEwMClcbiAgICAgIC5kZWZhdWx0KDkwKVxuICAgICAgLmRlc2NyaWJlKFwiVGFyZ2V0IGNvdmVyYWdlIHBlcmNlbnRhZ2VcIiksXG4gICAgZHJ5UnVuOiB6LmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG5leHBvcnQgY29uc3QgcmVhZG1lSW1wcm92ZW1lbnRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGJhc2VQYXRoOiB6LnN0cmluZygpLm1pbigxLCBcImJhc2VQYXRoIGlzIHJlcXVpcmVkXCIpLFxuICAgIGluY2x1ZGVFeGFtcGxlczogei5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import { getWorkspaceRoot, resolveInWorkspace } from "../workspace";
|
|
4
|
+
export const codexPromptTemplates = [];
|
|
5
|
+
export function buildCodexPromptTemplates() {
|
|
6
|
+
const root = getWorkspaceRoot();
|
|
7
|
+
const templates = [
|
|
8
|
+
{
|
|
9
|
+
name: "codex-prompt",
|
|
10
|
+
description: "Load a .codex prompt file by name (without extension) as markdown.",
|
|
11
|
+
uriTemplate: "codex-prompt://{name}",
|
|
12
|
+
mimeType: "text/markdown",
|
|
13
|
+
arguments: [
|
|
14
|
+
{
|
|
15
|
+
name: "name",
|
|
16
|
+
description: "Name of the prompt file inside .codex/prompts (without .md).",
|
|
17
|
+
required: true,
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
load: async ({ name }) => {
|
|
21
|
+
const promptPath = resolveInWorkspace(root, path.join(".codex", "prompts", `${name}.md`));
|
|
22
|
+
if (!fs.existsSync(promptPath)) {
|
|
23
|
+
throw new Error(`Prompt .codex/prompts/${name}.md not found`);
|
|
24
|
+
}
|
|
25
|
+
const text = fs.readFileSync(promptPath, "utf8");
|
|
26
|
+
return { text, uri: `codex-prompt:///${name}` };
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
codexPromptTemplates.splice(0, codexPromptTemplates.length, ...templates);
|
|
31
|
+
return codexPromptTemplates;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXgtdGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21jcC90ZW1wbGF0ZXMvY29kZXgtdGVtcGxhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3BFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUE2QixFQUFFLENBQUM7QUFFakUsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLElBQUksR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sU0FBUyxHQUE2QjtRQUMxQztZQUNFLElBQUksRUFBRSxjQUFjO1lBQ3BCLFdBQVcsRUFDVCxvRUFBb0U7WUFDdEUsV0FBVyxFQUFFLHVCQUF1QjtZQUNwQyxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osV0FBVyxFQUNULDhEQUE4RDtvQkFDaEUsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUN2QixNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FDbkMsSUFBSSxFQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksS0FBSyxDQUFDLENBQzdDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxlQUFlLENBQUMsQ0FBQztnQkFDaEUsQ0FBQztnQkFDRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsbUJBQW1CLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbEQsQ0FBQztTQUNGO0tBQ0YsQ0FBQztJQUVGLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDMUUsT0FBTyxvQkFBb0IsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGdldFdvcmtzcGFjZVJvb3QsIHJlc29sdmVJbldvcmtzcGFjZSB9IGZyb20gXCIuLi93b3Jrc3BhY2VcIjtcbmltcG9ydCB0eXBlIHsgUHJvbXB0UmVzb3VyY2VUZW1wbGF0ZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgY29kZXhQcm9tcHRUZW1wbGF0ZXM6IFByb21wdFJlc291cmNlVGVtcGxhdGVbXSA9IFtdO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDb2RleFByb21wdFRlbXBsYXRlcygpOiBQcm9tcHRSZXNvdXJjZVRlbXBsYXRlW10ge1xuICBjb25zdCByb290ID0gZ2V0V29ya3NwYWNlUm9vdCgpO1xuICBjb25zdCB0ZW1wbGF0ZXM6IFByb21wdFJlc291cmNlVGVtcGxhdGVbXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiBcImNvZGV4LXByb21wdFwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiTG9hZCBhIC5jb2RleCBwcm9tcHQgZmlsZSBieSBuYW1lICh3aXRob3V0IGV4dGVuc2lvbikgYXMgbWFya2Rvd24uXCIsXG4gICAgICB1cmlUZW1wbGF0ZTogXCJjb2RleC1wcm9tcHQ6Ly97bmFtZX1cIixcbiAgICAgIG1pbWVUeXBlOiBcInRleHQvbWFya2Rvd25cIixcbiAgICAgIGFyZ3VtZW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJuYW1lXCIsXG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICBcIk5hbWUgb2YgdGhlIHByb21wdCBmaWxlIGluc2lkZSAuY29kZXgvcHJvbXB0cyAod2l0aG91dCAubWQpLlwiLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGxvYWQ6IGFzeW5jICh7IG5hbWUgfSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9tcHRQYXRoID0gcmVzb2x2ZUluV29ya3NwYWNlKFxuICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgcGF0aC5qb2luKFwiLmNvZGV4XCIsIFwicHJvbXB0c1wiLCBgJHtuYW1lfS5tZGApXG4gICAgICAgICk7XG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwcm9tcHRQYXRoKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvbXB0IC5jb2RleC9wcm9tcHRzLyR7bmFtZX0ubWQgbm90IGZvdW5kYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dCA9IGZzLnJlYWRGaWxlU3luYyhwcm9tcHRQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgIHJldHVybiB7IHRleHQsIHVyaTogYGNvZGV4LXByb21wdDovLy8ke25hbWV9YCB9O1xuICAgICAgfSxcbiAgICB9LFxuICBdO1xuXG4gIGNvZGV4UHJvbXB0VGVtcGxhdGVzLnNwbGljZSgwLCBjb2RleFByb21wdFRlbXBsYXRlcy5sZW5ndGgsIC4uLnRlbXBsYXRlcyk7XG4gIHJldHVybiBjb2RleFByb21wdFRlbXBsYXRlcztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export { buildCodexPromptTemplates, codexPromptTemplates, } from "./codex-templates";
|
|
2
|
+
export { buildDecorationResourceTemplates, decorationResourceTemplates, } from "./resource-templates";
|
|
3
|
+
export { buildWorkspaceResourceTemplates, workspaceResourceTemplates, } from "./workspace-templates";
|
|
4
|
+
export declare function buildResourceTemplates(): ({
|
|
5
|
+
load: (args: any) => Promise<any>;
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
uriTemplate: string;
|
|
9
|
+
mimeType: string;
|
|
10
|
+
arguments: ReadonlyArray<{
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
required: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
} | {
|
|
16
|
+
load: (args: any) => Promise<any>;
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
uriTemplate: string;
|
|
20
|
+
mimeType: string;
|
|
21
|
+
arguments: ReadonlyArray<{
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
required: boolean;
|
|
25
|
+
}>;
|
|
26
|
+
} | {
|
|
27
|
+
load: (args: any) => Promise<any>;
|
|
28
|
+
name: string;
|
|
29
|
+
description: string;
|
|
30
|
+
mimeType: string;
|
|
31
|
+
uriTemplate: string;
|
|
32
|
+
arguments: {
|
|
33
|
+
name: string;
|
|
34
|
+
description: string;
|
|
35
|
+
required: boolean;
|
|
36
|
+
}[];
|
|
37
|
+
})[];
|
|
38
|
+
export declare const templateList: ({
|
|
39
|
+
load: (args: any) => Promise<any>;
|
|
40
|
+
name: string;
|
|
41
|
+
description: string;
|
|
42
|
+
uriTemplate: string;
|
|
43
|
+
mimeType: string;
|
|
44
|
+
arguments: ReadonlyArray<{
|
|
45
|
+
name: string;
|
|
46
|
+
description: string;
|
|
47
|
+
required: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
} | {
|
|
50
|
+
load: (args: any) => Promise<any>;
|
|
51
|
+
name: string;
|
|
52
|
+
description: string;
|
|
53
|
+
uriTemplate: string;
|
|
54
|
+
mimeType: string;
|
|
55
|
+
arguments: ReadonlyArray<{
|
|
56
|
+
name: string;
|
|
57
|
+
description: string;
|
|
58
|
+
required: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
} | {
|
|
61
|
+
load: (args: any) => Promise<any>;
|
|
62
|
+
name: string;
|
|
63
|
+
description: string;
|
|
64
|
+
mimeType: string;
|
|
65
|
+
uriTemplate: string;
|
|
66
|
+
arguments: {
|
|
67
|
+
name: string;
|
|
68
|
+
description: string;
|
|
69
|
+
required: boolean;
|
|
70
|
+
}[];
|
|
71
|
+
})[];
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { buildCodexPromptTemplates, } from "./codex-templates";
|
|
2
|
+
import { buildDecorationResourceTemplates, } from "./resource-templates";
|
|
3
|
+
import { buildWorkspaceResourceTemplates, } from "./workspace-templates";
|
|
4
|
+
import { moduleRegistry } from "../moduleRegistry";
|
|
5
|
+
export { buildCodexPromptTemplates, codexPromptTemplates, } from "./codex-templates";
|
|
6
|
+
export { buildDecorationResourceTemplates, decorationResourceTemplates, } from "./resource-templates";
|
|
7
|
+
export { buildWorkspaceResourceTemplates, workspaceResourceTemplates, } from "./workspace-templates";
|
|
8
|
+
export function buildResourceTemplates() {
|
|
9
|
+
const moduleTemplates = moduleRegistry.listTemplates().map((template) => ({
|
|
10
|
+
name: template.id,
|
|
11
|
+
description: template.description ?? template.title,
|
|
12
|
+
mimeType: "text/markdown",
|
|
13
|
+
uriTemplate: `module-template://${template.id}`,
|
|
14
|
+
arguments: (template.placeholders ?? []).map((name) => ({
|
|
15
|
+
name,
|
|
16
|
+
description: `Value for ${name}`,
|
|
17
|
+
required: true,
|
|
18
|
+
})),
|
|
19
|
+
load: async () => ({
|
|
20
|
+
text: typeof template.content === "string"
|
|
21
|
+
? template.content
|
|
22
|
+
: `# ${template.description ?? template.title ?? template.id}\n\nNo template content available for ${template.id}`,
|
|
23
|
+
}),
|
|
24
|
+
}));
|
|
25
|
+
const all = [
|
|
26
|
+
...buildWorkspaceResourceTemplates(),
|
|
27
|
+
...buildCodexPromptTemplates(),
|
|
28
|
+
...buildDecorationResourceTemplates(),
|
|
29
|
+
...moduleTemplates,
|
|
30
|
+
];
|
|
31
|
+
// Normalise all loaders to always return { text: string }
|
|
32
|
+
function normaliseResult(res) {
|
|
33
|
+
if (res == null)
|
|
34
|
+
return { text: "" };
|
|
35
|
+
if (typeof res === "string")
|
|
36
|
+
return { text: res };
|
|
37
|
+
if (typeof res.text === "string")
|
|
38
|
+
return res;
|
|
39
|
+
// handle legacy ContentResult shapes with content or content array
|
|
40
|
+
if (Array.isArray(res.content)) {
|
|
41
|
+
const parts = res.content
|
|
42
|
+
.map((c) => (c && typeof c.text === "string" ? c.text : String(c)))
|
|
43
|
+
.join("\n");
|
|
44
|
+
return { text: parts };
|
|
45
|
+
}
|
|
46
|
+
if (res.content && typeof res.content.text === "string") {
|
|
47
|
+
return { text: res.content.text };
|
|
48
|
+
}
|
|
49
|
+
// fallback: stringify
|
|
50
|
+
try {
|
|
51
|
+
return { text: JSON.stringify(res) };
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return { text: String(res) };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return all.map((t) => ({
|
|
58
|
+
...t,
|
|
59
|
+
load: async (args) => {
|
|
60
|
+
const raw = await t.load(args);
|
|
61
|
+
return normaliseResult(raw);
|
|
62
|
+
},
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
export const templateList = buildResourceTemplates();
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWNwL3RlbXBsYXRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGdDQUFnQyxHQUVqQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCwrQkFBK0IsR0FFaEMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixvQkFBb0IsR0FDckIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLDJCQUEyQixHQUM1QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsMEJBQTBCLEdBQzNCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksRUFBRSxRQUFRLENBQUMsRUFBRTtRQUNqQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNuRCxRQUFRLEVBQUUsZUFBZTtRQUN6QixXQUFXLEVBQUUscUJBQXFCLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDL0MsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSTtZQUNKLFdBQVcsRUFBRSxhQUFhLElBQUksRUFBRTtZQUNoQyxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUNILElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDakIsSUFBSSxFQUNGLE9BQVEsUUFBZ0IsQ0FBQyxPQUFPLEtBQUssUUFBUTtnQkFDM0MsQ0FBQyxDQUFFLFFBQWdCLENBQUMsT0FBTztnQkFDM0IsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxFQUFFLHlDQUF5QyxRQUFRLENBQUMsRUFBRSxFQUFFO1NBQ3ZILENBQUM7S0FDSCxDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sR0FBRyxHQUFHO1FBQ1YsR0FBRywrQkFBK0IsRUFBRTtRQUNwQyxHQUFHLHlCQUF5QixFQUFFO1FBQzlCLEdBQUcsZ0NBQWdDLEVBQUU7UUFDckMsR0FBRyxlQUFlO0tBQ25CLENBQUM7SUFFRiwwREFBMEQ7SUFDMUQsU0FBUyxlQUFlLENBQUMsR0FBUTtRQUMvQixJQUFJLEdBQUcsSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2xELElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUM3QyxtRUFBbUU7UUFDbkUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPO2lCQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUNELHNCQUFzQjtRQUN0QixJQUFJLENBQUM7WUFDSCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyQixHQUFHLENBQUM7UUFDSixJQUFJLEVBQUUsS0FBSyxFQUFFLElBQVMsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU8sQ0FBQyxDQUFDLElBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QyxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBidWlsZENvZGV4UHJvbXB0VGVtcGxhdGVzLFxuICBjb2RleFByb21wdFRlbXBsYXRlcyxcbn0gZnJvbSBcIi4vY29kZXgtdGVtcGxhdGVzXCI7XG5pbXBvcnQge1xuICBidWlsZERlY29yYXRpb25SZXNvdXJjZVRlbXBsYXRlcyxcbiAgZGVjb3JhdGlvblJlc291cmNlVGVtcGxhdGVzLFxufSBmcm9tIFwiLi9yZXNvdXJjZS10ZW1wbGF0ZXNcIjtcbmltcG9ydCB7XG4gIGJ1aWxkV29ya3NwYWNlUmVzb3VyY2VUZW1wbGF0ZXMsXG4gIHdvcmtzcGFjZVJlc291cmNlVGVtcGxhdGVzLFxufSBmcm9tIFwiLi93b3Jrc3BhY2UtdGVtcGxhdGVzXCI7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlQXNzZXQgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IG1vZHVsZVJlZ2lzdHJ5IH0gZnJvbSBcIi4uL21vZHVsZVJlZ2lzdHJ5XCI7XG5cbmV4cG9ydCB7XG4gIGJ1aWxkQ29kZXhQcm9tcHRUZW1wbGF0ZXMsXG4gIGNvZGV4UHJvbXB0VGVtcGxhdGVzLFxufSBmcm9tIFwiLi9jb2RleC10ZW1wbGF0ZXNcIjtcbmV4cG9ydCB7XG4gIGJ1aWxkRGVjb3JhdGlvblJlc291cmNlVGVtcGxhdGVzLFxuICBkZWNvcmF0aW9uUmVzb3VyY2VUZW1wbGF0ZXMsXG59IGZyb20gXCIuL3Jlc291cmNlLXRlbXBsYXRlc1wiO1xuZXhwb3J0IHtcbiAgYnVpbGRXb3Jrc3BhY2VSZXNvdXJjZVRlbXBsYXRlcyxcbiAgd29ya3NwYWNlUmVzb3VyY2VUZW1wbGF0ZXMsXG59IGZyb20gXCIuL3dvcmtzcGFjZS10ZW1wbGF0ZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUmVzb3VyY2VUZW1wbGF0ZXMoKSB7XG4gIGNvbnN0IG1vZHVsZVRlbXBsYXRlcyA9IG1vZHVsZVJlZ2lzdHJ5Lmxpc3RUZW1wbGF0ZXMoKS5tYXAoKHRlbXBsYXRlKSA9PiAoe1xuICAgIG5hbWU6IHRlbXBsYXRlLmlkLFxuICAgIGRlc2NyaXB0aW9uOiB0ZW1wbGF0ZS5kZXNjcmlwdGlvbiA/PyB0ZW1wbGF0ZS50aXRsZSxcbiAgICBtaW1lVHlwZTogXCJ0ZXh0L21hcmtkb3duXCIsXG4gICAgdXJpVGVtcGxhdGU6IGBtb2R1bGUtdGVtcGxhdGU6Ly8ke3RlbXBsYXRlLmlkfWAsXG4gICAgYXJndW1lbnRzOiAodGVtcGxhdGUucGxhY2Vob2xkZXJzID8/IFtdKS5tYXAoKG5hbWUpID0+ICh7XG4gICAgICBuYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGBWYWx1ZSBmb3IgJHtuYW1lfWAsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSksXG4gICAgbG9hZDogYXN5bmMgKCkgPT4gKHtcbiAgICAgIHRleHQ6XG4gICAgICAgIHR5cGVvZiAodGVtcGxhdGUgYXMgYW55KS5jb250ZW50ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyAodGVtcGxhdGUgYXMgYW55KS5jb250ZW50XG4gICAgICAgICAgOiBgIyAke3RlbXBsYXRlLmRlc2NyaXB0aW9uID8/IHRlbXBsYXRlLnRpdGxlID8/IHRlbXBsYXRlLmlkfVxcblxcbk5vIHRlbXBsYXRlIGNvbnRlbnQgYXZhaWxhYmxlIGZvciAke3RlbXBsYXRlLmlkfWAsXG4gICAgfSksXG4gIH0pKTtcblxuICBjb25zdCBhbGwgPSBbXG4gICAgLi4uYnVpbGRXb3Jrc3BhY2VSZXNvdXJjZVRlbXBsYXRlcygpLFxuICAgIC4uLmJ1aWxkQ29kZXhQcm9tcHRUZW1wbGF0ZXMoKSxcbiAgICAuLi5idWlsZERlY29yYXRpb25SZXNvdXJjZVRlbXBsYXRlcygpLFxuICAgIC4uLm1vZHVsZVRlbXBsYXRlcyxcbiAgXTtcblxuICAvLyBOb3JtYWxpc2UgYWxsIGxvYWRlcnMgdG8gYWx3YXlzIHJldHVybiB7IHRleHQ6IHN0cmluZyB9XG4gIGZ1bmN0aW9uIG5vcm1hbGlzZVJlc3VsdChyZXM6IGFueSkge1xuICAgIGlmIChyZXMgPT0gbnVsbCkgcmV0dXJuIHsgdGV4dDogXCJcIiB9O1xuICAgIGlmICh0eXBlb2YgcmVzID09PSBcInN0cmluZ1wiKSByZXR1cm4geyB0ZXh0OiByZXMgfTtcbiAgICBpZiAodHlwZW9mIHJlcy50ZXh0ID09PSBcInN0cmluZ1wiKSByZXR1cm4gcmVzO1xuICAgIC8vIGhhbmRsZSBsZWdhY3kgQ29udGVudFJlc3VsdCBzaGFwZXMgd2l0aCBjb250ZW50IG9yIGNvbnRlbnQgYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMuY29udGVudCkpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gcmVzLmNvbnRlbnRcbiAgICAgICAgLm1hcCgoYzogYW55KSA9PiAoYyAmJiB0eXBlb2YgYy50ZXh0ID09PSBcInN0cmluZ1wiID8gYy50ZXh0IDogU3RyaW5nKGMpKSlcbiAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICByZXR1cm4geyB0ZXh0OiBwYXJ0cyB9O1xuICAgIH1cbiAgICBpZiAocmVzLmNvbnRlbnQgJiYgdHlwZW9mIHJlcy5jb250ZW50LnRleHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB7IHRleHQ6IHJlcy5jb250ZW50LnRleHQgfTtcbiAgICB9XG4gICAgLy8gZmFsbGJhY2s6IHN0cmluZ2lmeVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4geyB0ZXh0OiBKU09OLnN0cmluZ2lmeShyZXMpIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4geyB0ZXh0OiBTdHJpbmcocmVzKSB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhbGwubWFwKCh0KSA9PiAoe1xuICAgIC4uLnQsXG4gICAgbG9hZDogYXN5bmMgKGFyZ3M6IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmF3ID0gYXdhaXQgKHQubG9hZCBhcyBhbnkpKGFyZ3MpO1xuICAgICAgcmV0dXJuIG5vcm1hbGlzZVJlc3VsdChyYXcpO1xuICAgIH0sXG4gIH0pKTtcbn1cblxuZXhwb3J0IGNvbnN0IHRlbXBsYXRlTGlzdCA9IGJ1aWxkUmVzb3VyY2VUZW1wbGF0ZXMoKTtcbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { getWorkspaceRoot, readWorkspaceFile } from "../workspace";
|
|
3
|
+
export const decorationResourceTemplates = [];
|
|
4
|
+
function makeLoader(type) {
|
|
5
|
+
return async ({ path: relative }) => {
|
|
6
|
+
const root = getWorkspaceRoot();
|
|
7
|
+
const target = path.join(type, relative);
|
|
8
|
+
const text = await readWorkspaceFile(root, target);
|
|
9
|
+
return { text };
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function buildDecorationResourceTemplates() {
|
|
13
|
+
const templates = [
|
|
14
|
+
{
|
|
15
|
+
name: "read-code-from-source",
|
|
16
|
+
description: "Read a file from the <base_path>/src tree by relative path.",
|
|
17
|
+
mimeType: "text/plain",
|
|
18
|
+
uriTemplate: "from-source://src/{path}",
|
|
19
|
+
arguments: [
|
|
20
|
+
{
|
|
21
|
+
name: "path",
|
|
22
|
+
description: "Path under <base_path>/src to load, e.g. 'decoration/types.ts'",
|
|
23
|
+
required: true,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
load: makeLoader("src"),
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "read-test-from-source",
|
|
30
|
+
description: "Read a file from the <base_path>/tests tree by relative path.",
|
|
31
|
+
mimeType: "text/plain",
|
|
32
|
+
uriTemplate: "from-source://tests/{path}",
|
|
33
|
+
arguments: [
|
|
34
|
+
{
|
|
35
|
+
name: "path",
|
|
36
|
+
description: "Path under <base_path>/tests to load, e.g. 'decoration/tests/types.test.ts'",
|
|
37
|
+
required: true,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
load: makeLoader("tests"),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "read-doc-from-source",
|
|
44
|
+
description: "Read a file from the <base_path>/workdocs tree by relative path.",
|
|
45
|
+
mimeType: "text/plain",
|
|
46
|
+
uriTemplate: "from-source://workdocs/{path}",
|
|
47
|
+
arguments: [
|
|
48
|
+
{
|
|
49
|
+
name: "path",
|
|
50
|
+
description: "Path under <base_path>/workdocs to load, e.g. 'decoration/workdocs/tutorials/for-developers.md'",
|
|
51
|
+
required: true,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
load: makeLoader("workdocs"),
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
decorationResourceTemplates.splice(0, decorationResourceTemplates.length, ...templates);
|
|
58
|
+
return decorationResourceTemplates;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtdGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21jcC90ZW1wbGF0ZXMvcmVzb3VyY2UtdGVtcGxhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQWlDLEVBQUUsQ0FBQztBQUU1RSxTQUFTLFVBQVUsQ0FBQyxJQUFrQztJQUNwRCxPQUFPLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQW9CLEVBQUUsRUFBRTtRQUNwRCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGdDQUFnQztJQUM5QyxNQUFNLFNBQVMsR0FBaUM7UUFDOUM7WUFDRSxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLFdBQVcsRUFDVCw2REFBNkQ7WUFDL0QsUUFBUSxFQUFFLFlBQVk7WUFDdEIsV0FBVyxFQUFFLDBCQUEwQjtZQUN2QyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osV0FBVyxFQUNULGdFQUFnRTtvQkFDbEUsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELElBQUksRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQ3hCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLFdBQVcsRUFDVCwrREFBK0Q7WUFDakUsUUFBUSxFQUFFLFlBQVk7WUFDdEIsV0FBVyxFQUFFLDRCQUE0QjtZQUN6QyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osV0FBVyxFQUNULDZFQUE2RTtvQkFDL0UsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1NBQzFCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsc0JBQXNCO1lBQzVCLFdBQVcsRUFDVCxrRUFBa0U7WUFDcEUsUUFBUSxFQUFFLFlBQVk7WUFDdEIsV0FBVyxFQUFFLCtCQUErQjtZQUM1QyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osV0FBVyxFQUNULGlHQUFpRztvQkFDbkcsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELElBQUksRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDO1NBQzdCO0tBQ0YsQ0FBQztJQUVGLDJCQUEyQixDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxFQUNELDJCQUEyQixDQUFDLE1BQU0sRUFDbEMsR0FBRyxTQUFTLENBQ2IsQ0FBQztJQUNGLE9BQU8sMkJBQTJCLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IERlY29yYXRpb25SZXNvdXJjZVRlbXBsYXRlIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRXb3Jrc3BhY2VSb290LCByZWFkV29ya3NwYWNlRmlsZSB9IGZyb20gXCIuLi93b3Jrc3BhY2VcIjtcblxuZXhwb3J0IGNvbnN0IGRlY29yYXRpb25SZXNvdXJjZVRlbXBsYXRlczogRGVjb3JhdGlvblJlc291cmNlVGVtcGxhdGVbXSA9IFtdO1xuXG5mdW5jdGlvbiBtYWtlTG9hZGVyKHR5cGU6IFwic3JjXCIgfCBcInRlc3RzXCIgfCBcIndvcmtkb2NzXCIpIHtcbiAgcmV0dXJuIGFzeW5jICh7IHBhdGg6IHJlbGF0aXZlIH06IHsgcGF0aDogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCByb290ID0gZ2V0V29ya3NwYWNlUm9vdCgpO1xuICAgIGNvbnN0IHRhcmdldCA9IHBhdGguam9pbih0eXBlLCByZWxhdGl2ZSk7XG4gICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlYWRXb3Jrc3BhY2VGaWxlKHJvb3QsIHRhcmdldCk7XG4gICAgcmV0dXJuIHsgdGV4dCB9O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGREZWNvcmF0aW9uUmVzb3VyY2VUZW1wbGF0ZXMoKTogRGVjb3JhdGlvblJlc291cmNlVGVtcGxhdGVbXSB7XG4gIGNvbnN0IHRlbXBsYXRlczogRGVjb3JhdGlvblJlc291cmNlVGVtcGxhdGVbXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiBcInJlYWQtY29kZS1mcm9tLXNvdXJjZVwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUmVhZCBhIGZpbGUgZnJvbSB0aGUgPGJhc2VfcGF0aD4vc3JjIHRyZWUgYnkgcmVsYXRpdmUgcGF0aC5cIixcbiAgICAgIG1pbWVUeXBlOiBcInRleHQvcGxhaW5cIixcbiAgICAgIHVyaVRlbXBsYXRlOiBcImZyb20tc291cmNlOi8vc3JjL3twYXRofVwiLFxuICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInBhdGhcIixcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIFwiUGF0aCB1bmRlciA8YmFzZV9wYXRoPi9zcmMgdG8gbG9hZCwgZS5nLiAnZGVjb3JhdGlvbi90eXBlcy50cydcIixcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBsb2FkOiBtYWtlTG9hZGVyKFwic3JjXCIpLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJyZWFkLXRlc3QtZnJvbS1zb3VyY2VcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlYWQgYSBmaWxlIGZyb20gdGhlIDxiYXNlX3BhdGg+L3Rlc3RzIHRyZWUgYnkgcmVsYXRpdmUgcGF0aC5cIixcbiAgICAgIG1pbWVUeXBlOiBcInRleHQvcGxhaW5cIixcbiAgICAgIHVyaVRlbXBsYXRlOiBcImZyb20tc291cmNlOi8vdGVzdHMve3BhdGh9XCIsXG4gICAgICBhcmd1bWVudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwicGF0aFwiLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCJQYXRoIHVuZGVyIDxiYXNlX3BhdGg+L3Rlc3RzIHRvIGxvYWQsIGUuZy4gJ2RlY29yYXRpb24vdGVzdHMvdHlwZXMudGVzdC50cydcIixcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBsb2FkOiBtYWtlTG9hZGVyKFwidGVzdHNcIiksXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInJlYWQtZG9jLWZyb20tc291cmNlXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZWFkIGEgZmlsZSBmcm9tIHRoZSA8YmFzZV9wYXRoPi93b3JrZG9jcyB0cmVlIGJ5IHJlbGF0aXZlIHBhdGguXCIsXG4gICAgICBtaW1lVHlwZTogXCJ0ZXh0L3BsYWluXCIsXG4gICAgICB1cmlUZW1wbGF0ZTogXCJmcm9tLXNvdXJjZTovL3dvcmtkb2NzL3twYXRofVwiLFxuICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInBhdGhcIixcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIFwiUGF0aCB1bmRlciA8YmFzZV9wYXRoPi93b3JrZG9jcyB0byBsb2FkLCBlLmcuICdkZWNvcmF0aW9uL3dvcmtkb2NzL3R1dG9yaWFscy9mb3ItZGV2ZWxvcGVycy5tZCdcIixcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBsb2FkOiBtYWtlTG9hZGVyKFwid29ya2RvY3NcIiksXG4gICAgfSxcbiAgXTtcblxuICBkZWNvcmF0aW9uUmVzb3VyY2VUZW1wbGF0ZXMuc3BsaWNlKFxuICAgIDAsXG4gICAgZGVjb3JhdGlvblJlc291cmNlVGVtcGxhdGVzLmxlbmd0aCxcbiAgICAuLi50ZW1wbGF0ZXNcbiAgKTtcbiAgcmV0dXJuIGRlY29yYXRpb25SZXNvdXJjZVRlbXBsYXRlcztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { getWorkspaceRoot, readWorkspaceFile } from "../workspace";
|
|
2
|
+
export const workspaceResourceTemplates = [];
|
|
3
|
+
export function buildWorkspaceResourceTemplates() {
|
|
4
|
+
const root = getWorkspaceRoot();
|
|
5
|
+
const sharedArguments = [
|
|
6
|
+
{
|
|
7
|
+
name: "path",
|
|
8
|
+
description: "Path relative to the workspace root",
|
|
9
|
+
required: true,
|
|
10
|
+
},
|
|
11
|
+
];
|
|
12
|
+
const templates = [
|
|
13
|
+
{
|
|
14
|
+
name: "vscode-workspace-file",
|
|
15
|
+
description: "Expose workspace files to Visual Studio Code via vscode:// URIs",
|
|
16
|
+
uriTemplate: "vscode://workspace/{path}",
|
|
17
|
+
mimeType: "text/plain",
|
|
18
|
+
arguments: sharedArguments,
|
|
19
|
+
load: async (args) => {
|
|
20
|
+
try {
|
|
21
|
+
const text = await readWorkspaceFile(root, args.path);
|
|
22
|
+
return { text: String(text) };
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
// propagate as-is for tests to assert errors
|
|
26
|
+
throw err;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "cursor-workspace-file",
|
|
32
|
+
description: "Expose workspace files to Cursor via cursor:// URIs",
|
|
33
|
+
uriTemplate: "cursor://workspace/{path}",
|
|
34
|
+
mimeType: "text/plain",
|
|
35
|
+
arguments: sharedArguments,
|
|
36
|
+
load: async (args) => {
|
|
37
|
+
try {
|
|
38
|
+
const text = await readWorkspaceFile(root, args.path);
|
|
39
|
+
return { text: String(text) };
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "copilot-workspace-file",
|
|
48
|
+
description: "Expose workspace files to GitHub Copilot via copilot:// URIs",
|
|
49
|
+
uriTemplate: "copilot://workspace/{path}",
|
|
50
|
+
mimeType: "text/plain",
|
|
51
|
+
arguments: sharedArguments,
|
|
52
|
+
load: async (args) => {
|
|
53
|
+
try {
|
|
54
|
+
const text = await readWorkspaceFile(root, args.path);
|
|
55
|
+
return { text: String(text) };
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
workspaceResourceTemplates.splice(0, workspaceResourceTemplates.length, ...templates);
|
|
64
|
+
return workspaceResourceTemplates;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLXRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tY3AvdGVtcGxhdGVzL3dvcmtzcGFjZS10ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFnQyxFQUFFLENBQUM7QUFFMUUsTUFBTSxVQUFVLCtCQUErQjtJQUM3QyxNQUFNLElBQUksR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sZUFBZSxHQUFHO1FBQ3RCO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixXQUFXLEVBQUUscUNBQXFDO1lBQ2xELFFBQVEsRUFBRSxJQUFJO1NBQ2Y7S0FDTyxDQUFDO0lBRVgsTUFBTSxTQUFTLEdBQWdDO1FBQzdDO1lBQ0UsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixXQUFXLEVBQ1QsaUVBQWlFO1lBQ25FLFdBQVcsRUFBRSwyQkFBMkI7WUFDeEMsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFLGVBQWU7WUFDMUIsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFzQixFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQztvQkFDSCxNQUFNLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYiw2Q0FBNkM7b0JBQzdDLE1BQU0sR0FBRyxDQUFDO2dCQUNaLENBQUM7WUFDSCxDQUFDO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSx1QkFBdUI7WUFDN0IsV0FBVyxFQUFFLHFEQUFxRDtZQUNsRSxXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRSxlQUFlO1lBQzFCLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBc0IsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLENBQUM7b0JBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxDQUFDO2dCQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7b0JBQ2IsTUFBTSxHQUFHLENBQUM7Z0JBQ1osQ0FBQztZQUNILENBQUM7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixXQUFXLEVBQ1QsOERBQThEO1lBQ2hFLFdBQVcsRUFBRSw0QkFBNEI7WUFDekMsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFLGVBQWU7WUFDMUIsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFzQixFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQztvQkFDSCxNQUFNLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixNQUFNLEdBQUcsQ0FBQztnQkFDWixDQUFDO1lBQ0gsQ0FBQztTQUNGO0tBQ0YsQ0FBQztJQUVGLDBCQUEwQixDQUFDLE1BQU0sQ0FDL0IsQ0FBQyxFQUNELDBCQUEwQixDQUFDLE1BQU0sRUFDakMsR0FBRyxTQUFTLENBQ2IsQ0FBQztJQUNGLE9BQU8sMEJBQTBCLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZVJlc291cmNlVGVtcGxhdGUgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGdldFdvcmtzcGFjZVJvb3QsIHJlYWRXb3Jrc3BhY2VGaWxlIH0gZnJvbSBcIi4uL3dvcmtzcGFjZVwiO1xuXG5leHBvcnQgY29uc3Qgd29ya3NwYWNlUmVzb3VyY2VUZW1wbGF0ZXM6IFdvcmtzcGFjZVJlc291cmNlVGVtcGxhdGVbXSA9IFtdO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRXb3Jrc3BhY2VSZXNvdXJjZVRlbXBsYXRlcygpOiBXb3Jrc3BhY2VSZXNvdXJjZVRlbXBsYXRlW10ge1xuICBjb25zdCByb290ID0gZ2V0V29ya3NwYWNlUm9vdCgpO1xuICBjb25zdCBzaGFyZWRBcmd1bWVudHMgPSBbXG4gICAge1xuICAgICAgbmFtZTogXCJwYXRoXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJQYXRoIHJlbGF0aXZlIHRvIHRoZSB3b3Jrc3BhY2Ugcm9vdFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgXSBhcyBjb25zdDtcblxuICBjb25zdCB0ZW1wbGF0ZXM6IFdvcmtzcGFjZVJlc291cmNlVGVtcGxhdGVbXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiBcInZzY29kZS13b3Jrc3BhY2UtZmlsZVwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiRXhwb3NlIHdvcmtzcGFjZSBmaWxlcyB0byBWaXN1YWwgU3R1ZGlvIENvZGUgdmlhIHZzY29kZTovLyBVUklzXCIsXG4gICAgICB1cmlUZW1wbGF0ZTogXCJ2c2NvZGU6Ly93b3Jrc3BhY2Uve3BhdGh9XCIsXG4gICAgICBtaW1lVHlwZTogXCJ0ZXh0L3BsYWluXCIsXG4gICAgICBhcmd1bWVudHM6IHNoYXJlZEFyZ3VtZW50cyxcbiAgICAgIGxvYWQ6IGFzeW5jIChhcmdzOiB7IHBhdGg6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlYWRXb3Jrc3BhY2VGaWxlKHJvb3QsIGFyZ3MucGF0aCk7XG4gICAgICAgICAgcmV0dXJuIHsgdGV4dDogU3RyaW5nKHRleHQpIH07XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIC8vIHByb3BhZ2F0ZSBhcy1pcyBmb3IgdGVzdHMgdG8gYXNzZXJ0IGVycm9yc1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiY3Vyc29yLXdvcmtzcGFjZS1maWxlXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJFeHBvc2Ugd29ya3NwYWNlIGZpbGVzIHRvIEN1cnNvciB2aWEgY3Vyc29yOi8vIFVSSXNcIixcbiAgICAgIHVyaVRlbXBsYXRlOiBcImN1cnNvcjovL3dvcmtzcGFjZS97cGF0aH1cIixcbiAgICAgIG1pbWVUeXBlOiBcInRleHQvcGxhaW5cIixcbiAgICAgIGFyZ3VtZW50czogc2hhcmVkQXJndW1lbnRzLFxuICAgICAgbG9hZDogYXN5bmMgKGFyZ3M6IHsgcGF0aDogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVhZFdvcmtzcGFjZUZpbGUocm9vdCwgYXJncy5wYXRoKTtcbiAgICAgICAgICByZXR1cm4geyB0ZXh0OiBTdHJpbmcodGV4dCkgfTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJjb3BpbG90LXdvcmtzcGFjZS1maWxlXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJFeHBvc2Ugd29ya3NwYWNlIGZpbGVzIHRvIEdpdEh1YiBDb3BpbG90IHZpYSBjb3BpbG90Oi8vIFVSSXNcIixcbiAgICAgIHVyaVRlbXBsYXRlOiBcImNvcGlsb3Q6Ly93b3Jrc3BhY2Uve3BhdGh9XCIsXG4gICAgICBtaW1lVHlwZTogXCJ0ZXh0L3BsYWluXCIsXG4gICAgICBhcmd1bWVudHM6IHNoYXJlZEFyZ3VtZW50cyxcbiAgICAgIGxvYWQ6IGFzeW5jIChhcmdzOiB7IHBhdGg6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlYWRXb3Jrc3BhY2VGaWxlKHJvb3QsIGFyZ3MucGF0aCk7XG4gICAgICAgICAgcmV0dXJuIHsgdGV4dDogU3RyaW5nKHRleHQpIH07XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICBdO1xuXG4gIHdvcmtzcGFjZVJlc291cmNlVGVtcGxhdGVzLnNwbGljZShcbiAgICAwLFxuICAgIHdvcmtzcGFjZVJlc291cmNlVGVtcGxhdGVzLmxlbmd0aCxcbiAgICAuLi50ZW1wbGF0ZXNcbiAgKTtcbiAgcmV0dXJuIHdvcmtzcGFjZVJlc291cmNlVGVtcGxhdGVzO1xufVxuXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Tool } from "fastmcp";
|
|
2
|
+
import { documentObjectSchema, coverageTaskSchema, readmeImprovementSchema } from "../schemas";
|
|
3
|
+
export declare const documentObjectTool: Tool<undefined, typeof documentObjectSchema>;
|
|
4
|
+
export declare const coverageEnforcerTool: Tool<undefined, typeof coverageTaskSchema>;
|
|
5
|
+
export declare const readmeImprovementTool: Tool<undefined, typeof readmeImprovementSchema>;
|