@langadventurellc/task-trellis-mcp 1.3.1 → 1.3.3

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.
Files changed (76) hide show
  1. package/README.md +0 -6
  2. package/dist/server.js +1 -55
  3. package/dist/server.js.map +1 -1
  4. package/package.json +14 -15
  5. package/dist/__tests__/copyBasicClaudeAgents.test.d.ts +0 -2
  6. package/dist/__tests__/copyBasicClaudeAgents.test.d.ts.map +0 -1
  7. package/dist/__tests__/copyBasicClaudeAgents.test.js +0 -24
  8. package/dist/__tests__/copyBasicClaudeAgents.test.js.map +0 -1
  9. package/dist/prompts/PromptArgument.d.ts +0 -16
  10. package/dist/prompts/PromptArgument.d.ts.map +0 -1
  11. package/dist/prompts/PromptArgument.js +0 -3
  12. package/dist/prompts/PromptArgument.js.map +0 -1
  13. package/dist/prompts/PromptManager.d.ts +0 -48
  14. package/dist/prompts/PromptManager.d.ts.map +0 -1
  15. package/dist/prompts/PromptManager.js +0 -151
  16. package/dist/prompts/PromptManager.js.map +0 -1
  17. package/dist/prompts/PromptMessage.d.ts +0 -11
  18. package/dist/prompts/PromptMessage.d.ts.map +0 -1
  19. package/dist/prompts/PromptMessage.js +0 -3
  20. package/dist/prompts/PromptMessage.js.map +0 -1
  21. package/dist/prompts/PromptParser.d.ts +0 -7
  22. package/dist/prompts/PromptParser.d.ts.map +0 -1
  23. package/dist/prompts/PromptParser.js +0 -141
  24. package/dist/prompts/PromptParser.js.map +0 -1
  25. package/dist/prompts/PromptRenderer.d.ts +0 -38
  26. package/dist/prompts/PromptRenderer.d.ts.map +0 -1
  27. package/dist/prompts/PromptRenderer.js +0 -128
  28. package/dist/prompts/PromptRenderer.js.map +0 -1
  29. package/dist/prompts/PromptsRegistry.d.ts +0 -43
  30. package/dist/prompts/PromptsRegistry.d.ts.map +0 -1
  31. package/dist/prompts/PromptsRegistry.js +0 -76
  32. package/dist/prompts/PromptsRegistry.js.map +0 -1
  33. package/dist/prompts/TrellisPrompt.d.ts +0 -19
  34. package/dist/prompts/TrellisPrompt.d.ts.map +0 -1
  35. package/dist/prompts/TrellisPrompt.js +0 -3
  36. package/dist/prompts/TrellisPrompt.js.map +0 -1
  37. package/dist/prompts/__tests__/PromptArgument.test.d.ts +0 -2
  38. package/dist/prompts/__tests__/PromptArgument.test.d.ts.map +0 -1
  39. package/dist/prompts/__tests__/PromptArgument.test.js +0 -60
  40. package/dist/prompts/__tests__/PromptArgument.test.js.map +0 -1
  41. package/dist/prompts/__tests__/PromptManager.test.d.ts +0 -2
  42. package/dist/prompts/__tests__/PromptManager.test.d.ts.map +0 -1
  43. package/dist/prompts/__tests__/PromptManager.test.js +0 -364
  44. package/dist/prompts/__tests__/PromptManager.test.js.map +0 -1
  45. package/dist/prompts/__tests__/PromptParser.test.d.ts +0 -2
  46. package/dist/prompts/__tests__/PromptParser.test.d.ts.map +0 -1
  47. package/dist/prompts/__tests__/PromptParser.test.js +0 -237
  48. package/dist/prompts/__tests__/PromptParser.test.js.map +0 -1
  49. package/dist/prompts/__tests__/PromptRenderer.test.d.ts +0 -2
  50. package/dist/prompts/__tests__/PromptRenderer.test.d.ts.map +0 -1
  51. package/dist/prompts/__tests__/PromptRenderer.test.js +0 -325
  52. package/dist/prompts/__tests__/PromptRenderer.test.js.map +0 -1
  53. package/dist/prompts/__tests__/TrellisPrompt.test.d.ts +0 -2
  54. package/dist/prompts/__tests__/TrellisPrompt.test.d.ts.map +0 -1
  55. package/dist/prompts/__tests__/TrellisPrompt.test.js +0 -107
  56. package/dist/prompts/__tests__/TrellisPrompt.test.js.map +0 -1
  57. package/dist/prompts/index.d.ts +0 -9
  58. package/dist/prompts/index.d.ts.map +0 -1
  59. package/dist/prompts/index.js +0 -14
  60. package/dist/prompts/index.js.map +0 -1
  61. package/dist/prompts/registry.d.ts +0 -6
  62. package/dist/prompts/registry.d.ts.map +0 -1
  63. package/dist/prompts/registry.js +0 -60
  64. package/dist/prompts/registry.js.map +0 -1
  65. package/dist/resources/basic/prompts/create-epics.md +0 -177
  66. package/dist/resources/basic/prompts/create-features.md +0 -172
  67. package/dist/resources/basic/prompts/create-project.md +0 -128
  68. package/dist/resources/basic/prompts/create-tasks.md +0 -225
  69. package/dist/resources/basic/prompts/implement-task.md +0 -170
  70. package/dist/resources/basic-claude/agents/implementation-planner.md +0 -187
  71. package/dist/resources/basic-claude/agents/issue-verifier.md +0 -154
  72. package/dist/resources/basic-claude/prompts/create-epics.md +0 -204
  73. package/dist/resources/basic-claude/prompts/create-features.md +0 -199
  74. package/dist/resources/basic-claude/prompts/create-project.md +0 -155
  75. package/dist/resources/basic-claude/prompts/create-tasks.md +0 -252
  76. package/dist/resources/basic-claude/prompts/implement-task.md +0 -179
