@netique/overleaf-mcp 0.3.6 → 0.3.7
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 +29 -2
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/session/activeProject.js +44 -0
- package/dist/session/activeProject.js.map +1 -1
- package/dist/tools/comments.js +47 -36
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/compile.js +8 -13
- package/dist/tools/compile.js.map +1 -1
- package/dist/tools/editFile.js +4 -2
- package/dist/tools/editFile.js.map +1 -1
- package/dist/tools/findAndReplace.js +4 -2
- package/dist/tools/findAndReplace.js.map +1 -1
- package/dist/tools/listFiles.js +5 -11
- package/dist/tools/listFiles.js.map +1 -1
- package/dist/tools/openProject.js +3 -2
- package/dist/tools/openProject.js.map +1 -1
- package/dist/tools/project.js +53 -0
- package/dist/tools/project.js.map +1 -0
- package/dist/tools/readFile.js +6 -8
- package/dist/tools/readFile.js.map +1 -1
- package/dist/tools/trackedChanges.js +10 -16
- package/dist/tools/trackedChanges.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,6 +21,8 @@ Working end-to-end against `overleaf.com` — 16 tools, tracked-changes edits an
|
|
|
21
21
|
|
|
22
22
|
## Tools
|
|
23
23
|
|
|
24
|
+
Every project-scoped tool also takes an optional `project_id` — see [Project selection across MCP sessions](#project-selection-across-mcp-sessions).
|
|
25
|
+
|
|
24
26
|
| Tool | Description |
|
|
25
27
|
|---|---|
|
|
26
28
|
| `ping` | Health check. Does not contact Overleaf. |
|
|
@@ -38,8 +40,8 @@ Working end-to-end against `overleaf.com` — 16 tools, tracked-changes edits an
|
|
|
38
40
|
| `list_comments` | Lists review-panel comment threads with doc path, quoted text, author, latest-message preview. Supports `include_resolved`, `path_contains`, `full`. |
|
|
39
41
|
| `read_comment_thread` | Returns the full message history of one thread. |
|
|
40
42
|
| `reply_comment` | Posts a new message to an existing thread. |
|
|
41
|
-
| `resolve_comment` | Marks a thread resolved. |
|
|
42
|
-
| `reopen_comment` | Reopens a resolved thread. |
|
|
43
|
+
| `resolve_comment` | Marks a thread resolved. Optional `doc_id` (from `list_comments`) skips the doc lookup. |
|
|
44
|
+
| `reopen_comment` | Reopens a resolved thread. Optional `doc_id` (from `list_comments`) skips the doc lookup. |
|
|
43
45
|
|
|
44
46
|
## Typical workflow
|
|
45
47
|
|
|
@@ -52,6 +54,31 @@ Things to ask Claude once `overleaf-mcp` is connected:
|
|
|
52
54
|
- _"Compile the project and tell me what the LaTeX errors mean."_ → uses `compile` then `read_log` automatically.
|
|
53
55
|
- _"For each open comment thread, suggest a fix and reply with what you did."_ → end-to-end review workflow.
|
|
54
56
|
|
|
57
|
+
### Project selection across MCP sessions
|
|
58
|
+
|
|
59
|
+
An HTTP gateway may run a separate stdio server for each MCP session, so a successful
|
|
60
|
+
`open_project` in one session does not select a project in another. Every project tool
|
|
61
|
+
therefore accepts an optional `project_id`; if your client may reconnect or change
|
|
62
|
+
sessions between calls, pass it on every call:
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{"name": "read_file", "arguments": {"project_id": "61d853bcbf1003100e957034", "path": "main.tex"}}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The tool opens the project when needed and reuses it when it is already active.
|
|
69
|
+
|
|
70
|
+
Reads may switch projects, but they never silently retarget writes. A write
|
|
71
|
+
(`edit_file`, `find_and_replace`, comment replies/resolution, accepting or rejecting
|
|
72
|
+
changes) without `project_id` only goes to the project last confirmed by
|
|
73
|
+
`open_project` or by a write that named it. After `read_file(project_id=B)` in a
|
|
74
|
+
session working on project A, a bare `edit_file` is refused instead of landing in B.
|
|
75
|
+
Pass `project_id` (or call `open_project`) to confirm the target. Results include
|
|
76
|
+
`project_id` and `project_name`, plus a note whenever a call switched projects.
|
|
77
|
+
|
|
78
|
+
Omitting `project_id` everywhere keeps the original workflow: call `open_project` first
|
|
79
|
+
in the same session. Refresh your client's tool definitions after upgrading to expose
|
|
80
|
+
the new parameter.
|
|
81
|
+
|
|
55
82
|
## Requirements
|
|
56
83
|
|
|
57
84
|
- Node ≥ 20
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,12 @@ const INSTRUCTIONS = [
|
|
|
23
23
|
"Overleaf MCP server. Operates on .tex files via Overleaf's Socket.IO web API",
|
|
24
24
|
"(not the Git bridge), so edits land in real time and respect tracked-changes mode.",
|
|
25
25
|
"",
|
|
26
|
+
"Every project tool accepts an optional project_id. When MCP sessions may change",
|
|
27
|
+
"between calls (e.g. behind an HTTP gateway), pass it on every call; the tool opens",
|
|
28
|
+
"the project when needed. A read with a different project_id switches the active",
|
|
29
|
+
"project but never retargets writes: a write without project_id is refused unless",
|
|
30
|
+
"it goes to the project last confirmed by open_project or by a write naming it.",
|
|
31
|
+
"",
|
|
26
32
|
"Typical flow:",
|
|
27
33
|
" 1. list_projects -> pick an id",
|
|
28
34
|
" 2. open_project(id) -> joins the Socket.IO room, returns file tree + tc state",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,50 @@ export function setLastCompile(result) {
|
|
|
10
10
|
export function getActiveProject() {
|
|
11
11
|
return active;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Decides which project a tool call acts on. A gateway may run one server per
|
|
15
|
+
* MCP session, so every project tool accepts an explicit `project_id`. Reads
|
|
16
|
+
* with a different id may switch the active project, but they must never
|
|
17
|
+
* silently retarget writes: a write without `project_id` only proceeds on the
|
|
18
|
+
* project the agent last confirmed — via open_project or a write naming it.
|
|
19
|
+
* Re-opening that project ourselves is not an option: open() clears the doc
|
|
20
|
+
* cache, dropping the stale-read baseline edit_file relies on.
|
|
21
|
+
*/
|
|
22
|
+
export class ProjectSelector {
|
|
23
|
+
session;
|
|
24
|
+
writeTarget = null;
|
|
25
|
+
constructor(session) {
|
|
26
|
+
this.session = session;
|
|
27
|
+
}
|
|
28
|
+
/** open_project: switch and confirm as the write target. */
|
|
29
|
+
async select(projectId) {
|
|
30
|
+
const ap = await this.session.open(projectId);
|
|
31
|
+
this.writeTarget = ap.projectId;
|
|
32
|
+
return ap;
|
|
33
|
+
}
|
|
34
|
+
/** Throws only when opening an explicitly requested project fails. */
|
|
35
|
+
async resolve(projectId, access) {
|
|
36
|
+
const current = this.session.getActiveProject();
|
|
37
|
+
if (!projectId) {
|
|
38
|
+
if (!current) {
|
|
39
|
+
return { ok: false, error: "No project is open in this session. Pass project_id from list_projects or open_project, or call open_project in the same session." };
|
|
40
|
+
}
|
|
41
|
+
if (access === "write" && current.projectId !== this.writeTarget) {
|
|
42
|
+
return {
|
|
43
|
+
ok: false,
|
|
44
|
+
error: `Active project changed to "${current.name}" (${current.projectId}) by a read. ` +
|
|
45
|
+
"Pass project_id, or call open_project, to confirm where this edit should go.",
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return { ok: true, ap: current };
|
|
49
|
+
}
|
|
50
|
+
const ap = current?.projectId === projectId ? current : await this.session.open(projectId);
|
|
51
|
+
if (access === "write")
|
|
52
|
+
this.writeTarget = ap.projectId;
|
|
53
|
+
return { ok: true, ap, switchedFrom: current && current !== ap ? current : undefined };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export const projectSelector = new ProjectSelector({ getActiveProject, open });
|
|
13
57
|
export async function open(projectId) {
|
|
14
58
|
const { joinedProject } = await ensureSocketForProject(projectId);
|
|
15
59
|
if (!joinedProject) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activeProject.js","sourceRoot":"","sources":["../../src/session/activeProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAuC,MAAM,wBAAwB,CAAC;AAEnH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAa9C,IAAI,MAAM,GAAyB,IAAI,CAAC;AAExC,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,IAAI,MAAM;QAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,SAAiB;IAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,aAAa,EAAE,CAAC;IAChB,iEAAiE;IACjE,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC;IAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,MAAM,GAAG;QACP,SAAS;QACT,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,WAAW;QACvC,OAAO,EAAE,aAAa;QACtB,QAAQ;QACR,mBAAmB;QACnB,SAAS;QACT,WAAW;KACZ,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAiB;IAC3C,MAAM,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ;QAAE,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"activeProject.js","sourceRoot":"","sources":["../../src/session/activeProject.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/comments.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { asJson, olGet, olPostJson, expectOk } from "../api/http.js";
|
|
3
|
-
import { docPathById
|
|
3
|
+
import { docPathById } from "../session/activeProject.js";
|
|
4
4
|
import { logger } from "../util/logger.js";
|
|
5
|
+
import { projectIdArg, projectTool } from "./project.js";
|
|
5
6
|
async function fetchThreadsEnriched(projectId, docPaths) {
|
|
6
7
|
const [threadsRes, rangesRes] = await Promise.all([
|
|
7
8
|
olGet(`project/${projectId}/threads`),
|
|
@@ -44,6 +45,7 @@ async function fetchThreadsEnriched(projectId, docPaths) {
|
|
|
44
45
|
return out;
|
|
45
46
|
}
|
|
46
47
|
const ListSchema = z.object({
|
|
48
|
+
project_id: projectIdArg,
|
|
47
49
|
include_resolved: z
|
|
48
50
|
.boolean()
|
|
49
51
|
.default(false)
|
|
@@ -52,8 +54,33 @@ const ListSchema = z.object({
|
|
|
52
54
|
full: z.boolean().default(false).describe("Include full message history per thread instead of just a preview."),
|
|
53
55
|
});
|
|
54
56
|
const ThreadIdSchema = z.object({
|
|
57
|
+
project_id: projectIdArg,
|
|
55
58
|
thread_id: z.string().min(8).describe("The thread id, e.g. from list_comments."),
|
|
56
59
|
});
|
|
60
|
+
const ThreadStateSchema = ThreadIdSchema.extend({
|
|
61
|
+
doc_id: z
|
|
62
|
+
.string()
|
|
63
|
+
.min(8)
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Id of the doc the thread is anchored in (`doc_id` from list_comments). Looked up automatically if omitted."),
|
|
66
|
+
});
|
|
67
|
+
// Resolve/reopen are doc-scoped routes in Overleaf's web app
|
|
68
|
+
// (`/project/:id/doc/:doc_id/thread/:thread_id/{resolve,reopen}`, see
|
|
69
|
+
// review-panel/context/threads-context.tsx); the project-only form 404s.
|
|
70
|
+
async function threadDocId(projectId, threadId) {
|
|
71
|
+
const ranges = await asJson(await olGet(`project/${projectId}/ranges`), "GET /ranges");
|
|
72
|
+
for (const docRange of ranges) {
|
|
73
|
+
if (docRange.ranges?.comments?.some((c) => c.op.t === threadId))
|
|
74
|
+
return docRange.id;
|
|
75
|
+
}
|
|
76
|
+
throw new Error(`Thread '${threadId}' is not anchored in any doc of this project. Check the id with list_comments.`);
|
|
77
|
+
}
|
|
78
|
+
async function setThreadState(projectId, args, action) {
|
|
79
|
+
const docId = args.doc_id ?? (await threadDocId(projectId, args.thread_id));
|
|
80
|
+
const res = await olPostJson(`project/${projectId}/doc/${docId}/thread/${args.thread_id}/${action}`, {});
|
|
81
|
+
await expectOk(res, `POST /doc/${docId}/thread/${args.thread_id}/${action}`);
|
|
82
|
+
return docId;
|
|
83
|
+
}
|
|
57
84
|
const ReplySchema = ThreadIdSchema.extend({
|
|
58
85
|
content: z.string().min(1).describe("The reply text to post in the thread."),
|
|
59
86
|
});
|
|
@@ -65,10 +92,7 @@ export function registerComments(server) {
|
|
|
65
92
|
"the latest message preview, and whether it's resolved. Use `read_comment_thread` for full content.",
|
|
66
93
|
inputSchema: ListSchema.shape,
|
|
67
94
|
annotations: { readOnlyHint: true },
|
|
68
|
-
}, async (args) => {
|
|
69
|
-
const ap = getActiveProject();
|
|
70
|
-
if (!ap)
|
|
71
|
-
return { content: [{ type: "text", text: "No project is open. Call open_project first." }], isError: true };
|
|
95
|
+
}, projectTool("read", async (args, ap) => {
|
|
72
96
|
try {
|
|
73
97
|
let threads = await fetchThreadsEnriched(ap.projectId, docPathById(ap));
|
|
74
98
|
if (!args.include_resolved)
|
|
@@ -91,17 +115,14 @@ export function registerComments(server) {
|
|
|
91
115
|
logger.error("list_comments failed", msg);
|
|
92
116
|
return { content: [{ type: "text", text: `Failed to list comments: ${msg}` }], isError: true };
|
|
93
117
|
}
|
|
94
|
-
});
|
|
118
|
+
}));
|
|
95
119
|
server.registerTool("read_comment_thread", {
|
|
96
120
|
title: "Read a single comment thread's messages",
|
|
97
121
|
description: "Fetches the full message history of one thread (all replies with author + timestamp). " +
|
|
98
122
|
"Use this when `list_comments` shows a thread that looks relevant.",
|
|
99
123
|
inputSchema: ThreadIdSchema.shape,
|
|
100
124
|
annotations: { readOnlyHint: true },
|
|
101
|
-
}, async (args) => {
|
|
102
|
-
const ap = getActiveProject();
|
|
103
|
-
if (!ap)
|
|
104
|
-
return { content: [{ type: "text", text: "No project is open." }], isError: true };
|
|
125
|
+
}, projectTool("read", async (args, ap) => {
|
|
105
126
|
try {
|
|
106
127
|
const r = await olGet(`project/${ap.projectId}/threads`);
|
|
107
128
|
const all = await asJson(r, "GET /threads");
|
|
@@ -118,16 +139,13 @@ export function registerComments(server) {
|
|
|
118
139
|
const msg = err instanceof Error ? err.message : String(err);
|
|
119
140
|
return { content: [{ type: "text", text: `Failed to read thread: ${msg}` }], isError: true };
|
|
120
141
|
}
|
|
121
|
-
});
|
|
142
|
+
}));
|
|
122
143
|
server.registerTool("reply_comment", {
|
|
123
144
|
title: "Post a reply to a comment thread",
|
|
124
145
|
description: "Adds a new message to an existing comment thread. Threads come from `list_comments`. " +
|
|
125
146
|
"The message appears immediately in Overleaf's review panel for collaborators.",
|
|
126
147
|
inputSchema: ReplySchema.shape,
|
|
127
|
-
}, async (args) => {
|
|
128
|
-
const ap = getActiveProject();
|
|
129
|
-
if (!ap)
|
|
130
|
-
return { content: [{ type: "text", text: "No project is open." }], isError: true };
|
|
148
|
+
}, projectTool("write", async (args, ap) => {
|
|
131
149
|
try {
|
|
132
150
|
const res = await olPostJson(`project/${ap.projectId}/thread/${args.thread_id}/messages`, { content: args.content });
|
|
133
151
|
await expectOk(res, `POST /thread/${args.thread_id}/messages`);
|
|
@@ -140,48 +158,41 @@ export function registerComments(server) {
|
|
|
140
158
|
const msg = err instanceof Error ? err.message : String(err);
|
|
141
159
|
return { content: [{ type: "text", text: `Failed to post reply: ${msg}` }], isError: true };
|
|
142
160
|
}
|
|
143
|
-
});
|
|
161
|
+
}));
|
|
144
162
|
server.registerTool("resolve_comment", {
|
|
145
163
|
title: "Resolve a comment thread",
|
|
146
|
-
description: "Marks a thread as resolved. Use after addressing the comment (e.g. by editing the doc and replying)."
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (!ap)
|
|
151
|
-
return { content: [{ type: "text", text: "No project is open." }], isError: true };
|
|
164
|
+
description: "Marks a thread as resolved. Use after addressing the comment (e.g. by editing the doc and replying). " +
|
|
165
|
+
"Pass `doc_id` from list_comments to skip a lookup round-trip.",
|
|
166
|
+
inputSchema: ThreadStateSchema.shape,
|
|
167
|
+
}, projectTool("write", async (args, ap) => {
|
|
152
168
|
try {
|
|
153
|
-
const
|
|
154
|
-
await expectOk(res, `POST /thread/${args.thread_id}/resolve`);
|
|
169
|
+
const docId = await setThreadState(ap.projectId, args, "resolve");
|
|
155
170
|
return {
|
|
156
171
|
content: [{ type: "text", text: `Resolved thread ${args.thread_id}.` }],
|
|
157
|
-
structuredContent: { thread_id: args.thread_id, resolved: true },
|
|
172
|
+
structuredContent: { thread_id: args.thread_id, doc_id: docId, resolved: true },
|
|
158
173
|
};
|
|
159
174
|
}
|
|
160
175
|
catch (err) {
|
|
161
176
|
const msg = err instanceof Error ? err.message : String(err);
|
|
162
177
|
return { content: [{ type: "text", text: `Failed to resolve: ${msg}` }], isError: true };
|
|
163
178
|
}
|
|
164
|
-
});
|
|
179
|
+
}));
|
|
165
180
|
server.registerTool("reopen_comment", {
|
|
166
181
|
title: "Reopen a resolved comment thread",
|
|
167
|
-
description: "Reopens a previously-resolved thread.",
|
|
168
|
-
inputSchema:
|
|
169
|
-
}, async (args) => {
|
|
170
|
-
const ap = getActiveProject();
|
|
171
|
-
if (!ap)
|
|
172
|
-
return { content: [{ type: "text", text: "No project is open." }], isError: true };
|
|
182
|
+
description: "Reopens a previously-resolved thread. Pass `doc_id` from list_comments to skip a lookup round-trip.",
|
|
183
|
+
inputSchema: ThreadStateSchema.shape,
|
|
184
|
+
}, projectTool("write", async (args, ap) => {
|
|
173
185
|
try {
|
|
174
|
-
const
|
|
175
|
-
await expectOk(res, `POST /thread/${args.thread_id}/reopen`);
|
|
186
|
+
const docId = await setThreadState(ap.projectId, args, "reopen");
|
|
176
187
|
return {
|
|
177
188
|
content: [{ type: "text", text: `Reopened thread ${args.thread_id}.` }],
|
|
178
|
-
structuredContent: { thread_id: args.thread_id, resolved: false },
|
|
189
|
+
structuredContent: { thread_id: args.thread_id, doc_id: docId, resolved: false },
|
|
179
190
|
};
|
|
180
191
|
}
|
|
181
192
|
catch (err) {
|
|
182
193
|
const msg = err instanceof Error ? err.message : String(err);
|
|
183
194
|
return { content: [{ type: "text", text: `Failed to reopen: ${msg}` }], isError: true };
|
|
184
195
|
}
|
|
185
|
-
});
|
|
196
|
+
}));
|
|
186
197
|
}
|
|
187
198
|
//# sourceMappingURL=comments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/tools/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/tools/comments.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/compile.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { asJson, olGet, olPostJson, expectOk } from "../api/http.js";
|
|
3
|
-
import {
|
|
3
|
+
import { setLastCompile } from "../session/activeProject.js";
|
|
4
4
|
import { logger } from "../util/logger.js";
|
|
5
|
+
import { projectIdArg, projectTool } from "./project.js";
|
|
5
6
|
const Schema = z.object({
|
|
7
|
+
project_id: projectIdArg,
|
|
6
8
|
root_doc: z
|
|
7
9
|
.string()
|
|
8
10
|
.optional()
|
|
@@ -60,11 +62,7 @@ export function registerCompile(server) {
|
|
|
60
62
|
"The truthful 'did it build cleanly?' check is `error_count === 0`. " +
|
|
61
63
|
"Use `read_log` for the full log when more context is needed.",
|
|
62
64
|
inputSchema: Schema.shape,
|
|
63
|
-
}, async (args) => {
|
|
64
|
-
const ap = getActiveProject();
|
|
65
|
-
if (!ap) {
|
|
66
|
-
return { content: [{ type: "text", text: "No project is open. Call open_project first." }], isError: true };
|
|
67
|
-
}
|
|
65
|
+
}, projectTool("read", async (args, ap) => {
|
|
68
66
|
try {
|
|
69
67
|
const body = {
|
|
70
68
|
check: "silent",
|
|
@@ -134,7 +132,7 @@ export function registerCompile(server) {
|
|
|
134
132
|
logger.error("compile failed", msg);
|
|
135
133
|
return { content: [{ type: "text", text: `Compile failed: ${msg}` }], isError: true };
|
|
136
134
|
}
|
|
137
|
-
});
|
|
135
|
+
}));
|
|
138
136
|
}
|
|
139
137
|
export function registerReadLog(server) {
|
|
140
138
|
server.registerTool("read_log", {
|
|
@@ -143,12 +141,9 @@ export function registerReadLog(server) {
|
|
|
143
141
|
"`compile` already includes the error count + first few errors in its response — use this only when you need more context (full log, line numbers, package warnings, etc.). " +
|
|
144
142
|
"The `content` array shows a summary of `!`-prefixed error lines at the top, then the log truncated to the last 8000 chars for display. " +
|
|
145
143
|
"`structuredContent.log` contains the FULL untruncated log so programmatic callers can grep / parse it.",
|
|
146
|
-
inputSchema: {},
|
|
144
|
+
inputSchema: { project_id: projectIdArg },
|
|
147
145
|
annotations: { readOnlyHint: true },
|
|
148
|
-
}, async () => {
|
|
149
|
-
const ap = getActiveProject();
|
|
150
|
-
if (!ap)
|
|
151
|
-
return { content: [{ type: "text", text: "No project is open." }], isError: true };
|
|
146
|
+
}, projectTool("read", async (_args, ap) => {
|
|
152
147
|
const last = ap.lastCompile;
|
|
153
148
|
if (!last) {
|
|
154
149
|
return { content: [{ type: "text", text: "No compile has been run for the open project yet. Call `compile` first." }], isError: true };
|
|
@@ -188,6 +183,6 @@ export function registerReadLog(server) {
|
|
|
188
183
|
logger.error("read_log failed", msg);
|
|
189
184
|
return { content: [{ type: "text", text: `Failed to fetch output.log: ${msg}` }], isError: true };
|
|
190
185
|
}
|
|
191
|
-
});
|
|
186
|
+
}));
|
|
192
187
|
}
|
|
193
188
|
//# sourceMappingURL=compile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/tools/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/tools/compile.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/editFile.js
CHANGED
|
@@ -3,7 +3,9 @@ import { textToOps } from "../ot/diff.js";
|
|
|
3
3
|
import { TRACK_MODES } from "../ot/trackedChanges.js";
|
|
4
4
|
import { prepareBaseline, resolveDocForEdit, submitAndVerify } from "../ot/editPipeline.js";
|
|
5
5
|
import { logger } from "../util/logger.js";
|
|
6
|
+
import { projectIdArg, projectTool } from "./project.js";
|
|
6
7
|
const Schema = z.object({
|
|
8
|
+
project_id: projectIdArg,
|
|
7
9
|
path: z
|
|
8
10
|
.string()
|
|
9
11
|
.min(1)
|
|
@@ -35,7 +37,7 @@ export function registerEditFile(server) {
|
|
|
35
37
|
"If `path` is omitted, defaults to the project's root doc. " +
|
|
36
38
|
"Only .tex / .bib / .md / similar text docs are editable — binary files are not.",
|
|
37
39
|
inputSchema: Schema.shape,
|
|
38
|
-
}, async (args) => {
|
|
40
|
+
}, projectTool("write", async (args) => {
|
|
39
41
|
const resolved = resolveDocForEdit(args.path);
|
|
40
42
|
if (!resolved.ok)
|
|
41
43
|
return resolved.response;
|
|
@@ -114,6 +116,6 @@ export function registerEditFile(server) {
|
|
|
114
116
|
logger.error("edit_file failed", msg);
|
|
115
117
|
return { content: [{ type: "text", text: `Failed to edit '${args.path}': ${msg}` }], isError: true };
|
|
116
118
|
}
|
|
117
|
-
});
|
|
119
|
+
}));
|
|
118
120
|
}
|
|
119
121
|
//# sourceMappingURL=editFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editFile.js","sourceRoot":"","sources":["../../src/tools/editFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"editFile.js","sourceRoot":"","sources":["../../src/tools/editFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ import { textToOps } from "../ot/diff.js";
|
|
|
3
3
|
import { TRACK_MODES } from "../ot/trackedChanges.js";
|
|
4
4
|
import { prepareBaseline, resolveDocForEdit, submitAndVerify } from "../ot/editPipeline.js";
|
|
5
5
|
import { logger } from "../util/logger.js";
|
|
6
|
+
import { projectIdArg, projectTool } from "./project.js";
|
|
6
7
|
const Schema = z.object({
|
|
8
|
+
project_id: projectIdArg,
|
|
7
9
|
path: z
|
|
8
10
|
.string()
|
|
9
11
|
.min(1)
|
|
@@ -74,7 +76,7 @@ export function registerFindAndReplace(server) {
|
|
|
74
76
|
"AVOID FOR BATCH WORK: for multiple substitutions (e.g. converting many words, applying a style guide across a chapter) prefer ONE `edit_file` call with all changes computed client-side. " +
|
|
75
77
|
"Each find_and_replace is its own round-trip with its own race window, its own tracked-change entry, and its own cache-sync cycle — calling it N times for N small changes amplifies the failure modes that one batched `edit_file` would avoid.",
|
|
76
78
|
inputSchema: Schema.shape,
|
|
77
|
-
}, async (args) => {
|
|
79
|
+
}, projectTool("write", async (args) => {
|
|
78
80
|
const resolved = resolveDocForEdit(args.path);
|
|
79
81
|
if (!resolved.ok)
|
|
80
82
|
return resolved.response;
|
|
@@ -181,6 +183,6 @@ export function registerFindAndReplace(server) {
|
|
|
181
183
|
isError: true,
|
|
182
184
|
};
|
|
183
185
|
}
|
|
184
|
-
});
|
|
186
|
+
}));
|
|
185
187
|
}
|
|
186
188
|
//# sourceMappingURL=findAndReplace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findAndReplace.js","sourceRoot":"","sources":["../../src/tools/findAndReplace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"findAndReplace.js","sourceRoot":"","sources":["../../src/tools/findAndReplace.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/listFiles.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { projectIdArg, projectTool } from "./project.js";
|
|
3
3
|
const Schema = z.object({
|
|
4
|
+
project_id: projectIdArg,
|
|
4
5
|
kind: z
|
|
5
6
|
.enum(["all", "doc", "file", "folder"])
|
|
6
7
|
.default("all")
|
|
@@ -11,18 +12,11 @@ export function registerListFiles(server) {
|
|
|
11
12
|
server.registerTool("list_files", {
|
|
12
13
|
title: "List files in the open Overleaf project",
|
|
13
14
|
description: "Returns the file tree of the currently open project as a flat list of project-relative paths. " +
|
|
14
|
-
"
|
|
15
|
+
"Uses the cached file tree when the requested project is already active; otherwise project_id opens it first. " +
|
|
15
16
|
"Each entity has a path (e.g. 'chapters/intro.tex'), an id, and a kind ('doc' | 'file' | 'folder').",
|
|
16
17
|
inputSchema: Schema.shape,
|
|
17
18
|
annotations: { readOnlyHint: true, idempotentHint: true },
|
|
18
|
-
}, async (args) => {
|
|
19
|
-
const ap = getActiveProject();
|
|
20
|
-
if (!ap) {
|
|
21
|
-
return {
|
|
22
|
-
content: [{ type: "text", text: "No project is open. Call open_project first." }],
|
|
23
|
-
isError: true,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
19
|
+
}, projectTool("read", async (args, ap) => {
|
|
26
20
|
let entities = ap.entities;
|
|
27
21
|
if (args.kind !== "all")
|
|
28
22
|
entities = entities.filter((e) => e.kind === args.kind);
|
|
@@ -37,6 +31,6 @@ export function registerListFiles(server) {
|
|
|
37
31
|
content: [{ type: "text", text }],
|
|
38
32
|
structuredContent: { project_id: ap.projectId, count: entities.length, entities },
|
|
39
33
|
};
|
|
40
|
-
});
|
|
34
|
+
}));
|
|
41
35
|
}
|
|
42
36
|
//# sourceMappingURL=listFiles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listFiles.js","sourceRoot":"","sources":["../../src/tools/listFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"listFiles.js","sourceRoot":"","sources":["../../src/tools/listFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;SACtC,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,wHAAwH,CAAC;IACrI,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;CACjH,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,yCAAyC;QAChD,WAAW,EACT,gGAAgG;YAChG,+GAA+G;YAC/G,oGAAoG;QACtG,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;KAC1D,EACD,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QACrC,IAAI,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAChD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACjC,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE;SAClF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { projectSelector } from "../session/activeProject.js";
|
|
3
3
|
import { logger } from "../util/logger.js";
|
|
4
|
+
import { withProjectLock } from "./project.js";
|
|
4
5
|
const Schema = z.object({
|
|
5
6
|
project_id: z
|
|
6
7
|
.string()
|
|
@@ -16,7 +17,7 @@ export function registerOpenProject(server) {
|
|
|
16
17
|
inputSchema: Schema.shape,
|
|
17
18
|
}, async (args) => {
|
|
18
19
|
try {
|
|
19
|
-
const p = await
|
|
20
|
+
const p = await withProjectLock(() => projectSelector.select(args.project_id));
|
|
20
21
|
const project = p.project;
|
|
21
22
|
const summary = {
|
|
22
23
|
project_id: p.projectId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openProject.js","sourceRoot":"","sources":["../../src/tools/openProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"openProject.js","sourceRoot":"","sources":["../../src/tools/openProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Shared project selection for every project-scoped tool: the optional
|
|
2
|
+
// `project_id` argument, the read/write targeting rule (see ProjectSelector),
|
|
3
|
+
// and echoing which project a call acted on.
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { projectSelector } from "../session/activeProject.js";
|
|
6
|
+
export const projectIdArg = z
|
|
7
|
+
.string()
|
|
8
|
+
.min(8)
|
|
9
|
+
.optional()
|
|
10
|
+
.describe("Overleaf project id from list_projects or open_project. Opens the project if it is not already active. " +
|
|
11
|
+
"Pass it on every call when MCP sessions may change between calls. " +
|
|
12
|
+
"Writes without it only go to the project last confirmed by open_project or by a write naming it.");
|
|
13
|
+
// One socket and one doc cache serve the whole process, so a call that switches
|
|
14
|
+
// projects mid-flight would pull them out from under another call's joinDoc /
|
|
15
|
+
// applyOtUpdate. Project-scoped calls (and open_project) therefore run one at a
|
|
16
|
+
// time; MCP clients may issue tool calls in parallel.
|
|
17
|
+
let queue = Promise.resolve();
|
|
18
|
+
export function withProjectLock(fn) {
|
|
19
|
+
const run = queue.then(fn, fn);
|
|
20
|
+
queue = run.catch(() => undefined);
|
|
21
|
+
return run;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Wrap a tool handler so it runs against the resolved project. Results carry
|
|
25
|
+
* `project_id` / `project_name`, and a note when the call switched projects.
|
|
26
|
+
*/
|
|
27
|
+
export function projectTool(access, handler) {
|
|
28
|
+
return (args) => withProjectLock(async () => {
|
|
29
|
+
let resolution;
|
|
30
|
+
try {
|
|
31
|
+
resolution = await projectSelector.resolve(args.project_id, access);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
35
|
+
return { content: [{ type: "text", text: `Failed to open requested project: ${message}` }], isError: true };
|
|
36
|
+
}
|
|
37
|
+
if (!resolution.ok)
|
|
38
|
+
return { content: [{ type: "text", text: resolution.error }], isError: true };
|
|
39
|
+
const { ap, switchedFrom } = resolution;
|
|
40
|
+
const res = await handler(args, ap);
|
|
41
|
+
const content = switchedFrom
|
|
42
|
+
? [{ type: "text", text: `Note: switched active project from "${switchedFrom.name}" to "${ap.name}" (${ap.projectId}).` }, ...res.content]
|
|
43
|
+
: res.content;
|
|
44
|
+
return {
|
|
45
|
+
...res,
|
|
46
|
+
content,
|
|
47
|
+
...(res.structuredContent && {
|
|
48
|
+
structuredContent: { project_id: ap.projectId, project_name: ap.name, ...res.structuredContent },
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,8EAA8E;AAC9E,6CAA6C;AAE7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAA0C,MAAM,6BAA6B,CAAC;AAEtG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,EAAE;KACV,QAAQ,CACP,yGAAyG;IACvG,oEAAoE;IACpE,kGAAkG,CACrG,CAAC;AAQJ,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,sDAAsD;AACtD,IAAI,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;AAEhD,MAAM,UAAU,eAAe,CAAI,EAAoB;IACrD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAqB,EACrB,OAA8D;IAE9D,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,UAAU,CAAC;QACf,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC9G,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,YAAY;YAC1B,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,uCAAuC,YAAY,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,SAAS,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;YACnJ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QAChB,OAAO;YACL,GAAG,GAAG;YACN,OAAO;YACP,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI;gBAC3B,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,iBAAiB,EAAE;aACjG,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tools/readFile.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { joinDoc } from "../api/socket.js";
|
|
3
3
|
import { olGet, expectOk } from "../api/http.js";
|
|
4
|
-
import { findByPath
|
|
4
|
+
import { findByPath } from "../session/activeProject.js";
|
|
5
5
|
import { updateDoc } from "../session/docCache.js";
|
|
6
6
|
import { logger } from "../util/logger.js";
|
|
7
|
+
import { projectIdArg, projectTool } from "./project.js";
|
|
7
8
|
const Schema = z.object({
|
|
9
|
+
project_id: projectIdArg,
|
|
8
10
|
path: z
|
|
9
11
|
.string()
|
|
10
12
|
.min(1)
|
|
@@ -41,16 +43,12 @@ function mimeForName(name) {
|
|
|
41
43
|
export function registerReadFile(server) {
|
|
42
44
|
server.registerTool("read_file", {
|
|
43
45
|
title: "Read a file from the open Overleaf project",
|
|
44
|
-
description: "Reads the contents of a file by project-relative path. " +
|
|
46
|
+
description: "Reads the contents of a file by project-relative path. Pass project_id to read without a prior open_project in this session. " +
|
|
45
47
|
"For text docs (.tex, .bib, .md, etc.) the full text appears in both the `content` array and `structuredContent.text`; metadata (version, line/byte counts, ranges, tracked-change/comment counts) is in `structuredContent`. " +
|
|
46
48
|
"For binary files (images, PDFs) base64 is in `content` and `structuredContent.base64`, with MIME type alongside.",
|
|
47
49
|
inputSchema: Schema.shape,
|
|
48
50
|
annotations: { readOnlyHint: true },
|
|
49
|
-
}, async (args) => {
|
|
50
|
-
const ap = getActiveProject();
|
|
51
|
-
if (!ap) {
|
|
52
|
-
return { content: [{ type: "text", text: "No project is open. Call open_project first." }], isError: true };
|
|
53
|
-
}
|
|
51
|
+
}, projectTool("read", async (args, ap) => {
|
|
54
52
|
const resolvedPath = args.path ?? ap.rootDocPath;
|
|
55
53
|
if (!resolvedPath) {
|
|
56
54
|
return { content: [{ type: "text", text: "No path provided and the project has no configured root doc. Pass a `path` from `list_files`." }], isError: true };
|
|
@@ -132,6 +130,6 @@ export function registerReadFile(server) {
|
|
|
132
130
|
logger.error("read_file failed", msg);
|
|
133
131
|
return { content: [{ type: "text", text: `Failed to read '${args.path}': ${msg}` }], isError: true };
|
|
134
132
|
}
|
|
135
|
-
});
|
|
133
|
+
}));
|
|
136
134
|
}
|
|
137
135
|
//# sourceMappingURL=readFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readFile.js","sourceRoot":"","sources":["../../src/tools/readFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"readFile.js","sourceRoot":"","sources":["../../src/tools/readFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { asJson, olGet, olPostJson, expectOk } from "../api/http.js";
|
|
3
|
-
import { docPathById
|
|
3
|
+
import { docPathById } from "../session/activeProject.js";
|
|
4
4
|
import { applyOtUpdate, joinDoc } from "../api/socket.js";
|
|
5
5
|
import { generateIdSeed } from "../ot/trackedChanges.js";
|
|
6
6
|
import { logger } from "../util/logger.js";
|
|
7
|
+
import { projectIdArg, projectTool } from "./project.js";
|
|
7
8
|
function memberMap(ap) {
|
|
8
9
|
const m = new Map();
|
|
9
10
|
const add = (u) => {
|
|
@@ -48,6 +49,7 @@ function flattenChanges(ranges, pathMap, members) {
|
|
|
48
49
|
}
|
|
49
50
|
// ---------- list_tracked_changes ----------
|
|
50
51
|
const ListSchema = z.object({
|
|
52
|
+
project_id: projectIdArg,
|
|
51
53
|
author_email: z.string().optional().describe("Filter to changes by this exact author email."),
|
|
52
54
|
author_id_endswith: z.string().optional().describe("Filter to changes by user_id matching this suffix (handy when you don't know the email)."),
|
|
53
55
|
path_contains: z.string().optional().describe("Filter to changes in docs whose project-relative path matches this substring."),
|
|
@@ -58,6 +60,7 @@ const ListSchema = z.object({
|
|
|
58
60
|
});
|
|
59
61
|
// ---------- accept_changes ----------
|
|
60
62
|
const AcceptSchema = z.object({
|
|
63
|
+
project_id: projectIdArg,
|
|
61
64
|
change_ids: z.array(z.string().min(8)).min(1).describe("Tracked-change ids to accept (from list_tracked_changes)."),
|
|
62
65
|
});
|
|
63
66
|
async function postAccept(projectId, docId, changeIds) {
|
|
@@ -95,10 +98,7 @@ export function registerTrackedChanges(server) {
|
|
|
95
98
|
"Tracked changes only — review-panel comments are listed by `list_comments`.",
|
|
96
99
|
inputSchema: ListSchema.shape,
|
|
97
100
|
annotations: { readOnlyHint: true },
|
|
98
|
-
}, async (args) => {
|
|
99
|
-
const ap = getActiveProject();
|
|
100
|
-
if (!ap)
|
|
101
|
-
return { content: [{ type: "text", text: "No project is open." }], isError: true };
|
|
101
|
+
}, projectTool("read", async (args, ap) => {
|
|
102
102
|
try {
|
|
103
103
|
const ranges = await fetchAllRanges(ap.projectId);
|
|
104
104
|
const pathMap = docPathById(ap);
|
|
@@ -140,15 +140,12 @@ export function registerTrackedChanges(server) {
|
|
|
140
140
|
logger.error("list_tracked_changes failed", msg);
|
|
141
141
|
return { content: [{ type: "text", text: `Failed: ${msg}` }], isError: true };
|
|
142
142
|
}
|
|
143
|
-
});
|
|
143
|
+
}));
|
|
144
144
|
server.registerTool("accept_changes", {
|
|
145
145
|
title: "Accept tracked changes by id",
|
|
146
146
|
description: "Permanently accepts the specified tracked-change suggestions. The text stays in the doc; the pending-change metadata is cleared. Pass the `change_id` values from `list_tracked_changes`. Changes that span multiple docs are grouped automatically. Irreversible.",
|
|
147
147
|
inputSchema: AcceptSchema.shape,
|
|
148
|
-
}, async (args) => {
|
|
149
|
-
const ap = getActiveProject();
|
|
150
|
-
if (!ap)
|
|
151
|
-
return { content: [{ type: "text", text: "No project is open." }], isError: true };
|
|
148
|
+
}, projectTool("write", async (args, ap) => {
|
|
152
149
|
try {
|
|
153
150
|
// Resolve which doc each change belongs to (via ranges).
|
|
154
151
|
const ranges = await fetchAllRanges(ap.projectId);
|
|
@@ -191,15 +188,12 @@ export function registerTrackedChanges(server) {
|
|
|
191
188
|
logger.error("accept_changes failed", msg);
|
|
192
189
|
return { content: [{ type: "text", text: `Failed: ${msg}` }], isError: true };
|
|
193
190
|
}
|
|
194
|
-
});
|
|
191
|
+
}));
|
|
195
192
|
server.registerTool("reject_changes", {
|
|
196
193
|
title: "Reject tracked changes by id",
|
|
197
194
|
description: "Rejects the specified tracked-change suggestions. For tracked inserts the inserted text is removed; for tracked deletes the strikethrough is cleared and the text stays. Implemented as an OT update with `u:true` flags on the inverse ops — same pathway Overleaf's web client uses. Pass the `change_id` values from `list_tracked_changes`. Irreversible.",
|
|
198
195
|
inputSchema: RejectSchema.shape,
|
|
199
|
-
}, async (args) => {
|
|
200
|
-
const ap = getActiveProject();
|
|
201
|
-
if (!ap)
|
|
202
|
-
return { content: [{ type: "text", text: "No project is open." }], isError: true };
|
|
196
|
+
}, projectTool("write", async (args, ap) => {
|
|
203
197
|
try {
|
|
204
198
|
// Find the full change records (need position and text to invert).
|
|
205
199
|
const ranges = await fetchAllRanges(ap.projectId);
|
|
@@ -237,6 +231,6 @@ export function registerTrackedChanges(server) {
|
|
|
237
231
|
logger.error("reject_changes failed", msg);
|
|
238
232
|
return { content: [{ type: "text", text: `Failed: ${msg}` }], isError: true };
|
|
239
233
|
}
|
|
240
|
-
});
|
|
234
|
+
}));
|
|
241
235
|
}
|
|
242
236
|
//# sourceMappingURL=trackedChanges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackedChanges.js","sourceRoot":"","sources":["../../src/tools/trackedChanges.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trackedChanges.js","sourceRoot":"","sources":["../../src/tools/trackedChanges.ts"],"names":[],"mappings":"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"}
|