whiteboard-mcp-server 1.1.0 → 2.0.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/dist/api-client.d.ts +73 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +58 -0
- package/dist/api-client.js.map +1 -1
- package/dist/index.js +322 -21
- package/dist/index.js.map +1 -1
- package/dist/tools/bulk-resolve-paper.d.ts +15 -0
- package/dist/tools/bulk-resolve-paper.d.ts.map +1 -0
- package/dist/tools/bulk-resolve-paper.js +30 -0
- package/dist/tools/bulk-resolve-paper.js.map +1 -0
- package/dist/tools/create-paper.d.ts +24 -0
- package/dist/tools/create-paper.d.ts.map +1 -0
- package/dist/tools/create-paper.js +41 -0
- package/dist/tools/create-paper.js.map +1 -0
- package/dist/tools/delete-paper.d.ts +12 -0
- package/dist/tools/delete-paper.d.ts.map +1 -0
- package/dist/tools/delete-paper.js +13 -0
- package/dist/tools/delete-paper.js.map +1 -0
- package/dist/tools/get-paper-comments.d.ts +15 -0
- package/dist/tools/get-paper-comments.d.ts.map +1 -0
- package/dist/tools/get-paper-comments.js +43 -0
- package/dist/tools/get-paper-comments.js.map +1 -0
- package/dist/tools/list-paper-versions.d.ts +18 -0
- package/dist/tools/list-paper-versions.d.ts.map +1 -0
- package/dist/tools/list-paper-versions.js +35 -0
- package/dist/tools/list-paper-versions.js.map +1 -0
- package/dist/tools/list-papers.d.ts +18 -0
- package/dist/tools/list-papers.d.ts.map +1 -0
- package/dist/tools/list-papers.js +22 -0
- package/dist/tools/list-papers.js.map +1 -0
- package/dist/tools/read-paper-version.d.ts +15 -0
- package/dist/tools/read-paper-version.d.ts.map +1 -0
- package/dist/tools/read-paper-version.js +26 -0
- package/dist/tools/read-paper-version.js.map +1 -0
- package/dist/tools/read-paper.d.ts +12 -0
- package/dist/tools/read-paper.d.ts.map +1 -0
- package/dist/tools/read-paper.js +22 -0
- package/dist/tools/read-paper.js.map +1 -0
- package/dist/tools/resolve-paper-thread.d.ts +18 -0
- package/dist/tools/resolve-paper-thread.d.ts.map +1 -0
- package/dist/tools/resolve-paper-thread.js +17 -0
- package/dist/tools/resolve-paper-thread.js.map +1 -0
- package/dist/tools/restore-paper-version.d.ts +15 -0
- package/dist/tools/restore-paper-version.d.ts.map +1 -0
- package/dist/tools/restore-paper-version.js +19 -0
- package/dist/tools/restore-paper-version.js.map +1 -0
- package/dist/tools/update-paper.d.ts +15 -0
- package/dist/tools/update-paper.d.ts.map +1 -0
- package/dist/tools/update-paper.js +16 -0
- package/dist/tools/update-paper.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const bulkResolvePaperSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
threadIds: z.ZodArray<z.ZodString, "many">;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
slug: string;
|
|
8
|
+
threadIds: string[];
|
|
9
|
+
}, {
|
|
10
|
+
slug: string;
|
|
11
|
+
threadIds: string[];
|
|
12
|
+
}>;
|
|
13
|
+
export type BulkResolvePaperInput = z.infer<typeof bulkResolvePaperSchema>;
|
|
14
|
+
export declare function bulkResolvePaper(client: ApiClient, input: BulkResolvePaperInput): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=bulk-resolve-paper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-resolve-paper.d.ts","sourceRoot":"","sources":["../../src/tools/bulk-resolve-paper.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,CA8BjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const bulkResolvePaperSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug of the paper'),
|
|
4
|
+
threadIds: z.array(z.string().uuid()).describe('Array of thread IDs to resolve'),
|
|
5
|
+
});
|
|
6
|
+
export async function bulkResolvePaper(client, input) {
|
|
7
|
+
if (input.threadIds.length === 0) {
|
|
8
|
+
return 'No thread IDs provided.';
|
|
9
|
+
}
|
|
10
|
+
const paper = await client.getPaperBySlug(input.slug);
|
|
11
|
+
const results = await Promise.all(input.threadIds.map(async (threadId) => {
|
|
12
|
+
try {
|
|
13
|
+
await client.resolvePaperThread(paper.id, threadId, true);
|
|
14
|
+
return { threadId, success: true };
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
return { threadId, success: false, error: String(error) };
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
const succeeded = results.filter((r) => r.success).length;
|
|
21
|
+
const failed = results.filter((r) => !r.success);
|
|
22
|
+
if (failed.length === 0) {
|
|
23
|
+
return `Successfully resolved ${succeeded} comment thread(s).`;
|
|
24
|
+
}
|
|
25
|
+
const failedDetails = failed
|
|
26
|
+
.map((f) => `- ${f.threadId}: ${f.error}`)
|
|
27
|
+
.join('\n');
|
|
28
|
+
return `Resolved ${succeeded} thread(s), ${failed.length} failed:\n${failedDetails}`;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=bulk-resolve-paper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-resolve-paper.js","sourceRoot":"","sources":["../../src/tools/bulk-resolve-paper.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,uBAAuB,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CACjF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAiB,EACjB,KAA4B;IAE5B,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC1D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,yBAAyB,SAAS,qBAAqB,CAAC;IACjE,CAAC;IAED,MAAM,aAAa,GAAG,MAAM;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;SACzC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,YAAY,SAAS,eAAe,MAAM,CAAC,MAAM,aAAa,aAAa,EAAE,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const createPaperSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
content: z.ZodOptional<z.ZodString>;
|
|
6
|
+
workspaceId: z.ZodOptional<z.ZodString>;
|
|
7
|
+
sharingMode: z.ZodOptional<z.ZodEnum<["private", "protected", "limited", "editable", "public", "open-bar"]>>;
|
|
8
|
+
engine: z.ZodOptional<z.ZodEnum<["pdflatex", "xelatex"]>>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
slug: string;
|
|
11
|
+
workspaceId?: string | undefined;
|
|
12
|
+
content?: string | undefined;
|
|
13
|
+
sharingMode?: "private" | "protected" | "limited" | "editable" | "public" | "open-bar" | undefined;
|
|
14
|
+
engine?: "pdflatex" | "xelatex" | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
slug: string;
|
|
17
|
+
workspaceId?: string | undefined;
|
|
18
|
+
content?: string | undefined;
|
|
19
|
+
sharingMode?: "private" | "protected" | "limited" | "editable" | "public" | "open-bar" | undefined;
|
|
20
|
+
engine?: "pdflatex" | "xelatex" | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
export type CreatePaperInput = z.infer<typeof createPaperSchema>;
|
|
23
|
+
export declare function createPaper(client: ApiClient, input: CreatePaperInput, frontendUrl?: string): Promise<string>;
|
|
24
|
+
//# sourceMappingURL=create-paper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-paper.d.ts","sourceRoot":"","sources":["../../src/tools/create-paper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAe5B,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,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const createPaperSchema = z.object({
|
|
3
|
+
slug: z
|
|
4
|
+
.string()
|
|
5
|
+
.regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/)
|
|
6
|
+
.describe('URL-friendly slug for the paper (lowercase, hyphens allowed, e.g., "my-paper")'),
|
|
7
|
+
content: z.string().optional().describe('Initial LaTeX content for the paper'),
|
|
8
|
+
workspaceId: z.string().uuid().optional().describe('Workspace ID to create the paper in'),
|
|
9
|
+
sharingMode: z
|
|
10
|
+
.enum(['private', 'protected', 'limited', 'editable', 'public', 'open-bar'])
|
|
11
|
+
.optional()
|
|
12
|
+
.describe('Sharing mode for the paper (default: private)'),
|
|
13
|
+
engine: z
|
|
14
|
+
.enum(['pdflatex', 'xelatex'])
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('LaTeX engine (default: pdflatex)'),
|
|
17
|
+
});
|
|
18
|
+
export async function createPaper(client, input, frontendUrl) {
|
|
19
|
+
const { engine, ...data } = input;
|
|
20
|
+
const paper = await client.createPaper({
|
|
21
|
+
...data,
|
|
22
|
+
metadata: engine ? { engine } : undefined,
|
|
23
|
+
});
|
|
24
|
+
const paperUrl = frontendUrl ? `${frontendUrl}/paper/${paper.slug}` : null;
|
|
25
|
+
const lines = [
|
|
26
|
+
`Paper "${paper.slug}" created successfully!`,
|
|
27
|
+
'',
|
|
28
|
+
`- **ID**: ${paper.id}`,
|
|
29
|
+
`- **Sharing Mode**: ${paper.sharingMode}`,
|
|
30
|
+
`- **Engine**: ${paper.metadata?.engine || 'pdflatex'}`,
|
|
31
|
+
`- **Created**: ${new Date(paper.createdAt).toLocaleString()}`,
|
|
32
|
+
];
|
|
33
|
+
if (input.content) {
|
|
34
|
+
lines.push(`- **Content**: ${input.content.length} characters`);
|
|
35
|
+
}
|
|
36
|
+
if (paperUrl) {
|
|
37
|
+
lines.push(`- **URL**: ${paperUrl}`);
|
|
38
|
+
}
|
|
39
|
+
return lines.join('\n');
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=create-paper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-paper.js","sourceRoot":"","sources":["../../src/tools/create-paper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,KAAK,CAAC,4BAA4B,CAAC;SACnC,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACzF,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;SAC3E,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;SAC7B,QAAQ,EAAE;SACV,QAAQ,CAAC,kCAAkC,CAAC;CAChD,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAiB,EACjB,KAAuB,EACvB,WAAoB;IAEpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QACrC,GAAG,IAAI;QACP,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;KAC1C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,MAAM,KAAK,GAAG;QACZ,UAAU,KAAK,CAAC,IAAI,yBAAyB;QAC7C,EAAE;QACF,aAAa,KAAK,CAAC,EAAE,EAAE;QACvB,uBAAuB,KAAK,CAAC,WAAW,EAAE;QAC1C,iBAAiB,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,UAAU,EAAE;QACvD,kBAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;KAC/D,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,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 deletePaperSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
slug: string;
|
|
7
|
+
}, {
|
|
8
|
+
slug: string;
|
|
9
|
+
}>;
|
|
10
|
+
export type DeletePaperInput = z.infer<typeof deletePaperSchema>;
|
|
11
|
+
export declare function deletePaper(client: ApiClient, input: DeletePaperInput): Promise<string>;
|
|
12
|
+
//# sourceMappingURL=delete-paper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-paper.d.ts","sourceRoot":"","sources":["../../src/tools/delete-paper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,iBAAiB;;;;;;EAE5B,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,CAUjB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const deletePaperSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug of the paper to delete'),
|
|
4
|
+
});
|
|
5
|
+
export async function deletePaper(client, input) {
|
|
6
|
+
const existingPaper = await client.getPaperBySlug(input.slug);
|
|
7
|
+
if (existingPaper.permission !== 'write') {
|
|
8
|
+
throw new Error(`You don't have write permission on this paper (current permission: ${existingPaper.permission})`);
|
|
9
|
+
}
|
|
10
|
+
await client.deletePaper(existingPaper.id);
|
|
11
|
+
return `Paper "${input.slug}" (ID: ${existingPaper.id}) has been deleted.`;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=delete-paper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-paper.js","sourceRoot":"","sources":["../../src/tools/delete-paper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAC7D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAiB,EACjB,KAAuB;IAEvB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9D,IAAI,aAAa,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sEAAsE,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC;IACrH,CAAC;IAED,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAE3C,OAAO,UAAU,KAAK,CAAC,IAAI,UAAU,aAAa,CAAC,EAAE,qBAAqB,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const getPaperCommentsSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
includeResolved: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
slug: string;
|
|
8
|
+
includeResolved?: boolean | undefined;
|
|
9
|
+
}, {
|
|
10
|
+
slug: string;
|
|
11
|
+
includeResolved?: boolean | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
export type GetPaperCommentsInput = z.infer<typeof getPaperCommentsSchema>;
|
|
14
|
+
export declare function getPaperComments(client: ApiClient, input: GetPaperCommentsInput): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=get-paper-comments.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const getPaperCommentsSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug of the paper to get comments from'),
|
|
4
|
+
includeResolved: z.boolean().optional().describe('Include resolved comment threads (default: true)'),
|
|
5
|
+
});
|
|
6
|
+
export async function getPaperComments(client, input) {
|
|
7
|
+
const paper = await client.getPaperBySlug(input.slug);
|
|
8
|
+
const threads = await client.listPaperCommentThreads(paper.id);
|
|
9
|
+
const filteredThreads = input.includeResolved === false
|
|
10
|
+
? threads.filter(t => !t.resolved)
|
|
11
|
+
: threads;
|
|
12
|
+
if (filteredThreads.length === 0) {
|
|
13
|
+
return `No ${input.includeResolved === false ? 'unresolved ' : ''}comments found on paper "${input.slug}".`;
|
|
14
|
+
}
|
|
15
|
+
const lines = [
|
|
16
|
+
`# Comments on paper "${input.slug}"`,
|
|
17
|
+
'',
|
|
18
|
+
`Found ${filteredThreads.length} comment thread(s):`,
|
|
19
|
+
'',
|
|
20
|
+
];
|
|
21
|
+
for (const thread of filteredThreads) {
|
|
22
|
+
const status = thread.resolved ? '(Resolved)' : '(Open)';
|
|
23
|
+
const originalText = thread.anchor.originalText
|
|
24
|
+
? `"${thread.anchor.originalText.substring(0, 50)}${thread.anchor.originalText.length > 50 ? '...' : ''}"`
|
|
25
|
+
: '(no text anchor)';
|
|
26
|
+
lines.push(`## Thread ${status}`);
|
|
27
|
+
lines.push(`**ID**: ${thread.id}`);
|
|
28
|
+
lines.push(`**On text**: ${originalText}`);
|
|
29
|
+
lines.push(`**Started by**: ${thread.createdBy.name || thread.createdBy.email}`);
|
|
30
|
+
lines.push('');
|
|
31
|
+
for (const comment of thread.comments) {
|
|
32
|
+
const author = comment.author.name || comment.author.email;
|
|
33
|
+
const date = new Date(comment.createdAt).toLocaleString();
|
|
34
|
+
lines.push(`> **${author}** (${date}):`);
|
|
35
|
+
lines.push(`> ${comment.content.replace(/\n/g, '\n> ')}`);
|
|
36
|
+
lines.push('');
|
|
37
|
+
}
|
|
38
|
+
lines.push('---');
|
|
39
|
+
lines.push('');
|
|
40
|
+
}
|
|
41
|
+
return lines.join('\n');
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=get-paper-comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const listPaperVersionsSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
6
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
slug: string;
|
|
9
|
+
page?: number | undefined;
|
|
10
|
+
limit?: number | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
slug: string;
|
|
13
|
+
page?: number | undefined;
|
|
14
|
+
limit?: number | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
export type ListPaperVersionsInput = z.infer<typeof listPaperVersionsSchema>;
|
|
17
|
+
export declare function listPaperVersions(client: ApiClient, input: ListPaperVersionsInput): Promise<string>;
|
|
18
|
+
//# sourceMappingURL=list-paper-versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-paper-versions.d.ts","sourceRoot":"","sources":["../../src/tools/list-paper-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAIlC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA8BjB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const listPaperVersionsSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug of the paper to list versions for'),
|
|
4
|
+
page: z.number().int().positive().optional().describe('Page number (default: 1)'),
|
|
5
|
+
limit: z.number().int().positive().max(50).optional().describe('Items per page (default: 20, max: 50)'),
|
|
6
|
+
});
|
|
7
|
+
export async function listPaperVersions(client, input) {
|
|
8
|
+
const paper = await client.getPaperBySlug(input.slug);
|
|
9
|
+
const response = await client.listPaperVersions(paper.id, input.page, input.limit);
|
|
10
|
+
if (response.items.length === 0) {
|
|
11
|
+
return `No version history for paper "${input.slug}" yet.`;
|
|
12
|
+
}
|
|
13
|
+
const lines = [
|
|
14
|
+
`Version history for **${input.slug}** (${response.total} versions):`,
|
|
15
|
+
'',
|
|
16
|
+
];
|
|
17
|
+
for (const v of response.items) {
|
|
18
|
+
const date = new Date(v.createdAt).toLocaleString();
|
|
19
|
+
const author = v.createdBy?.name || v.createdBy?.email || 'Unknown';
|
|
20
|
+
const stats = [];
|
|
21
|
+
if (v.charsAdded > 0)
|
|
22
|
+
stats.push(`+${v.charsAdded}`);
|
|
23
|
+
if (v.charsRemoved > 0)
|
|
24
|
+
stats.push(`-${v.charsRemoved}`);
|
|
25
|
+
const statsStr = stats.length > 0 ? ` (${stats.join(', ')})` : '';
|
|
26
|
+
lines.push(`- **v${v.versionNumber}** — ${date} by ${author}${statsStr}`);
|
|
27
|
+
if (v.changeSummary) {
|
|
28
|
+
lines.push(` ${v.changeSummary}`);
|
|
29
|
+
}
|
|
30
|
+
lines.push(` ${v.contentLength} chars | ID: ${v.id}`);
|
|
31
|
+
lines.push('');
|
|
32
|
+
}
|
|
33
|
+
return lines.join('\n');
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=list-paper-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-paper-versions.js","sourceRoot":"","sources":["../../src/tools/list-paper-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACvE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACxG,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAiB,EACjB,KAA6B;IAE7B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAEnF,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,iCAAiC,KAAK,CAAC,IAAI,QAAQ,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,yBAAyB,KAAK,CAAC,IAAI,OAAO,QAAQ,CAAC,KAAK,aAAa;QACrE,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,IAAI,SAAS,CAAC;QACpE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAElE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,QAAQ,IAAI,OAAO,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const listPapersSchema: z.ZodObject<{
|
|
4
|
+
workspaceId: z.ZodOptional<z.ZodString>;
|
|
5
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
6
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
workspaceId?: string | undefined;
|
|
9
|
+
page?: number | undefined;
|
|
10
|
+
limit?: number | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
workspaceId?: string | undefined;
|
|
13
|
+
page?: number | undefined;
|
|
14
|
+
limit?: number | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
export type ListPapersInput = z.infer<typeof listPapersSchema>;
|
|
17
|
+
export declare function listPapers(client: ApiClient, input: ListPapersInput): Promise<string>;
|
|
18
|
+
//# sourceMappingURL=list-papers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-papers.d.ts","sourceRoot":"","sources":["../../src/tools/list-papers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,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,CAiBjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const listPapersSchema = z.object({
|
|
3
|
+
workspaceId: z.string().uuid().optional().describe('Filter by workspace ID'),
|
|
4
|
+
page: z.number().int().positive().optional().describe('Page number (default: 1)'),
|
|
5
|
+
limit: z.number().int().positive().max(100).optional().describe('Items per page (default: 15, max: 100)'),
|
|
6
|
+
});
|
|
7
|
+
export async function listPapers(client, input) {
|
|
8
|
+
const response = await client.listPapers(input);
|
|
9
|
+
const lines = [
|
|
10
|
+
`Found ${response.total} papers (page ${response.page}/${response.totalPages}):`,
|
|
11
|
+
'',
|
|
12
|
+
];
|
|
13
|
+
for (const paper of response.items) {
|
|
14
|
+
lines.push(`- **${paper.slug}** (${paper.sharingMode})`);
|
|
15
|
+
lines.push(` ID: ${paper.id}`);
|
|
16
|
+
lines.push(` Engine: ${paper.metadata?.engine || 'pdflatex'}`);
|
|
17
|
+
lines.push(` Updated: ${new Date(paper.updatedAt).toLocaleString()}`);
|
|
18
|
+
lines.push('');
|
|
19
|
+
}
|
|
20
|
+
return lines.join('\n');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=list-papers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-papers.js","sourceRoot":"","sources":["../../src/tools/list-papers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CAC1G,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,KAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG;QACZ,SAAS,QAAQ,CAAC,KAAK,iBAAiB,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI;QAChF,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,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 readPaperVersionSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
version: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
slug: string;
|
|
8
|
+
version: string;
|
|
9
|
+
}, {
|
|
10
|
+
slug: string;
|
|
11
|
+
version: string;
|
|
12
|
+
}>;
|
|
13
|
+
export type ReadPaperVersionInput = z.infer<typeof readPaperVersionSchema>;
|
|
14
|
+
export declare function readPaperVersion(client: ApiClient, input: ReadPaperVersionInput): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=read-paper-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-paper-version.d.ts","sourceRoot":"","sources":["../../src/tools/read-paper-version.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,CAsBjB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const readPaperVersionSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug of the paper'),
|
|
4
|
+
version: z.string().describe('Version number (e.g. "3" or "v3") or UUID'),
|
|
5
|
+
});
|
|
6
|
+
export async function readPaperVersion(client, input) {
|
|
7
|
+
const paper = await client.getPaperBySlug(input.slug);
|
|
8
|
+
const version = await client.getPaperVersion(paper.id, input.version);
|
|
9
|
+
const date = new Date(version.createdAt).toLocaleString();
|
|
10
|
+
const author = version.createdBy?.name || version.createdBy?.email || 'Unknown';
|
|
11
|
+
const lines = [
|
|
12
|
+
`# Paper "${input.slug}" — v${version.versionNumber}`,
|
|
13
|
+
'',
|
|
14
|
+
`- **Version**: v${version.versionNumber}`,
|
|
15
|
+
`- **Date**: ${date}`,
|
|
16
|
+
`- **Author**: ${author}`,
|
|
17
|
+
`- **Length**: ${version.contentLength} chars`,
|
|
18
|
+
...(version.changeSummary ? [`- **Summary**: ${version.changeSummary}`] : []),
|
|
19
|
+
'',
|
|
20
|
+
'---',
|
|
21
|
+
'',
|
|
22
|
+
version.content || '(empty)',
|
|
23
|
+
];
|
|
24
|
+
return lines.join('\n');
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=read-paper-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-paper-version.js","sourceRoot":"","sources":["../../src/tools/read-paper-version.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,uBAAuB,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAC1E,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,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,SAAS,CAAC;IAEhF,MAAM,KAAK,GAAG;QACZ,YAAY,KAAK,CAAC,IAAI,QAAQ,OAAO,CAAC,aAAa,EAAE;QACrD,EAAE;QACF,mBAAmB,OAAO,CAAC,aAAa,EAAE;QAC1C,eAAe,IAAI,EAAE;QACrB,iBAAiB,MAAM,EAAE;QACzB,iBAAiB,OAAO,CAAC,aAAa,QAAQ;QAC9C,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,EAAE;QACF,KAAK;QACL,EAAE;QACF,OAAO,CAAC,OAAO,IAAI,SAAS;KAC7B,CAAC;IAEF,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 readPaperSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
slug: string;
|
|
7
|
+
}, {
|
|
8
|
+
slug: string;
|
|
9
|
+
}>;
|
|
10
|
+
export type ReadPaperInput = z.infer<typeof readPaperSchema>;
|
|
11
|
+
export declare function readPaper(client: ApiClient, input: ReadPaperInput): Promise<string>;
|
|
12
|
+
//# sourceMappingURL=read-paper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-paper.d.ts","sourceRoot":"","sources":["../../src/tools/read-paper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,eAAe;;;;;;EAE1B,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,CAkBjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const readPaperSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug (URL-friendly name) of the paper to read'),
|
|
4
|
+
});
|
|
5
|
+
export async function readPaper(client, input) {
|
|
6
|
+
const paper = await client.getPaperBySlug(input.slug);
|
|
7
|
+
const lines = [
|
|
8
|
+
`# Paper: ${paper.slug}`,
|
|
9
|
+
'',
|
|
10
|
+
`- **ID**: ${paper.id}`,
|
|
11
|
+
`- **Permission**: ${paper.permission}`,
|
|
12
|
+
`- **Sharing Mode**: ${paper.sharingMode}`,
|
|
13
|
+
`- **Engine**: ${paper.metadata?.engine || 'pdflatex'}`,
|
|
14
|
+
`- **Updated**: ${new Date(paper.updatedAt).toLocaleString()}`,
|
|
15
|
+
'',
|
|
16
|
+
'---',
|
|
17
|
+
'',
|
|
18
|
+
paper.content || '(empty paper)',
|
|
19
|
+
];
|
|
20
|
+
return lines.join('\n');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=read-paper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-paper.js","sourceRoot":"","sources":["../../src/tools/read-paper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CAC/E,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAiB,EACjB,KAAqB;IAErB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG;QACZ,YAAY,KAAK,CAAC,IAAI,EAAE;QACxB,EAAE;QACF,aAAa,KAAK,CAAC,EAAE,EAAE;QACvB,qBAAqB,KAAK,CAAC,UAAU,EAAE;QACvC,uBAAuB,KAAK,CAAC,WAAW,EAAE;QAC1C,iBAAiB,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,UAAU,EAAE;QACvD,kBAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;QAC9D,EAAE;QACF,KAAK;QACL,EAAE;QACF,KAAK,CAAC,OAAO,IAAI,eAAe;KACjC,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const resolvePaperThreadSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
threadId: z.ZodString;
|
|
6
|
+
resolved: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
slug: string;
|
|
9
|
+
threadId: string;
|
|
10
|
+
resolved?: boolean | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
slug: string;
|
|
13
|
+
threadId: string;
|
|
14
|
+
resolved?: boolean | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
export type ResolvePaperThreadInput = z.infer<typeof resolvePaperThreadSchema>;
|
|
17
|
+
export declare function resolvePaperThread(client: ApiClient, input: ResolvePaperThreadInput): Promise<string>;
|
|
18
|
+
//# sourceMappingURL=resolve-paper-thread.d.ts.map
|
|
@@ -0,0 +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;AAE7C,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,CAYjB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const resolvePaperThreadSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug of the paper containing the thread'),
|
|
4
|
+
threadId: z.string().uuid().describe('The ID of the comment thread to resolve/unresolve'),
|
|
5
|
+
resolved: z.boolean().optional().describe('Set to true to resolve, false to unresolve (default: true)'),
|
|
6
|
+
});
|
|
7
|
+
export async function resolvePaperThread(client, input) {
|
|
8
|
+
const paper = await client.getPaperBySlug(input.slug);
|
|
9
|
+
const resolved = input.resolved !== false;
|
|
10
|
+
const thread = await client.resolvePaperThread(paper.id, input.threadId, resolved);
|
|
11
|
+
const action = resolved ? 'resolved' : 'reopened';
|
|
12
|
+
const originalText = thread.anchor.originalText
|
|
13
|
+
? `on "${thread.anchor.originalText.substring(0, 30)}..."`
|
|
14
|
+
: '';
|
|
15
|
+
return `Comment thread ${originalText} has been ${action}.`;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=resolve-paper-thread.js.map
|
|
@@ -0,0 +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;AAGxB,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,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACzF,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,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEnF,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,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const restorePaperVersionSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
version: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
slug: string;
|
|
8
|
+
version: string;
|
|
9
|
+
}, {
|
|
10
|
+
slug: string;
|
|
11
|
+
version: string;
|
|
12
|
+
}>;
|
|
13
|
+
export type RestorePaperVersionInput = z.infer<typeof restorePaperVersionSchema>;
|
|
14
|
+
export declare function restorePaperVersion(client: ApiClient, input: RestorePaperVersionInput): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=restore-paper-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-paper-version.d.ts","sourceRoot":"","sources":["../../src/tools/restore-paper-version.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,CAgBjB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const restorePaperVersionSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug of the paper'),
|
|
4
|
+
version: z.string().describe('Version number (e.g. "3" or "v3") or UUID'),
|
|
5
|
+
});
|
|
6
|
+
export async function restorePaperVersion(client, input) {
|
|
7
|
+
const paper = await client.getPaperBySlug(input.slug);
|
|
8
|
+
if (paper.permission !== 'write') {
|
|
9
|
+
throw new Error(`No write permission on paper "${input.slug}"`);
|
|
10
|
+
}
|
|
11
|
+
const version = await client.getPaperVersion(paper.id, input.version);
|
|
12
|
+
await client.restorePaperVersion(paper.id, input.version);
|
|
13
|
+
return [
|
|
14
|
+
`Restored paper "${input.slug}" to v${version.versionNumber}.`,
|
|
15
|
+
'',
|
|
16
|
+
'A backup of the previous content was saved as a new version before restoring.',
|
|
17
|
+
].join('\n');
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=restore-paper-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-paper-version.js","sourceRoot":"","sources":["../../src/tools/restore-paper-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAC1E,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,KAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtE,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAE1D,OAAO;QACL,mBAAmB,KAAK,CAAC,IAAI,SAAS,OAAO,CAAC,aAAa,GAAG;QAC9D,EAAE;QACF,+EAA+E;KAChF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiClient } from '../api-client.js';
|
|
3
|
+
export declare const updatePaperSchema: z.ZodObject<{
|
|
4
|
+
slug: z.ZodString;
|
|
5
|
+
content: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
slug: string;
|
|
8
|
+
content: string;
|
|
9
|
+
}, {
|
|
10
|
+
slug: string;
|
|
11
|
+
content: string;
|
|
12
|
+
}>;
|
|
13
|
+
export type UpdatePaperInput = z.infer<typeof updatePaperSchema>;
|
|
14
|
+
export declare function updatePaper(client: ApiClient, input: UpdatePaperInput): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=update-paper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-paper.d.ts","sourceRoot":"","sources":["../../src/tools/update-paper.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,CAYjB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const updatePaperSchema = z.object({
|
|
3
|
+
slug: z.string().describe('The slug of the paper to update'),
|
|
4
|
+
content: z.string().describe('The new LaTeX content for the paper'),
|
|
5
|
+
});
|
|
6
|
+
export async function updatePaper(client, input) {
|
|
7
|
+
const existingPaper = await client.getPaperBySlug(input.slug);
|
|
8
|
+
if (existingPaper.permission !== 'write') {
|
|
9
|
+
throw new Error(`You don't have write permission on this paper (current permission: ${existingPaper.permission})`);
|
|
10
|
+
}
|
|
11
|
+
const updated = await client.updatePaper(existingPaper.id, {
|
|
12
|
+
content: input.content,
|
|
13
|
+
});
|
|
14
|
+
return `Paper "${updated.slug}" updated successfully.\n\nNew content length: ${input.content.length} characters`;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=update-paper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-paper.js","sourceRoot":"","sources":["../../src/tools/update-paper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAiB,EACjB,KAAuB;IAEvB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9D,IAAI,aAAa,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sEAAsE,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC;IACrH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,EAAE;QACzD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC;IAEH,OAAO,UAAU,OAAO,CAAC,IAAI,kDAAkD,KAAK,CAAC,OAAO,CAAC,MAAM,aAAa,CAAC;AACnH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "whiteboard-mcp-server",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "MCP server for Whiteboard notes integration with Claude Code",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "MCP server for Whiteboard notes & papers (LaTeX) integration with Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|