@agllama/mcp 0.6.17 → 0.6.19
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/dist/api-client.d.ts +35 -2
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +145 -1
- package/dist/api-client.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +82 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/__tests__/agents.test.d.ts +2 -0
- package/dist/tools/__tests__/agents.test.d.ts.map +1 -0
- package/dist/tools/__tests__/agents.test.js +393 -0
- package/dist/tools/__tests__/agents.test.js.map +1 -0
- package/dist/tools/__tests__/skills.test.d.ts +2 -0
- package/dist/tools/__tests__/skills.test.d.ts.map +1 -0
- package/dist/tools/__tests__/skills.test.js +177 -0
- package/dist/tools/__tests__/skills.test.js.map +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/prompts.d.ts +152 -0
- package/dist/tools/prompts.d.ts.map +1 -0
- package/dist/tools/prompts.js +470 -0
- package/dist/tools/prompts.js.map +1 -0
- package/dist/tools/skills.d.ts +312 -1
- package/dist/tools/skills.d.ts.map +1 -1
- package/dist/tools/skills.js +513 -1
- package/dist/tools/skills.js.map +1 -1
- package/dist/types.d.ts +65 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient, LlamaApiError } from '../api-client.js';
|
|
3
|
+
import { getSessionDefaults } from './session.js';
|
|
4
|
+
function promptResult(p) {
|
|
5
|
+
return {
|
|
6
|
+
id: p.id,
|
|
7
|
+
name: p.name,
|
|
8
|
+
description: p.description,
|
|
9
|
+
scope: p.scope,
|
|
10
|
+
folder: p.folder,
|
|
11
|
+
sourcePromptId: p.sourcePromptId,
|
|
12
|
+
updatedAt: p.updatedAt,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
// ============================================
|
|
16
|
+
// llama_run_prompt
|
|
17
|
+
// ============================================
|
|
18
|
+
export const runPromptToolName = 'llama_run_prompt';
|
|
19
|
+
export const runPromptToolDescription = `Fetch a prompt from the Prompt Library and return its markdown content.
|
|
20
|
+
|
|
21
|
+
Provide either \`promptId\` (UUID) or \`name\`. When both are provided, \`promptId\` wins. When only \`name\` is given the server resolves it with priority personal > project > organization within the session's org/project context.
|
|
22
|
+
|
|
23
|
+
The returned \`content\` field is a markdown prompt that you should begin following immediately as instructions.`;
|
|
24
|
+
export const runPromptToolSchema = z.object({
|
|
25
|
+
orgSlug: z.string().optional().describe('Organization slug (session default)'),
|
|
26
|
+
projectKey: z.string().optional().describe('Project key (session default). Used for name resolution when only name is provided.'),
|
|
27
|
+
promptId: z.string().uuid().optional().describe('Prompt UUID'),
|
|
28
|
+
name: z.string().optional().describe('Prompt name to resolve against the session org/project'),
|
|
29
|
+
});
|
|
30
|
+
export async function executeRunPrompt(input) {
|
|
31
|
+
try {
|
|
32
|
+
if (!input.promptId && !input.name) {
|
|
33
|
+
return JSON.stringify({
|
|
34
|
+
success: false,
|
|
35
|
+
error: 'At least one of promptId or name is required',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
const session = await getSessionDefaults();
|
|
39
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
40
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
41
|
+
if (!orgSlug) {
|
|
42
|
+
return JSON.stringify({
|
|
43
|
+
success: false,
|
|
44
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const client = getApiClient();
|
|
48
|
+
// Resolve by id first
|
|
49
|
+
if (input.promptId) {
|
|
50
|
+
const prompt = await client.getPrompt(orgSlug, input.promptId, projectKey);
|
|
51
|
+
return JSON.stringify({
|
|
52
|
+
success: true,
|
|
53
|
+
prompt: {
|
|
54
|
+
id: prompt.id,
|
|
55
|
+
name: prompt.name,
|
|
56
|
+
description: prompt.description,
|
|
57
|
+
scope: prompt.scope,
|
|
58
|
+
folder: prompt.folder,
|
|
59
|
+
sourcePromptId: prompt.sourcePromptId,
|
|
60
|
+
content: prompt.content,
|
|
61
|
+
},
|
|
62
|
+
}, null, 2);
|
|
63
|
+
}
|
|
64
|
+
// Resolve by name: list prompts in the current scope and pick by priority personal > project > org
|
|
65
|
+
const prompts = projectKey
|
|
66
|
+
? await client.listProjectPrompts(orgSlug, projectKey)
|
|
67
|
+
: await client.listOrgPrompts(orgSlug);
|
|
68
|
+
const matches = prompts.filter((p) => p.name === input.name);
|
|
69
|
+
if (matches.length === 0) {
|
|
70
|
+
return JSON.stringify({
|
|
71
|
+
success: false,
|
|
72
|
+
error: `No prompt found with name "${input.name}" in the current scope.`,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const priority = { personal: 0, project: 1, organization: 2 };
|
|
76
|
+
matches.sort((a, b) => priority[a.scope] - priority[b.scope]);
|
|
77
|
+
const winner = matches[0];
|
|
78
|
+
// Summary list omits content. Fetch the detail to get it.
|
|
79
|
+
const detail = await client.getPrompt(orgSlug, winner.id, projectKey);
|
|
80
|
+
return JSON.stringify({
|
|
81
|
+
success: true,
|
|
82
|
+
prompt: {
|
|
83
|
+
id: detail.id,
|
|
84
|
+
name: detail.name,
|
|
85
|
+
description: detail.description,
|
|
86
|
+
scope: detail.scope,
|
|
87
|
+
folder: detail.folder,
|
|
88
|
+
sourcePromptId: detail.sourcePromptId,
|
|
89
|
+
content: detail.content,
|
|
90
|
+
},
|
|
91
|
+
resolution: {
|
|
92
|
+
searchedBy: 'name',
|
|
93
|
+
matchedScope: winner.scope,
|
|
94
|
+
candidateCount: matches.length,
|
|
95
|
+
},
|
|
96
|
+
}, null, 2);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
if (error instanceof LlamaApiError) {
|
|
100
|
+
return JSON.stringify({
|
|
101
|
+
success: false,
|
|
102
|
+
error: `Failed to run prompt: ${error.message}`,
|
|
103
|
+
statusCode: error.statusCode,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return JSON.stringify({
|
|
107
|
+
success: false,
|
|
108
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// ============================================
|
|
113
|
+
// llama_list_prompts
|
|
114
|
+
// ============================================
|
|
115
|
+
export const listPromptsToolName = 'llama_list_prompts';
|
|
116
|
+
export const listPromptsToolDescription = `List prompts visible in the current org/project scope. Returns summary objects without prompt body; call \`llama_run_prompt\` to fetch content.`;
|
|
117
|
+
export const listPromptsToolSchema = z.object({
|
|
118
|
+
orgSlug: z.string().optional().describe('Organization slug (session default)'),
|
|
119
|
+
projectKey: z.string().optional().describe('Project key (session default)'),
|
|
120
|
+
scope: z
|
|
121
|
+
.enum(['organization', 'project', 'personal'])
|
|
122
|
+
.optional()
|
|
123
|
+
.describe('Filter by scope. Omit to see everything visible.'),
|
|
124
|
+
folderId: z.string().uuid().optional().describe('Filter by folder id'),
|
|
125
|
+
search: z.string().optional().describe('Case-insensitive substring match against name or description'),
|
|
126
|
+
includeHidden: z
|
|
127
|
+
.preprocess((val) => (typeof val === 'string' ? val.toLowerCase() === 'true' : val), z.boolean())
|
|
128
|
+
.optional()
|
|
129
|
+
.describe('Include prompts the caller has hidden (default: false)'),
|
|
130
|
+
});
|
|
131
|
+
export async function executeListPrompts(input) {
|
|
132
|
+
try {
|
|
133
|
+
const session = await getSessionDefaults();
|
|
134
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
135
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
136
|
+
if (!orgSlug) {
|
|
137
|
+
return JSON.stringify({
|
|
138
|
+
success: false,
|
|
139
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
const client = getApiClient();
|
|
143
|
+
const raw = projectKey
|
|
144
|
+
? await client.listProjectPrompts(orgSlug, projectKey, input.includeHidden)
|
|
145
|
+
: await client.listOrgPrompts(orgSlug, input.includeHidden);
|
|
146
|
+
let prompts = raw;
|
|
147
|
+
if (input.scope)
|
|
148
|
+
prompts = prompts.filter((p) => p.scope === input.scope);
|
|
149
|
+
if (input.folderId)
|
|
150
|
+
prompts = prompts.filter((p) => p.folderId === input.folderId);
|
|
151
|
+
if (input.search) {
|
|
152
|
+
const needle = input.search.toLowerCase();
|
|
153
|
+
prompts = prompts.filter((p) => p.name.toLowerCase().includes(needle) ||
|
|
154
|
+
(p.description ?? '').toLowerCase().includes(needle));
|
|
155
|
+
}
|
|
156
|
+
return JSON.stringify({
|
|
157
|
+
success: true,
|
|
158
|
+
count: prompts.length,
|
|
159
|
+
prompts: prompts.map((p) => ({
|
|
160
|
+
id: p.id,
|
|
161
|
+
name: p.name,
|
|
162
|
+
description: p.description,
|
|
163
|
+
scope: p.scope,
|
|
164
|
+
folder: p.folder,
|
|
165
|
+
sourcePromptId: p.sourcePromptId,
|
|
166
|
+
updatedAt: p.updatedAt,
|
|
167
|
+
...(input.includeHidden && { isHidden: p.isHidden, hideScope: p.hideScope }),
|
|
168
|
+
})),
|
|
169
|
+
}, null, 2);
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
if (error instanceof LlamaApiError) {
|
|
173
|
+
return JSON.stringify({
|
|
174
|
+
success: false,
|
|
175
|
+
error: `Failed to list prompts: ${error.message}`,
|
|
176
|
+
statusCode: error.statusCode,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
return JSON.stringify({
|
|
180
|
+
success: false,
|
|
181
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// ============================================
|
|
186
|
+
// llama_create_prompt
|
|
187
|
+
// ============================================
|
|
188
|
+
export const createPromptToolName = 'llama_create_prompt';
|
|
189
|
+
export const createPromptToolDescription = `Create a new prompt in the Prompt Library.
|
|
190
|
+
|
|
191
|
+
Scope: "organization" writes to the org library; "project" writes to the session project library (requires projectKey in session); "personal" creates a prompt visible only to the calling user.`;
|
|
192
|
+
export const createPromptToolSchema = z.object({
|
|
193
|
+
orgSlug: z.string().optional().describe('Organization slug (session default)'),
|
|
194
|
+
projectKey: z.string().optional().describe('Project key (session default). Required for scope="project".'),
|
|
195
|
+
scope: z.enum(['organization', 'project', 'personal']).describe('Where the prompt lives'),
|
|
196
|
+
name: z.string().min(1).max(120).describe('Prompt name'),
|
|
197
|
+
description: z.string().max(500).optional().describe('Short description'),
|
|
198
|
+
content: z.string().min(1).max(100_000).describe('Markdown prompt body'),
|
|
199
|
+
folderId: z.string().uuid().optional().describe('Folder id (must match scope)'),
|
|
200
|
+
sourcePromptId: z.string().uuid().optional().describe('Source prompt id if this is a copy'),
|
|
201
|
+
});
|
|
202
|
+
export async function executeCreatePrompt(input) {
|
|
203
|
+
try {
|
|
204
|
+
const session = await getSessionDefaults();
|
|
205
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
206
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
207
|
+
if (!orgSlug) {
|
|
208
|
+
return JSON.stringify({
|
|
209
|
+
success: false,
|
|
210
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
if (input.scope === 'project' && !projectKey) {
|
|
214
|
+
return JSON.stringify({
|
|
215
|
+
success: false,
|
|
216
|
+
error: 'projectKey is required for scope="project". Either provide it or set it via llama_set_context.',
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
const client = getApiClient();
|
|
220
|
+
const body = {
|
|
221
|
+
name: input.name,
|
|
222
|
+
description: input.description ?? null,
|
|
223
|
+
content: input.content,
|
|
224
|
+
folderId: input.folderId ?? null,
|
|
225
|
+
sourcePromptId: input.sourcePromptId ?? null,
|
|
226
|
+
};
|
|
227
|
+
let prompt;
|
|
228
|
+
if (input.scope === 'organization') {
|
|
229
|
+
prompt = await client.createOrgPrompt(orgSlug, body);
|
|
230
|
+
}
|
|
231
|
+
else if (input.scope === 'project') {
|
|
232
|
+
prompt = await client.createProjectPrompt(orgSlug, projectKey, body);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
prompt = await client.createPersonalPrompt(orgSlug, body, projectKey);
|
|
236
|
+
}
|
|
237
|
+
return JSON.stringify({
|
|
238
|
+
success: true,
|
|
239
|
+
message: `Prompt "${prompt.name}" created`,
|
|
240
|
+
prompt: promptResult(prompt),
|
|
241
|
+
}, null, 2);
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
if (error instanceof LlamaApiError) {
|
|
245
|
+
return JSON.stringify({
|
|
246
|
+
success: false,
|
|
247
|
+
error: `Failed to create prompt: ${error.message}`,
|
|
248
|
+
statusCode: error.statusCode,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
return JSON.stringify({
|
|
252
|
+
success: false,
|
|
253
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// ============================================
|
|
258
|
+
// llama_update_prompt
|
|
259
|
+
// ============================================
|
|
260
|
+
export const updatePromptToolName = 'llama_update_prompt';
|
|
261
|
+
export const updatePromptToolDescription = `Update an existing prompt. Partial update — only fields you pass are changed.`;
|
|
262
|
+
// Note: `description` and `folderId` use `.nullish()` (rather than
|
|
263
|
+
// `.optional().nullable()`) so zod-to-json-schema emits a proper optional key
|
|
264
|
+
// — `.optional().nullable()` marks the key as required in the JSON schema
|
|
265
|
+
// even though the TS type is optional, which forces MCP callers to pass
|
|
266
|
+
// explicit nulls for every update.
|
|
267
|
+
export const updatePromptToolSchema = z.object({
|
|
268
|
+
orgSlug: z.string().optional().describe('Organization slug (session default)'),
|
|
269
|
+
projectKey: z.string().optional().describe('Project key (session default). Used when the prompt lives in a project.'),
|
|
270
|
+
promptId: z.string().uuid().describe('Prompt UUID'),
|
|
271
|
+
name: z.string().min(1).max(120).optional(),
|
|
272
|
+
description: z.string().max(500).nullish(),
|
|
273
|
+
content: z.string().min(1).max(100_000).optional(),
|
|
274
|
+
folderId: z.string().uuid().nullish(),
|
|
275
|
+
});
|
|
276
|
+
export async function executeUpdatePrompt(input) {
|
|
277
|
+
try {
|
|
278
|
+
const session = await getSessionDefaults();
|
|
279
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
280
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
281
|
+
if (!orgSlug) {
|
|
282
|
+
return JSON.stringify({
|
|
283
|
+
success: false,
|
|
284
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
const client = getApiClient();
|
|
288
|
+
const patch = {};
|
|
289
|
+
if (input.name !== undefined)
|
|
290
|
+
patch.name = input.name;
|
|
291
|
+
if (input.description !== undefined)
|
|
292
|
+
patch.description = input.description;
|
|
293
|
+
if (input.content !== undefined)
|
|
294
|
+
patch.content = input.content;
|
|
295
|
+
if (input.folderId !== undefined)
|
|
296
|
+
patch.folderId = input.folderId;
|
|
297
|
+
const prompt = await client.updatePrompt(orgSlug, input.promptId, patch, projectKey);
|
|
298
|
+
return JSON.stringify({
|
|
299
|
+
success: true,
|
|
300
|
+
message: `Prompt "${prompt.name}" updated`,
|
|
301
|
+
prompt: promptResult(prompt),
|
|
302
|
+
}, null, 2);
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
if (error instanceof LlamaApiError) {
|
|
306
|
+
return JSON.stringify({
|
|
307
|
+
success: false,
|
|
308
|
+
error: `Failed to update prompt: ${error.message}`,
|
|
309
|
+
statusCode: error.statusCode,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
return JSON.stringify({
|
|
313
|
+
success: false,
|
|
314
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
// ============================================
|
|
319
|
+
// llama_delete_prompt
|
|
320
|
+
// ============================================
|
|
321
|
+
export const deletePromptToolName = 'llama_delete_prompt';
|
|
322
|
+
export const deletePromptToolDescription = `Soft-delete a prompt (sets deletedAt; can be restored with a direct DB query if needed).`;
|
|
323
|
+
export const deletePromptToolSchema = z.object({
|
|
324
|
+
orgSlug: z.string().optional().describe('Organization slug (session default)'),
|
|
325
|
+
projectKey: z.string().optional().describe('Project key (session default). Used when the prompt lives in a project.'),
|
|
326
|
+
promptId: z.string().uuid().describe('Prompt UUID'),
|
|
327
|
+
});
|
|
328
|
+
export async function executeDeletePrompt(input) {
|
|
329
|
+
try {
|
|
330
|
+
const session = await getSessionDefaults();
|
|
331
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
332
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
333
|
+
if (!orgSlug) {
|
|
334
|
+
return JSON.stringify({
|
|
335
|
+
success: false,
|
|
336
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
const client = getApiClient();
|
|
340
|
+
await client.deletePrompt(orgSlug, input.promptId, projectKey);
|
|
341
|
+
return JSON.stringify({ success: true, deleted: true, promptId: input.promptId });
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
if (error instanceof LlamaApiError) {
|
|
345
|
+
return JSON.stringify({
|
|
346
|
+
success: false,
|
|
347
|
+
error: `Failed to delete prompt: ${error.message}`,
|
|
348
|
+
statusCode: error.statusCode,
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
return JSON.stringify({
|
|
352
|
+
success: false,
|
|
353
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
// ============================================
|
|
358
|
+
// llama_manage_prompt_folder
|
|
359
|
+
// ============================================
|
|
360
|
+
export const managePromptFolderToolName = 'llama_manage_prompt_folder';
|
|
361
|
+
export const managePromptFolderToolDescription = `Manage prompt folders: create, rename, delete, or list.
|
|
362
|
+
|
|
363
|
+
Actions:
|
|
364
|
+
- "list" — list folders in current scope (defaults to project if set, else org)
|
|
365
|
+
- "create" — requires scope ("organization"|"project"|"personal") and name
|
|
366
|
+
- "rename" — requires folderId and name
|
|
367
|
+
- "delete" — requires folderId (prompts in the folder are preserved; their folderId is nulled)`;
|
|
368
|
+
export const managePromptFolderToolSchema = z.object({
|
|
369
|
+
orgSlug: z.string().optional().describe('Organization slug (session default)'),
|
|
370
|
+
projectKey: z.string().optional().describe('Project key (session default)'),
|
|
371
|
+
action: z.enum(['list', 'create', 'rename', 'delete']).describe('Action to perform'),
|
|
372
|
+
scope: z.enum(['organization', 'project', 'personal']).optional().describe('Required for create'),
|
|
373
|
+
folderId: z.string().uuid().optional().describe('Required for rename/delete'),
|
|
374
|
+
name: z.string().min(1).max(80).optional().describe('Required for create/rename'),
|
|
375
|
+
});
|
|
376
|
+
export async function executeManagePromptFolder(input) {
|
|
377
|
+
try {
|
|
378
|
+
const session = await getSessionDefaults();
|
|
379
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
380
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
381
|
+
if (!orgSlug) {
|
|
382
|
+
return JSON.stringify({
|
|
383
|
+
success: false,
|
|
384
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
const client = getApiClient();
|
|
388
|
+
if (input.action === 'list') {
|
|
389
|
+
const folders = projectKey
|
|
390
|
+
? await client.listProjectPromptFolders(orgSlug, projectKey)
|
|
391
|
+
: await client.listOrgPromptFolders(orgSlug);
|
|
392
|
+
return JSON.stringify({
|
|
393
|
+
success: true,
|
|
394
|
+
count: folders.length,
|
|
395
|
+
folders: folders.map(summariseFolder),
|
|
396
|
+
}, null, 2);
|
|
397
|
+
}
|
|
398
|
+
if (input.action === 'create') {
|
|
399
|
+
if (!input.scope) {
|
|
400
|
+
return JSON.stringify({ success: false, error: 'scope is required for create' });
|
|
401
|
+
}
|
|
402
|
+
if (!input.name) {
|
|
403
|
+
return JSON.stringify({ success: false, error: 'name is required for create' });
|
|
404
|
+
}
|
|
405
|
+
let folder;
|
|
406
|
+
if (input.scope === 'project') {
|
|
407
|
+
if (!projectKey) {
|
|
408
|
+
return JSON.stringify({
|
|
409
|
+
success: false,
|
|
410
|
+
error: 'projectKey is required for scope="project"',
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
folder = await client.createProjectPromptFolder(orgSlug, projectKey, { name: input.name });
|
|
414
|
+
}
|
|
415
|
+
else if (input.scope === 'organization') {
|
|
416
|
+
folder = await client.createOrgPromptFolder(orgSlug, {
|
|
417
|
+
scope: 'organization',
|
|
418
|
+
name: input.name,
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
folder = await client.createOrgPromptFolder(orgSlug, {
|
|
423
|
+
scope: 'personal',
|
|
424
|
+
name: input.name,
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
return JSON.stringify({ success: true, message: `Folder "${folder.name}" created`, folder: summariseFolder(folder) }, null, 2);
|
|
428
|
+
}
|
|
429
|
+
if (input.action === 'rename') {
|
|
430
|
+
if (!input.folderId) {
|
|
431
|
+
return JSON.stringify({ success: false, error: 'folderId is required for rename' });
|
|
432
|
+
}
|
|
433
|
+
if (!input.name) {
|
|
434
|
+
return JSON.stringify({ success: false, error: 'name is required for rename' });
|
|
435
|
+
}
|
|
436
|
+
const folder = await client.renamePromptFolder(orgSlug, input.folderId, { name: input.name }, projectKey);
|
|
437
|
+
return JSON.stringify({ success: true, message: `Folder renamed to "${folder.name}"`, folder: summariseFolder(folder) }, null, 2);
|
|
438
|
+
}
|
|
439
|
+
if (input.action === 'delete') {
|
|
440
|
+
if (!input.folderId) {
|
|
441
|
+
return JSON.stringify({ success: false, error: 'folderId is required for delete' });
|
|
442
|
+
}
|
|
443
|
+
await client.deletePromptFolder(orgSlug, input.folderId, projectKey);
|
|
444
|
+
return JSON.stringify({ success: true, deleted: true, folderId: input.folderId });
|
|
445
|
+
}
|
|
446
|
+
return JSON.stringify({ success: false, error: `Unknown action: ${String(input.action)}` });
|
|
447
|
+
}
|
|
448
|
+
catch (error) {
|
|
449
|
+
if (error instanceof LlamaApiError) {
|
|
450
|
+
return JSON.stringify({
|
|
451
|
+
success: false,
|
|
452
|
+
error: `Failed to manage prompt folder: ${error.message}`,
|
|
453
|
+
statusCode: error.statusCode,
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
return JSON.stringify({
|
|
457
|
+
success: false,
|
|
458
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
function summariseFolder(folder) {
|
|
463
|
+
return {
|
|
464
|
+
id: folder.id,
|
|
465
|
+
name: folder.name,
|
|
466
|
+
scope: folder.scope,
|
|
467
|
+
updatedAt: folder.updatedAt,
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"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"}
|