@@ -1,325 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const PromptRenderer_1 = require("../PromptRenderer");
4
- describe("PromptRenderer", () => {
5
- let renderer;
6
- beforeEach(() => {
7
- renderer = new PromptRenderer_1.PromptRenderer();
8
- });
9
- describe("renderPrompt", () => {
10
- it("should render a simple prompt without arguments", () => {
11
- const prompt = {
12
- name: "test",
13
- description: "Test prompt",
14
- arguments: [],
15
- userTemplate: "Hello, world!",
16
- };
17
- const result = renderer.renderPrompt(prompt, {});
18
- expect(result).toHaveLength(1);
19
- expect(result[0].role).toBe("user");
20
- expect(result[0].content.text).toBe("Hello, world!");
21
- });
22
- it("should return only user message when no system rules", () => {
23
- const prompt = {
24
- name: "test",
25
- description: "Test prompt",
26
- arguments: [],
27
- userTemplate: "User message with <rules>inline rules</rules>",
28
- };
29
- const result = renderer.renderPrompt(prompt, {});
30
- expect(result).toHaveLength(1);
31
- expect(result[0].role).toBe("user");
32
- expect(result[0].content.text).toBe("User message with <rules>inline rules</rules>");
33
- });
34
- it("should throw error for missing required arguments", () => {
35
- const prompt = {
36
- name: "test",
37
- description: "Test prompt",
38
- arguments: [
39
- { name: "name", required: true, description: "User's name" },
40
- ],
41
- userTemplate: "Hello ${name}",
42
- };
43
- expect(() => renderer.renderPrompt(prompt, {})).toThrow("Missing required argument: name. Description: User's name");
44
- });
45
- it("should throw error for empty required arguments", () => {
46
- const prompt = {
47
- name: "test",
48
- description: "Test prompt",
49
- arguments: [
50
- { name: "name", required: true, description: "User's name" },
51
- ],
52
- userTemplate: "Hello ${name}",
53
- };
54
- expect(() => renderer.renderPrompt(prompt, { name: " " })).toThrow("Missing required argument: name. Description: User's name");
55
- });
56
- it("should not throw error for provided required arguments", () => {
57
- const prompt = {
58
- name: "test",
59
- description: "Test prompt",
60
- arguments: [
61
- { name: "name", required: true, description: "User's name" },
62
- ],
63
- userTemplate: "Hello ${name}",
64
- };
65
- expect(() => renderer.renderPrompt(prompt, { name: "John" })).not.toThrow();
66
- });
67
- });
68
- describe("substituteArguments", () => {
69
- it("should replace $ARGUMENTS with single input value", () => {
70
- const prompt = {
71
- name: "test",
72
- description: "Test prompt",
73
- arguments: [
74
- { name: "input", required: true, description: "Input data" },
75
- ],
76
- userTemplate: "Process this: $ARGUMENTS",
77
- };
78
- const result = renderer.renderPrompt(prompt, { input: "test data" });
79
- expect(result[0].content.text).toBe("Process this: test data");
80
- });
81
- it("should handle empty single input argument", () => {
82
- const prompt = {
83
- name: "test",
84
- description: "Test prompt",
85
- arguments: [
86
- { name: "input", required: false, description: "Input data" },
87
- ],
88
- userTemplate: "Process this: $ARGUMENTS",
89
- };
90
- const result = renderer.renderPrompt(prompt, { input: "" });
91
- expect(result[0].content.text).toBe("Process this: ");
92
- });
93
- it("should format multiple arguments as block", () => {
94
- const prompt = {
95
- name: "test",
96
- description: "Test prompt",
97
- arguments: [
98
- { name: "arg1", required: false, description: "First argument" },
99
- { name: "arg2", required: false, description: "Second argument" },
100
- ],
101
- userTemplate: "Here are the inputs:\n$ARGUMENTS",
102
- };
103
- const result = renderer.renderPrompt(prompt, {
104
- arg1: "value1",
105
- arg2: "value2",
106
- });
107
- const text = result[0].content.text;
108
- expect(text).toContain("## Inputs");
109
- expect(text).toContain("**arg1**: value1");
110
- expect(text).toContain("**arg2**: value2");
111
- expect(text).toContain("*First argument*");
112
- expect(text).toContain("*Second argument*");
113
- });
114
- it("should handle missing values in multiple arguments block", () => {
115
- const prompt = {
116
- name: "test",
117
- description: "Test prompt",
118
- arguments: [
119
- { name: "arg1", required: false, description: "First argument" },
120
- { name: "arg2", required: false, description: "Second argument" },
121
- ],
122
- userTemplate: "Here are the inputs:\n$ARGUMENTS",
123
- };
124
- const result = renderer.renderPrompt(prompt, { arg1: "value1" });
125
- const text = result[0].content.text;
126
- expect(text).toContain("**arg1**: value1");
127
- expect(text).toContain("**arg2**: (not provided)");
128
- });
129
- it("should handle no arguments gracefully", () => {
130
- const prompt = {
131
- name: "test",
132
- description: "Test prompt",
133
- arguments: [],
134
- userTemplate: "Here are the inputs:\n$ARGUMENTS",
135
- };
136
- const result = renderer.renderPrompt(prompt, {});
137
- expect(result[0].content.text).toBe("Here are the inputs:\n");
138
- });
139
- it("should leave template unchanged when no $ARGUMENTS placeholder", () => {
140
- const prompt = {
141
- name: "test",
142
- description: "Test prompt",
143
- arguments: [
144
- { name: "input", required: false, description: "Input data" },
145
- ],
146
- userTemplate: "No arguments here",
147
- };
148
- const result = renderer.renderPrompt(prompt, { input: "test" });
149
- expect(result[0].content.text).toBe("No arguments here");
150
- });
151
- });
152
- describe("substitutePlaceholders", () => {
153
- it("should replace ${argName} placeholders", () => {
154
- const prompt = {
155
- name: "test",
156
- description: "Test prompt",
157
- arguments: [
158
- { name: "firstName", required: true, description: "First name" },
159
- { name: "lastName", required: true, description: "Last name" },
160
- ],
161
- userTemplate: "Hello ${firstName} ${lastName}!",
162
- };
163
- const result = renderer.renderPrompt(prompt, {
164
- firstName: "John",
165
- lastName: "Doe",
166
- });
167
- expect(result[0].content.text).toBe("Hello John Doe!");
168
- });
169
- it("should handle missing optional arguments", () => {
170
- const prompt = {
171
- name: "test",
172
- description: "Test prompt",
173
- arguments: [
174
- { name: "name", required: true, description: "Name" },
175
- { name: "age", required: false, description: "Age" },
176
- ],
177
- userTemplate: "Name: ${name}, Age: ${age}",
178
- };
179
- const result = renderer.renderPrompt(prompt, { name: "John" });
180
- expect(result[0].content.text).toBe("Name: John, Age: (not provided)");
181
- });
182
- it("should handle empty argument values", () => {
183
- const prompt = {
184
- name: "test",
185
- description: "Test prompt",
186
- arguments: [{ name: "name", required: false, description: "Name" }],
187
- userTemplate: "Name: ${name}",
188
- };
189
- const result = renderer.renderPrompt(prompt, { name: "" });
190
- expect(result[0].content.text).toBe("Name: ");
191
- });
192
- it("should leave undefined placeholders as-is when not in arguments schema", () => {
193
- const prompt = {
194
- name: "test",
195
- description: "Test prompt",
196
- arguments: [{ name: "name", required: true, description: "Name" }],
197
- userTemplate: "Name: ${name}, Unknown: ${unknown}",
198
- };
199
- const result = renderer.renderPrompt(prompt, { name: "John" });
200
- expect(result[0].content.text).toBe("Name: John, Unknown: ${unknown}");
201
- });
202
- it("should handle placeholders with whitespace", () => {
203
- const prompt = {
204
- name: "test",
205
- description: "Test prompt",
206
- arguments: [{ name: "name", required: true, description: "Name" }],
207
- userTemplate: "Name: ${ name }",
208
- };
209
- const result = renderer.renderPrompt(prompt, { name: "John" });
210
- expect(result[0].content.text).toBe("Name: John");
211
- });
212
- it("should throw error for missing required argument in placeholder", () => {
213
- const prompt = {
214
- name: "test",
215
- description: "Test prompt",
216
- arguments: [{ name: "name", required: true, description: "Name" }],
217
- userTemplate: "Name: ${name}",
218
- };
219
- // This should be caught by validation, but test the fallback
220
- expect(() => {
221
- const renderer = new PromptRenderer_1.PromptRenderer();
222
- // Bypass validation by directly calling substitutePlaceholders
223
- const template = "Name: ${name}";
224
- const args = {};
225
- // This is a protected method, so we need to access it via (renderer as any)
226
- renderer.substitutePlaceholders(template, prompt, args);
227
- }).toThrow("Missing required argument in placeholder: name");
228
- });
229
- });
230
- describe("sanitization", () => {
231
- it("should sanitize values to prevent injection", () => {
232
- const prompt = {
233
- name: "test",
234
- description: "Test prompt",
235
- arguments: [{ name: "input", required: true, description: "Input" }],
236
- userTemplate: "Input: ${input}",
237
- };
238
- const maliciousInput = "test`code`$ARGUMENTS<script>alert()</script>";
239
- const result = renderer.renderPrompt(prompt, { input: maliciousInput });
240
- const text = result[0].content.text;
241
- expect(text).toContain("\\`");
242
- expect(text).toContain("\\$");
243
- expect(text).toContain("&lt;script&gt;");
244
- expect(text).toContain("&lt;/script&gt;");
245
- });
246
- it("should sanitize backslashes", () => {
247
- const prompt = {
248
- name: "test",
249
- description: "Test prompt",
250
- arguments: [{ name: "input", required: true, description: "Input" }],
251
- userTemplate: "Input: ${input}",
252
- };
253
- const result = renderer.renderPrompt(prompt, { input: "test\\path" });
254
- expect(result[0].content.text).toContain("test\\\\path");
255
- });
256
- it("should limit consecutive newlines", () => {
257
- const prompt = {
258
- name: "test",
259
- description: "Test prompt",
260
- arguments: [{ name: "input", required: true, description: "Input" }],
261
- userTemplate: "Input: ${input}",
262
- };
263
- const result = renderer.renderPrompt(prompt, {
264
- input: "line1\n\n\n\n\nline2",
265
- });
266
- expect(result[0].content.text).toBe("Input: line1\n\nline2");
267
- });
268
- });
269
- describe("edge cases", () => {
270
- it("should handle prompt with no arguments array", () => {
271
- const prompt = {
272
- name: "test",
273
- description: "Test prompt",
274
- arguments: [],
275
- userTemplate: "Simple template",
276
- };
277
- const result = renderer.renderPrompt(prompt, {});
278
- expect(result[0].content.text).toBe("Simple template");
279
- });
280
- it("should handle multiple $ARGUMENTS placeholders", () => {
281
- const prompt = {
282
- name: "test",
283
- description: "Test prompt",
284
- arguments: [{ name: "input", required: false, description: "Input" }],
285
- userTemplate: "First: $ARGUMENTS, Second: $ARGUMENTS",
286
- };
287
- const result = renderer.renderPrompt(prompt, { input: "test" });
288
- expect(result[0].content.text).toBe("First: test, Second: test");
289
- });
290
- it("should handle mixed placeholder types", () => {
291
- const prompt = {
292
- name: "test",
293
- description: "Test prompt",
294
- arguments: [
295
- { name: "input", required: false, description: "Input" },
296
- { name: "name", required: false, description: "Name" },
297
- ],
298
- userTemplate: "Arguments: $ARGUMENTS\nName: ${name}",
299
- };
300
- const result = renderer.renderPrompt(prompt, {
301
- input: "data",
302
- name: "John",
303
- });
304
- const text = result[0].content.text;
305
- expect(text).toContain("## Inputs");
306
- expect(text).toContain("**input**: data");
307
- expect(text).toContain("Name: John");
308
- });
309
- it("should return proper PromptMessage structure", () => {
310
- const prompt = {
311
- name: "test",
312
- description: "Test prompt",
313
- arguments: [],
314
- userTemplate: "Test with <rules>inline rules</rules>",
315
- };
316
- const result = renderer.renderPrompt(prompt, {});
317
- // Type assertion to ensure proper typing
318
- const messages = result;
319
- expect(messages).toHaveLength(1);
320
- expect(messages[0].role).toBe("user");
321
- expect(messages[0].content.type).toBe("text");
322
- });
323
- });
324
- });
325
- //# sourceMappingURL=PromptRenderer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PromptRenderer.test.js","sourceRoot":"","sources":["../../../src/prompts/__tests__/PromptRenderer.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=TrellisPrompt.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TrellisPrompt.test.d.ts","sourceRoot":"","sources":["../../../src/prompts/__tests__/TrellisPrompt.test.ts"],"names":[],"mappings":""}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- describe("TrellisPrompt", () => {
4
- describe("interface structure", () => {
5
- it("should accept valid prompt with all required fields", () => {
6
- const prompt = {
7
- name: "create-project",
8
- description: "Creates a new project with the specified configuration",
9
- arguments: [],
10
- userTemplate: "Create a project named {{projectName}}",
11
- };
12
- expect(prompt.name).toBe("create-project");
13
- expect(prompt.description).toBeDefined();
14
- expect(prompt.arguments).toEqual([]);
15
- expect(prompt.userTemplate).toBeDefined();
16
- });
17
- it("should accept prompt with optional title field", () => {
18
- const prompt = {
19
- name: "test-prompt",
20
- title: "Test Prompt Title",
21
- description: "A test prompt",
22
- arguments: [],
23
- userTemplate: "Test template",
24
- };
25
- expect(prompt.title).toBe("Test Prompt Title");
26
- });
27
- it("should accept prompt with arguments", () => {
28
- const args = [
29
- {
30
- name: "projectName",
31
- type: "string",
32
- required: true,
33
- description: "Name of the project",
34
- },
35
- {
36
- name: "includeTests",
37
- type: "boolean",
38
- required: false,
39
- description: "Whether to include test files",
40
- },
41
- ];
42
- const prompt = {
43
- name: "create-project",
44
- description: "Creates a new project",
45
- arguments: args,
46
- userTemplate: "Create {{projectName}} with tests: {{includeTests}}",
47
- };
48
- expect(prompt.arguments).toHaveLength(2);
49
- expect(prompt.arguments[0].name).toBe("projectName");
50
- expect(prompt.arguments[1].type).toBe("boolean");
51
- });
52
- });
53
- describe("kebab-case name validation", () => {
54
- it("should accept kebab-case names", () => {
55
- const validNames = [
56
- "create-project",
57
- "update-task-status",
58
- "generate-epic-summary",
59
- "add-prerequisite",
60
- ];
61
- validNames.forEach((name) => {
62
- const prompt = {
63
- name,
64
- description: "Test",
65
- arguments: [],
66
- userTemplate: "Test",
67
- };
68
- expect(prompt.name).toBe(name);
69
- });
70
- });
71
- });
72
- });
73
- describe("Integration scenarios", () => {
74
- it("should support complex prompt with multiple arguments", () => {
75
- const prompt = {
76
- name: "create-feature-with-tasks",
77
- title: "Create Feature with Tasks",
78
- description: "Creates a feature and associated tasks",
79
- arguments: [
80
- {
81
- name: "featureName",
82
- type: "string",
83
- required: true,
84
- description: "Name of the feature",
85
- },
86
- {
87
- name: "epicId",
88
- type: "string",
89
- required: true,
90
- description: "Parent epic ID",
91
- },
92
- {
93
- name: "generateTests",
94
- type: "boolean",
95
- required: false,
96
- description: "Auto-generate test tasks",
97
- },
98
- ],
99
- userTemplate: `Create a feature named "{{featureName}}" under epic {{epicId}}.
100
- {{#if generateTests}}Include test tasks for each component.{{/if}}`,
101
- };
102
- expect(prompt.arguments).toHaveLength(3);
103
- expect(prompt.arguments.filter((a) => a.required)).toHaveLength(2);
104
- expect(prompt.userTemplate).toContain("{{featureName}}");
105
- });
106
- });
107
- //# sourceMappingURL=TrellisPrompt.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TrellisPrompt.test.js","sourceRoot":"","sources":["../../../src/prompts/__tests__/TrellisPrompt.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export { TrellisPrompt } from "./TrellisPrompt";
2
- export { PromptArgument } from "./PromptArgument";
3
- export { parsePromptFile } from "./PromptParser";
4
- export { PromptManager } from "./PromptManager";
5
- export { PromptRenderer } from "./PromptRenderer";
6
- export { PromptMessage } from "./PromptMessage";
7
- export { PromptsRegistry } from "./PromptsRegistry";
8
- export { registerPromptHandlers } from "./registry";
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerPromptHandlers = exports.PromptsRegistry = exports.PromptRenderer = exports.PromptManager = exports.parsePromptFile = void 0;
4
- var PromptParser_1 = require("./PromptParser");
5
- Object.defineProperty(exports, "parsePromptFile", { enumerable: true, get: function () { return PromptParser_1.parsePromptFile; } });
6
- var PromptManager_1 = require("./PromptManager");
7
- Object.defineProperty(exports, "PromptManager", { enumerable: true, get: function () { return PromptManager_1.PromptManager; } });
8
- var PromptRenderer_1 = require("./PromptRenderer");
9
- Object.defineProperty(exports, "PromptRenderer", { enumerable: true, get: function () { return PromptRenderer_1.PromptRenderer; } });
10
- var PromptsRegistry_1 = require("./PromptsRegistry");
11
- Object.defineProperty(exports, "PromptsRegistry", { enumerable: true, get: function () { return PromptsRegistry_1.PromptsRegistry; } });
12
- var registry_1 = require("./registry");
13
- Object.defineProperty(exports, "registerPromptHandlers", { enumerable: true, get: function () { return registry_1.registerPromptHandlers; } });
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":";;;AAEA,+CAAiD;AAAxC,+GAAA,eAAe,OAAA;AACxB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA"}
@@ -1,6 +0,0 @@
1
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
- /**
3
- * Registers prompt handlers with the MCP server
4
- */
5
- export declare function registerPromptHandlers(server: Server, promptPackage?: string): Promise<void>;
6
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,MAAgB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAmEf"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerPromptHandlers = registerPromptHandlers;
4
- const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
5
- const PromptsRegistry_js_1 = require("./PromptsRegistry.js");
6
- /**
7
- * Registers prompt handlers with the MCP server
8
- */
9
- async function registerPromptHandlers(server, promptPackage = "basic") {
10
- console.warn(`Initializing prompts system with package: ${promptPackage}...`);
11
- const registry = new PromptsRegistry_js_1.PromptsRegistry(promptPackage);
12
- // Initialize the registry by loading all prompts
13
- try {
14
- await registry.initialize();
15
- const loadedPrompts = registry.listPrompts();
16
- console.warn(`Successfully loaded ${loadedPrompts.prompts.length} prompt templates`);
17
- // Log individual prompt names for debugging
18
- if (loadedPrompts.prompts.length > 0) {
19
- console.warn("Available prompts:");
20
- loadedPrompts.prompts.forEach((prompt) => {
21
- console.warn(` - ${prompt.name}: ${prompt.description}`);
22
- });
23
- }
24
- }
25
- catch (error) {
26
- console.error("Warning: Failed to load prompt templates:", error);
27
- console.warn("Continuing with empty prompts registry - prompts feature will be available but with no templates");
28
- // Continue execution - prompts feature will be available but with no templates
29
- }
30
- // Register prompts/list handler
31
- server.setRequestHandler(types_js_1.ListPromptsRequestSchema, () => {
32
- try {
33
- return registry.listPrompts();
34
- }
35
- catch (error) {
36
- if (error instanceof types_js_1.McpError) {
37
- throw error;
38
- }
39
- throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Failed to list prompts: ${error instanceof Error ? error.message : "Unknown error"}`);
40
- }
41
- });
42
- // Register prompts/get handler
43
- server.setRequestHandler(types_js_1.GetPromptRequestSchema, (request) => {
44
- try {
45
- const { name, arguments: args } = request.params;
46
- if (!name) {
47
- throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidRequest, "Prompt name is required");
48
- }
49
- return registry.getPrompt(name, args);
50
- }
51
- catch (error) {
52
- if (error instanceof types_js_1.McpError) {
53
- throw error;
54
- }
55
- throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Failed to get prompt: ${error instanceof Error ? error.message : "Unknown error"}`);
56
- }
57
- });
58
- console.warn("Prompt handlers registered successfully");
59
- }
60
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":";;AAYA,wDAsEC;AAlFD,iEAK4C;AAE5C,6DAAuD;AAEvD;;GAEG;AACI,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,gBAAwB,OAAO;IAE/B,OAAO,CAAC,IAAI,CAAC,6CAA6C,aAAa,KAAK,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,IAAI,oCAAe,CAAC,aAAa,CAAC,CAAC;IAEpD,iDAAiD;IACjD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CACV,uBAAuB,aAAa,CAAC,OAAO,CAAC,MAAM,mBAAmB,CACvE,CAAC;QAEF,4CAA4C;QAC5C,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvC,OAAO,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CACV,kGAAkG,CACnG,CAAC;QACF,+EAA+E;IACjF,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,iBAAiB,CAAC,mCAAwB,EAAE,GAAG,EAAE;QACtD,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACtF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC3D,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAGzC,CAAC;YAEF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,mBAAQ,CAAC,oBAAS,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACpF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;AAC1D,CAAC"}