whiteboard-mcp-server 2.12.0 → 2.14.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 (91) hide show
  1. package/README.md +18 -0
  2. package/dist/api-client.d.ts +100 -3
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +80 -6
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/index.js +258 -23
  7. package/dist/index.js.map +1 -1
  8. package/dist/tools/add-ticket-relation.d.ts +18 -0
  9. package/dist/tools/add-ticket-relation.d.ts.map +1 -0
  10. package/dist/tools/add-ticket-relation.js +13 -0
  11. package/dist/tools/add-ticket-relation.js.map +1 -0
  12. package/dist/tools/bulk-resolve-paper.d.ts +3 -3
  13. package/dist/tools/bulk-resolve-paper.d.ts.map +1 -1
  14. package/dist/tools/bulk-resolve-paper.js +4 -2
  15. package/dist/tools/bulk-resolve-paper.js.map +1 -1
  16. package/dist/tools/bulk-resolve.d.ts +3 -3
  17. package/dist/tools/bulk-resolve.d.ts.map +1 -1
  18. package/dist/tools/bulk-resolve.js +4 -2
  19. package/dist/tools/bulk-resolve.js.map +1 -1
  20. package/dist/tools/create-ticket-comment.d.ts +15 -0
  21. package/dist/tools/create-ticket-comment.d.ts.map +1 -0
  22. package/dist/tools/create-ticket-comment.js +10 -0
  23. package/dist/tools/create-ticket-comment.js.map +1 -0
  24. package/dist/tools/create-ticket.d.ts +51 -0
  25. package/dist/tools/create-ticket.d.ts.map +1 -0
  26. package/dist/tools/create-ticket.js +55 -0
  27. package/dist/tools/create-ticket.js.map +1 -0
  28. package/dist/tools/delete-ticket-comment.d.ts +15 -0
  29. package/dist/tools/delete-ticket-comment.d.ts.map +1 -0
  30. package/dist/tools/delete-ticket-comment.js +10 -0
  31. package/dist/tools/delete-ticket-comment.js.map +1 -0
  32. package/dist/tools/delete-ticket.d.ts +12 -0
  33. package/dist/tools/delete-ticket.d.ts.map +1 -0
  34. package/dist/tools/delete-ticket.js +9 -0
  35. package/dist/tools/delete-ticket.js.map +1 -0
  36. package/dist/tools/get-comments.d.ts.map +1 -1
  37. package/dist/tools/get-comments.js +3 -2
  38. package/dist/tools/get-comments.js.map +1 -1
  39. package/dist/tools/get-paper-comments.d.ts.map +1 -1
  40. package/dist/tools/get-paper-comments.js +3 -2
  41. package/dist/tools/get-paper-comments.js.map +1 -1
  42. package/dist/tools/import-md.d.ts +2 -2
  43. package/dist/tools/list-ticket-comments.d.ts +12 -0
  44. package/dist/tools/list-ticket-comments.d.ts.map +1 -0
  45. package/dist/tools/list-ticket-comments.js +18 -0
  46. package/dist/tools/list-ticket-comments.js.map +1 -0
  47. package/dist/tools/list-ticket-relations.d.ts +12 -0
  48. package/dist/tools/list-ticket-relations.d.ts.map +1 -0
  49. package/dist/tools/list-ticket-relations.js +19 -0
  50. package/dist/tools/list-ticket-relations.js.map +1 -0
  51. package/dist/tools/list-tickets.d.ts +24 -0
  52. package/dist/tools/list-tickets.d.ts.map +1 -0
  53. package/dist/tools/list-tickets.js +52 -0
  54. package/dist/tools/list-tickets.js.map +1 -0
  55. package/dist/tools/list-workspace-members.d.ts +12 -0
  56. package/dist/tools/list-workspace-members.d.ts.map +1 -0
  57. package/dist/tools/list-workspace-members.js +22 -0
  58. package/dist/tools/list-workspace-members.js.map +1 -0
  59. package/dist/tools/read-ticket.d.ts +12 -0
  60. package/dist/tools/read-ticket.d.ts.map +1 -0
  61. package/dist/tools/read-ticket.js +31 -0
  62. package/dist/tools/read-ticket.js.map +1 -0
  63. package/dist/tools/remove-ticket-relation.d.ts +15 -0
  64. package/dist/tools/remove-ticket-relation.d.ts.map +1 -0
  65. package/dist/tools/remove-ticket-relation.js +10 -0
  66. package/dist/tools/remove-ticket-relation.js.map +1 -0
  67. package/dist/tools/resolve-paper-thread.d.ts +3 -3
  68. package/dist/tools/resolve-paper-thread.d.ts.map +1 -1
  69. package/dist/tools/resolve-paper-thread.js +4 -2
  70. package/dist/tools/resolve-paper-thread.js.map +1 -1
  71. package/dist/tools/resolve-thread-id.d.ts +7 -0
  72. package/dist/tools/resolve-thread-id.d.ts.map +1 -0
  73. package/dist/tools/resolve-thread-id.js +23 -0
  74. package/dist/tools/resolve-thread-id.js.map +1 -0
  75. package/dist/tools/resolve-thread.d.ts +3 -3
  76. package/dist/tools/resolve-thread.d.ts.map +1 -1
  77. package/dist/tools/resolve-thread.js +4 -2
  78. package/dist/tools/resolve-thread.js.map +1 -1
  79. package/dist/tools/update-ticket-comment.d.ts +18 -0
  80. package/dist/tools/update-ticket-comment.d.ts.map +1 -0
  81. package/dist/tools/update-ticket-comment.js +11 -0
  82. package/dist/tools/update-ticket-comment.js.map +1 -0
  83. package/dist/tools/update-ticket.d.ts +54 -0
  84. package/dist/tools/update-ticket.d.ts.map +1 -0
  85. package/dist/tools/update-ticket.js +46 -0
  86. package/dist/tools/update-ticket.js.map +1 -0
  87. package/package.json +1 -1
  88. package/dist/tools/kb-reflect.d.ts +0 -15
  89. package/dist/tools/kb-reflect.d.ts.map +0 -1
  90. package/dist/tools/kb-reflect.js +0 -14
  91. package/dist/tools/kb-reflect.js.map +0 -1
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export const createTicketCommentSchema = z.object({
3
+ ticketId: z.string().uuid().describe('The UUID of the ticket'),
4
+ content: z.string().min(1).describe('Comment content'),
5
+ });
6
+ export async function createTicketComment(client, input) {
7
+ const c = await client.createTicketComment(input.ticketId, input.content);
8
+ return `Comment added (ID: ${c.id}).`;
9
+ }
10
+ //# sourceMappingURL=create-ticket-comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-ticket-comment.js","sourceRoot":"","sources":["../../src/tools/create-ticket-comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;CACvD,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,KAA+B;IAE/B,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC;AACxC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const createTicketSchema: z.ZodObject<{
4
+ title: z.ZodString;
5
+ description: z.ZodOptional<z.ZodString>;
6
+ status: z.ZodOptional<z.ZodEnum<["backlog", "planned", "todo", "doing", "done", "wont", "closed"]>>;
7
+ priority: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "critical"]>>;
8
+ tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
9
+ label: z.ZodString;
10
+ color: z.ZodString;
11
+ }, "strip", z.ZodTypeAny, {
12
+ label: string;
13
+ color: string;
14
+ }, {
15
+ label: string;
16
+ color: string;
17
+ }>, "many">>;
18
+ assigneeId: z.ZodOptional<z.ZodString>;
19
+ startDate: z.ZodOptional<z.ZodString>;
20
+ dueDate: z.ZodOptional<z.ZodString>;
21
+ workspaceId: z.ZodOptional<z.ZodString>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ title: string;
24
+ workspaceId?: string | undefined;
25
+ tags?: {
26
+ label: string;
27
+ color: string;
28
+ }[] | undefined;
29
+ status?: "backlog" | "planned" | "todo" | "doing" | "done" | "wont" | "closed" | undefined;
30
+ description?: string | undefined;
31
+ priority?: "low" | "medium" | "high" | "critical" | undefined;
32
+ assigneeId?: string | undefined;
33
+ startDate?: string | undefined;
34
+ dueDate?: string | undefined;
35
+ }, {
36
+ title: string;
37
+ workspaceId?: string | undefined;
38
+ tags?: {
39
+ label: string;
40
+ color: string;
41
+ }[] | undefined;
42
+ status?: "backlog" | "planned" | "todo" | "doing" | "done" | "wont" | "closed" | undefined;
43
+ description?: string | undefined;
44
+ priority?: "low" | "medium" | "high" | "critical" | undefined;
45
+ assigneeId?: string | undefined;
46
+ startDate?: string | undefined;
47
+ dueDate?: string | undefined;
48
+ }>;
49
+ export type CreateTicketInput = z.infer<typeof createTicketSchema>;
50
+ export declare function createTicket(client: ApiClient, input: CreateTicketInput): Promise<string>;
51
+ //# sourceMappingURL=create-ticket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-ticket.d.ts","sourceRoot":"","sources":["../../src/tools/create-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmC7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
@@ -0,0 +1,55 @@
1
+ import { z } from 'zod';
2
+ export const createTicketSchema = z.object({
3
+ title: z.string().min(1).max(500).describe('Ticket title (required)'),
4
+ description: z.string().optional().describe('Markdown description'),
5
+ status: z
6
+ .enum(['backlog', 'planned', 'todo', 'doing', 'done', 'wont', 'closed'])
7
+ .optional()
8
+ .describe('Status (default: backlog)'),
9
+ priority: z
10
+ .enum(['low', 'medium', 'high', 'critical'])
11
+ .optional()
12
+ .describe('Priority (default: medium)'),
13
+ tags: z
14
+ .array(z.object({
15
+ label: z.string().min(1).max(50).describe('Tag label'),
16
+ color: z
17
+ .string()
18
+ .max(20)
19
+ .describe('Tag color (red, orange, yellow, green, blue, purple, pink, gray)'),
20
+ }))
21
+ .optional()
22
+ .describe('Tags'),
23
+ assigneeId: z
24
+ .string()
25
+ .uuid()
26
+ .optional()
27
+ .describe('Assignee member UUID (use list_workspace_members to resolve a name)'),
28
+ startDate: z.string().optional().describe('Start date (YYYY-MM-DD)'),
29
+ dueDate: z.string().optional().describe('Due date (YYYY-MM-DD)'),
30
+ workspaceId: z
31
+ .string()
32
+ .uuid()
33
+ .optional()
34
+ .describe('Workspace ID (defaults to active workspace)'),
35
+ });
36
+ export async function createTicket(client, input) {
37
+ const workspaceId = await client.resolveWorkspaceId(input.workspaceId);
38
+ const t = await client.createTicket({ ...input, workspaceId });
39
+ const num = t.number != null ? `#${t.number}` : '';
40
+ const lines = [
41
+ `Ticket ${num} "${t.title}" created.`,
42
+ '',
43
+ `- **ID**: ${t.id}`,
44
+ `- **Status**: ${t.status}`,
45
+ `- **Priority**: ${t.priority}`,
46
+ ];
47
+ if (t.assignee)
48
+ lines.push(`- **Assignee**: ${t.assignee.name || t.assignee.email}`);
49
+ if (t.startDate)
50
+ lines.push(`- **Start**: ${t.startDate}`);
51
+ if (t.dueDate)
52
+ lines.push(`- **Due**: ${t.dueDate}`);
53
+ return lines.join('\n');
54
+ }
55
+ //# sourceMappingURL=create-ticket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-ticket.js","sourceRoot":"","sources":["../../src/tools/create-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACnE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;SACvE,QAAQ,EAAE;SACV,QAAQ,CAAC,2BAA2B,CAAC;IACxC,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;SAC3C,QAAQ,EAAE;SACV,QAAQ,CAAC,4BAA4B,CAAC;IACzC,IAAI,EAAE,CAAC;SACJ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QACtD,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,CAAC,kEAAkE,CAAC;KAChF,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;IAClF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACpE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAChE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAiB,EACjB,KAAwB;IAExB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnD,MAAM,KAAK,GAAG;QACZ,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,YAAY;QACrC,EAAE;QACF,aAAa,CAAC,CAAC,EAAE,EAAE;QACnB,iBAAiB,CAAC,CAAC,MAAM,EAAE;QAC3B,mBAAmB,CAAC,CAAC,QAAQ,EAAE;KAChC,CAAC;IACF,IAAI,CAAC,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const deleteTicketCommentSchema: z.ZodObject<{
4
+ ticketId: z.ZodString;
5
+ commentId: z.ZodString;
6
+ }, "strip", z.ZodTypeAny, {
7
+ ticketId: string;
8
+ commentId: string;
9
+ }, {
10
+ ticketId: string;
11
+ commentId: string;
12
+ }>;
13
+ export type DeleteTicketCommentInput = z.infer<typeof deleteTicketCommentSchema>;
14
+ export declare function deleteTicketComment(client: ApiClient, input: DeleteTicketCommentInput): Promise<string>;
15
+ //# sourceMappingURL=delete-ticket-comment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-ticket-comment.d.ts","sourceRoot":"","sources":["../../src/tools/delete-ticket-comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,yBAAyB;;;;;;;;;EAGpC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAGjB"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export const deleteTicketCommentSchema = z.object({
3
+ ticketId: z.string().uuid().describe('The UUID of the ticket'),
4
+ commentId: z.string().uuid().describe('The UUID of the comment to delete'),
5
+ });
6
+ export async function deleteTicketComment(client, input) {
7
+ await client.deleteTicketComment(input.ticketId, input.commentId);
8
+ return `Comment ${input.commentId} deleted.`;
9
+ }
10
+ //# sourceMappingURL=delete-ticket-comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-ticket-comment.js","sourceRoot":"","sources":["../../src/tools/delete-ticket-comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC3E,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,KAA+B;IAE/B,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAClE,OAAO,WAAW,KAAK,CAAC,SAAS,WAAW,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const deleteTicketSchema: z.ZodObject<{
4
+ id: z.ZodString;
5
+ }, "strip", z.ZodTypeAny, {
6
+ id: string;
7
+ }, {
8
+ id: string;
9
+ }>;
10
+ export type DeleteTicketInput = z.infer<typeof deleteTicketSchema>;
11
+ export declare function deleteTicket(client: ApiClient, input: DeleteTicketInput): Promise<string>;
12
+ //# sourceMappingURL=delete-ticket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-ticket.d.ts","sourceRoot":"","sources":["../../src/tools/delete-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,CAGjB"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export const deleteTicketSchema = z.object({
3
+ id: z.string().uuid().describe('The UUID of the ticket to delete'),
4
+ });
5
+ export async function deleteTicket(client, input) {
6
+ await client.deleteTicket(input.id);
7
+ return `Ticket ${input.id} has been deleted.`;
8
+ }
9
+ //# sourceMappingURL=delete-ticket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-ticket.js","sourceRoot":"","sources":["../../src/tools/delete-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACnE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAiB,EACjB,KAAwB;IAExB,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpC,OAAO,UAAU,KAAK,CAAC,EAAE,oBAAoB,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-comments.d.ts","sourceRoot":"","sources":["../../src/tools/get-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CA6CjB"}
1
+ {"version":3,"file":"get-comments.d.ts","sourceRoot":"","sources":["../../src/tools/get-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CA8CjB"}
@@ -24,8 +24,9 @@ export async function getComments(client, input) {
24
24
  const originalText = thread.anchor.originalText
25
25
  ? `"${thread.anchor.originalText.substring(0, 50)}${thread.anchor.originalText.length > 50 ? '...' : ''}"`
26
26
  : '(no text anchor)';
27
- lines.push(`## Thread ${status}`);
28
- lines.push(`**ID**: ${thread.id}`);
27
+ const shortId = thread.threadNumber != null ? `#${thread.threadNumber}` : '(no number)';
28
+ lines.push(`## Thread ${shortId} ${status}`);
29
+ lines.push(`**ID**: ${thread.id} · **Short**: ${shortId}`);
29
30
  lines.push(`**On text**: ${originalText}`);
30
31
  lines.push(`**Started by**: ${thread.createdBy.name || thread.createdBy.email}`);
31
32
  lines.push('');
@@ -1 +1 @@
1
- {"version":3,"file":"get-comments.js","sourceRoot":"","sources":["../../src/tools/get-comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-comments.js","sourceRoot":"","sources":["../../src/tools/get-comments.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-paper-comments.d.ts","sourceRoot":"","sources":["../../src/tools/get-paper-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE3E,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA4CjB"}
1
+ {"version":3,"file":"get-paper-comments.d.ts","sourceRoot":"","sources":["../../src/tools/get-paper-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE3E,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA6CjB"}
@@ -23,8 +23,9 @@ export async function getPaperComments(client, input) {
23
23
  const originalText = thread.anchor.originalText
24
24
  ? `"${thread.anchor.originalText.substring(0, 50)}${thread.anchor.originalText.length > 50 ? '...' : ''}"`
25
25
  : '(no text anchor)';
26
- lines.push(`## Thread ${status}`);
27
- lines.push(`**ID**: ${thread.id}`);
26
+ const shortId = thread.threadNumber != null ? `#${thread.threadNumber}` : '(no number)';
27
+ lines.push(`## Thread ${shortId} ${status}`);
28
+ lines.push(`**ID**: ${thread.id} · **Short**: ${shortId}`);
28
29
  lines.push(`**On text**: ${originalText}`);
29
30
  lines.push(`**Started by**: ${thread.createdBy.name || thread.createdBy.email}`);
30
31
  lines.push('');
@@ -1 +1 @@
1
- {"version":3,"file":"get-paper-comments.js","sourceRoot":"","sources":["../../src/tools/get-paper-comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-paper-comments.js","sourceRoot":"","sources":["../../src/tools/get-paper-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACvE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;CACrG,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAiB,EACjB,KAA4B;IAE5B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE/D,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,KAAK,KAAK;QACrD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClC,CAAC,CAAC,OAAO,CAAC;IAEZ,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,4BAA4B,KAAK,CAAC,IAAI,IAAI,CAAC;IAC9G,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,wBAAwB,KAAK,CAAC,IAAI,GAAG;QACrC,EAAE;QACF,SAAS,eAAe,CAAC,MAAM,qBAAqB;QACpD,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY;YAC7C,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG;YAC1G,CAAC,CAAC,kBAAkB,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QACxF,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,EAAE,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,OAAO,IAAI,IAAI,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -5,13 +5,13 @@ export declare const importMdSchema: z.ZodObject<{
5
5
  type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["note", "paper"]>>>;
6
6
  slug: z.ZodOptional<z.ZodString>;
7
7
  }, "strip", z.ZodTypeAny, {
8
- type: "paper" | "note";
8
+ type: "note" | "paper";
9
9
  file_path: string;
10
10
  slug?: string | undefined;
11
11
  }, {
12
12
  file_path: string;
13
13
  slug?: string | undefined;
14
- type?: "paper" | "note" | undefined;
14
+ type?: "note" | "paper" | undefined;
15
15
  }>;
16
16
  export type ImportMdInput = z.infer<typeof importMdSchema>;
17
17
  export declare function importMd(client: ApiClient, input: ImportMdInput, frontendUrl?: string): Promise<string>;
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const listTicketCommentsSchema: z.ZodObject<{
4
+ ticketId: z.ZodString;
5
+ }, "strip", z.ZodTypeAny, {
6
+ ticketId: string;
7
+ }, {
8
+ ticketId: string;
9
+ }>;
10
+ export type ListTicketCommentsInput = z.infer<typeof listTicketCommentsSchema>;
11
+ export declare function listTicketComments(client: ApiClient, input: ListTicketCommentsInput): Promise<string>;
12
+ //# sourceMappingURL=list-ticket-comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-ticket-comments.d.ts","sourceRoot":"","sources":["../../src/tools/list-ticket-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ export const listTicketCommentsSchema = z.object({
3
+ ticketId: z.string().uuid().describe('The UUID of the ticket'),
4
+ });
5
+ export async function listTicketComments(client, input) {
6
+ const comments = await client.listTicketComments(input.ticketId);
7
+ if (comments.length === 0)
8
+ return `No comments on ticket ${input.ticketId}.`;
9
+ const lines = [`Found ${comments.length} comment(s):`, ''];
10
+ for (const c of comments) {
11
+ const author = c.author ? c.author.name || c.author.email : c.authorId;
12
+ lines.push(`- **${author}** (${new Date(c.createdAt).toLocaleString()}) — ID: ${c.id}`);
13
+ lines.push(` ${c.content.replace(/\n/g, '\n ')}`);
14
+ lines.push('');
15
+ }
16
+ return lines.join('\n');
17
+ }
18
+ //# sourceMappingURL=list-ticket-comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-ticket-comments.js","sourceRoot":"","sources":["../../src/tools/list-ticket-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CAC/D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAiB,EACjB,KAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,yBAAyB,KAAK,CAAC,QAAQ,GAAG,CAAC;IAE7E,MAAM,KAAK,GAAG,CAAC,SAAS,QAAQ,CAAC,MAAM,cAAc,EAAE,EAAE,CAAC,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const listTicketRelationsSchema: z.ZodObject<{
4
+ ticketId: z.ZodString;
5
+ }, "strip", z.ZodTypeAny, {
6
+ ticketId: string;
7
+ }, {
8
+ ticketId: string;
9
+ }>;
10
+ export type ListTicketRelationsInput = z.infer<typeof listTicketRelationsSchema>;
11
+ export declare function listTicketRelations(client: ApiClient, input: ListTicketRelationsInput): Promise<string>;
12
+ //# sourceMappingURL=list-ticket-relations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-ticket-relations.d.ts","sourceRoot":"","sources":["../../src/tools/list-ticket-relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAajB"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ export const listTicketRelationsSchema = z.object({
3
+ ticketId: z.string().uuid().describe('The UUID of the ticket'),
4
+ });
5
+ export async function listTicketRelations(client, input) {
6
+ const relations = await client.listTicketRelations(input.ticketId);
7
+ if (relations.length === 0)
8
+ return `No relations on ticket ${input.ticketId}.`;
9
+ const lines = [`Found ${relations.length} relation(s):`, ''];
10
+ for (const r of relations) {
11
+ const t = r.ticket;
12
+ const num = t.number != null ? `#${t.number}` : '';
13
+ lines.push(`- **${r.relationType}** → ${num} ${t.title} (${t.status})`);
14
+ lines.push(` Relation ID: ${r.id} · Ticket ID: ${t.id}`);
15
+ lines.push('');
16
+ }
17
+ return lines.join('\n');
18
+ }
19
+ //# sourceMappingURL=list-ticket-relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-ticket-relations.js","sourceRoot":"","sources":["../../src/tools/list-ticket-relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CAC/D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,KAA+B;IAE/B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,0BAA0B,KAAK,CAAC,QAAQ,GAAG,CAAC;IAE/E,MAAM,KAAK,GAAG,CAAC,SAAS,SAAS,CAAC,MAAM,eAAe,EAAE,EAAE,CAAC,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACnB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,QAAQ,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const listTicketsSchema: z.ZodObject<{
4
+ filter: z.ZodOptional<z.ZodString>;
5
+ sort: z.ZodOptional<z.ZodString>;
6
+ page: z.ZodOptional<z.ZodNumber>;
7
+ limit: z.ZodOptional<z.ZodNumber>;
8
+ workspaceId: z.ZodOptional<z.ZodString>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ sort?: string | undefined;
11
+ filter?: string | undefined;
12
+ workspaceId?: string | undefined;
13
+ page?: number | undefined;
14
+ limit?: number | undefined;
15
+ }, {
16
+ sort?: string | undefined;
17
+ filter?: string | undefined;
18
+ workspaceId?: string | undefined;
19
+ page?: number | undefined;
20
+ limit?: number | undefined;
21
+ }>;
22
+ export type ListTicketsInput = z.infer<typeof listTicketsSchema>;
23
+ export declare function listTickets(client: ApiClient, input: ListTicketsInput): Promise<string>;
24
+ //# sourceMappingURL=list-tickets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-tickets.d.ts","sourceRoot":"","sources":["../../src/tools/list-tickets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EA0B5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CAgCjB"}
@@ -0,0 +1,52 @@
1
+ import { z } from 'zod';
2
+ export const listTicketsSchema = z.object({
3
+ filter: z
4
+ .string()
5
+ .optional()
6
+ .describe('Filter DSL, e.g. "status=todo priority>=high assignee=me tag=bug". Fields: status, priority, assignee (me|none|name|uuid), owner (me|name|uuid), tag. assignee/owner name matching is exact and case-insensitive on the member\'s full name (not email) — use a UUID otherwise. Operators: = != >= <=. Leftover text is free-text search on title/description.'),
7
+ sort: z
8
+ .string()
9
+ .optional()
10
+ .describe('Sort as "field:asc|desc". Fields: title, status, priority, createdAt, updatedAt, dueDate, startDate, position.'),
11
+ page: z.number().int().positive().optional().describe('Page number (default: 1)'),
12
+ limit: z
13
+ .number()
14
+ .int()
15
+ .positive()
16
+ .max(500)
17
+ .optional()
18
+ .describe('Items per page (default: 200, max: 500)'),
19
+ workspaceId: z
20
+ .string()
21
+ .uuid()
22
+ .optional()
23
+ .describe('Workspace ID (defaults to active workspace)'),
24
+ });
25
+ export async function listTickets(client, input) {
26
+ const workspaceId = await client.resolveWorkspaceId(input.workspaceId);
27
+ const response = await client.listTickets({
28
+ workspaceId,
29
+ filter: input.filter,
30
+ sort: input.sort,
31
+ page: input.page,
32
+ limit: input.limit,
33
+ });
34
+ if (response.items.length === 0) {
35
+ return `No tickets found${input.filter ? ` for filter "${input.filter}"` : ''}.`;
36
+ }
37
+ const lines = [
38
+ `Found ${response.total} ticket(s) (page ${response.page}/${response.totalPages}):`,
39
+ '',
40
+ ];
41
+ for (const t of response.items) {
42
+ const num = t.number != null ? `#${t.number}` : '(no #)';
43
+ const assignee = t.assignee ? t.assignee.name || t.assignee.email : 'unassigned';
44
+ const tags = t.tags?.length ? ` [${t.tags.map((tg) => tg.label).join(', ')}]` : '';
45
+ lines.push(`- ${num} **${t.title}** — ${t.status}, ${t.priority}${tags}`);
46
+ lines.push(` Assignee: ${assignee}${t.startDate ? ` · Start: ${t.startDate}` : ''}${t.dueDate ? ` · Due: ${t.dueDate}` : ''}`);
47
+ lines.push(` ID: ${t.id}`);
48
+ lines.push('');
49
+ }
50
+ return lines.join('\n');
51
+ }
52
+ //# sourceMappingURL=list-tickets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-tickets.js","sourceRoot":"","sources":["../../src/tools/list-tickets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const listWorkspaceMembersSchema: z.ZodObject<{
4
+ workspaceId: z.ZodOptional<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ workspaceId?: string | undefined;
7
+ }, {
8
+ workspaceId?: string | undefined;
9
+ }>;
10
+ export type ListWorkspaceMembersInput = z.infer<typeof listWorkspaceMembersSchema>;
11
+ export declare function listWorkspaceMembers(client: ApiClient, input: ListWorkspaceMembersInput): Promise<string>;
12
+ //# sourceMappingURL=list-workspace-members.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-workspace-members.d.ts","sourceRoot":"","sources":["../../src/tools/list-workspace-members.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,0BAA0B;;;;;;EAMrC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEnF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ export const listWorkspaceMembersSchema = z.object({
3
+ workspaceId: z
4
+ .string()
5
+ .uuid()
6
+ .optional()
7
+ .describe('Workspace ID (defaults to active workspace)'),
8
+ });
9
+ export async function listWorkspaceMembers(client, input) {
10
+ const workspaceId = await client.resolveWorkspaceId(input.workspaceId);
11
+ const members = await client.getWorkspaceMembers(workspaceId);
12
+ if (members.length === 0)
13
+ return 'No members in this workspace.';
14
+ const lines = [`Found ${members.length} member(s):`, ''];
15
+ for (const m of members) {
16
+ lines.push(`- **${m.name || m.email}** (${m.role})`);
17
+ lines.push(` Email: ${m.email} · ID: ${m.id}`);
18
+ lines.push('');
19
+ }
20
+ return lines.join('\n');
21
+ }
22
+ //# sourceMappingURL=list-workspace-members.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-workspace-members.js","sourceRoot":"","sources":["../../src/tools/list-workspace-members.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAiB,EACjB,KAAgC;IAEhC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,+BAA+B,CAAC;IAEjE,MAAM,KAAK,GAAG,CAAC,SAAS,OAAO,CAAC,MAAM,aAAa,EAAE,EAAE,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const readTicketSchema: z.ZodObject<{
4
+ id: z.ZodString;
5
+ }, "strip", z.ZodTypeAny, {
6
+ id: string;
7
+ }, {
8
+ id: string;
9
+ }>;
10
+ export type ReadTicketInput = z.infer<typeof readTicketSchema>;
11
+ export declare function readTicket(client: ApiClient, input: ReadTicketInput): Promise<string>;
12
+ //# sourceMappingURL=read-ticket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-ticket.d.ts","sourceRoot":"","sources":["../../src/tools/read-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ export const readTicketSchema = z.object({
3
+ id: z.string().uuid().describe('The UUID of the ticket to read'),
4
+ });
5
+ export async function readTicket(client, input) {
6
+ const t = await client.getTicket(input.id);
7
+ const num = t.number != null ? `#${t.number}` : '(no #)';
8
+ const assignee = t.assignee ? t.assignee.name || t.assignee.email : 'unassigned';
9
+ const owner = t.owner ? t.owner.name || t.owner.email : t.ownerId;
10
+ const tags = t.tags?.length ? t.tags.map((tg) => tg.label).join(', ') : 'none';
11
+ const lines = [
12
+ `# ${num} ${t.title}`,
13
+ '',
14
+ `- **Status**: ${t.status}${t.pinned ? ' (pinned)' : ''}`,
15
+ `- **Priority**: ${t.priority}`,
16
+ `- **Assignee**: ${assignee}${t.assigneeId ? ` (${t.assigneeId})` : ''}`,
17
+ `- **Owner**: ${owner}`,
18
+ `- **Tags**: ${tags}`,
19
+ `- **Start date**: ${t.startDate ?? '—'}`,
20
+ `- **Due date**: ${t.dueDate ?? '—'}`,
21
+ `- **ID**: ${t.id}`,
22
+ `- **Created**: ${new Date(t.createdAt).toLocaleString()}`,
23
+ `- **Updated**: ${new Date(t.updatedAt).toLocaleString()}`,
24
+ '',
25
+ '## Description',
26
+ '',
27
+ t.description || '_(empty)_',
28
+ ];
29
+ return lines.join('\n');
30
+ }
31
+ //# sourceMappingURL=read-ticket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-ticket.js","sourceRoot":"","sources":["../../src/tools/read-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CACjE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,KAAsB;IAEtB,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IACjF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/E,MAAM,KAAK,GAAG;QACZ,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE;QACrB,EAAE;QACF,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QACzD,mBAAmB,CAAC,CAAC,QAAQ,EAAE;QAC/B,mBAAmB,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxE,gBAAgB,KAAK,EAAE;QACvB,eAAe,IAAI,EAAE;QACrB,qBAAqB,CAAC,CAAC,SAAS,IAAI,GAAG,EAAE;QACzC,mBAAmB,CAAC,CAAC,OAAO,IAAI,GAAG,EAAE;QACrC,aAAa,CAAC,CAAC,EAAE,EAAE;QACnB,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;QAC1D,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;QAC1D,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,CAAC,CAAC,WAAW,IAAI,WAAW;KAC7B,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { ApiClient } from '../api-client.js';
3
+ export declare const removeTicketRelationSchema: z.ZodObject<{
4
+ ticketId: z.ZodString;
5
+ relationId: z.ZodString;
6
+ }, "strip", z.ZodTypeAny, {
7
+ ticketId: string;
8
+ relationId: string;
9
+ }, {
10
+ ticketId: string;
11
+ relationId: string;
12
+ }>;
13
+ export type RemoveTicketRelationInput = z.infer<typeof removeTicketRelationSchema>;
14
+ export declare function removeTicketRelation(client: ApiClient, input: RemoveTicketRelationInput): Promise<string>;
15
+ //# sourceMappingURL=remove-ticket-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-ticket-relation.d.ts","sourceRoot":"","sources":["../../src/tools/remove-ticket-relation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,0BAA0B;;;;;;;;;EAGrC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEnF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAGjB"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export const removeTicketRelationSchema = z.object({
3
+ ticketId: z.string().uuid().describe('The UUID of the ticket the relation belongs to'),
4
+ relationId: z.string().uuid().describe('The UUID of the relation to remove'),
5
+ });
6
+ export async function removeTicketRelation(client, input) {
7
+ await client.removeTicketRelation(input.ticketId, input.relationId);
8
+ return `Relation ${input.relationId} removed.`;
9
+ }
10
+ //# sourceMappingURL=remove-ticket-relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-ticket-relation.js","sourceRoot":"","sources":["../../src/tools/remove-ticket-relation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACtF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CAC7E,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAiB,EACjB,KAAgC;IAEhC,MAAM,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACpE,OAAO,YAAY,KAAK,CAAC,UAAU,WAAW,CAAC;AACjD,CAAC"}