obsidian-mcp-pro 2.1.0 → 3.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/README.md +15 -7
- package/build/index.d.ts.map +1 -1
- package/build/index.js +14 -13
- package/build/index.js.map +1 -1
- package/build/install.d.ts.map +1 -1
- package/build/install.js +1 -1
- package/build/install.js.map +1 -1
- package/build/lib/chunker.js +81 -2
- package/build/lib/chunker.js.map +1 -1
- package/build/lib/embedding-store.d.ts +1 -0
- package/build/lib/embedding-store.d.ts.map +1 -1
- package/build/lib/embedding-store.js +61 -9
- package/build/lib/embedding-store.js.map +1 -1
- package/build/lib/fs-ops.d.ts +2 -0
- package/build/lib/fs-ops.d.ts.map +1 -0
- package/build/lib/fs-ops.js +26 -0
- package/build/lib/fs-ops.js.map +1 -0
- package/build/lib/index-cache.d.ts +9 -0
- package/build/lib/index-cache.d.ts.map +1 -1
- package/build/lib/index-cache.js +14 -4
- package/build/lib/index-cache.js.map +1 -1
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +88 -7
- package/build/lib/logger.js.map +1 -1
- package/build/lib/tool-output.d.ts +2 -0
- package/build/lib/tool-output.d.ts.map +1 -0
- package/build/lib/tool-output.js +5 -0
- package/build/lib/tool-output.js.map +1 -0
- package/build/lib/vault.d.ts +31 -2
- package/build/lib/vault.d.ts.map +1 -1
- package/build/lib/vault.js +142 -88
- package/build/lib/vault.js.map +1 -1
- package/build/tools/attachments.d.ts.map +1 -1
- package/build/tools/attachments.js +117 -46
- package/build/tools/attachments.js.map +1 -1
- package/build/tools/bases.d.ts.map +1 -1
- package/build/tools/bases.js +15 -47
- package/build/tools/bases.js.map +1 -1
- package/build/tools/canvas.d.ts.map +1 -1
- package/build/tools/canvas.js +116 -57
- package/build/tools/canvas.js.map +1 -1
- package/build/tools/links.d.ts.map +1 -1
- package/build/tools/links.js +183 -124
- package/build/tools/links.js.map +1 -1
- package/build/tools/prompts.d.ts.map +1 -1
- package/build/tools/prompts.js +11 -9
- package/build/tools/prompts.js.map +1 -1
- package/build/tools/read.d.ts.map +1 -1
- package/build/tools/read.js +84 -81
- package/build/tools/read.js.map +1 -1
- package/build/tools/sections.d.ts.map +1 -1
- package/build/tools/sections.js +81 -19
- package/build/tools/sections.js.map +1 -1
- package/build/tools/semantic.d.ts.map +1 -1
- package/build/tools/semantic.js +26 -44
- package/build/tools/semantic.js.map +1 -1
- package/build/tools/tags.d.ts.map +1 -1
- package/build/tools/tags.js +97 -53
- package/build/tools/tags.js.map +1 -1
- package/build/tools/write.d.ts.map +1 -1
- package/build/tools/write.js +22 -17
- package/build/tools/write.js.map +1 -1
- package/package.json +20 -11
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import fs from "fs/promises";
|
|
4
|
-
import { listAttachments, listNotes, getAttachmentStats, resolveVaultPathSafe, } from "../lib/vault.js";
|
|
4
|
+
import { listAttachments, listNotes, getAttachmentStats, getNoteStats, getVaultRootRealPath, resolveVaultPathSafe, } from "../lib/vault.js";
|
|
5
5
|
import { readAllCached } from "../lib/index-cache.js";
|
|
6
6
|
import { makeProgressReporter } from "../lib/progress.js";
|
|
7
|
+
import { mapConcurrent } from "../lib/concurrency.js";
|
|
7
8
|
import { extractWikilinkSpans, extractMarkdownLinkSpans, } from "../lib/markdown.js";
|
|
8
9
|
import { detectMimeType, categorizeMimeType, getBlockedExtension, verifyImageMagicBytes, } from "../lib/mime.js";
|
|
9
|
-
import { sanitizeError } from "../lib/errors.js";
|
|
10
|
+
import { escapeControlChars, sanitizeError } from "../lib/errors.js";
|
|
10
11
|
import { log } from "../lib/logger.js";
|
|
11
12
|
/** Cap on attachment size returned by `get_attachment` — base64 inflates by
|
|
12
13
|
* ~33% on the wire and large attachments blow MCP host token budgets. The
|
|
@@ -14,12 +15,16 @@ import { log } from "../lib/logger.js";
|
|
|
14
15
|
* with `maxBytes`. */
|
|
15
16
|
const DEFAULT_GET_ATTACHMENT_LIMIT = 5 * 1024 * 1024; // 5 MB
|
|
16
17
|
const ABSOLUTE_GET_ATTACHMENT_LIMIT = 50 * 1024 * 1024; // 50 MB hard cap
|
|
18
|
+
const ATTACHMENT_INVENTORY_CACHE_LIMIT = 8;
|
|
19
|
+
const attachmentInventoryCache = new Map();
|
|
17
20
|
function textResult(text) {
|
|
18
21
|
return { content: [{ type: "text", text }] };
|
|
19
22
|
}
|
|
20
23
|
function errorResult(text) {
|
|
21
24
|
return { content: [{ type: "text", text }], isError: true };
|
|
22
25
|
}
|
|
26
|
+
/** Escape control characters in a value before embedding it in a display string. */
|
|
27
|
+
const displayAttachmentValue = escapeControlChars;
|
|
23
28
|
/** Group attachments by their lower-cased extension for the summary line. */
|
|
24
29
|
function summarizeByExtension(paths) {
|
|
25
30
|
const out = new Map();
|
|
@@ -30,6 +35,32 @@ function summarizeByExtension(paths) {
|
|
|
30
35
|
}
|
|
31
36
|
return out;
|
|
32
37
|
}
|
|
38
|
+
function attachmentListFingerprint(attachments) {
|
|
39
|
+
return attachments.join("\0");
|
|
40
|
+
}
|
|
41
|
+
function noteMtimeFingerprint(notes, contents, mtimes) {
|
|
42
|
+
return notes
|
|
43
|
+
.map((notePath) => {
|
|
44
|
+
const mtime = mtimes.get(notePath);
|
|
45
|
+
return `${notePath}\0${contents.has(notePath) && mtime !== undefined ? mtime : "missing"}`;
|
|
46
|
+
})
|
|
47
|
+
.join("\0");
|
|
48
|
+
}
|
|
49
|
+
async function noteStatsFingerprint(vaultPath, notes) {
|
|
50
|
+
const realVaultRoot = await getVaultRootRealPath(vaultPath);
|
|
51
|
+
const parts = await mapConcurrent(notes, 16, async (notePath) => {
|
|
52
|
+
try {
|
|
53
|
+
const stats = await getNoteStats(vaultPath, notePath, { realVaultRoot });
|
|
54
|
+
return `${notePath}\0${stats.modified?.getTime() ?? 0}`;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (parts.some((part) => part === undefined))
|
|
61
|
+
return undefined;
|
|
62
|
+
return parts.join("\0");
|
|
63
|
+
}
|
|
33
64
|
/**
|
|
34
65
|
* Resolve the set of attachment paths referenced by a single note. Considers:
|
|
35
66
|
* - `![[file.png]]` and `![[file.png|alt]]` wikilink embeds
|
|
@@ -39,7 +70,7 @@ function summarizeByExtension(paths) {
|
|
|
39
70
|
* a basename match across all attachments. Tracks unresolved references so
|
|
40
71
|
* callers can surface them as broken-attachment links.
|
|
41
72
|
*/
|
|
42
|
-
function collectReferencedAttachments(noteContent,
|
|
73
|
+
function collectReferencedAttachments(noteContent, lowerPathIndex, basenameIndex) {
|
|
43
74
|
const resolved = new Set();
|
|
44
75
|
const unresolved = [];
|
|
45
76
|
const consider = (rawTarget) => {
|
|
@@ -49,11 +80,10 @@ function collectReferencedAttachments(noteContent, attachmentSet, basenameIndex)
|
|
|
49
80
|
// 1) Exact relative-path match (case-insensitive on case-insensitive FS,
|
|
50
81
|
// but we lowercase consistently to keep cross-platform behavior stable).
|
|
51
82
|
const lower = t.toLowerCase();
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
83
|
+
const exact = lowerPathIndex.get(lower);
|
|
84
|
+
if (exact) {
|
|
85
|
+
resolved.add(exact);
|
|
86
|
+
return;
|
|
57
87
|
}
|
|
58
88
|
// 2) Basename match. Obsidian also allows missing extensions on
|
|
59
89
|
// attachment links, but only for image/PDF formats — we stay strict
|
|
@@ -79,6 +109,63 @@ function collectReferencedAttachments(noteContent, attachmentSet, basenameIndex)
|
|
|
79
109
|
}
|
|
80
110
|
return { resolved, unresolved };
|
|
81
111
|
}
|
|
112
|
+
async function getCachedAttachmentInventory(vaultPath, attachments, notes, contents, mtimes, reportProgress) {
|
|
113
|
+
const attachmentsFingerprint = attachmentListFingerprint(attachments);
|
|
114
|
+
const noteFingerprint = noteMtimeFingerprint(notes, contents, mtimes);
|
|
115
|
+
const cacheKey = path.resolve(vaultPath);
|
|
116
|
+
const lowerPathIndex = new Map();
|
|
117
|
+
const basenameIndex = new Map();
|
|
118
|
+
for (const p of attachments) {
|
|
119
|
+
if (!lowerPathIndex.has(p.toLowerCase()))
|
|
120
|
+
lowerPathIndex.set(p.toLowerCase(), p);
|
|
121
|
+
const base = path.basename(p).toLowerCase();
|
|
122
|
+
const list = basenameIndex.get(base);
|
|
123
|
+
if (list)
|
|
124
|
+
list.push(p);
|
|
125
|
+
else
|
|
126
|
+
basenameIndex.set(base, [p]);
|
|
127
|
+
}
|
|
128
|
+
const referenced = new Set();
|
|
129
|
+
let scanned = 0;
|
|
130
|
+
for (const notePath of notes) {
|
|
131
|
+
const content = contents.get(notePath);
|
|
132
|
+
if (content !== undefined) {
|
|
133
|
+
const { resolved } = collectReferencedAttachments(content, lowerPathIndex, basenameIndex);
|
|
134
|
+
for (const r of resolved)
|
|
135
|
+
referenced.add(r);
|
|
136
|
+
}
|
|
137
|
+
scanned++;
|
|
138
|
+
await reportProgress(scanned, notes.length, `Scanned ${scanned}/${notes.length} notes`);
|
|
139
|
+
}
|
|
140
|
+
const fresh = { attachmentsFingerprint, noteFingerprint, referenced };
|
|
141
|
+
attachmentInventoryCache.set(cacheKey, fresh);
|
|
142
|
+
while (attachmentInventoryCache.size > ATTACHMENT_INVENTORY_CACHE_LIMIT) {
|
|
143
|
+
const oldestKey = attachmentInventoryCache.keys().next().value;
|
|
144
|
+
if (oldestKey === undefined)
|
|
145
|
+
break;
|
|
146
|
+
attachmentInventoryCache.delete(oldestKey);
|
|
147
|
+
}
|
|
148
|
+
return fresh;
|
|
149
|
+
}
|
|
150
|
+
async function getReusableAttachmentInventory(vaultPath, attachments, notes, reportProgress) {
|
|
151
|
+
const cacheKey = path.resolve(vaultPath);
|
|
152
|
+
const cached = attachmentInventoryCache.get(cacheKey);
|
|
153
|
+
if (!cached || cached.attachmentsFingerprint !== attachmentListFingerprint(attachments)) {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
const currentNoteFingerprint = await noteStatsFingerprint(vaultPath, notes);
|
|
157
|
+
if (currentNoteFingerprint === undefined || currentNoteFingerprint !== cached.noteFingerprint) {
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
attachmentInventoryCache.delete(cacheKey);
|
|
161
|
+
attachmentInventoryCache.set(cacheKey, cached);
|
|
162
|
+
let scanned = 0;
|
|
163
|
+
for (const _notePath of notes) {
|
|
164
|
+
scanned++;
|
|
165
|
+
await reportProgress(scanned, notes.length, `Scanned ${scanned}/${notes.length} notes`);
|
|
166
|
+
}
|
|
167
|
+
return cached;
|
|
168
|
+
}
|
|
82
169
|
export function registerAttachmentTools(server, vaultPath) {
|
|
83
170
|
server.registerTool("list_attachments", {
|
|
84
171
|
title: "List Attachments",
|
|
@@ -114,12 +201,12 @@ export function registerAttachmentTools(server, vaultPath) {
|
|
|
114
201
|
: all;
|
|
115
202
|
if (filtered.length === 0) {
|
|
116
203
|
return textResult(extension
|
|
117
|
-
? `No attachments with extension "${extension}".`
|
|
204
|
+
? `No attachments with extension "${displayAttachmentValue(extension)}".`
|
|
118
205
|
: "No attachments in this vault.");
|
|
119
206
|
}
|
|
120
207
|
const truncated = filtered.slice(0, limit);
|
|
121
208
|
const lines = [
|
|
122
|
-
`${filtered.length} attachment(s)${extension ? ` (.${extension.replace(/^\./, "")})` : ""}${filtered.length > limit ? ` (showing first ${limit})` : ""}:`,
|
|
209
|
+
`${filtered.length} attachment(s)${extension ? ` (.${displayAttachmentValue(extension.replace(/^\./, ""))})` : ""}${filtered.length > limit ? ` (showing first ${limit})` : ""}:`,
|
|
123
210
|
"",
|
|
124
211
|
];
|
|
125
212
|
const summary = summarizeByExtension(filtered);
|
|
@@ -127,11 +214,11 @@ export function registerAttachmentTools(server, vaultPath) {
|
|
|
127
214
|
lines.push("By extension:");
|
|
128
215
|
const entries = Array.from(summary.entries()).sort((a, b) => b[1] - a[1]);
|
|
129
216
|
for (const [ext, n] of entries)
|
|
130
|
-
lines.push(` ${ext} ${n}`);
|
|
217
|
+
lines.push(` ${displayAttachmentValue(ext)} ${n}`);
|
|
131
218
|
lines.push("");
|
|
132
219
|
}
|
|
133
220
|
for (const p of truncated)
|
|
134
|
-
lines.push(`- ${p}`);
|
|
221
|
+
lines.push(`- ${displayAttachmentValue(p)}`);
|
|
135
222
|
return textResult(lines.join("\n"));
|
|
136
223
|
}
|
|
137
224
|
catch (err) {
|
|
@@ -169,34 +256,16 @@ export function registerAttachmentTools(server, vaultPath) {
|
|
|
169
256
|
if (attachments.length === 0) {
|
|
170
257
|
return textResult("No attachments in this vault — nothing to check.");
|
|
171
258
|
}
|
|
172
|
-
const attachmentSet = new Set(attachments);
|
|
173
|
-
const basenameIndex = new Map();
|
|
174
|
-
for (const p of attachments) {
|
|
175
|
-
const base = path.basename(p).toLowerCase();
|
|
176
|
-
const list = basenameIndex.get(base);
|
|
177
|
-
if (list)
|
|
178
|
-
list.push(p);
|
|
179
|
-
else
|
|
180
|
-
basenameIndex.set(base, [p]);
|
|
181
|
-
}
|
|
182
259
|
const notes = await listNotes(vaultPath);
|
|
183
260
|
await reportProgress(0, notes.length, "Reading notes…");
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
const content = contents.get(notePath);
|
|
191
|
-
if (content !== undefined) {
|
|
192
|
-
const { resolved } = collectReferencedAttachments(content, attachmentSet, basenameIndex);
|
|
193
|
-
for (const r of resolved)
|
|
194
|
-
referenced.add(r);
|
|
195
|
-
}
|
|
196
|
-
scanned++;
|
|
197
|
-
await reportProgress(scanned, notes.length, `Scanned ${scanned}/${notes.length} notes`);
|
|
261
|
+
let inventory = await getReusableAttachmentInventory(vaultPath, attachments, notes, reportProgress);
|
|
262
|
+
if (!inventory) {
|
|
263
|
+
const { contents, mtimes } = await readAllCached(vaultPath, notes, (note, err) => {
|
|
264
|
+
log.warn("find_unused_attachments: note read failed", { note, err });
|
|
265
|
+
});
|
|
266
|
+
inventory = await getCachedAttachmentInventory(vaultPath, attachments, notes, contents, mtimes, reportProgress);
|
|
198
267
|
}
|
|
199
|
-
const unused = attachments.filter((p) => !referenced.has(p));
|
|
268
|
+
const unused = attachments.filter((p) => !inventory.referenced.has(p));
|
|
200
269
|
if (unused.length === 0) {
|
|
201
270
|
return textResult(`All ${attachments.length} attachment(s) are referenced — nothing to clean up.`);
|
|
202
271
|
}
|
|
@@ -225,12 +294,13 @@ export function registerAttachmentTools(server, vaultPath) {
|
|
|
225
294
|
lines.push("");
|
|
226
295
|
for (const p of truncated) {
|
|
227
296
|
const sz = sizes.get(p);
|
|
228
|
-
|
|
297
|
+
const displayedPath = displayAttachmentValue(p);
|
|
298
|
+
lines.push(sz !== undefined ? `- ${displayedPath} (${sz.toLocaleString()} bytes)` : `- ${displayedPath}`);
|
|
229
299
|
}
|
|
230
300
|
}
|
|
231
301
|
else {
|
|
232
302
|
for (const p of truncated)
|
|
233
|
-
lines.push(`- ${p}`);
|
|
303
|
+
lines.push(`- ${displayAttachmentValue(p)}`);
|
|
234
304
|
}
|
|
235
305
|
return textResult(lines.join("\n"));
|
|
236
306
|
}
|
|
@@ -269,24 +339,25 @@ export function registerAttachmentTools(server, vaultPath) {
|
|
|
269
339
|
// Reject text-format files so the wrong tool isn't used on them.
|
|
270
340
|
const lowerPath = relPath.toLowerCase();
|
|
271
341
|
if (lowerPath.endsWith(".md") || lowerPath.endsWith(".canvas") || lowerPath.endsWith(".base")) {
|
|
272
|
-
return errorResult(`Refusing to fetch "${relPath}" via get_attachment - use get_note / read_canvas / read_base instead.`);
|
|
342
|
+
return errorResult(`Refusing to fetch "${displayAttachmentValue(relPath)}" via get_attachment - use get_note / read_canvas / read_base instead.`);
|
|
273
343
|
}
|
|
274
344
|
// SEC-7: Block dangerous executable extensions.
|
|
275
345
|
const blockedExt = getBlockedExtension(relPath);
|
|
276
346
|
if (blockedExt) {
|
|
277
|
-
return errorResult(`Blocked: "${relPath}" has a dangerous extension (${blockedExt}). ` +
|
|
347
|
+
return errorResult(`Blocked: "${displayAttachmentValue(relPath)}" has a dangerous extension (${displayAttachmentValue(blockedExt)}). ` +
|
|
278
348
|
`Executable file types are not served as attachments.`);
|
|
279
349
|
}
|
|
280
350
|
const fullPath = await resolveVaultPathSafe(vaultPath, relPath);
|
|
281
351
|
const stat = await fs.stat(fullPath);
|
|
282
352
|
const limit = maxBytes ?? DEFAULT_GET_ATTACHMENT_LIMIT;
|
|
283
353
|
if (stat.size > limit) {
|
|
284
|
-
return errorResult(`Attachment "${relPath}" is ${stat.size.toLocaleString()} bytes - over the ${limit.toLocaleString()}-byte limit. Pass maxBytes to override (hard cap ${ABSOLUTE_GET_ATTACHMENT_LIMIT.toLocaleString()}).`);
|
|
354
|
+
return errorResult(`Attachment "${displayAttachmentValue(relPath)}" is ${stat.size.toLocaleString()} bytes - over the ${limit.toLocaleString()}-byte limit. Pass maxBytes to override (hard cap ${ABSOLUTE_GET_ATTACHMENT_LIMIT.toLocaleString()}).`);
|
|
285
355
|
}
|
|
286
356
|
const bytes = await fs.readFile(fullPath);
|
|
287
357
|
const mime = detectMimeType(relPath);
|
|
288
358
|
const category = categorizeMimeType(mime);
|
|
289
359
|
const basename = path.basename(relPath);
|
|
360
|
+
const displayedBasename = displayAttachmentValue(basename);
|
|
290
361
|
// SEC-8: SVG files can contain embedded <script> tags and event
|
|
291
362
|
// handlers, making them an XSS vector. Return SVG content as
|
|
292
363
|
// plain text instead of as an image embed.
|
|
@@ -296,7 +367,7 @@ export function registerAttachmentTools(server, vaultPath) {
|
|
|
296
367
|
content: [
|
|
297
368
|
{
|
|
298
369
|
type: "text",
|
|
299
|
-
text: `Attached: ${
|
|
370
|
+
text: `Attached: ${displayedBasename} (SVG returned as text/plain for security - SVGs may contain embedded scripts)\n` +
|
|
300
371
|
`Size: ${stat.size.toLocaleString()} bytes`,
|
|
301
372
|
},
|
|
302
373
|
{
|
|
@@ -330,7 +401,7 @@ export function registerAttachmentTools(server, vaultPath) {
|
|
|
330
401
|
if (category === "image") {
|
|
331
402
|
return {
|
|
332
403
|
content: [
|
|
333
|
-
{ type: "text", text: `Attached: ${
|
|
404
|
+
{ type: "text", text: `Attached: ${displayedBasename} (${mime}, ${stat.size.toLocaleString()} bytes)${magicWarning}` },
|
|
334
405
|
{ type: "image", data, mimeType: mime },
|
|
335
406
|
],
|
|
336
407
|
};
|
|
@@ -338,14 +409,14 @@ export function registerAttachmentTools(server, vaultPath) {
|
|
|
338
409
|
if (category === "audio") {
|
|
339
410
|
return {
|
|
340
411
|
content: [
|
|
341
|
-
{ type: "text", text: `Attached: ${
|
|
412
|
+
{ type: "text", text: `Attached: ${displayedBasename} (${mime}, ${stat.size.toLocaleString()} bytes)` },
|
|
342
413
|
{ type: "audio", data, mimeType: mime },
|
|
343
414
|
],
|
|
344
415
|
};
|
|
345
416
|
}
|
|
346
417
|
return {
|
|
347
418
|
content: [
|
|
348
|
-
{ type: "text", text: `Attached: ${
|
|
419
|
+
{ type: "text", text: `Attached: ${displayedBasename} (${mime}, ${stat.size.toLocaleString()} bytes)` },
|
|
349
420
|
{
|
|
350
421
|
type: "resource",
|
|
351
422
|
resource: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/tools/attachments.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/tools/attachments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bases.d.ts","sourceRoot":"","sources":["../../src/tools/bases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"bases.d.ts","sourceRoot":"","sources":["../../src/tools/bases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA6L5E"}
|
package/build/tools/bases.js
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import
|
|
3
|
-
import { listBaseFiles, readBaseFile, listNotes, resolveVaultPathSafe } from "../lib/vault.js";
|
|
2
|
+
import { listBaseFiles, readBaseFile, listNotes } from "../lib/vault.js";
|
|
4
3
|
import { parseBaseFile, queryBase, buildRow } from "../lib/bases.js";
|
|
5
4
|
import { readAllCached } from "../lib/index-cache.js";
|
|
6
5
|
import { extractWikilinks } from "../lib/markdown.js";
|
|
7
|
-
import {
|
|
8
|
-
import { sanitizeError } from "../lib/errors.js";
|
|
6
|
+
import { escapeControlChars, sanitizeError } from "../lib/errors.js";
|
|
9
7
|
import { log } from "../lib/logger.js";
|
|
10
|
-
const MAX_CONCURRENT_STATS = 16;
|
|
11
8
|
function textResult(text) {
|
|
12
9
|
return { content: [{ type: "text", text }] };
|
|
13
10
|
}
|
|
14
11
|
function errorResult(text) {
|
|
15
12
|
return { content: [{ type: "text", text }], isError: true };
|
|
16
13
|
}
|
|
14
|
+
/** Escape control characters before embedding values in Base tool display text. */
|
|
15
|
+
const displayBaseValue = escapeControlChars;
|
|
17
16
|
export function registerBaseTools(server, vaultPath) {
|
|
18
17
|
server.registerTool("list_bases", {
|
|
19
18
|
title: "List Bases",
|
|
@@ -29,7 +28,7 @@ export function registerBaseTools(server, vaultPath) {
|
|
|
29
28
|
const bases = await listBaseFiles(vaultPath);
|
|
30
29
|
if (bases.length === 0)
|
|
31
30
|
return textResult("No .base files in this vault.");
|
|
32
|
-
const lines = [`Found ${bases.length} Base file(s):`, "", ...bases];
|
|
31
|
+
const lines = [`Found ${bases.length} Base file(s):`, "", ...bases.map(displayBaseValue)];
|
|
33
32
|
return textResult(lines.join("\n"));
|
|
34
33
|
}
|
|
35
34
|
catch (err) {
|
|
@@ -56,11 +55,11 @@ export function registerBaseTools(server, vaultPath) {
|
|
|
56
55
|
try {
|
|
57
56
|
const raw = await readBaseFile(vaultPath, basePath);
|
|
58
57
|
const { doc, warnings } = parseBaseFile(raw);
|
|
59
|
-
const lines = [`Base: ${basePath}`, ""];
|
|
58
|
+
const lines = [`Base: ${displayBaseValue(basePath)}`, ""];
|
|
60
59
|
if (warnings.length > 0) {
|
|
61
60
|
lines.push("Parse warnings:");
|
|
62
61
|
for (const w of warnings)
|
|
63
|
-
lines.push(` - ${w}`);
|
|
62
|
+
lines.push(` - ${displayBaseValue(w)}`);
|
|
64
63
|
lines.push("");
|
|
65
64
|
}
|
|
66
65
|
lines.push("Filters:");
|
|
@@ -69,7 +68,7 @@ export function registerBaseTools(server, vaultPath) {
|
|
|
69
68
|
if (doc.properties) {
|
|
70
69
|
lines.push(`Properties (${Object.keys(doc.properties).length}):`);
|
|
71
70
|
for (const [key, spec] of Object.entries(doc.properties)) {
|
|
72
|
-
lines.push(` - ${key}${spec.displayName ? ` (display: ${spec.displayName})` : ""}`);
|
|
71
|
+
lines.push(` - ${displayBaseValue(key)}${spec.displayName ? ` (display: ${displayBaseValue(spec.displayName)})` : ""}`);
|
|
73
72
|
}
|
|
74
73
|
lines.push("");
|
|
75
74
|
}
|
|
@@ -77,7 +76,7 @@ export function registerBaseTools(server, vaultPath) {
|
|
|
77
76
|
lines.push(`Views (${doc.views.length}):`);
|
|
78
77
|
for (const v of doc.views) {
|
|
79
78
|
const nm = v.name ?? "(unnamed)";
|
|
80
|
-
lines.push(` - ${nm} [type: ${v.type}]`);
|
|
79
|
+
lines.push(` - ${displayBaseValue(nm)} [type: ${displayBaseValue(v.type)}]`);
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
return textResult(lines.join("\n"));
|
|
@@ -129,46 +128,18 @@ export function registerBaseTools(server, vaultPath) {
|
|
|
129
128
|
// note individually. readAllCached stat()'s each path and only re-reads
|
|
130
129
|
// files whose mtime has moved, which makes repeat queries near-instant.
|
|
131
130
|
const readFailures = [];
|
|
132
|
-
const { contents } = await readAllCached(vaultPath, notes, (relPath, err) => {
|
|
131
|
+
const { contents, stats } = await readAllCached(vaultPath, notes, (relPath, err) => {
|
|
133
132
|
readFailures.push(relPath);
|
|
134
133
|
log.warn("query_base: note read failed", {
|
|
135
134
|
note: relPath,
|
|
136
135
|
err,
|
|
137
136
|
});
|
|
138
137
|
});
|
|
139
|
-
const statFailures = [];
|
|
140
|
-
const statRows = await mapConcurrent(notes.filter((notePath) => contents.has(notePath)), MAX_CONCURRENT_STATS, async (notePath) => {
|
|
141
|
-
try {
|
|
142
|
-
const fullPath = await resolveVaultPathSafe(vaultPath, notePath);
|
|
143
|
-
const st = await fs.stat(fullPath);
|
|
144
|
-
return {
|
|
145
|
-
path: notePath,
|
|
146
|
-
stats: {
|
|
147
|
-
size: st.size,
|
|
148
|
-
ctime: st.ctimeMs,
|
|
149
|
-
mtime: st.mtimeMs,
|
|
150
|
-
},
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
catch (err) {
|
|
154
|
-
statFailures.push(notePath);
|
|
155
|
-
log.warn("query_base: note stat failed", {
|
|
156
|
-
note: notePath,
|
|
157
|
-
err: err,
|
|
158
|
-
});
|
|
159
|
-
return undefined;
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
const statsByPath = new Map();
|
|
163
|
-
for (const row of statRows) {
|
|
164
|
-
if (row)
|
|
165
|
-
statsByPath.set(row.path, row.stats);
|
|
166
|
-
}
|
|
167
138
|
const validRows = notes
|
|
168
139
|
.filter((notePath) => contents.has(notePath))
|
|
169
140
|
.map((notePath) => {
|
|
170
141
|
const content = contents.get(notePath);
|
|
171
|
-
const row = buildRow(notePath, content,
|
|
142
|
+
const row = buildRow(notePath, content, stats.get(notePath));
|
|
172
143
|
// BUG-4: Populate row.links from the note's outgoing wikilinks so
|
|
173
144
|
// file.linksTo() / file.hasLink() filters evaluate correctly.
|
|
174
145
|
// Without this, row.links is undefined and the evaluator falls
|
|
@@ -187,25 +158,22 @@ export function registerBaseTools(server, vaultPath) {
|
|
|
187
158
|
if (readFailures.length > 0) {
|
|
188
159
|
allWarnings.push(`Could not read ${readFailures.length} note(s); they were excluded from results.`);
|
|
189
160
|
}
|
|
190
|
-
if (statFailures.length > 0) {
|
|
191
|
-
allWarnings.push(`Could not stat ${statFailures.length} note(s); file.size/file.ctime/file.mtime may be unavailable for them.`);
|
|
192
|
-
}
|
|
193
161
|
const truncated = result.rows.slice(0, limit);
|
|
194
162
|
const lines = [];
|
|
195
|
-
lines.push(`Base: ${basePath}${view ? ` (view: ${view})` : ""}`);
|
|
163
|
+
lines.push(`Base: ${displayBaseValue(basePath)}${view ? ` (view: ${displayBaseValue(view)})` : ""}`);
|
|
196
164
|
lines.push(`Matched ${result.rows.length} note(s)${result.rows.length > limit ? ` (showing first ${limit})` : ""}`);
|
|
197
165
|
if (allWarnings.length > 0) {
|
|
198
166
|
lines.push("");
|
|
199
167
|
lines.push("Warnings:");
|
|
200
168
|
for (const w of allWarnings)
|
|
201
|
-
lines.push(` - ${w}`);
|
|
169
|
+
lines.push(` - ${displayBaseValue(w)}`);
|
|
202
170
|
}
|
|
203
171
|
lines.push("");
|
|
204
172
|
for (const row of truncated) {
|
|
205
|
-
lines.push(`- ${row.path}`);
|
|
173
|
+
lines.push(`- ${displayBaseValue(row.path)}`);
|
|
206
174
|
if (includeFrontmatter && Object.keys(row.frontmatter).length > 0) {
|
|
207
175
|
for (const [k, v] of Object.entries(row.frontmatter)) {
|
|
208
|
-
lines.push(` ${k}: ${JSON.stringify(v)}`);
|
|
176
|
+
lines.push(` ${displayBaseValue(k)}: ${JSON.stringify(v)}`);
|
|
209
177
|
}
|
|
210
178
|
}
|
|
211
179
|
}
|
package/build/tools/bases.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bases.js","sourceRoot":"","sources":["../../src/tools/bases.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bases.js","sourceRoot":"","sources":["../../src/tools/bases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/tools/canvas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/tools/canvas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuIpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA6U9E"}
|