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