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.
Files changed (63) hide show
  1. package/README.md +15 -7
  2. package/build/index.d.ts.map +1 -1
  3. package/build/index.js +14 -13
  4. package/build/index.js.map +1 -1
  5. package/build/install.d.ts.map +1 -1
  6. package/build/install.js +1 -1
  7. package/build/install.js.map +1 -1
  8. package/build/lib/chunker.js +81 -2
  9. package/build/lib/chunker.js.map +1 -1
  10. package/build/lib/embedding-store.d.ts +1 -0
  11. package/build/lib/embedding-store.d.ts.map +1 -1
  12. package/build/lib/embedding-store.js +61 -9
  13. package/build/lib/embedding-store.js.map +1 -1
  14. package/build/lib/fs-ops.d.ts +2 -0
  15. package/build/lib/fs-ops.d.ts.map +1 -0
  16. package/build/lib/fs-ops.js +26 -0
  17. package/build/lib/fs-ops.js.map +1 -0
  18. package/build/lib/index-cache.d.ts +9 -0
  19. package/build/lib/index-cache.d.ts.map +1 -1
  20. package/build/lib/index-cache.js +14 -4
  21. package/build/lib/index-cache.js.map +1 -1
  22. package/build/lib/logger.d.ts.map +1 -1
  23. package/build/lib/logger.js +88 -7
  24. package/build/lib/logger.js.map +1 -1
  25. package/build/lib/tool-output.d.ts +2 -0
  26. package/build/lib/tool-output.d.ts.map +1 -0
  27. package/build/lib/tool-output.js +5 -0
  28. package/build/lib/tool-output.js.map +1 -0
  29. package/build/lib/vault.d.ts +31 -2
  30. package/build/lib/vault.d.ts.map +1 -1
  31. package/build/lib/vault.js +142 -88
  32. package/build/lib/vault.js.map +1 -1
  33. package/build/tools/attachments.d.ts.map +1 -1
  34. package/build/tools/attachments.js +117 -46
  35. package/build/tools/attachments.js.map +1 -1
  36. package/build/tools/bases.d.ts.map +1 -1
  37. package/build/tools/bases.js +15 -47
  38. package/build/tools/bases.js.map +1 -1
  39. package/build/tools/canvas.d.ts.map +1 -1
  40. package/build/tools/canvas.js +116 -57
  41. package/build/tools/canvas.js.map +1 -1
  42. package/build/tools/links.d.ts.map +1 -1
  43. package/build/tools/links.js +183 -124
  44. package/build/tools/links.js.map +1 -1
  45. package/build/tools/prompts.d.ts.map +1 -1
  46. package/build/tools/prompts.js +11 -9
  47. package/build/tools/prompts.js.map +1 -1
  48. package/build/tools/read.d.ts.map +1 -1
  49. package/build/tools/read.js +84 -81
  50. package/build/tools/read.js.map +1 -1
  51. package/build/tools/sections.d.ts.map +1 -1
  52. package/build/tools/sections.js +81 -19
  53. package/build/tools/sections.js.map +1 -1
  54. package/build/tools/semantic.d.ts.map +1 -1
  55. package/build/tools/semantic.js +26 -44
  56. package/build/tools/semantic.js.map +1 -1
  57. package/build/tools/tags.d.ts.map +1 -1
  58. package/build/tools/tags.js +97 -53
  59. package/build/tools/tags.js.map +1 -1
  60. package/build/tools/write.d.ts.map +1 -1
  61. package/build/tools/write.js +22 -17
  62. package/build/tools/write.js.map +1 -1
  63. 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, attachmentSet, basenameIndex) {
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
- for (const att of attachmentSet) {
53
- if (att.toLowerCase() === lower) {
54
- resolved.add(att);
55
- return;
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
- const { contents } = await readAllCached(vaultPath, notes, (note, err) => {
185
- log.warn("find_unused_attachments: note read failed", { note, err });
186
- });
187
- const referenced = new Set();
188
- let scanned = 0;
189
- for (const notePath of notes) {
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
- lines.push(sz !== undefined ? `- ${p} (${sz.toLocaleString()} bytes)` : `- ${p}`);
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: ${basename} (SVG returned as text/plain for security - SVGs may contain embedded scripts)\n` +
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: ${basename} (${mime}, ${stat.size.toLocaleString()} bytes)${magicWarning}` },
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: ${basename} (${mime}, ${stat.size.toLocaleString()} bytes)` },
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: ${basename} (${mime}, ${stat.size.toLocaleString()} bytes)` },
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;AAqBpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAkO5E"}
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"}
@@ -1,19 +1,18 @@
1
1
  import { z } from "zod";
2
- import fs from "fs/promises";
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 { mapConcurrent } from "../lib/concurrency.js";
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, statsByPath.get(notePath));
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bases.js","sourceRoot":"","sources":["../../src/tools/bases.ts"],"names":[],"mappings":"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"}
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAuX9E"}
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"}