@paca-ai/paca-mcp 0.2.0 → 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.
Files changed (50) hide show
  1. package/README.md +177 -1
  2. package/build/api/client.d.ts.map +1 -1
  3. package/build/api/client.js +3 -0
  4. package/build/api/client.js.map +1 -1
  5. package/build/api/doc-client.d.ts.map +1 -1
  6. package/build/api/doc-client.js +3 -0
  7. package/build/api/doc-client.js.map +1 -1
  8. package/build/api/extended-client.d.ts.map +1 -1
  9. package/build/api/extended-client.js +3 -0
  10. package/build/api/extended-client.js.map +1 -1
  11. package/build/api/task-extended-client.d.ts.map +1 -1
  12. package/build/api/task-extended-client.js +3 -0
  13. package/build/api/task-extended-client.js.map +1 -1
  14. package/build/api/views-client.d.ts.map +1 -1
  15. package/build/api/views-client.js +3 -0
  16. package/build/api/views-client.js.map +1 -1
  17. package/build/index.js +14 -1
  18. package/build/index.js.map +1 -1
  19. package/build/package.json +1 -1
  20. package/build/permissions.d.ts +15 -0
  21. package/build/permissions.d.ts.map +1 -0
  22. package/build/permissions.js +213 -0
  23. package/build/permissions.js.map +1 -0
  24. package/build/plugin-loader.d.ts.map +1 -1
  25. package/build/plugin-loader.js +21 -7
  26. package/build/plugin-loader.js.map +1 -1
  27. package/build/server.d.ts.map +1 -1
  28. package/build/server.js +50 -2
  29. package/build/server.js.map +1 -1
  30. package/build/tools/filesystem-doc-tools.d.ts +5 -0
  31. package/build/tools/filesystem-doc-tools.d.ts.map +1 -0
  32. package/build/tools/filesystem-doc-tools.js +417 -0
  33. package/build/tools/filesystem-doc-tools.js.map +1 -0
  34. package/build/tools/index.d.ts.map +1 -1
  35. package/build/tools/index.js +9 -20
  36. package/build/tools/index.js.map +1 -1
  37. package/build/tools/view-tools.d.ts.map +1 -1
  38. package/build/tools/view-tools.js +15 -3
  39. package/build/tools/view-tools.js.map +1 -1
  40. package/build/types/index.d.ts +18 -1
  41. package/build/types/index.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/build/tools/doc-github-tools.d.ts +0 -11
  44. package/build/tools/doc-github-tools.d.ts.map +0 -1
  45. package/build/tools/doc-github-tools.js +0 -267
  46. package/build/tools/doc-github-tools.js.map +0 -1
  47. package/build/tools/document-tools.d.ts +0 -16
  48. package/build/tools/document-tools.d.ts.map +0 -1
  49. package/build/tools/document-tools.js +0 -224
  50. package/build/tools/document-tools.js.map +0 -1
