@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.
- package/README.md +0 -6
- package/dist/server.js +1 -55
- package/dist/server.js.map +1 -1
- package/package.json +14 -15
- package/dist/__tests__/copyBasicClaudeAgents.test.d.ts +0 -2
- package/dist/__tests__/copyBasicClaudeAgents.test.d.ts.map +0 -1
- package/dist/__tests__/copyBasicClaudeAgents.test.js +0 -24
- package/dist/__tests__/copyBasicClaudeAgents.test.js.map +0 -1
- package/dist/prompts/PromptArgument.d.ts +0 -16
- package/dist/prompts/PromptArgument.d.ts.map +0 -1
- package/dist/prompts/PromptArgument.js +0 -3
- package/dist/prompts/PromptArgument.js.map +0 -1
- package/dist/prompts/PromptManager.d.ts +0 -48
- package/dist/prompts/PromptManager.d.ts.map +0 -1
- package/dist/prompts/PromptManager.js +0 -151
- package/dist/prompts/PromptManager.js.map +0 -1
- package/dist/prompts/PromptMessage.d.ts +0 -11
- package/dist/prompts/PromptMessage.d.ts.map +0 -1
- package/dist/prompts/PromptMessage.js +0 -3
- package/dist/prompts/PromptMessage.js.map +0 -1
- package/dist/prompts/PromptParser.d.ts +0 -7
- package/dist/prompts/PromptParser.d.ts.map +0 -1
- package/dist/prompts/PromptParser.js +0 -141
- package/dist/prompts/PromptParser.js.map +0 -1
- package/dist/prompts/PromptRenderer.d.ts +0 -38
- package/dist/prompts/PromptRenderer.d.ts.map +0 -1
- package/dist/prompts/PromptRenderer.js +0 -128
- package/dist/prompts/PromptRenderer.js.map +0 -1
- package/dist/prompts/PromptsRegistry.d.ts +0 -43
- package/dist/prompts/PromptsRegistry.d.ts.map +0 -1
- package/dist/prompts/PromptsRegistry.js +0 -76
- package/dist/prompts/PromptsRegistry.js.map +0 -1
- package/dist/prompts/TrellisPrompt.d.ts +0 -19
- package/dist/prompts/TrellisPrompt.d.ts.map +0 -1
- package/dist/prompts/TrellisPrompt.js +0 -3
- package/dist/prompts/TrellisPrompt.js.map +0 -1
- package/dist/prompts/__tests__/PromptArgument.test.d.ts +0 -2
- package/dist/prompts/__tests__/PromptArgument.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/PromptArgument.test.js +0 -60
- package/dist/prompts/__tests__/PromptArgument.test.js.map +0 -1
- package/dist/prompts/__tests__/PromptManager.test.d.ts +0 -2
- package/dist/prompts/__tests__/PromptManager.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/PromptManager.test.js +0 -364
- package/dist/prompts/__tests__/PromptManager.test.js.map +0 -1
- package/dist/prompts/__tests__/PromptParser.test.d.ts +0 -2
- package/dist/prompts/__tests__/PromptParser.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/PromptParser.test.js +0 -237
- package/dist/prompts/__tests__/PromptParser.test.js.map +0 -1
- package/dist/prompts/__tests__/PromptRenderer.test.d.ts +0 -2
- package/dist/prompts/__tests__/PromptRenderer.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/PromptRenderer.test.js +0 -325
- package/dist/prompts/__tests__/PromptRenderer.test.js.map +0 -1
- package/dist/prompts/__tests__/TrellisPrompt.test.d.ts +0 -2
- package/dist/prompts/__tests__/TrellisPrompt.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/TrellisPrompt.test.js +0 -107
- package/dist/prompts/__tests__/TrellisPrompt.test.js.map +0 -1
- package/dist/prompts/index.d.ts +0 -9
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js +0 -14
- package/dist/prompts/index.js.map +0 -1
- package/dist/prompts/registry.d.ts +0 -6
- package/dist/prompts/registry.d.ts.map +0 -1
- package/dist/prompts/registry.js +0 -60
- package/dist/prompts/registry.js.map +0 -1
- package/dist/resources/basic/prompts/create-epics.md +0 -177
- package/dist/resources/basic/prompts/create-features.md +0 -172
- package/dist/resources/basic/prompts/create-project.md +0 -128
- package/dist/resources/basic/prompts/create-tasks.md +0 -225
- package/dist/resources/basic/prompts/implement-task.md +0 -170
- package/dist/resources/basic-claude/agents/implementation-planner.md +0 -187
- package/dist/resources/basic-claude/agents/issue-verifier.md +0 -154
- package/dist/resources/basic-claude/prompts/create-epics.md +0 -204
- package/dist/resources/basic-claude/prompts/create-features.md +0 -199
- package/dist/resources/basic-claude/prompts/create-project.md +0 -155
- package/dist/resources/basic-claude/prompts/create-tasks.md +0 -252
- package/dist/resources/basic-claude/prompts/implement-task.md +0 -179
|
@@ -1,364 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const globals_1 = require("@jest/globals");
|
|
37
|
-
const fs = __importStar(require("fs/promises"));
|
|
38
|
-
const PromptManager_js_1 = require("../PromptManager.js");
|
|
39
|
-
// Mock fs/promises
|
|
40
|
-
globals_1.jest.mock("fs/promises");
|
|
41
|
-
// Mock parsePromptFile
|
|
42
|
-
globals_1.jest.mock("../PromptParser.js", () => ({
|
|
43
|
-
parsePromptFile: globals_1.jest.fn(),
|
|
44
|
-
}));
|
|
45
|
-
describe("PromptManager", () => {
|
|
46
|
-
let manager;
|
|
47
|
-
let mockAccess;
|
|
48
|
-
let mockReaddir;
|
|
49
|
-
let mockConsoleError;
|
|
50
|
-
beforeEach(() => {
|
|
51
|
-
manager = new PromptManager_js_1.PromptManager(); // Default to "basic" package
|
|
52
|
-
// Setup mocks
|
|
53
|
-
mockAccess = fs.access;
|
|
54
|
-
mockReaddir = fs.readdir;
|
|
55
|
-
mockConsoleError = globals_1.jest
|
|
56
|
-
.spyOn(console, "error")
|
|
57
|
-
.mockImplementation(() => { });
|
|
58
|
-
globals_1.jest.clearAllMocks();
|
|
59
|
-
});
|
|
60
|
-
afterEach(() => {
|
|
61
|
-
mockConsoleError.mockRestore();
|
|
62
|
-
});
|
|
63
|
-
describe("constructor", () => {
|
|
64
|
-
it("should initialize with empty cache", () => {
|
|
65
|
-
expect(manager.list()).toEqual([]);
|
|
66
|
-
expect(manager.size()).toBe(0);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
describe("load", () => {
|
|
70
|
-
it("should handle non-existent directory gracefully", async () => {
|
|
71
|
-
mockAccess.mockRejectedValue(new Error("Directory not found"));
|
|
72
|
-
await manager.load();
|
|
73
|
-
expect(manager.list()).toEqual([]);
|
|
74
|
-
expect(manager.size()).toBe(0);
|
|
75
|
-
expect(mockConsoleError).toHaveBeenCalledWith(expect.stringContaining("Prompts directory does not exist"));
|
|
76
|
-
});
|
|
77
|
-
it("should load valid prompt files", async () => {
|
|
78
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
79
|
-
mockAccess.mockResolvedValue(undefined);
|
|
80
|
-
mockReaddir.mockResolvedValue([
|
|
81
|
-
"test-prompt.md",
|
|
82
|
-
"another.md",
|
|
83
|
-
"readme.txt",
|
|
84
|
-
]);
|
|
85
|
-
const mockPrompt1 = {
|
|
86
|
-
name: "test-prompt",
|
|
87
|
-
description: "A test prompt",
|
|
88
|
-
arguments: [],
|
|
89
|
-
userTemplate: "Test template",
|
|
90
|
-
};
|
|
91
|
-
const mockPrompt2 = {
|
|
92
|
-
name: "another-prompt",
|
|
93
|
-
description: "Another prompt",
|
|
94
|
-
arguments: [],
|
|
95
|
-
userTemplate: "Another template",
|
|
96
|
-
};
|
|
97
|
-
mockParsePromptFile.mockImplementation((filePath) => {
|
|
98
|
-
if (filePath.includes("test-prompt.md")) {
|
|
99
|
-
return Promise.resolve(mockPrompt1);
|
|
100
|
-
}
|
|
101
|
-
else if (filePath.includes("another.md")) {
|
|
102
|
-
return Promise.resolve(mockPrompt2);
|
|
103
|
-
}
|
|
104
|
-
return Promise.reject(new Error("File not found"));
|
|
105
|
-
});
|
|
106
|
-
await manager.load();
|
|
107
|
-
expect(manager.size()).toBe(2);
|
|
108
|
-
expect(manager.has("test-prompt")).toBe(true);
|
|
109
|
-
expect(manager.has("another-prompt")).toBe(true);
|
|
110
|
-
expect(manager.get("test-prompt")).toEqual(mockPrompt1);
|
|
111
|
-
expect(manager.get("another-prompt")).toEqual(mockPrompt2);
|
|
112
|
-
});
|
|
113
|
-
it("should skip invalid prompt files", async () => {
|
|
114
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
115
|
-
mockAccess.mockResolvedValue(undefined);
|
|
116
|
-
mockReaddir.mockResolvedValue(["invalid.md", "valid.md"]);
|
|
117
|
-
const mockValidPrompt = {
|
|
118
|
-
name: "valid-prompt",
|
|
119
|
-
description: "Valid prompt",
|
|
120
|
-
arguments: [],
|
|
121
|
-
userTemplate: "Valid template",
|
|
122
|
-
};
|
|
123
|
-
mockParsePromptFile.mockImplementation((filePath) => {
|
|
124
|
-
if (filePath.includes("invalid.md")) {
|
|
125
|
-
return Promise.reject(new Error("Parse error"));
|
|
126
|
-
}
|
|
127
|
-
else if (filePath.includes("valid.md")) {
|
|
128
|
-
return Promise.resolve(mockValidPrompt);
|
|
129
|
-
}
|
|
130
|
-
return Promise.reject(new Error("File not found"));
|
|
131
|
-
});
|
|
132
|
-
await manager.load();
|
|
133
|
-
expect(manager.size()).toBe(1);
|
|
134
|
-
expect(manager.has("valid-prompt")).toBe(true);
|
|
135
|
-
expect(mockConsoleError).toHaveBeenCalledWith("Failed to parse prompt file invalid.md:", expect.any(Error));
|
|
136
|
-
});
|
|
137
|
-
it("should skip prompts with missing names", async () => {
|
|
138
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
139
|
-
mockAccess.mockResolvedValue(undefined);
|
|
140
|
-
mockReaddir.mockResolvedValue(["no-name.md"]);
|
|
141
|
-
const mockPromptNoName = {
|
|
142
|
-
name: "",
|
|
143
|
-
description: "No name prompt",
|
|
144
|
-
arguments: [],
|
|
145
|
-
userTemplate: "Template",
|
|
146
|
-
};
|
|
147
|
-
mockParsePromptFile.mockResolvedValue(mockPromptNoName);
|
|
148
|
-
await manager.load();
|
|
149
|
-
expect(manager.size()).toBe(0);
|
|
150
|
-
expect(mockConsoleError).toHaveBeenCalledWith("Invalid prompt file no-name.md: missing name");
|
|
151
|
-
});
|
|
152
|
-
it("should handle duplicate prompt names", async () => {
|
|
153
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
154
|
-
mockAccess.mockResolvedValue(undefined);
|
|
155
|
-
mockReaddir.mockResolvedValue(["first.md", "second.md"]);
|
|
156
|
-
const mockDuplicatePrompt = {
|
|
157
|
-
name: "duplicate-name",
|
|
158
|
-
description: "Duplicate prompt",
|
|
159
|
-
arguments: [],
|
|
160
|
-
userTemplate: "Template content",
|
|
161
|
-
};
|
|
162
|
-
mockParsePromptFile.mockResolvedValue(mockDuplicatePrompt);
|
|
163
|
-
await manager.load();
|
|
164
|
-
expect(manager.size()).toBe(1);
|
|
165
|
-
expect(mockConsoleError).toHaveBeenCalledWith('Duplicate prompt name "duplicate-name" found in file second.md');
|
|
166
|
-
});
|
|
167
|
-
it("should only load once", async () => {
|
|
168
|
-
mockAccess.mockResolvedValue(undefined);
|
|
169
|
-
mockReaddir.mockResolvedValue([]);
|
|
170
|
-
await manager.load();
|
|
171
|
-
await manager.load();
|
|
172
|
-
expect(mockReaddir).toHaveBeenCalledTimes(1);
|
|
173
|
-
});
|
|
174
|
-
it("should handle readdir error", async () => {
|
|
175
|
-
mockAccess.mockResolvedValue(undefined);
|
|
176
|
-
mockReaddir.mockRejectedValue(new Error("Read error"));
|
|
177
|
-
await manager.load();
|
|
178
|
-
expect(manager.size()).toBe(0);
|
|
179
|
-
expect(mockConsoleError).toHaveBeenCalledWith("Failed to read prompts directory:", expect.any(Error));
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
describe("list", () => {
|
|
183
|
-
it("should return all loaded prompts", async () => {
|
|
184
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
185
|
-
mockAccess.mockResolvedValue(undefined);
|
|
186
|
-
mockReaddir.mockResolvedValue(["prompt1.md", "prompt2.md"]);
|
|
187
|
-
const mockPrompt1 = {
|
|
188
|
-
name: "prompt-one",
|
|
189
|
-
description: "Prompt One",
|
|
190
|
-
arguments: [],
|
|
191
|
-
userTemplate: "Template one",
|
|
192
|
-
};
|
|
193
|
-
const mockPrompt2 = {
|
|
194
|
-
name: "prompt-two",
|
|
195
|
-
description: "Prompt Two",
|
|
196
|
-
arguments: [],
|
|
197
|
-
userTemplate: "Template two",
|
|
198
|
-
};
|
|
199
|
-
mockParsePromptFile.mockImplementation((filePath) => {
|
|
200
|
-
if (filePath.includes("prompt1.md")) {
|
|
201
|
-
return Promise.resolve(mockPrompt1);
|
|
202
|
-
}
|
|
203
|
-
else if (filePath.includes("prompt2.md")) {
|
|
204
|
-
return Promise.resolve(mockPrompt2);
|
|
205
|
-
}
|
|
206
|
-
return Promise.reject(new Error("File not found"));
|
|
207
|
-
});
|
|
208
|
-
await manager.load();
|
|
209
|
-
const prompts = manager.list();
|
|
210
|
-
expect(prompts).toHaveLength(2);
|
|
211
|
-
expect(prompts.map((p) => p.name).sort()).toEqual([
|
|
212
|
-
"prompt-one",
|
|
213
|
-
"prompt-two",
|
|
214
|
-
]);
|
|
215
|
-
});
|
|
216
|
-
it("should return empty array when no prompts loaded", () => {
|
|
217
|
-
const prompts = manager.list();
|
|
218
|
-
expect(prompts).toEqual([]);
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
describe("get", () => {
|
|
222
|
-
beforeEach(async () => {
|
|
223
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
224
|
-
mockAccess.mockResolvedValue(undefined);
|
|
225
|
-
mockReaddir.mockResolvedValue(["test.md"]);
|
|
226
|
-
const mockPrompt = {
|
|
227
|
-
name: "test-prompt",
|
|
228
|
-
description: "Test description",
|
|
229
|
-
arguments: [],
|
|
230
|
-
userTemplate: "Test template",
|
|
231
|
-
};
|
|
232
|
-
mockParsePromptFile.mockResolvedValue(mockPrompt);
|
|
233
|
-
await manager.load();
|
|
234
|
-
});
|
|
235
|
-
it("should return prompt by name", () => {
|
|
236
|
-
const prompt = manager.get("test-prompt");
|
|
237
|
-
expect(prompt).toBeDefined();
|
|
238
|
-
expect(prompt?.name).toBe("test-prompt");
|
|
239
|
-
expect(prompt?.description).toBe("Test description");
|
|
240
|
-
expect(prompt?.userTemplate).toBe("Test template");
|
|
241
|
-
});
|
|
242
|
-
it("should return undefined for non-existent prompt", () => {
|
|
243
|
-
const prompt = manager.get("non-existent");
|
|
244
|
-
expect(prompt).toBeUndefined();
|
|
245
|
-
});
|
|
246
|
-
});
|
|
247
|
-
describe("has", () => {
|
|
248
|
-
beforeEach(async () => {
|
|
249
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
250
|
-
mockAccess.mockResolvedValue(undefined);
|
|
251
|
-
mockReaddir.mockResolvedValue(["test.md"]);
|
|
252
|
-
const mockPrompt = {
|
|
253
|
-
name: "test-prompt",
|
|
254
|
-
description: "Test prompt",
|
|
255
|
-
arguments: [],
|
|
256
|
-
userTemplate: "Test template",
|
|
257
|
-
};
|
|
258
|
-
mockParsePromptFile.mockResolvedValue(mockPrompt);
|
|
259
|
-
await manager.load();
|
|
260
|
-
});
|
|
261
|
-
it("should return true for existing prompt", () => {
|
|
262
|
-
expect(manager.has("test-prompt")).toBe(true);
|
|
263
|
-
});
|
|
264
|
-
it("should return false for non-existent prompt", () => {
|
|
265
|
-
expect(manager.has("non-existent")).toBe(false);
|
|
266
|
-
});
|
|
267
|
-
});
|
|
268
|
-
describe("size", () => {
|
|
269
|
-
it("should return 0 for empty cache", () => {
|
|
270
|
-
expect(manager.size()).toBe(0);
|
|
271
|
-
});
|
|
272
|
-
it("should return correct count after loading", async () => {
|
|
273
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
274
|
-
mockAccess.mockResolvedValue(undefined);
|
|
275
|
-
mockReaddir.mockResolvedValue(["prompt1.md", "prompt2.md"]);
|
|
276
|
-
mockParsePromptFile.mockImplementation((filePath) => {
|
|
277
|
-
const name = filePath.includes("prompt1.md") ? "prompt1" : "prompt2";
|
|
278
|
-
return Promise.resolve({
|
|
279
|
-
name,
|
|
280
|
-
description: `${name} description`,
|
|
281
|
-
arguments: [],
|
|
282
|
-
userTemplate: `${name} template`,
|
|
283
|
-
});
|
|
284
|
-
});
|
|
285
|
-
await manager.load();
|
|
286
|
-
expect(manager.size()).toBe(2);
|
|
287
|
-
});
|
|
288
|
-
});
|
|
289
|
-
describe("clear", () => {
|
|
290
|
-
it("should clear all cached prompts", async () => {
|
|
291
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
292
|
-
mockAccess.mockResolvedValue(undefined);
|
|
293
|
-
mockReaddir.mockResolvedValue(["test.md"]);
|
|
294
|
-
mockParsePromptFile.mockResolvedValue({
|
|
295
|
-
name: "test",
|
|
296
|
-
description: "Test",
|
|
297
|
-
arguments: [],
|
|
298
|
-
userTemplate: "Test",
|
|
299
|
-
});
|
|
300
|
-
await manager.load();
|
|
301
|
-
expect(manager.size()).toBeGreaterThan(0);
|
|
302
|
-
manager.clear();
|
|
303
|
-
expect(manager.size()).toBe(0);
|
|
304
|
-
expect(manager.list()).toEqual([]);
|
|
305
|
-
expect(manager.has("test")).toBe(false);
|
|
306
|
-
expect(manager.get("test")).toBeUndefined();
|
|
307
|
-
});
|
|
308
|
-
it("should allow loading again after clear", async () => {
|
|
309
|
-
manager.clear();
|
|
310
|
-
mockAccess.mockResolvedValue(undefined);
|
|
311
|
-
mockReaddir.mockResolvedValue([]);
|
|
312
|
-
await manager.load();
|
|
313
|
-
// Should not throw and should complete normally
|
|
314
|
-
expect(manager.size()).toBe(0);
|
|
315
|
-
});
|
|
316
|
-
});
|
|
317
|
-
describe("promptPackage parameter", () => {
|
|
318
|
-
it("should default to 'basic' package when no parameter provided", () => {
|
|
319
|
-
const defaultManager = new PromptManager_js_1.PromptManager();
|
|
320
|
-
// Internal state not exposed, but we can test behavior through load()
|
|
321
|
-
expect(defaultManager).toBeDefined();
|
|
322
|
-
});
|
|
323
|
-
it("should accept custom package parameter", () => {
|
|
324
|
-
const customManager = new PromptManager_js_1.PromptManager("basic-claude");
|
|
325
|
-
expect(customManager).toBeDefined();
|
|
326
|
-
});
|
|
327
|
-
it("should use correct path for 'basic' package", async () => {
|
|
328
|
-
const basicManager = new PromptManager_js_1.PromptManager("basic");
|
|
329
|
-
mockAccess.mockRejectedValue(new Error("Directory not found"));
|
|
330
|
-
await basicManager.load();
|
|
331
|
-
// Verify the correct path was checked (basic package)
|
|
332
|
-
expect(mockAccess).toHaveBeenCalledWith(expect.stringContaining("resources/basic/prompts"));
|
|
333
|
-
});
|
|
334
|
-
it("should use correct path for 'basic-claude' package", async () => {
|
|
335
|
-
const claudeManager = new PromptManager_js_1.PromptManager("basic-claude");
|
|
336
|
-
mockAccess.mockRejectedValue(new Error("Directory not found"));
|
|
337
|
-
await claudeManager.load();
|
|
338
|
-
// Verify the correct path was checked (basic-claude package)
|
|
339
|
-
expect(mockAccess).toHaveBeenCalledWith(expect.stringContaining("resources/basic-claude/prompts"));
|
|
340
|
-
});
|
|
341
|
-
it("should include package name in error messages", async () => {
|
|
342
|
-
const claudeManager = new PromptManager_js_1.PromptManager("basic-claude");
|
|
343
|
-
mockAccess.mockRejectedValue(new Error("Directory not found"));
|
|
344
|
-
await claudeManager.load();
|
|
345
|
-
expect(mockConsoleError).toHaveBeenCalledWith(expect.stringContaining("for package 'basic-claude'"));
|
|
346
|
-
});
|
|
347
|
-
it("should include package name in success messages", async () => {
|
|
348
|
-
const mockParsePromptFile = require("../PromptParser.js").parsePromptFile;
|
|
349
|
-
const claudeManager = new PromptManager_js_1.PromptManager("basic-claude");
|
|
350
|
-
mockAccess.mockResolvedValue(undefined);
|
|
351
|
-
mockReaddir.mockResolvedValue(["test.md"]);
|
|
352
|
-
const mockPrompt = {
|
|
353
|
-
name: "test-prompt",
|
|
354
|
-
description: "Test prompt",
|
|
355
|
-
arguments: [],
|
|
356
|
-
userTemplate: "Test template",
|
|
357
|
-
};
|
|
358
|
-
mockParsePromptFile.mockResolvedValue(mockPrompt);
|
|
359
|
-
await claudeManager.load();
|
|
360
|
-
expect(mockConsoleError).toHaveBeenCalledWith(expect.stringContaining("from package 'basic-claude'"));
|
|
361
|
-
});
|
|
362
|
-
});
|
|
363
|
-
});
|
|
364
|
-
//# sourceMappingURL=PromptManager.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PromptManager.test.js","sourceRoot":"","sources":["../../../src/prompts/__tests__/PromptManager.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PromptParser.test.d.ts","sourceRoot":"","sources":["../../../src/prompts/__tests__/PromptParser.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const promises_1 = require("fs/promises");
|
|
4
|
-
const PromptParser_1 = require("../PromptParser");
|
|
5
|
-
jest.mock("fs/promises");
|
|
6
|
-
describe("PromptParser", () => {
|
|
7
|
-
const mockReadFile = promises_1.readFile;
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
jest.clearAllMocks();
|
|
10
|
-
});
|
|
11
|
-
describe("parsePromptFile", () => {
|
|
12
|
-
it("should parse a valid prompt file with all fields", async () => {
|
|
13
|
-
const mockContent = `---
|
|
14
|
-
description: "Create a new project"
|
|
15
|
-
title: "Project Creation"
|
|
16
|
-
args:
|
|
17
|
-
- name: spec
|
|
18
|
-
type: string
|
|
19
|
-
required: true
|
|
20
|
-
description: "Project specification"
|
|
21
|
-
- name: verbose
|
|
22
|
-
type: boolean
|
|
23
|
-
required: false
|
|
24
|
-
description: "Enable verbose output"
|
|
25
|
-
---
|
|
26
|
-
<rules>
|
|
27
|
-
Never access .trellis directly
|
|
28
|
-
Use MCP tools only
|
|
29
|
-
</rules>
|
|
30
|
-
|
|
31
|
-
# Create Project
|
|
32
|
-
|
|
33
|
-
This is the prompt body with $ARGUMENTS placeholder.`;
|
|
34
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
35
|
-
const result = await (0, PromptParser_1.parsePromptFile)("/path/to/create-project.md");
|
|
36
|
-
expect(result).toEqual({
|
|
37
|
-
name: "create-project",
|
|
38
|
-
title: "Project Creation",
|
|
39
|
-
description: "Create a new project",
|
|
40
|
-
arguments: [
|
|
41
|
-
{
|
|
42
|
-
name: "spec",
|
|
43
|
-
type: "string",
|
|
44
|
-
required: true,
|
|
45
|
-
description: "Project specification",
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: "verbose",
|
|
49
|
-
type: "boolean",
|
|
50
|
-
required: false,
|
|
51
|
-
description: "Enable verbose output",
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
userTemplate: "<rules>\nNever access .trellis directly\nUse MCP tools only\n</rules>\n\n# Create Project\n\nThis is the prompt body with $ARGUMENTS placeholder.",
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
it("should use default input argument when args not specified", async () => {
|
|
58
|
-
const mockContent = `---
|
|
59
|
-
description: "Simple prompt"
|
|
60
|
-
---
|
|
61
|
-
Prompt body content`;
|
|
62
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
63
|
-
const result = await (0, PromptParser_1.parsePromptFile)("/path/to/simple.md");
|
|
64
|
-
expect(result.arguments).toEqual([
|
|
65
|
-
{
|
|
66
|
-
name: "input",
|
|
67
|
-
required: false,
|
|
68
|
-
description: "Free-text input",
|
|
69
|
-
},
|
|
70
|
-
]);
|
|
71
|
-
});
|
|
72
|
-
it("should handle missing optional fields", async () => {
|
|
73
|
-
const mockContent = `---
|
|
74
|
-
description: "Minimal prompt"
|
|
75
|
-
---
|
|
76
|
-
Body content`;
|
|
77
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
78
|
-
const result = await (0, PromptParser_1.parsePromptFile)("/path/to/minimal.md");
|
|
79
|
-
expect(result.title).toBeUndefined();
|
|
80
|
-
});
|
|
81
|
-
it("should keep rules blocks inline in userTemplate", async () => {
|
|
82
|
-
const mockContent = `---
|
|
83
|
-
description: "Multiple rules"
|
|
84
|
-
---
|
|
85
|
-
<rules>First rule</rules>
|
|
86
|
-
Content here
|
|
87
|
-
<rules>Second rule</rules>
|
|
88
|
-
More content`;
|
|
89
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
90
|
-
const result = await (0, PromptParser_1.parsePromptFile)("/path/to/multiple-rules.md");
|
|
91
|
-
expect(result.userTemplate).toBe("<rules>First rule</rules>\nContent here\n<rules>Second rule</rules>\nMore content");
|
|
92
|
-
});
|
|
93
|
-
it("should keep rules tags with any case inline", async () => {
|
|
94
|
-
const mockContent = `---
|
|
95
|
-
description: "Case test"
|
|
96
|
-
---
|
|
97
|
-
<RULES>Upper case</RULES>
|
|
98
|
-
Some content here
|
|
99
|
-
<Rules>Mixed case</Rules>`;
|
|
100
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
101
|
-
const result = await (0, PromptParser_1.parsePromptFile)("/path/to/case-test.md");
|
|
102
|
-
expect(result.userTemplate).toBe("<RULES>Upper case</RULES>\nSome content here\n<Rules>Mixed case</Rules>");
|
|
103
|
-
});
|
|
104
|
-
it("should keep empty rules blocks inline", async () => {
|
|
105
|
-
const mockContent = `---
|
|
106
|
-
description: "Empty rules"
|
|
107
|
-
---
|
|
108
|
-
<rules></rules>
|
|
109
|
-
Content only`;
|
|
110
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
111
|
-
const result = await (0, PromptParser_1.parsePromptFile)("/path/to/empty-rules.md");
|
|
112
|
-
expect(result.userTemplate).toBe("<rules></rules>\nContent only");
|
|
113
|
-
});
|
|
114
|
-
it("should generate kebab-case names from filenames", async () => {
|
|
115
|
-
const mockContent = `---
|
|
116
|
-
description: "Test naming"
|
|
117
|
-
---
|
|
118
|
-
Content`;
|
|
119
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
120
|
-
const result = await (0, PromptParser_1.parsePromptFile)("/path/to/create_project_task.md");
|
|
121
|
-
expect(result.name).toBe("create-project-task");
|
|
122
|
-
});
|
|
123
|
-
it("should throw error for missing description", async () => {
|
|
124
|
-
const mockContent = `---
|
|
125
|
-
title: "No description"
|
|
126
|
-
---
|
|
127
|
-
Body`;
|
|
128
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
129
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/invalid.md")).rejects.toThrow("Missing required 'description' field");
|
|
130
|
-
});
|
|
131
|
-
it("should throw error for invalid YAML", async () => {
|
|
132
|
-
const mockContent = `---
|
|
133
|
-
description: "Invalid YAML
|
|
134
|
-
missing quote
|
|
135
|
-
---
|
|
136
|
-
Body`;
|
|
137
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
138
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/invalid.md")).rejects.toThrow("Invalid YAML frontmatter");
|
|
139
|
-
});
|
|
140
|
-
it("should throw error for missing frontmatter", async () => {
|
|
141
|
-
const mockContent = `No frontmatter here
|
|
142
|
-
Just plain content`;
|
|
143
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
144
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/no-frontmatter.md")).rejects.toThrow("Expected YAML frontmatter delimited by --- markers");
|
|
145
|
-
});
|
|
146
|
-
it("should throw error for duplicate argument names", async () => {
|
|
147
|
-
const mockContent = `---
|
|
148
|
-
description: "Duplicate args"
|
|
149
|
-
args:
|
|
150
|
-
- name: input
|
|
151
|
-
required: true
|
|
152
|
-
description: "First input"
|
|
153
|
-
- name: input
|
|
154
|
-
required: false
|
|
155
|
-
description: "Duplicate input"
|
|
156
|
-
---
|
|
157
|
-
Body`;
|
|
158
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
159
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/duplicate.md")).rejects.toThrow("Duplicate argument name 'input'");
|
|
160
|
-
});
|
|
161
|
-
it("should throw error for invalid argument type", async () => {
|
|
162
|
-
const mockContent = `---
|
|
163
|
-
description: "Invalid type"
|
|
164
|
-
args:
|
|
165
|
-
- name: test
|
|
166
|
-
type: number
|
|
167
|
-
required: true
|
|
168
|
-
description: "Invalid type"
|
|
169
|
-
---
|
|
170
|
-
Body`;
|
|
171
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
172
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/invalid-type.md")).rejects.toThrow("Invalid argument type 'number'");
|
|
173
|
-
});
|
|
174
|
-
it("should throw error for non-kebab-case filename", async () => {
|
|
175
|
-
const mockContent = `---
|
|
176
|
-
description: "Valid content"
|
|
177
|
-
---
|
|
178
|
-
Body`;
|
|
179
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
180
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/123invalid.md")).rejects.toThrow("Must be kebab-case");
|
|
181
|
-
});
|
|
182
|
-
it("should throw error for empty body", async () => {
|
|
183
|
-
const mockContent = `---
|
|
184
|
-
description: "No body"
|
|
185
|
-
---
|
|
186
|
-
`;
|
|
187
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
188
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/empty-body.md")).rejects.toThrow("Empty prompt body");
|
|
189
|
-
});
|
|
190
|
-
it("should handle file read errors", async () => {
|
|
191
|
-
mockReadFile.mockRejectedValue(new Error("File not found"));
|
|
192
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/missing.md")).rejects.toThrow("Failed to parse prompt file /path/to/missing.md: File not found");
|
|
193
|
-
});
|
|
194
|
-
it("should handle invalid args structure", async () => {
|
|
195
|
-
const mockContent = `---
|
|
196
|
-
description: "Invalid args"
|
|
197
|
-
args: "not an array"
|
|
198
|
-
---
|
|
199
|
-
Body`;
|
|
200
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
201
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/invalid-args.md")).rejects.toThrow("Invalid 'args' field: Expected an array");
|
|
202
|
-
});
|
|
203
|
-
it("should handle invalid argument object", async () => {
|
|
204
|
-
const mockContent = `---
|
|
205
|
-
description: "Invalid arg object"
|
|
206
|
-
args:
|
|
207
|
-
- "not an object"
|
|
208
|
-
---
|
|
209
|
-
Body`;
|
|
210
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
211
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/invalid-arg-obj.md")).rejects.toThrow("Invalid argument at index 0: Expected an object");
|
|
212
|
-
});
|
|
213
|
-
it("should handle missing argument name", async () => {
|
|
214
|
-
const mockContent = `---
|
|
215
|
-
description: "Missing arg name"
|
|
216
|
-
args:
|
|
217
|
-
- required: true
|
|
218
|
-
description: "No name"
|
|
219
|
-
---
|
|
220
|
-
Body`;
|
|
221
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
222
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/missing-arg-name.md")).rejects.toThrow("Missing argument name");
|
|
223
|
-
});
|
|
224
|
-
it("should handle missing argument description", async () => {
|
|
225
|
-
const mockContent = `---
|
|
226
|
-
description: "Missing arg desc"
|
|
227
|
-
args:
|
|
228
|
-
- name: test
|
|
229
|
-
required: true
|
|
230
|
-
---
|
|
231
|
-
Body`;
|
|
232
|
-
mockReadFile.mockResolvedValue(mockContent);
|
|
233
|
-
await expect((0, PromptParser_1.parsePromptFile)("/path/to/missing-arg-desc.md")).rejects.toThrow("Missing description for argument 'test'");
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
//# sourceMappingURL=PromptParser.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PromptParser.test.js","sourceRoot":"","sources":["../../../src/prompts/__tests__/PromptParser.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PromptRenderer.test.d.ts","sourceRoot":"","sources":["../../../src/prompts/__tests__/PromptRenderer.test.ts"],"names":[],"mappings":""}
|