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.
- package/README.md +18 -0
- package/dist/api-client.d.ts +100 -3
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +80 -6
- package/dist/api-client.js.map +1 -1
- package/dist/index.js +258 -23
- package/dist/index.js.map +1 -1
- package/dist/tools/add-ticket-relation.d.ts +18 -0
- package/dist/tools/add-ticket-relation.d.ts.map +1 -0
- package/dist/tools/add-ticket-relation.js +13 -0
- package/dist/tools/add-ticket-relation.js.map +1 -0
- package/dist/tools/bulk-resolve-paper.d.ts +3 -3
- package/dist/tools/bulk-resolve-paper.d.ts.map +1 -1
- package/dist/tools/bulk-resolve-paper.js +4 -2
- package/dist/tools/bulk-resolve-paper.js.map +1 -1
- package/dist/tools/bulk-resolve.d.ts +3 -3
- package/dist/tools/bulk-resolve.d.ts.map +1 -1
- package/dist/tools/bulk-resolve.js +4 -2
- package/dist/tools/bulk-resolve.js.map +1 -1
- package/dist/tools/create-ticket-comment.d.ts +15 -0
- package/dist/tools/create-ticket-comment.d.ts.map +1 -0
- package/dist/tools/create-ticket-comment.js +10 -0
- package/dist/tools/create-ticket-comment.js.map +1 -0
- package/dist/tools/create-ticket.d.ts +51 -0
- package/dist/tools/create-ticket.d.ts.map +1 -0
- package/dist/tools/create-ticket.js +55 -0
- package/dist/tools/create-ticket.js.map +1 -0
- package/dist/tools/delete-ticket-comment.d.ts +15 -0
- package/dist/tools/delete-ticket-comment.d.ts.map +1 -0
- package/dist/tools/delete-ticket-comment.js +10 -0
- package/dist/tools/delete-ticket-comment.js.map +1 -0
- package/dist/tools/delete-ticket.d.ts +12 -0
- package/dist/tools/delete-ticket.d.ts.map +1 -0
- package/dist/tools/delete-ticket.js +9 -0
- package/dist/tools/delete-ticket.js.map +1 -0
- package/dist/tools/get-comments.d.ts.map +1 -1
- package/dist/tools/get-comments.js +3 -2
- package/dist/tools/get-comments.js.map +1 -1
- package/dist/tools/get-paper-comments.d.ts.map +1 -1
- package/dist/tools/get-paper-comments.js +3 -2
- package/dist/tools/get-paper-comments.js.map +1 -1
- package/dist/tools/import-md.d.ts +2 -2
- package/dist/tools/list-ticket-comments.d.ts +12 -0
- package/dist/tools/list-ticket-comments.d.ts.map +1 -0
- package/dist/tools/list-ticket-comments.js +18 -0
- package/dist/tools/list-ticket-comments.js.map +1 -0
- package/dist/tools/list-ticket-relations.d.ts +12 -0
- package/dist/tools/list-ticket-relations.d.ts.map +1 -0
- package/dist/tools/list-ticket-relations.js +19 -0
- package/dist/tools/list-ticket-relations.js.map +1 -0
- package/dist/tools/list-tickets.d.ts +24 -0
- package/dist/tools/list-tickets.d.ts.map +1 -0
- package/dist/tools/list-tickets.js +52 -0
- package/dist/tools/list-tickets.js.map +1 -0
- package/dist/tools/list-workspace-members.d.ts +12 -0
- package/dist/tools/list-workspace-members.d.ts.map +1 -0
- package/dist/tools/list-workspace-members.js +22 -0
- package/dist/tools/list-workspace-members.js.map +1 -0
- package/dist/tools/read-ticket.d.ts +12 -0
- package/dist/tools/read-ticket.d.ts.map +1 -0
- package/dist/tools/read-ticket.js +31 -0
- package/dist/tools/read-ticket.js.map +1 -0
- package/dist/tools/remove-ticket-relation.d.ts +15 -0
- package/dist/tools/remove-ticket-relation.d.ts.map +1 -0
- package/dist/tools/remove-ticket-relation.js +10 -0
- package/dist/tools/remove-ticket-relation.js.map +1 -0
- package/dist/tools/resolve-paper-thread.d.ts +3 -3
- package/dist/tools/resolve-paper-thread.d.ts.map +1 -1
- package/dist/tools/resolve-paper-thread.js +4 -2
- package/dist/tools/resolve-paper-thread.js.map +1 -1
- package/dist/tools/resolve-thread-id.d.ts +7 -0
- package/dist/tools/resolve-thread-id.d.ts.map +1 -0
- package/dist/tools/resolve-thread-id.js +23 -0
- package/dist/tools/resolve-thread-id.js.map +1 -0
- package/dist/tools/resolve-thread.d.ts +3 -3
- package/dist/tools/resolve-thread.d.ts.map +1 -1
- package/dist/tools/resolve-thread.js +4 -2
- package/dist/tools/resolve-thread.js.map +1 -1
- package/dist/tools/update-ticket-comment.d.ts +18 -0
- package/dist/tools/update-ticket-comment.d.ts.map +1 -0
- package/dist/tools/update-ticket-comment.js +11 -0
- package/dist/tools/update-ticket-comment.js.map +1 -0
- package/dist/tools/update-ticket.d.ts +54 -0
- package/dist/tools/update-ticket.d.ts.map +1 -0
- package/dist/tools/update-ticket.js +46 -0
- package/dist/tools/update-ticket.js.map +1 -0
- package/package.json +1 -1
- package/dist/tools/kb-reflect.d.ts +0 -15
- package/dist/tools/kb-reflect.d.ts.map +0 -1
- package/dist/tools/kb-reflect.js +0 -14
- package/dist/tools/kb-reflect.js.map +0 -1
|
@@ -2,15 +2,15 @@ import { z } from 'zod';
|
|
|
2
2
|
import { ApiClient } from '../api-client.js';
|
|
3
3
|
export declare const resolvePaperThreadSchema: z.ZodObject<{
|
|
4
4
|
slug: z.ZodString;
|
|
5
|
-
threadId: z.ZodString
|
|
5
|
+
threadId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
6
6
|
resolved: z.ZodOptional<z.ZodBoolean>;
|
|
7
7
|
}, "strip", z.ZodTypeAny, {
|
|
8
8
|
slug: string;
|
|
9
|
-
threadId: string;
|
|
9
|
+
threadId: string | number;
|
|
10
10
|
resolved?: boolean | undefined;
|
|
11
11
|
}, {
|
|
12
12
|
slug: string;
|
|
13
|
-
threadId: string;
|
|
13
|
+
threadId: string | number;
|
|
14
14
|
resolved?: boolean | undefined;
|
|
15
15
|
}>;
|
|
16
16
|
export type ResolvePaperThreadInput = z.infer<typeof resolvePaperThreadSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-paper-thread.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-paper-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-paper-thread.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-paper-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,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,CAajB"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { resolveThreadId } from './resolve-thread-id.js';
|
|
2
3
|
export const resolvePaperThreadSchema = z.object({
|
|
3
4
|
slug: z.string().describe('The slug of the paper containing the thread'),
|
|
4
|
-
threadId: z.string().
|
|
5
|
+
threadId: z.union([z.string(), z.number()]).describe('The thread short number (e.g. 3) or its UUID'),
|
|
5
6
|
resolved: z.boolean().optional().describe('Set to true to resolve, false to unresolve (default: true)'),
|
|
6
7
|
});
|
|
7
8
|
export async function resolvePaperThread(client, input) {
|
|
8
9
|
const paper = await client.getPaperBySlug(input.slug);
|
|
9
10
|
const resolved = input.resolved !== false;
|
|
10
|
-
const
|
|
11
|
+
const threadUuid = await resolveThreadId(client, paper.id, input.threadId, 'paper');
|
|
12
|
+
const thread = await client.resolvePaperThread(paper.id, threadUuid, resolved);
|
|
11
13
|
const action = resolved ? 'resolved' : 'reopened';
|
|
12
14
|
const originalText = thread.anchor.originalText
|
|
13
15
|
? `on "${thread.anchor.originalText.substring(0, 30)}..."`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-paper-thread.js","sourceRoot":"","sources":["../../src/tools/resolve-paper-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-paper-thread.js","sourceRoot":"","sources":["../../src/tools/resolve-paper-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACxE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACpG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CACxG,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAiB,EACjB,KAA8B;IAE9B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;IAE1C,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY;QAC7C,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;QAC1D,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,kBAAkB,YAAY,aAAa,MAAM,GAAG,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ApiClient } from '../api-client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Accepts either a short thread number (e.g. 3 or "3") or a full UUID and
|
|
4
|
+
* returns the thread's UUID. Numbers match threadNumber within the document.
|
|
5
|
+
*/
|
|
6
|
+
export declare function resolveThreadId(client: ApiClient, documentId: string, threadIdInput: string | number, docType: 'note' | 'paper'): Promise<string>;
|
|
7
|
+
//# sourceMappingURL=resolve-thread-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-thread-id.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-thread-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GAAG,MAAM,EAC9B,OAAO,EAAE,MAAM,GAAG,OAAO,GACxB,OAAO,CAAC,MAAM,CAAC,CAejB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accepts either a short thread number (e.g. 3 or "3") or a full UUID and
|
|
3
|
+
* returns the thread's UUID. Numbers match threadNumber within the document.
|
|
4
|
+
*/
|
|
5
|
+
export async function resolveThreadId(client, documentId, threadIdInput, docType) {
|
|
6
|
+
const raw = String(threadIdInput).trim().replace(/^#/, '');
|
|
7
|
+
const isNumber = /^\d+$/.test(raw);
|
|
8
|
+
const threads = docType === 'note'
|
|
9
|
+
? await client.listCommentThreads(documentId)
|
|
10
|
+
: await client.listPaperCommentThreads(documentId);
|
|
11
|
+
if (isNumber) {
|
|
12
|
+
const n = Number(raw);
|
|
13
|
+
const found = threads.find((t) => t.threadNumber === n);
|
|
14
|
+
if (!found)
|
|
15
|
+
throw new Error(`No comment thread #${n} on this document.`);
|
|
16
|
+
return found.id;
|
|
17
|
+
}
|
|
18
|
+
const found = threads.find((t) => t.id === raw);
|
|
19
|
+
if (!found)
|
|
20
|
+
throw new Error(`No comment thread with id ${raw} on this document.`);
|
|
21
|
+
return found.id;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=resolve-thread-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-thread-id.js","sourceRoot":"","sources":["../../src/tools/resolve-thread-id.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAiB,EACjB,UAAkB,EAClB,aAA8B,EAC9B,OAAyB;IAEzB,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,KAAK,MAAM;QAChC,CAAC,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC;QAC7C,CAAC,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,oBAAoB,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -2,15 +2,15 @@ import { z } from 'zod';
|
|
|
2
2
|
import { ApiClient } from '../api-client.js';
|
|
3
3
|
export declare const resolveThreadSchema: z.ZodObject<{
|
|
4
4
|
slug: z.ZodString;
|
|
5
|
-
threadId: z.ZodString
|
|
5
|
+
threadId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
6
6
|
resolved: z.ZodOptional<z.ZodBoolean>;
|
|
7
7
|
}, "strip", z.ZodTypeAny, {
|
|
8
8
|
slug: string;
|
|
9
|
-
threadId: string;
|
|
9
|
+
threadId: string | number;
|
|
10
10
|
resolved?: boolean | undefined;
|
|
11
11
|
}, {
|
|
12
12
|
slug: string;
|
|
13
|
-
threadId: string;
|
|
13
|
+
threadId: string | number;
|
|
14
14
|
resolved?: boolean | undefined;
|
|
15
15
|
}>;
|
|
16
16
|
export type ResolveThreadInput = z.infer<typeof resolveThreadSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-thread.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-thread.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAcjB"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { resolveThreadId } from './resolve-thread-id.js';
|
|
2
3
|
export const resolveThreadSchema = z.object({
|
|
3
4
|
slug: z.string().describe('The slug of the note containing the thread'),
|
|
4
|
-
threadId: z.string().
|
|
5
|
+
threadId: z.union([z.string(), z.number()]).describe('The thread short number (e.g. 3) or its UUID'),
|
|
5
6
|
resolved: z.boolean().optional().describe('Set to true to resolve, false to unresolve (default: true)'),
|
|
6
7
|
});
|
|
7
8
|
export async function resolveThread(client, input) {
|
|
8
9
|
// First get the note to find its ID
|
|
9
10
|
const note = await client.getNoteBySlug(input.slug);
|
|
10
11
|
const resolved = input.resolved !== false;
|
|
11
|
-
const
|
|
12
|
+
const threadUuid = await resolveThreadId(client, note.id, input.threadId, 'note');
|
|
13
|
+
const thread = await client.resolveThread(note.id, threadUuid, resolved);
|
|
12
14
|
const action = resolved ? 'resolved' : 'reopened';
|
|
13
15
|
const originalText = thread.anchor.originalText
|
|
14
16
|
? `on "${thread.anchor.originalText.substring(0, 30)}..."`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-thread.js","sourceRoot":"","sources":["../../src/tools/resolve-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-thread.js","sourceRoot":"","sources":["../../src/tools/resolve-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACvE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACpG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CACxG,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAiB,EACjB,KAAyB;IAEzB,oCAAoC;IACpC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;IAE1C,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEzE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY;QAC7C,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;QAC1D,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,kBAAkB,YAAY,aAAa,MAAM,GAAG,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const updateTicketCommentSchema: z.ZodObject<{
|
|
4
|
+
ticketId: z.ZodString;
|
|
5
|
+
commentId: z.ZodString;
|
|
6
|
+
content: z.ZodString;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
content: string;
|
|
9
|
+
ticketId: string;
|
|
10
|
+
commentId: string;
|
|
11
|
+
}, {
|
|
12
|
+
content: string;
|
|
13
|
+
ticketId: string;
|
|
14
|
+
commentId: string;
|
|
15
|
+
}>;
|
|
16
|
+
export type UpdateTicketCommentInput = z.infer<typeof updateTicketCommentSchema>;
|
|
17
|
+
export declare function updateTicketComment(client: ApiClient, input: UpdateTicketCommentInput): Promise<string>;
|
|
18
|
+
//# sourceMappingURL=update-ticket-comment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-ticket-comment.d.ts","sourceRoot":"","sources":["../../src/tools/update-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;;;;;;;;;;;;EAIpC,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,CAOjB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const updateTicketCommentSchema = 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 update'),
|
|
5
|
+
content: z.string().min(1).describe('New comment content'),
|
|
6
|
+
});
|
|
7
|
+
export async function updateTicketComment(client, input) {
|
|
8
|
+
const c = await client.updateTicketComment(input.ticketId, input.commentId, input.content);
|
|
9
|
+
return `Comment ${c.id} updated.`;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=update-ticket-comment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-ticket-comment.js","sourceRoot":"","sources":["../../src/tools/update-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;IAC1E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAC3D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,KAA+B;IAE/B,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,mBAAmB,CACxC,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,CACd,CAAC;IACF,OAAO,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const updateTicketSchema: z.ZodObject<{
|
|
4
|
+
id: z.ZodString;
|
|
5
|
+
title: z.ZodOptional<z.ZodString>;
|
|
6
|
+
description: z.ZodOptional<z.ZodString>;
|
|
7
|
+
status: z.ZodOptional<z.ZodEnum<["backlog", "planned", "todo", "doing", "done", "wont", "closed"]>>;
|
|
8
|
+
priority: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "critical"]>>;
|
|
9
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
10
|
+
label: z.ZodString;
|
|
11
|
+
color: z.ZodString;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
label: string;
|
|
14
|
+
color: string;
|
|
15
|
+
}, {
|
|
16
|
+
label: string;
|
|
17
|
+
color: string;
|
|
18
|
+
}>, "many">>;
|
|
19
|
+
assigneeId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
20
|
+
startDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
21
|
+
dueDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
22
|
+
pinned: z.ZodOptional<z.ZodBoolean>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
id: string;
|
|
25
|
+
tags?: {
|
|
26
|
+
label: string;
|
|
27
|
+
color: string;
|
|
28
|
+
}[] | undefined;
|
|
29
|
+
status?: "backlog" | "planned" | "todo" | "doing" | "done" | "wont" | "closed" | undefined;
|
|
30
|
+
title?: string | undefined;
|
|
31
|
+
description?: string | undefined;
|
|
32
|
+
priority?: "low" | "medium" | "high" | "critical" | undefined;
|
|
33
|
+
assigneeId?: string | null | undefined;
|
|
34
|
+
startDate?: string | null | undefined;
|
|
35
|
+
dueDate?: string | null | undefined;
|
|
36
|
+
pinned?: boolean | undefined;
|
|
37
|
+
}, {
|
|
38
|
+
id: string;
|
|
39
|
+
tags?: {
|
|
40
|
+
label: string;
|
|
41
|
+
color: string;
|
|
42
|
+
}[] | undefined;
|
|
43
|
+
status?: "backlog" | "planned" | "todo" | "doing" | "done" | "wont" | "closed" | undefined;
|
|
44
|
+
title?: string | undefined;
|
|
45
|
+
description?: string | undefined;
|
|
46
|
+
priority?: "low" | "medium" | "high" | "critical" | undefined;
|
|
47
|
+
assigneeId?: string | null | undefined;
|
|
48
|
+
startDate?: string | null | undefined;
|
|
49
|
+
dueDate?: string | null | undefined;
|
|
50
|
+
pinned?: boolean | undefined;
|
|
51
|
+
}>;
|
|
52
|
+
export type UpdateTicketInput = z.infer<typeof updateTicketSchema>;
|
|
53
|
+
export declare function updateTicket(client: ApiClient, input: UpdateTicketInput): Promise<string>;
|
|
54
|
+
//# sourceMappingURL=update-ticket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-ticket.d.ts","sourceRoot":"","sources":["../../src/tools/update-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsC7B,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,CAMjB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const updateTicketSchema = z.object({
|
|
3
|
+
id: z.string().uuid().describe('The UUID of the ticket to update'),
|
|
4
|
+
title: z.string().min(1).max(500).optional().describe('New title'),
|
|
5
|
+
description: z.string().optional().describe('New markdown description'),
|
|
6
|
+
status: z
|
|
7
|
+
.enum(['backlog', 'planned', 'todo', 'doing', 'done', 'wont', 'closed'])
|
|
8
|
+
.optional()
|
|
9
|
+
.describe('New status'),
|
|
10
|
+
priority: z
|
|
11
|
+
.enum(['low', 'medium', 'high', 'critical'])
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('New priority'),
|
|
14
|
+
tags: z
|
|
15
|
+
.array(z.object({
|
|
16
|
+
label: z.string().min(1).max(50),
|
|
17
|
+
color: z.string().max(20),
|
|
18
|
+
}))
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Replace the ticket tags'),
|
|
21
|
+
assigneeId: z
|
|
22
|
+
.string()
|
|
23
|
+
.uuid()
|
|
24
|
+
.nullable()
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Assignee member UUID, or null to unassign'),
|
|
27
|
+
startDate: z
|
|
28
|
+
.string()
|
|
29
|
+
.nullable()
|
|
30
|
+
.optional()
|
|
31
|
+
.describe('Start date (YYYY-MM-DD) or null to clear'),
|
|
32
|
+
dueDate: z
|
|
33
|
+
.string()
|
|
34
|
+
.nullable()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('Due date (YYYY-MM-DD) or null to clear'),
|
|
37
|
+
pinned: z.boolean().optional().describe('Pin/unpin the ticket'),
|
|
38
|
+
});
|
|
39
|
+
export async function updateTicket(client, input) {
|
|
40
|
+
const { id, ...rest } = input;
|
|
41
|
+
const t = await client.updateTicket(id, rest);
|
|
42
|
+
const num = t.number != null ? `#${t.number}` : '';
|
|
43
|
+
const assignee = t.assignee ? t.assignee.name || t.assignee.email : 'unassigned';
|
|
44
|
+
return `Ticket ${num} "${t.title}" updated — status: ${t.status}, priority: ${t.priority}, assignee: ${assignee}.`;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=update-ticket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-ticket.js","sourceRoot":"","sources":["../../src/tools/update-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;IAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACvE,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,YAAY,CAAC;IACzB,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;SAC3C,QAAQ,EAAE;SACV,QAAQ,CAAC,cAAc,CAAC;IAC3B,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;QAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;KAC1B,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,yBAAyB,CAAC;IACtC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;IACxD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CAChE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAiB,EACjB,KAAwB;IAExB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,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,OAAO,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,uBAAuB,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,QAAQ,eAAe,QAAQ,GAAG,CAAC;AACrH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { ApiClient } from '../api-client.js';
|
|
3
|
-
export declare const kbReflectSchema: z.ZodObject<{
|
|
4
|
-
query: z.ZodString;
|
|
5
|
-
workspaceId: z.ZodOptional<z.ZodString>;
|
|
6
|
-
}, "strip", z.ZodTypeAny, {
|
|
7
|
-
query: string;
|
|
8
|
-
workspaceId?: string | undefined;
|
|
9
|
-
}, {
|
|
10
|
-
query: string;
|
|
11
|
-
workspaceId?: string | undefined;
|
|
12
|
-
}>;
|
|
13
|
-
export type KbReflectInput = z.infer<typeof kbReflectSchema>;
|
|
14
|
-
export declare function kbReflect(client: ApiClient, input: KbReflectInput): Promise<string>;
|
|
15
|
-
//# sourceMappingURL=kb-reflect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kb-reflect.d.ts","sourceRoot":"","sources":["../../src/tools/kb-reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,wBAAsB,SAAS,CAC7B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,MAAM,CAAC,CASjB"}
|
package/dist/tools/kb-reflect.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export const kbReflectSchema = z.object({
|
|
3
|
-
query: z.string().describe('Question to reason about using the knowledge base'),
|
|
4
|
-
workspaceId: z.string().uuid().optional().describe('Workspace ID to reflect on (defaults to your default workspace)'),
|
|
5
|
-
});
|
|
6
|
-
export async function kbReflect(client, input) {
|
|
7
|
-
const workspaceId = input.workspaceId ?? await client.getDefaultWorkspaceId() ?? undefined;
|
|
8
|
-
if (!workspaceId) {
|
|
9
|
-
return 'Error: No workspace ID provided and no default workspace found.';
|
|
10
|
-
}
|
|
11
|
-
const response = await client.kbReflect(workspaceId, input.query);
|
|
12
|
-
return response.response || 'No response from knowledge base.';
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=kb-reflect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kb-reflect.js","sourceRoot":"","sources":["../../src/tools/kb-reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC/E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;CACtH,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAiB,EACjB,KAAqB;IAErB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,MAAM,MAAM,CAAC,qBAAqB,EAAE,IAAI,SAAS,CAAC;IAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,iEAAiE,CAAC;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,QAAQ,CAAC,QAAQ,IAAI,kCAAkC,CAAC;AACjE,CAAC"}
|