@@ -0,0 +1,417 @@
1
+ import { z } from "zod";
2
+ import { blocknoteToMarkdown } from "../utils/index.js";
3
+ // ── Zod schemas ───────────────────────────────────────────────────────────────
4
+ const ListDocsSchema = z.object({
5
+ projectId: z.string(),
6
+ path: z.string().optional(),
7
+ });
8
+ const ReadDocSchema = z.object({
9
+ projectId: z.string(),
10
+ path: z.string(),
11
+ });
12
+ const WriteDocSchema = z.object({
13
+ projectId: z.string(),
14
+ path: z.string(),
15
+ content: z.string(),
16
+ });
17
+ const DeleteDocSchema = z.object({
18
+ projectId: z.string(),
19
+ path: z.string(),
20
+ });
21
+ const MoveDocSchema = z.object({
22
+ projectId: z.string(),
23
+ sourcePath: z.string(),
24
+ destPath: z.string(),
25
+ });
26
+ // ── Tree building ─────────────────────────────────────────────────────────────
27
+ async function buildDocTree(projectId, apiClient, docClient) {
28
+ const [folders, documents] = await Promise.all([
29
+ docClient.listFolders(projectId),
30
+ apiClient.listDocuments(projectId),
31
+ ]);
32
+ const foldersByParent = new Map();
33
+ const foldersById = new Map();
34
+ for (const f of folders) {
35
+ const pid = f.parent_id || null;
36
+ if (!foldersByParent.has(pid))
37
+ foldersByParent.set(pid, []);
38
+ foldersByParent.get(pid).push(f);
39
+ foldersById.set(f.id, f);
40
+ }
41
+ const docsByFolder = new Map();
42
+ for (const d of documents) {
43
+ const fid = d.folder_id || null;
44
+ if (!docsByFolder.has(fid))
45
+ docsByFolder.set(fid, []);
46
+ docsByFolder.get(fid).push(d);
47
+ }
48
+ return { folders, documents, foldersByParent, docsByFolder, foldersById };
49
+ }
50
+ // ── Tree rendering ────────────────────────────────────────────────────────────
51
+ function renderLines(parentId, tree) {
52
+ const childFolders = (tree.foldersByParent.get(parentId) || [])
53
+ .slice()
54
+ .sort((a, b) => a.position - b.position || a.name.localeCompare(b.name));
55
+ const childDocs = (tree.docsByFolder.get(parentId) || [])
56
+ .slice()
57
+ .sort((a, b) => a.position - b.position || a.title.localeCompare(b.title));
58
+ const entries = [
59
+ ...childFolders.map((f) => ({ label: `📁 ${f.name}/`, folderId: f.id })),
60
+ ...childDocs.map((d) => ({ label: `📄 ${d.title}` })),
61
+ ];
62
+ const lines = [];
63
+ entries.forEach((entry, i) => {
64
+ const last = i === entries.length - 1;
65
+ const connector = last ? "└── " : "├── ";
66
+ const childIndent = last ? " " : "│ ";
67
+ lines.push(connector + entry.label);
68
+ if (entry.folderId) {
69
+ for (const child of renderLines(entry.folderId, tree)) {
70
+ lines.push(childIndent + child);
71
+ }
72
+ }
73
+ });
74
+ return lines;
75
+ }
76
+ // ── Path helpers ──────────────────────────────────────────────────────────────
77
+ function parsePath(path) {
78
+ return path
79
+ .split("/")
80
+ .map((p) => p.trim())
81
+ .filter((p) => p.length > 0);
82
+ }
83
+ function resolvePath(path, tree) {
84
+ const parts = parsePath(path);
85
+ if (parts.length === 0)
86
+ return { type: "root" };
87
+ let currentFolderId = null;
88
+ for (let i = 0; i < parts.length - 1; i++) {
89
+ const name = parts[i];
90
+ const siblings = tree.foldersByParent.get(currentFolderId) || [];
91
+ const found = siblings.find((f) => f.name === name);
92
+ if (!found)
93
+ return null;
94
+ currentFolderId = found.id;
95
+ }
96
+ const lastName = parts[parts.length - 1];
97
+ const siblingFolders = tree.foldersByParent.get(currentFolderId) || [];
98
+ const folder = siblingFolders.find((f) => f.name === lastName);
99
+ if (folder)
100
+ return { type: "folder", folder };
101
+ const siblingDocs = tree.docsByFolder.get(currentFolderId) || [];
102
+ const doc = siblingDocs.find((d) => d.title === lastName);
103
+ if (doc)
104
+ return { type: "doc", doc };
105
+ return null;
106
+ }
107
+ async function ensureFolderPath(projectId, folderNames, docClient, tree) {
108
+ let currentFolderId = null;
109
+ for (const name of folderNames) {
110
+ const siblings = tree.foldersByParent.get(currentFolderId) || [];
111
+ let folder = siblings.find((f) => f.name === name);
112
+ if (!folder) {
113
+ folder = await docClient.createFolder(projectId, {
114
+ name,
115
+ parent_id: currentFolderId || undefined,
116
+ });
117
+ if (!tree.foldersByParent.has(currentFolderId)) {
118
+ tree.foldersByParent.set(currentFolderId, []);
119
+ }
120
+ tree.foldersByParent.get(currentFolderId).push(folder);
121
+ tree.foldersById.set(folder.id, folder);
122
+ }
123
+ currentFolderId = folder.id;
124
+ }
125
+ return currentFolderId;
126
+ }
127
+ // ── Tool definitions ──────────────────────────────────────────────────────────
128
+ export function getFilesystemDocTools() {
129
+ return [
130
+ {
131
+ name: "list_docs",
132
+ description: "List the documentation tree for a project, showing folders and documents in a filesystem-like hierarchy. " +
133
+ "Optionally start from a specific folder path. Use this to explore the project documentation structure.",
134
+ inputSchema: {
135
+ type: "object",
136
+ properties: {
137
+ projectId: {
138
+ type: "string",
139
+ description: "The technical UUID of the project. Use list_projects to get the project ID.",
140
+ },
141
+ path: {
142
+ type: "string",
143
+ description: "Optional folder path to list from (e.g. 'Architecture' or 'Guides/Setup'). " +
144
+ "Omit or leave empty to list from the root.",
145
+ },
146
+ },
147
+ required: ["projectId"],
148
+ },
149
+ },
150
+ {
151
+ name: "read_doc",
152
+ description: "Read the Markdown content of a document by its path (e.g. 'Architecture/API Design'). " +
153
+ "Use list_docs first to discover available paths.",
154
+ inputSchema: {
155
+ type: "object",
156
+ properties: {
157
+ projectId: {
158
+ type: "string",
159
+ description: "The technical UUID of the project. Use list_projects to get the project ID.",
160
+ },
161
+ path: {
162
+ type: "string",
163
+ description: "Path to the document (e.g. 'Architecture/API Design' or just 'README'). " +
164
+ "Folder and document names are separated by '/'.",
165
+ },
166
+ },
167
+ required: ["projectId", "path"],
168
+ },
169
+ },
170
+ {
171
+ name: "write_doc",
172
+ description: "Create or update a document at the given path. " +
173
+ "If the document already exists it will be updated; otherwise it will be created. " +
174
+ "Missing intermediate folders are created automatically. " +
175
+ "Always prefer this over creating local files when writing project documentation.",
176
+ inputSchema: {
177
+ type: "object",
178
+ properties: {
179
+ projectId: {
180
+ type: "string",
181
+ description: "The technical UUID of the project. Use list_projects to get the project ID.",
182
+ },
183
+ path: {
184
+ type: "string",
185
+ description: "Full path for the document (e.g. 'Architecture/API Design' or 'README'). " +
186
+ "The last segment is the document title; preceding segments are folder names.",
187
+ },
188
+ content: {
189
+ type: "string",
190
+ description: "Document content in Markdown format.",
191
+ },
192
+ },
193
+ required: ["projectId", "path", "content"],
194
+ },
195
+ },
196
+ {
197
+ name: "delete_doc",
198
+ description: "Delete a document or folder by path. " +
199
+ "Deleting a folder also removes all documents and subfolders inside it.",
200
+ inputSchema: {
201
+ type: "object",
202
+ properties: {
203
+ projectId: {
204
+ type: "string",
205
+ description: "The technical UUID of the project. Use list_projects to get the project ID.",
206
+ },
207
+ path: {
208
+ type: "string",
209
+ description: "Path to the document or folder to delete.",
210
+ },
211
+ },
212
+ required: ["projectId", "path"],
213
+ },
214
+ },
215
+ {
216
+ name: "move_doc",
217
+ description: "Move or rename a document or folder by specifying a source path and destination path. " +
218
+ "Missing intermediate folders in the destination are created automatically.",
219
+ inputSchema: {
220
+ type: "object",
221
+ properties: {
222
+ projectId: {
223
+ type: "string",
224
+ description: "The technical UUID of the project. Use list_projects to get the project ID.",
225
+ },
226
+ sourcePath: {
227
+ type: "string",
228
+ description: "Current path of the document or folder.",
229
+ },
230
+ destPath: {
231
+ type: "string",
232
+ description: "New path for the document or folder. The last segment becomes the new name.",
233
+ },
234
+ },
235
+ required: ["projectId", "sourcePath", "destPath"],
236
+ },
237
+ },
238
+ ];
239
+ }
240
+ // ── Tool handler ──────────────────────────────────────────────────────────────
241
+ export async function handleFilesystemDocTool(toolName, args, apiClient, docClient) {
242
+ switch (toolName) {
243
+ case "list_docs": {
244
+ const { projectId, path } = ListDocsSchema.parse(args);
245
+ const tree = await buildDocTree(projectId, apiClient, docClient);
246
+ let rootId = null;
247
+ let header = "/";
248
+ if (path && path.trim() !== "" && path.trim() !== "/") {
249
+ const resolved = resolvePath(path, tree);
250
+ if (!resolved) {
251
+ return {
252
+ content: [{ type: "text", text: `Path not found: ${path}` }],
253
+ isError: true,
254
+ };
255
+ }
256
+ else if (resolved.type === "doc") {
257
+ return {
258
+ content: [
259
+ {
260
+ type: "text",
261
+ text: `'${path}' is a document, not a folder. Use read_doc to read it.`,
262
+ },
263
+ ],
264
+ isError: true,
265
+ };
266
+ }
267
+ else if (resolved.type === "folder") {
268
+ rootId = resolved.folder.id;
269
+ header = path;
270
+ }
271
+ }
272
+ const lines = renderLines(rootId, tree);
273
+ const treeStr = lines.length > 0 ? lines.join("\n") : "(empty)";
274
+ return {
275
+ content: [{ type: "text", text: `📂 ${header}\n${treeStr}` }],
276
+ };
277
+ }
278
+ case "read_doc": {
279
+ const { projectId, path } = ReadDocSchema.parse(args);
280
+ const tree = await buildDocTree(projectId, apiClient, docClient);
281
+ const resolved = resolvePath(path, tree);
282
+ if (!resolved) {
283
+ return {
284
+ content: [{ type: "text", text: `Not found: ${path}` }],
285
+ isError: true,
286
+ };
287
+ }
288
+ if (resolved.type !== "doc") {
289
+ return {
290
+ content: [
291
+ {
292
+ type: "text",
293
+ text: `'${path}' is a folder, not a document. Use list_docs to see its contents.`,
294
+ },
295
+ ],
296
+ isError: true,
297
+ };
298
+ }
299
+ const doc = await apiClient.getDocument(projectId, resolved.doc.id);
300
+ const content = doc.content ? blocknoteToMarkdown(doc.content) : "";
301
+ return {
302
+ content: [
303
+ {
304
+ type: "text",
305
+ text: `📄 ${doc.title}\nPath: ${path}\nUpdated: ${doc.updated_at}\n\n---\n\n${content}`,
306
+ },
307
+ ],
308
+ };
309
+ }
310
+ case "write_doc": {
311
+ const { projectId, path, content } = WriteDocSchema.parse(args);
312
+ const tree = await buildDocTree(projectId, apiClient, docClient);
313
+ const parts = parsePath(path);
314
+ if (parts.length === 0) {
315
+ return {
316
+ content: [
317
+ { type: "text", text: "Path must include at least a document name." },
318
+ ],
319
+ isError: true,
320
+ };
321
+ }
322
+ const folderNames = parts.slice(0, -1);
323
+ const docTitle = parts[parts.length - 1];
324
+ const folderId = await ensureFolderPath(projectId, folderNames, docClient, tree);
325
+ const siblingDocs = tree.docsByFolder.get(folderId) || [];
326
+ const existing = siblingDocs.find((d) => d.title === docTitle);
327
+ if (existing) {
328
+ await apiClient.updateDocument(projectId, existing.id, { content });
329
+ return {
330
+ content: [{ type: "text", text: `Updated document: ${path}` }],
331
+ };
332
+ }
333
+ await apiClient.createDocument({
334
+ project_id: projectId,
335
+ title: docTitle,
336
+ content,
337
+ folder_id: folderId,
338
+ });
339
+ return {
340
+ content: [{ type: "text", text: `Created document: ${path}` }],
341
+ };
342
+ }
343
+ case "delete_doc": {
344
+ const { projectId, path } = DeleteDocSchema.parse(args);
345
+ const tree = await buildDocTree(projectId, apiClient, docClient);
346
+ const resolved = resolvePath(path, tree);
347
+ if (!resolved || resolved.type === "root") {
348
+ return {
349
+ content: [{ type: "text", text: `Not found: ${path}` }],
350
+ isError: true,
351
+ };
352
+ }
353
+ if (resolved.type === "doc") {
354
+ await apiClient.deleteDocument(projectId, resolved.doc.id);
355
+ return {
356
+ content: [{ type: "text", text: `Deleted document: ${path}` }],
357
+ };
358
+ }
359
+ await docClient.deleteFolder(projectId, resolved.folder.id);
360
+ return {
361
+ content: [{ type: "text", text: `Deleted folder: ${path}` }],
362
+ };
363
+ }
364
+ case "move_doc": {
365
+ const { projectId, sourcePath, destPath } = MoveDocSchema.parse(args);
366
+ const tree = await buildDocTree(projectId, apiClient, docClient);
367
+ const source = resolvePath(sourcePath, tree);
368
+ if (!source || source.type === "root") {
369
+ return {
370
+ content: [{ type: "text", text: `Not found: ${sourcePath}` }],
371
+ isError: true,
372
+ };
373
+ }
374
+ const destParts = parsePath(destPath);
375
+ if (destParts.length === 0) {
376
+ return {
377
+ content: [
378
+ { type: "text", text: "Destination path must include at least a name." },
379
+ ],
380
+ isError: true,
381
+ };
382
+ }
383
+ const destFolderNames = destParts.slice(0, -1);
384
+ const destName = destParts[destParts.length - 1];
385
+ const destFolderId = await ensureFolderPath(projectId, destFolderNames, docClient, tree);
386
+ if (source.type === "doc") {
387
+ await apiClient.updateDocument(projectId, source.doc.id, {
388
+ title: destName,
389
+ folder_id: destFolderId,
390
+ });
391
+ return {
392
+ content: [
393
+ {
394
+ type: "text",
395
+ text: `Moved document: ${sourcePath} → ${destPath}`,
396
+ },
397
+ ],
398
+ };
399
+ }
400
+ await docClient.updateFolder(projectId, source.folder.id, {
401
+ name: destName,
402
+ parent_id: destFolderId,
403
+ });
404
+ return {
405
+ content: [
406
+ {
407
+ type: "text",
408
+ text: `Moved folder: ${sourcePath} → ${destPath}`,
409
+ },
410
+ ],
411
+ };
412
+ }
413
+ default:
414
+ throw new Error(`Unknown filesystem doc tool: ${toolName}`);
415
+ }
416
+ }
417
+ //# sourceMappingURL=filesystem-doc-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-doc-tools.js","sourceRoot":"","sources":["../../src/tools/filesystem-doc-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AA8BzB;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAgBpC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE;IACR,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,qBAAqB,CAAC;IACtC,WAAW,EAAE,kBAAkB,CAAC;IAChC,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,SAAS,EAAE,gBAAgB,CAAC;CAC5B,GACC,OAAO,CAAC,GAAG,CAAC,CAwJd"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AAgCzB;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAepC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE;IACR,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,qBAAqB,CAAC;IACtC,WAAW,EAAE,kBAAkB,CAAC;IAChC,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,SAAS,EAAE,gBAAgB,CAAC;CAC5B,GACC,OAAO,CAAC,GAAG,CAAC,CAiJd"}
@@ -1,6 +1,5 @@
1
1
  import { getAttachmentTools, handleAttachmentTool, } from "./attachment-tools.js";
