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
package/build/tools/links.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/tools/links.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/tools/links.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuNvD"}
|
package/build/tools/prompts.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { escapeControlChars } from "../lib/errors.js";
|
|
3
|
+
const displayPromptValue = escapeControlChars;
|
|
2
4
|
/**
|
|
3
5
|
* MCP prompts the server exposes to clients. Each prompt is a starter
|
|
4
6
|
* conversation template; clients render them in their slash-command palette
|
|
@@ -101,10 +103,10 @@ export function registerPrompts(server) {
|
|
|
101
103
|
content: {
|
|
102
104
|
type: "text",
|
|
103
105
|
text: [
|
|
104
|
-
`Find stale notes${folder ? ` in folder "${folder}"` : ""} (untouched ${days ?? "90"}+ days).`,
|
|
106
|
+
`Find stale notes${folder ? ` in folder "${displayPromptValue(folder)}"` : ""} (untouched ${days ?? "90"}+ days).`,
|
|
105
107
|
"",
|
|
106
108
|
"Steps:",
|
|
107
|
-
`1. Call get_recent_notes with limit=1000${folder ? ` and folder="${folder}"` : ""} (no \`since\` filter) to get every note ordered by most-recent-mtime first. Each row already includes an ISO timestamp, so no need to call get_note per row. The stalest notes sit at the bottom of the list.`,
|
|
109
|
+
`1. Call get_recent_notes with limit=1000${folder ? ` and folder="${displayPromptValue(folder)}"` : ""} (no \`since\` filter) to get every note ordered by most-recent-mtime first. Each row already includes an ISO timestamp, so no need to call get_note per row. The stalest notes sit at the bottom of the list.`,
|
|
108
110
|
`2. Filter to notes whose mtime is older than ${days ?? "90"} days. Cap the candidate set at 25. (Optional cross-check: call get_recent_notes a second time with since="${days ?? "90"}d"; anything NOT in that set is stale.)`,
|
|
109
111
|
"3. Call find_orphans once and find_broken_links once. Use the returned paths as lookup sets; do not call get_note per candidate.",
|
|
110
112
|
"4. Group the (already capped) candidates into three buckets using the two lookup sets:",
|
|
@@ -143,16 +145,16 @@ export function registerPrompts(server) {
|
|
|
143
145
|
type: "text",
|
|
144
146
|
text: [
|
|
145
147
|
path
|
|
146
|
-
? `Extract action items from "${path}".`
|
|
148
|
+
? `Extract action items from "${displayPromptValue(path)}".`
|
|
147
149
|
: tag
|
|
148
|
-
? `Extract action items from every note tagged #${tag.replace(/^#/, "")}.`
|
|
150
|
+
? `Extract action items from every note tagged #${displayPromptValue(tag.replace(/^#/, ""))}.`
|
|
149
151
|
: "Extract action items from the active note.",
|
|
150
152
|
"",
|
|
151
153
|
"Steps:",
|
|
152
154
|
path
|
|
153
|
-
? `1. Call get_note with path="${path}".`
|
|
155
|
+
? `1. Call get_note with path="${displayPromptValue(path)}".`
|
|
154
156
|
: tag
|
|
155
|
-
? `1. Call search_by_tag with tag="${tag}". If it returns more than 20 notes, ask the user to narrow the tag before fanning out. Otherwise call get_note on each of the (capped at 20) results.`
|
|
157
|
+
? `1. Call search_by_tag with tag="${displayPromptValue(tag)}". If it returns more than 20 notes, ask the user to narrow the tag before fanning out. Otherwise call get_note on each of the (capped at 20) results.`
|
|
156
158
|
: "1. Ask the user which note(s) to scan (cap at 20), then call get_note for each.",
|
|
157
159
|
`2. For each note, parse all unchecked task lines (\`- [ ] …\`).`,
|
|
158
160
|
`3. Group by note (or by section heading where they appear).`,
|
|
@@ -178,13 +180,13 @@ export function registerPrompts(server) {
|
|
|
178
180
|
content: {
|
|
179
181
|
type: "text",
|
|
180
182
|
text: [
|
|
181
|
-
`Build a Map of Content (MOC) for ${tag ? `tag #${tag.replace(/^#/, "")}` : folder ? `folder "${folder}"` : "the requested scope"}.`,
|
|
183
|
+
`Build a Map of Content (MOC) for ${tag ? `tag #${displayPromptValue(tag.replace(/^#/, ""))}` : folder ? `folder "${displayPromptValue(folder)}"` : "the requested scope"}.`,
|
|
182
184
|
"",
|
|
183
185
|
"Steps:",
|
|
184
186
|
tag
|
|
185
|
-
? `1. Call search_by_tag with tag="${tag}".`
|
|
187
|
+
? `1. Call search_by_tag with tag="${displayPromptValue(tag)}".`
|
|
186
188
|
: folder
|
|
187
|
-
? `1. Call list_notes with folder="${folder}".`
|
|
189
|
+
? `1. Call list_notes with folder="${displayPromptValue(folder)}".`
|
|
188
190
|
: "1. Ask the user for tag or folder.",
|
|
189
191
|
"2. Cap the candidate set at 40 notes (sample evenly across the result if there are more, or ask the user to narrow scope). For each capped candidate, call get_note with `lines: '1-15'` to keep token usage low.",
|
|
190
192
|
"3. Cluster the notes into 3-7 groups by theme. For each cluster, write a one-line description and 5-15 wikilinks.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAyrB5E"}
|
package/build/tools/read.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import fs from "fs/promises";
|
|
3
3
|
import path from "path";
|
|
4
|
-
import { searchInContents, readNote, listNotes, resolveVaultPathSafe } from "../lib/vault.js";
|
|
4
|
+
import { searchInContents, readNote, readNoteLineRange, listNotes, resolveVaultPathSafe, getVaultRootRealPath, } from "../lib/vault.js";
|
|
5
5
|
import { readAllCached } from "../lib/index-cache.js";
|
|
6
|
-
import { sanitizeError } from "../lib/errors.js";
|
|
6
|
+
import { escapeControlChars, sanitizeError } from "../lib/errors.js";
|
|
7
7
|
import { log } from "../lib/logger.js";
|
|
8
8
|
import { mapConcurrent } from "../lib/concurrency.js";
|
|
9
9
|
import { formatLocalDateOnly, formatMomentDate, parseLocalDateOnly } from "../lib/dates.js";
|
|
@@ -12,13 +12,16 @@ import { findSection, findBlockById, stripBlockId } from "../lib/sections.js";
|
|
|
12
12
|
import { getDailyNoteConfig } from "../config.js";
|
|
13
13
|
/** Maximum number of concurrent file I/O operations for parallel vault scans. */
|
|
14
14
|
const MAX_CONCURRENT_OPS = 16;
|
|
15
|
+
function displayReadValue(value) {
|
|
16
|
+
return escapeControlChars(value);
|
|
17
|
+
}
|
|
15
18
|
export function registerReadTools(server, vaultPath) {
|
|
16
19
|
function errorResult(text) {
|
|
17
20
|
return { content: [{ type: "text", text }], isError: true };
|
|
18
21
|
}
|
|
19
22
|
server.registerTool("search_notes", {
|
|
20
23
|
title: "Search Notes",
|
|
21
|
-
description: "Full-text search across all notes in the vault.
|
|
24
|
+
description: "Full-text search across all notes in the vault. Ranks literal matches with title/path focus and repeated-line dampening, then returns matching note paths grouped with the line numbers and query-centered snippet content of each matching line. Use to locate notes containing a phrase, keyword, or code fragment; pair with get_note to retrieve full bodies.",
|
|
22
25
|
annotations: {
|
|
23
26
|
readOnlyHint: true,
|
|
24
27
|
idempotentHint: true,
|
|
@@ -67,19 +70,19 @@ export function registerReadTools(server, vaultPath) {
|
|
|
67
70
|
content: [
|
|
68
71
|
{
|
|
69
72
|
type: "text",
|
|
70
|
-
text: `No results found for "${query}"`,
|
|
73
|
+
text: `No results found for "${displayReadValue(query)}"`,
|
|
71
74
|
},
|
|
72
75
|
],
|
|
73
76
|
};
|
|
74
77
|
}
|
|
75
78
|
const lines = [
|
|
76
|
-
`Found ${results.length} result(s) for "${query}":`,
|
|
79
|
+
`Found ${results.length} result(s) for "${displayReadValue(query)}":`,
|
|
77
80
|
"",
|
|
78
81
|
];
|
|
79
82
|
for (const result of results) {
|
|
80
|
-
lines.push(`## ${result.relativePath}`);
|
|
83
|
+
lines.push(`## ${displayReadValue(result.relativePath)}`);
|
|
81
84
|
for (const match of result.matches) {
|
|
82
|
-
lines.push(` Line ${match.line}: ${match.content}`);
|
|
85
|
+
lines.push(` Line ${match.line}: ${displayReadValue(match.content)}`);
|
|
83
86
|
}
|
|
84
87
|
lines.push("");
|
|
85
88
|
}
|
|
@@ -124,6 +127,20 @@ export function registerReadTools(server, vaultPath) {
|
|
|
124
127
|
},
|
|
125
128
|
}, async ({ path: notePath, section, block, lines }) => {
|
|
126
129
|
try {
|
|
130
|
+
if (!section && !block && lines) {
|
|
131
|
+
const m = /^(\d+)(?:-(\d+))?$/.exec(lines);
|
|
132
|
+
if (m) {
|
|
133
|
+
const a = Math.max(1, Number(m[1]));
|
|
134
|
+
const b = m[2] ? Math.max(a, Number(m[2])) : a;
|
|
135
|
+
const range = await readNoteLineRange(vaultPath, notePath, a, b);
|
|
136
|
+
if (range.pastEndLine) {
|
|
137
|
+
return errorResult(`Line ${range.pastEndLine.requested} is past end of file (${range.pastEndLine.total} lines)`);
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
content: [{ type: "text", text: range.text }],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
127
144
|
const content = await readNote(vaultPath, notePath);
|
|
128
145
|
// Fragment modes are mutually exclusive — picking one skips the
|
|
129
146
|
// frontmatter/tag header and returns raw text. Mode order: section
|
|
@@ -132,7 +149,7 @@ export function registerReadTools(server, vaultPath) {
|
|
|
132
149
|
const headingPath = section.split("/").map((s) => s.trim()).filter(Boolean);
|
|
133
150
|
const found = findSection(content, headingPath);
|
|
134
151
|
if (!found) {
|
|
135
|
-
return errorResult(`Section not found: "${section}" in ${notePath}`);
|
|
152
|
+
return errorResult(`Section not found: "${displayReadValue(section)}" in ${displayReadValue(notePath)}`);
|
|
136
153
|
}
|
|
137
154
|
return {
|
|
138
155
|
content: [
|
|
@@ -146,7 +163,7 @@ export function registerReadTools(server, vaultPath) {
|
|
|
146
163
|
if (block) {
|
|
147
164
|
const found = findBlockById(content, block);
|
|
148
165
|
if (!found) {
|
|
149
|
-
return errorResult(`Block not found: "^${block}" in ${notePath}`);
|
|
166
|
+
return errorResult(`Block not found: "^${displayReadValue(block)}" in ${displayReadValue(notePath)}`);
|
|
150
167
|
}
|
|
151
168
|
return {
|
|
152
169
|
content: [
|
|
@@ -161,7 +178,7 @@ export function registerReadTools(server, vaultPath) {
|
|
|
161
178
|
const allLines = content.split("\n");
|
|
162
179
|
const m = /^(\d+)(?:-(\d+))?$/.exec(lines);
|
|
163
180
|
if (!m)
|
|
164
|
-
return errorResult(`Invalid lines format: "${lines}"`);
|
|
181
|
+
return errorResult(`Invalid lines format: "${displayReadValue(lines)}"`);
|
|
165
182
|
const a = Math.max(1, Number(m[1]));
|
|
166
183
|
const b = m[2] ? Math.max(a, Number(m[2])) : a;
|
|
167
184
|
if (a > allLines.length) {
|
|
@@ -177,14 +194,14 @@ export function registerReadTools(server, vaultPath) {
|
|
|
177
194
|
if (Object.keys(frontmatterData).length > 0) {
|
|
178
195
|
header.push("--- Frontmatter ---");
|
|
179
196
|
for (const [key, value] of Object.entries(frontmatterData)) {
|
|
180
|
-
header.push(`${key}: ${JSON.stringify(value)}`);
|
|
197
|
+
header.push(`${displayReadValue(key)}: ${displayReadValue(JSON.stringify(value) ?? "")}`);
|
|
181
198
|
}
|
|
182
199
|
header.push("--- End Frontmatter ---");
|
|
183
200
|
header.push("");
|
|
184
201
|
}
|
|
185
202
|
const tags = extractTags(content);
|
|
186
203
|
if (tags.length > 0) {
|
|
187
|
-
header.push(`Tags: ${tags.join(", ")}`);
|
|
204
|
+
header.push(`Tags: ${tags.map(displayReadValue).join(", ")}`);
|
|
188
205
|
header.push("");
|
|
189
206
|
}
|
|
190
207
|
return {
|
|
@@ -232,9 +249,9 @@ export function registerReadTools(server, vaultPath) {
|
|
|
232
249
|
const limited = notes.slice(0, limit);
|
|
233
250
|
const totalCount = notes.length;
|
|
234
251
|
const lines = [
|
|
235
|
-
`Found ${totalCount} note(s)${folder ? ` in "${folder}"` : ""}${totalCount > limit ? ` (showing first ${limit})` : ""}:`,
|
|
252
|
+
`Found ${totalCount} note(s)${folder ? ` in "${displayReadValue(folder)}"` : ""}${totalCount > limit ? ` (showing first ${limit})` : ""}:`,
|
|
236
253
|
"",
|
|
237
|
-
...limited,
|
|
254
|
+
...limited.map(displayReadValue),
|
|
238
255
|
];
|
|
239
256
|
return {
|
|
240
257
|
content: [{ type: "text", text: lines.join("\n") }],
|
|
@@ -265,11 +282,11 @@ export function registerReadTools(server, vaultPath) {
|
|
|
265
282
|
const config = await getDailyNoteConfig(vaultPath);
|
|
266
283
|
const targetDate = date ?? formatLocalDateOnly();
|
|
267
284
|
if (!/^\d{4}-\d{2}-\d{2}$/.test(targetDate)) {
|
|
268
|
-
return errorResult(`Invalid date format: "${targetDate}". Use YYYY-MM-DD.`);
|
|
285
|
+
return errorResult(`Invalid date format: "${displayReadValue(targetDate)}". Use YYYY-MM-DD.`);
|
|
269
286
|
}
|
|
270
287
|
const parsed = parseLocalDateOnly(targetDate);
|
|
271
288
|
if (!parsed) {
|
|
272
|
-
return errorResult(`Invalid date: "${targetDate}".`);
|
|
289
|
+
return errorResult(`Invalid date: "${displayReadValue(targetDate)}".`);
|
|
273
290
|
}
|
|
274
291
|
// Build the filename using moment-style tokens (YYYY, MMM, ddd, etc).
|
|
275
292
|
let filename = formatMomentDate(parsed, config.format);
|
|
@@ -284,18 +301,18 @@ export function registerReadTools(server, vaultPath) {
|
|
|
284
301
|
content = await readNote(vaultPath, notePath);
|
|
285
302
|
}
|
|
286
303
|
catch {
|
|
287
|
-
return errorResult(`Daily note not found for ${targetDate} (expected at "${notePath}")`);
|
|
304
|
+
return errorResult(`Daily note not found for ${displayReadValue(targetDate)} (expected at "${displayReadValue(notePath)}")`);
|
|
288
305
|
}
|
|
289
306
|
const { data: dailyFrontmatter, content: dailyBody } = parseFrontmatter(content);
|
|
290
307
|
const header = [
|
|
291
|
-
`Daily Note: ${targetDate}`,
|
|
292
|
-
`Path: ${notePath}`,
|
|
308
|
+
`Daily Note: ${displayReadValue(targetDate)}`,
|
|
309
|
+
`Path: ${displayReadValue(notePath)}`,
|
|
293
310
|
"",
|
|
294
311
|
];
|
|
295
312
|
if (Object.keys(dailyFrontmatter).length > 0) {
|
|
296
313
|
header.push("--- Frontmatter ---");
|
|
297
314
|
for (const [key, value] of Object.entries(dailyFrontmatter)) {
|
|
298
|
-
header.push(`${key}: ${JSON.stringify(value)}`);
|
|
315
|
+
header.push(`${displayReadValue(key)}: ${displayReadValue(JSON.stringify(value) ?? "")}`);
|
|
299
316
|
}
|
|
300
317
|
header.push("--- End Frontmatter ---");
|
|
301
318
|
header.push("");
|
|
@@ -348,34 +365,31 @@ export function registerReadTools(server, vaultPath) {
|
|
|
348
365
|
try {
|
|
349
366
|
const notes = await listNotes(vaultPath, folder);
|
|
350
367
|
const valueLower = value.toLowerCase();
|
|
351
|
-
const
|
|
352
|
-
|
|
368
|
+
const allMatches = [];
|
|
369
|
+
const { contents } = await readAllCached(vaultPath, notes, (note, err) => {
|
|
370
|
+
log.warn("search_by_frontmatter: note read failed", { note, err });
|
|
371
|
+
});
|
|
372
|
+
for (const notePath of notes) {
|
|
373
|
+
const content = contents.get(notePath);
|
|
374
|
+
if (content === undefined)
|
|
375
|
+
continue;
|
|
353
376
|
const { data: frontmatterData } = parseFrontmatter(content);
|
|
354
377
|
const propValue = frontmatterData[property];
|
|
355
378
|
if (propValue === undefined)
|
|
356
|
-
|
|
379
|
+
continue;
|
|
357
380
|
const stringified = Array.isArray(propValue)
|
|
358
381
|
? propValue.map(toSearchableString)
|
|
359
382
|
: [toSearchableString(propValue)];
|
|
360
383
|
const isMatch = stringified.some((v) => v.toLowerCase() === valueLower);
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
log.warn("search_by_frontmatter: note read failed", {
|
|
364
|
-
note: notePath,
|
|
365
|
-
err: err,
|
|
366
|
-
});
|
|
367
|
-
});
|
|
368
|
-
const allMatches = [];
|
|
369
|
-
for (const entry of perNote) {
|
|
370
|
-
if (entry)
|
|
371
|
-
allMatches.push(entry);
|
|
384
|
+
if (isMatch)
|
|
385
|
+
allMatches.push({ path: notePath, frontmatter: frontmatterData });
|
|
372
386
|
}
|
|
373
387
|
if (allMatches.length === 0) {
|
|
374
388
|
return {
|
|
375
389
|
content: [
|
|
376
390
|
{
|
|
377
391
|
type: "text",
|
|
378
|
-
text: `No notes found with frontmatter "${property}" matching "${value}"`,
|
|
392
|
+
text: `No notes found with frontmatter "${displayReadValue(property)}" matching "${displayReadValue(value)}"`,
|
|
379
393
|
},
|
|
380
394
|
],
|
|
381
395
|
};
|
|
@@ -384,13 +398,13 @@ export function registerReadTools(server, vaultPath) {
|
|
|
384
398
|
const truncated = totalMatches > maxResults;
|
|
385
399
|
const matches = truncated ? allMatches.slice(0, maxResults) : allMatches;
|
|
386
400
|
const lines = [
|
|
387
|
-
`Found ${totalMatches} note(s) where "${property}" matches "${value}"${truncated ? ` (showing first ${maxResults})` : ""}:`,
|
|
401
|
+
`Found ${totalMatches} note(s) where "${displayReadValue(property)}" matches "${displayReadValue(value)}"${truncated ? ` (showing first ${maxResults})` : ""}:`,
|
|
388
402
|
"",
|
|
389
403
|
];
|
|
390
404
|
for (const match of matches) {
|
|
391
|
-
lines.push(`## ${match.path}`);
|
|
405
|
+
lines.push(`## ${displayReadValue(match.path)}`);
|
|
392
406
|
for (const [key, val] of Object.entries(match.frontmatter)) {
|
|
393
|
-
lines.push(` ${key}: ${JSON.stringify(val)}`);
|
|
407
|
+
lines.push(` ${displayReadValue(key)}: ${displayReadValue(JSON.stringify(val) ?? "")}`);
|
|
394
408
|
}
|
|
395
409
|
lines.push("");
|
|
396
410
|
}
|
|
@@ -438,12 +452,13 @@ export function registerReadTools(server, vaultPath) {
|
|
|
438
452
|
try {
|
|
439
453
|
const sinceMs = since ? parseSince(since) : null;
|
|
440
454
|
if (since && sinceMs === null) {
|
|
441
|
-
return errorResult(`Invalid 'since' value: "${since}". Use ISO date or relative span like '7d', '24h', '2w'.`);
|
|
455
|
+
return errorResult(`Invalid 'since' value: "${displayReadValue(since)}". Use ISO date or relative span like '7d', '24h', '2w'.`);
|
|
442
456
|
}
|
|
443
457
|
const notes = await listNotes(vaultPath, folder);
|
|
458
|
+
const realVaultRoot = await getVaultRootRealPath(vaultPath);
|
|
444
459
|
const stats = await mapConcurrent(notes, MAX_CONCURRENT_OPS, async (notePath) => {
|
|
445
460
|
try {
|
|
446
|
-
const fullPath = await resolveVaultPathSafe(vaultPath, notePath);
|
|
461
|
+
const fullPath = await resolveVaultPathSafe(vaultPath, notePath, "read", { realVaultRoot });
|
|
447
462
|
const st = await fs.stat(fullPath);
|
|
448
463
|
return { path: notePath, mtimeMs: st.mtimeMs };
|
|
449
464
|
}
|
|
@@ -462,15 +477,15 @@ export function registerReadTools(server, vaultPath) {
|
|
|
462
477
|
rows.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
463
478
|
const top = rows.slice(0, limit);
|
|
464
479
|
if (top.length === 0) {
|
|
465
|
-
return { content: [{ type: "text", text: since ? `No notes modified since ${since}.` : "No notes in the vault." }] };
|
|
480
|
+
return { content: [{ type: "text", text: since ? `No notes modified since ${displayReadValue(since)}.` : "No notes in the vault." }] };
|
|
466
481
|
}
|
|
467
482
|
const lines = [
|
|
468
|
-
`${rows.length} note(s)${since ? ` modified since ${since}` : ""}${rows.length > limit ? ` (showing first ${limit})` : ""}:`,
|
|
483
|
+
`${rows.length} note(s)${since ? ` modified since ${displayReadValue(since)}` : ""}${rows.length > limit ? ` (showing first ${limit})` : ""}:`,
|
|
469
484
|
"",
|
|
470
485
|
];
|
|
471
486
|
for (const r of top) {
|
|
472
487
|
const iso = new Date(r.mtimeMs).toISOString();
|
|
473
|
-
lines.push(`- ${r.path} (${iso})`);
|
|
488
|
+
lines.push(`- ${displayReadValue(r.path)} (${iso})`);
|
|
474
489
|
}
|
|
475
490
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
476
491
|
}
|
|
@@ -498,20 +513,24 @@ export function registerReadTools(server, vaultPath) {
|
|
|
498
513
|
try {
|
|
499
514
|
const notes = await listNotes(vaultPath, folder);
|
|
500
515
|
if (notes.length === 0) {
|
|
501
|
-
return { content: [{ type: "text", text: folder ? `No notes in "${folder}"` : "Vault is empty." }] };
|
|
516
|
+
return { content: [{ type: "text", text: folder ? `No notes in "${displayReadValue(folder)}"` : "Vault is empty." }] };
|
|
502
517
|
}
|
|
503
|
-
const { contents } = await readAllCached(vaultPath, notes, (note, err) => {
|
|
518
|
+
const { contents, stats } = await readAllCached(vaultPath, notes, (note, err) => {
|
|
504
519
|
log.warn("get_vault_stats: note read failed", { note, err });
|
|
505
520
|
});
|
|
506
|
-
//
|
|
507
|
-
//
|
|
508
|
-
//
|
|
509
|
-
// CPU work in the async concurrency harness.
|
|
521
|
+
// Aggregate over already-cached content and stats. `readAllCached`
|
|
522
|
+
// already resolves and stats each note safely, so most-recent can use
|
|
523
|
+
// that metadata without a second filesystem pass.
|
|
510
524
|
let totalBytes = 0;
|
|
511
525
|
let totalWords = 0;
|
|
512
526
|
let untagged = 0;
|
|
513
527
|
const tagSet = new Set();
|
|
528
|
+
let mostRecent = null;
|
|
514
529
|
for (const notePath of notes) {
|
|
530
|
+
const stat = stats.get(notePath);
|
|
531
|
+
if (stat && (!mostRecent || stat.mtime > mostRecent.mtimeMs)) {
|
|
532
|
+
mostRecent = { path: notePath, mtimeMs: stat.mtime };
|
|
533
|
+
}
|
|
515
534
|
const content = contents.get(notePath);
|
|
516
535
|
if (content === undefined)
|
|
517
536
|
continue;
|
|
@@ -525,29 +544,11 @@ export function registerReadTools(server, vaultPath) {
|
|
|
525
544
|
for (const t of tags)
|
|
526
545
|
tagSet.add(t.toLowerCase());
|
|
527
546
|
}
|
|
528
|
-
const mtimeRows = await mapConcurrent(notes, MAX_CONCURRENT_OPS, async (notePath) => {
|
|
529
|
-
try {
|
|
530
|
-
const fullPath = await resolveVaultPathSafe(vaultPath, notePath);
|
|
531
|
-
const st = await fs.stat(fullPath);
|
|
532
|
-
return { path: notePath, mtimeMs: st.mtimeMs };
|
|
533
|
-
}
|
|
534
|
-
catch {
|
|
535
|
-
return undefined;
|
|
536
|
-
}
|
|
537
|
-
});
|
|
538
|
-
let mostRecent = null;
|
|
539
|
-
for (const row of mtimeRows) {
|
|
540
|
-
if (!row)
|
|
541
|
-
continue;
|
|
542
|
-
if (!mostRecent || row.mtimeMs > mostRecent.mtimeMs) {
|
|
543
|
-
mostRecent = { path: row.path, mtimeMs: row.mtimeMs };
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
547
|
const avgBytes = Math.round(totalBytes / notes.length);
|
|
547
548
|
const avgWords = Math.round(totalWords / notes.length);
|
|
548
549
|
const untaggedPct = ((untagged / notes.length) * 100).toFixed(1);
|
|
549
550
|
const lines = [
|
|
550
|
-
`Vault stats${folder ? ` (folder: ${folder})` : ""}`,
|
|
551
|
+
`Vault stats${folder ? ` (folder: ${displayReadValue(folder)})` : ""}`,
|
|
551
552
|
"",
|
|
552
553
|
` Notes: ${notes.length}`,
|
|
553
554
|
` Total bytes: ${totalBytes.toLocaleString()}`,
|
|
@@ -557,7 +558,7 @@ export function registerReadTools(server, vaultPath) {
|
|
|
557
558
|
` Unique tags: ${tagSet.size}`,
|
|
558
559
|
` Untagged notes: ${untagged} (${untaggedPct}%)`,
|
|
559
560
|
mostRecent
|
|
560
|
-
? ` Most recent: ${mostRecent.path} (${new Date(mostRecent.mtimeMs).toISOString()})`
|
|
561
|
+
? ` Most recent: ${displayReadValue(mostRecent.path)} (${new Date(mostRecent.mtimeMs).toISOString()})`
|
|
561
562
|
: ` Most recent: (none)`,
|
|
562
563
|
];
|
|
563
564
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
@@ -602,35 +603,37 @@ export function registerReadTools(server, vaultPath) {
|
|
|
602
603
|
basenameMatches.push(notePath);
|
|
603
604
|
}
|
|
604
605
|
}
|
|
605
|
-
// For alias matches, read
|
|
606
|
-
//
|
|
607
|
-
// Per-note failures are logged and skipped.
|
|
606
|
+
// For alias matches, read through the shared content cache so repeat
|
|
607
|
+
// lookups reuse warm note bodies while preserving per-note path checks.
|
|
608
608
|
const aliasMatches = [];
|
|
609
|
-
await
|
|
610
|
-
|
|
609
|
+
const { contents } = await readAllCached(vaultPath, notes, (note, err) => {
|
|
610
|
+
log.warn("resolve_alias: note read failed", { note, err });
|
|
611
|
+
});
|
|
612
|
+
for (const notePath of notes) {
|
|
613
|
+
const content = contents.get(notePath);
|
|
614
|
+
if (content === undefined)
|
|
615
|
+
continue;
|
|
611
616
|
const aliases = extractAliases(content);
|
|
612
617
|
if (aliases.some((a) => a.toLowerCase() === target)) {
|
|
613
618
|
aliasMatches.push(notePath);
|
|
614
619
|
}
|
|
615
|
-
}
|
|
616
|
-
log.warn("resolve_alias: note read failed", { note: notePath, err: err });
|
|
617
|
-
});
|
|
620
|
+
}
|
|
618
621
|
const total = aliasMatches.length + basenameMatches.length;
|
|
619
622
|
if (total === 0) {
|
|
620
|
-
return { content: [{ type: "text", text: `No alias or basename match for "${name}"` }] };
|
|
623
|
+
return { content: [{ type: "text", text: `No alias or basename match for "${displayReadValue(name)}"` }] };
|
|
621
624
|
}
|
|
622
|
-
const lines = [`Matches for "${name}":`, ""];
|
|
625
|
+
const lines = [`Matches for "${displayReadValue(name)}":`, ""];
|
|
623
626
|
if (aliasMatches.length > 0) {
|
|
624
627
|
lines.push(`Alias matches (${aliasMatches.length}):`);
|
|
625
628
|
for (const p of aliasMatches)
|
|
626
|
-
lines.push(` - ${p}`);
|
|
629
|
+
lines.push(` - ${displayReadValue(p)}`);
|
|
627
630
|
}
|
|
628
631
|
if (basenameMatches.length > 0) {
|
|
629
632
|
if (aliasMatches.length > 0)
|
|
630
633
|
lines.push("");
|
|
631
634
|
lines.push(`Basename matches (${basenameMatches.length}):`);
|
|
632
635
|
for (const p of basenameMatches)
|
|
633
|
-
lines.push(` - ${p}`);
|
|
636
|
+
lines.push(` - ${displayReadValue(p)}`);
|
|
634
637
|
}
|
|
635
638
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
636
639
|
}
|