2
- import { getDocTools, handleDocTool } from "./doc-github-tools.js";
3
- import { getDocumentTools, handleDocumentTool } from "./document-tools.js";
2
+ import { getFilesystemDocTools, handleFilesystemDocTool, } from "./filesystem-doc-tools.js";
4
3
  import { getProjectMemberTools, getProjectRoleTools, handleProjectMemberTool, } from "./member-tools.js";
5
4
  import { getProjectTools, handleProjectTool } from "./project-tools.js";
6
5
  import { getSprintTools, handleSprintTool } from "./sprint-tools.js";
@@ -16,7 +15,7 @@ export function getAllTools() {
16
15
  ...getProjectTools(),
17
16
  ...getTaskTools(),
18
17
  ...getSprintTools(),
19
- ...getDocumentTools(),
18
+ ...getFilesystemDocTools(),
20
19
  ...getProjectMemberTools(),
21
20
  ...getProjectRoleTools(),
22
21
  ...getTaskTypeTools(),
@@ -24,7 +23,6 @@ export function getAllTools() {
24
23
  ...getViewTools(),
25
24
  ...getCustomFieldTools(),
26
25
  ...getAttachmentTools(),
27
- ...getDocTools(),
28
26
  ...getTaskActivityTools(),
29
27
  ];
30
28
  }
@@ -61,13 +59,13 @@ export async function handleToolCall(request, clients) {
61
59
  name === "complete_sprint") {
62
60
  return handleSprintTool(name, args, clients.apiClient);
63
61
  }
64
- // Document tools
65
- if (name === "list_documents" ||
66
- name === "get_document" ||
67
- name === "create_document" ||
68
- name === "update_document" ||
69
- name === "delete_document") {
70
- return handleDocumentTool(name, args, clients.apiClient);
62
+ // Filesystem document tools
63
+ if (name === "list_docs" ||
64
+ name === "read_doc" ||
65
+ name === "write_doc" ||
66
+ name === "delete_doc" ||
67
+ name === "move_doc") {
68
+ return handleFilesystemDocTool(name, args, clients.apiClient, clients.docClient);
71
69
  }
72
70
  // Project member and role tools
73
71
  if (name === "list_project_members" ||
@@ -117,15 +115,6 @@ export async function handleToolCall(request, clients) {
117
115
  name === "delete_task_attachment") {
118
116
  return handleAttachmentTool(name, args, clients.viewsClient);
119
117
  }
120
- // Document tools
121
- if (name === "list_doc_folders" ||
122
- name === "create_doc_folder" ||
123
- name === "update_doc_folder" ||
124
- name === "delete_doc_folder" ||
125
- name === "list_doc_snapshots" ||
126
- name === "get_doc_snapshot") {
127
- return handleDocTool(name, args, clients.docClient);
128
- }
129
118
  // Task activity tools
130
119
  if (name === "list_task_activities" ||
131
120
  name === "add_task_comment" ||
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-tools.d.ts","sourceRoot":"","sources":["../../src/tools/view-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA8F1D;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,EAAE,CA8NrC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,EAAE,CA4H5C;AAqBD;;GAEG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,kBAAkB,GACxB,OAAO,CAAC,GAAG,CAAC,CA8Pd"}
1
+ {"version":3,"file":"view-tools.d.ts","sourceRoot":"","sources":["../../src/tools/view-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAgG1D;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,EAAE,CAsOrC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,EAAE,CA4H5C;AAqBD;;GAEG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,kBAAkB,GACxB,OAAO,CAAC,GAAG,CAAC,CAgQd"}
@@ -2,6 +2,8 @@ import { z } from "zod";
2
2
  import { formatList } from "../utils/index.js";
3
3
  const ListViewsSchema = z.object({
4
4
  projectId: z.string(),
5
+ context: z.string().optional(),
6
+ sprintId: z.string().optional(),
5
7
  });
6
8
  const CreateViewSchema = z.object({
7
9
  projectId: z.string(),
@@ -84,7 +86,7 @@ export function getViewTools() {
84
86
  return [
85
87
  {
86
88
  name: "list_views",
87
- description: "List all views in a project",
89
+ description: "List all views in a project. Use context='backlog' or context='timeline' to list non-sprint views. Use context='sprint' with sprintId to list views for a specific sprint.",
88
90
  inputSchema: {
89
91
  type: "object",
90
92
  properties: {
@@ -92,6 +94,14 @@ export function getViewTools() {
92
94
  type: "string",
93
95
  description: "The ID of the project",
94
96
  },
97
+ context: {
98
+ type: "string",
99
+ description: "The view context: 'sprint', 'backlog', or 'timeline'. Defaults to 'backlog'. Use 'sprint' together with sprintId to list sprint views.",
100
+ },
101
+ sprintId: {
102
+ type: "string",
103
+ description: "The sprint ID (required when context is 'sprint').",
104
+ },
95
105
  },
96
106
  required: ["projectId"],
97
107
  },
@@ -453,8 +463,10 @@ Created: ${field.created_at}`;
453
463
  export async function handleViewTool(toolName, args, client) {
454
464
  switch (toolName) {
455
465
  case "list_views": {
456
- const { projectId } = ListViewsSchema.parse(args);
457
- const views = await client.listViews(projectId);
466
+ const { projectId, context, sprintId } = ListViewsSchema.parse(args);
467
+ // Default to 'backlog' when no context is provided to avoid requiring sprint_id
468
+ const resolvedContext = context ?? "backlog";
469
+ const views = await client.listViews(projectId, resolvedContext, sprintId);
458
470
  const formatted = formatList(views, formatView);
459
471
  return {
460
472
  content: [