@ruso-0/nreki 11.4.1 → 11.4.2

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/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  All notable changes to NREKI will be documented in this file.
4
4
 
5
+ ## [11.4.2] - 2026-05-19
6
+
7
+ User feedback against v11.4.1 surfaced two genuine bugs and two UX gaps that the v11.4.0 sprint missed. v11.4.2 closes them and centralizes the path-validation helper so future readSource callsites can't regress.
8
+
9
+ ### Fixed
10
+
11
+ - **EISDIR crash on `nreki_guard action:"set_plan"` with a directory path.** Reproduced empirically against the installed v11.4.1 binary. [`src/handlers/guard.ts:359`](src/handlers/guard.ts#L359) called `readSource` after only `fs.existsSync`, with no `isDirectory` check; the resulting EISDIR escaped as an opaque MCP error. v11.4.2 routes through the new `validatePath` helper and returns a structured error pointing to "pass the path to your plan file, e.g. `set_plan text:\"PLAN.md\"`".
12
+ - **EISDIR crash on `nreki_guard action:"engram"` with a directory path.** Same root cause at [`src/handlers/guard.ts:465`](src/handlers/guard.ts#L465). Same fix.
13
+ - **`nreki_navigate action:"outline"` silent-failed on a directory path** with the misleading message "may be empty, unsupported, or contain no declarations". The directory crash was being absorbed by `getFileSymbols`'s internal try/catch. v11.4.2 validates the path at the outline handler entry and returns "outline operates on a single file. For directory-wide discovery, use nreki_navigate action:\"search\" / \"fast_grep\" / \"hybrid_search\"".
14
+ - **`nreki_navigate action:"search"` "No results found" message gave no fallback hint.** Symmetric with the existing "Index pending" branch which already mentioned `fast_grep` and `hybrid_search`. v11.4.2 mirrors that wording: the empty-results response now lists `fast_grep`, `hybrid_search` (with the user's query pre-filled for copy-paste), "broaden the query", and `Bash grep` as last resort.
15
+
16
+ ### Added
17
+
18
+ - [`src/utils/path-guard.ts`](src/utils/path-guard.ts) — `validatePath()` returns a structured `{ok, kind, error, hint}` result. Catches: ENOENT, EISDIR, FIFO/socket (would block readFileSync indefinitely on POSIX), block/character devices, symlink loops, and the catch-all "not a regular file". Hint text varies by `toolName` ("read", "compress", "outline", "set_plan", "engram", "prepare_refactor") so each handler tells the user the right alternative tool.
19
+ - [`tests/path-guard.test.ts`](tests/path-guard.test.ts) — 6 unit tests covering the public contract (+ 1 POSIX-only FIFO test, skipped on Windows).
20
+ - [`tests/handlers-eisdir-coverage.test.ts`](tests/handlers-eisdir-coverage.test.ts) — 5 router-level regression tests: set_plan/dir, set_plan/missing, engram/dir, outline/dir, plus a regression guard confirming read/compress/dir still works (no rollback of v11.4.0 fix).
21
+ - [`tests/search-no-results-hint.test.ts`](tests/search-no-results-hint.test.ts) — 2 tests pinning the new "No semantic results" fallback wording and confirming the "Index pending" branch is not regressed.
22
+ - [`docs/user-feedback-v11.4.1-investigation.md`](docs/user-feedback-v11.4.1-investigation.md) — empirical investigation report. Each user claim probed against the installed binary, with classification (already fixed / genuine bug / UX gap / as-designed).
23
+
24
+ ### Internal — honest process disclosure
25
+
26
+ - v11.4.0's EISDIR fix covered only `handleRead` and `handleCompress`. v11.4.2 audited every `readSource` callsite in `src/handlers/` and `src/router.ts`; the unguarded set was 4 callsites in 2 files. The audit step belonged in v11.4.0 and was skipped — disclosed in `docs/user-feedback-v11.4.1-investigation.md` §3.
27
+ - Subagent investigation surfaced three kernel "bypass" hypotheses for the differential pre-existing-error filter. Two (`purgeCache` wipes baseline; healing cascade not re-filtered) were rejected after reading the source. One (hologram scope mismatch) is plausible but unreproduced; logged for a future round if user reports recur.
28
+
29
+ ### Templates
30
+
31
+ - `templates/CLAUDE.md`, `AGENTS.md`, `SKILL.md` updated with a one-line note that "No semantic results" responses now include a fallback list, plus a reminder that set_plan/engram/outline reject directory paths with a tool-specific hint.
32
+
5
33
  ## [11.4.1] - 2026-05-19
6
34
 
7
35
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/handlers/code/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAWvF,wBAAsB,UAAU,CAC5B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA0M1B;AAID,wBAAsB,cAAc,CAChC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA4M1B"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/handlers/code/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAYvF,wBAAsB,UAAU,CAC5B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAuL1B;AAID,wBAAsB,cAAc,CAChC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAwL1B"}
@@ -9,6 +9,7 @@ import { shouldProcess } from "../../utils/file-filter.js";
9
9
  import { readSource } from "../../utils/read-source.js";
10
10
  import { extractDependencies, cleanSignature, isSensitiveSignature } from "../../utils/imports.js";
11
11
  import { tfcCompress } from "../../compressor-foveal.js";
12
+ import { validatePath } from "../../utils/path-guard.js";
12
13
  // ─── Read ───────────────────────────────────────────────────────────
13
14
  export async function handleRead(params, deps) {
14
15
  const { engine } = deps;
@@ -28,36 +29,19 @@ export async function handleRead(params, deps) {
28
29
  };
29
30
  }
30
31
  try {
31
- let stat;
32
- try {
33
- stat = fs.statSync(resolvedPath);
34
- }
35
- catch (statErr) {
36
- const code = statErr.code;
37
- if (code === "ENOENT") {
38
- return {
39
- content: [{
40
- type: "text",
41
- text: `Path not found: ${path.relative(engine.getProjectRoot(), resolvedPath) || file_path}\n` +
42
- `Hint: use nreki_navigate action:"fast_grep" or action:"outline" to locate files.`,
43
- }],
44
- isError: true,
45
- };
46
- }
47
- throw statErr;
48
- }
49
- if (stat.isDirectory()) {
32
+ const guard = validatePath({
33
+ absolutePath: resolvedPath,
34
+ userPath: file_path,
35
+ projectRoot: engine.getProjectRoot(),
36
+ toolName: "read",
37
+ });
38
+ if (!guard.ok) {
50
39
  return {
51
- content: [{
52
- type: "text",
53
- text: `Path is a directory, not a file: ${path.relative(engine.getProjectRoot(), resolvedPath) || file_path}\n` +
54
- `Hint: nreki_code action:"read" / "compress" operates on individual files.\n` +
55
- `For a directory overview, use nreki_navigate action:"outline" path:"<file>" on specific files, ` +
56
- `or nreki_navigate action:"fast_grep" / "search" to locate symbols across the tree.`,
57
- }],
40
+ content: [{ type: "text", text: `${guard.error}\nHint: ${guard.hint}` }],
58
41
  isError: true,
59
42
  };
60
43
  }
44
+ const stat = fs.statSync(resolvedPath);
61
45
  const filterResult = shouldProcess(resolvedPath, stat.size);
62
46
  if (!filterResult.process) {
63
47
  return {
@@ -198,33 +182,15 @@ export async function handleCompress(params, deps) {
198
182
  };
199
183
  }
200
184
  try {
201
- let stat;
202
- try {
203
- stat = fs.statSync(resolvedPath);
204
- }
205
- catch (statErr) {
206
- const code = statErr.code;
207
- if (code === "ENOENT") {
208
- return {
209
- content: [{
210
- type: "text",
211
- text: `Path not found: ${path.relative(engine.getProjectRoot(), resolvedPath) || file_path}\n` +
212
- `Hint: use nreki_navigate action:"fast_grep" or action:"outline" to locate files.`,
213
- }],
214
- isError: true,
215
- };
216
- }
217
- throw statErr;
218
- }
219
- if (stat.isDirectory()) {
185
+ const guard = validatePath({
186
+ absolutePath: resolvedPath,
187
+ userPath: file_path,
188
+ projectRoot: engine.getProjectRoot(),
189
+ toolName: "compress",
190
+ });
191
+ if (!guard.ok) {
220
192
  return {
221
- content: [{
222
- type: "text",
223
- text: `Path is a directory, not a file: ${path.relative(engine.getProjectRoot(), resolvedPath) || file_path}\n` +
224
- `Hint: nreki_code action:"compress" operates on individual files.\n` +
225
- `For a directory overview, use nreki_navigate action:"outline" on specific files, ` +
226
- `or nreki_navigate action:"fast_grep" / "search" to locate symbols across the tree.`,
227
- }],
193
+ content: [{ type: "text", text: `${guard.error}\nHint: ${guard.hint}` }],
228
194
  isError: true,
229
195
  };
230
196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/handlers/code/read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/handlers/code/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAkB,EAClB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACD,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mBAAoB,GAAa,CAAC,OAAO,EAAE;iBACpD,CAAC;YACF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC;YACvB,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE;YACpC,QAAQ,EAAE,MAAM;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjF,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,iBAAiB,YAAY,CAAC,MAAM,EAAE;qBAC/C,CAAC;aACL,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC;QACjD,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAEtD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC5E,MAAM,QAAQ,GAAG,aAAa;yBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC1E,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,gBAAgB;4BACZ,iEAAiE;gCACjE,qEAAqE;gCACrE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACxB,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;wBAC/C,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBAClC,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,sCAAsC;YAC1C,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAClE,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EACA,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,SAAS,QAAQ;4BACzD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACnE,WAAW,UAAU,cAAc;4BACnC,gBAAgB;qBACvB,CAAC;aACL,CAAC;QACN,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;QAC3C,MAAM,KAAK,GAAqB,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAC7D,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,KAAyB;YAClC,CAAC,CAAC,QAAQ,CAAC;QAEf,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,KAAK,kBAAkB,CAAC;YAC7D,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YAE9C,2DAA2D;YAC3D,IAAI,CAAC,QAAQ,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACvF,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAClC,2DAA2D;gBAC3D,mFAAmF;gBAEnF,MAAM,CAAC,QAAQ,CACX,YAAY,EACZ,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,EACjD,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,EACjD,QAAQ,CAAC,WAAW,CACvB,CAAC;gBAEF,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAe;4BACrB,IAAI,EACA,mCAAmC,UAAU,CAAC,cAAc,EAAE,mCAAmC;gCACjG,6DAA6D;gCAC7D,WAAW,QAAQ,CAAC,UAAU,UAAU;gCACxC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC1D,CAAC;iBACL,CAAC;YACN,CAAC;YACD,4DAA4D;YAE5D,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAElE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAErF,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EACA,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY;4BAC1C,UAAU;4BACV,WAAW,UAAU,cAAc;4BACnC,gBAAgB;qBACvB,CAAC;aACL,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAClF,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;QAEjC,MAAM,CAAC,QAAQ,CACX,YAAY,EACZ,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,EAC/C,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,EAC/C,KAAK,CACR,CAAC;QAEF,MAAM,OAAO,GAAG,KAAK,KAAK,YAAY;YAClC,CAAC,CAAC,oGAAoG;YACtG,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErF,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EACA,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,KAAK,iBAAiB;wBACzD,GAAG,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS;wBAC5F,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;wBACrD,OAAO;wBACP,UAAU;wBACV,WAAW,MAAM,CAAC,UAAU,cAAc;wBAC1C,gBAAgB;iBACvB,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,iBAAiB,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE;iBAChE,CAAC;SACL,CAAC;IACN,CAAC;AACL,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAkB,EAClB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACD,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mBAAoB,GAAa,CAAC,OAAO,EAAE;iBACpD,CAAC;YACF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC;YACvB,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE;YACpC,QAAQ,EAAE,UAAU;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjF,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QAED,MAAM,iBAAiB,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YACtD,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YACxD,CAAC,CAAC,MAAM,CAAC,KAAyB;YAClC,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1E,iCAAiC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACxD,IAAI,eAAe,GAAG,GAAG,EAAE,CAAC;gBACxB,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAClC,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,eAAe,mCAAmC,YAAY,UAAU;yBACzH,CAAC;iBACL,CAAC;YACN,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEvD,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9D,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,iBAAiB,KAAK,sLAAsL;yBACrN,CAAC;oBACF,OAAO,EAAE,IAAI;iBAChB,CAAC;YACN,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YACzC,oEAAoE;YACpE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;gBACvE,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,YAAY,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC,CAAC;YAEH,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;gBAClC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAElC,MAAM,gBAAgB,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC9D,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAChC,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,CAAC,WAAW,CACxB,CAAC;gBAEF,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAe;4BACrB,IAAI,EACA,YAAY,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gCACjF,GAAG,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,SAAS,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS;gCAChG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;gCACtD,2BAA2B,SAAS,CAAC,KAAK,CAAC,QAAQ,kBAAkB,SAAS,CAAC,KAAK,CAAC,cAAc,IAAI,SAAS,CAAC,KAAK,CAAC,iBAAiB,YAAY,SAAS,CAAC,KAAK,CAAC,eAAe,OAAO;gCAC1L,WAAW,SAAS,CAAC,UAAU,UAAU;yBAC5C,CAAC;iBACL,CAAC;YACV,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC9C,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,kCAAkC,KAAK,2CAA2C,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6FAA6F;yBAC3N,CAAC;oBACF,OAAO,EAAE,IAAI;iBAChB,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,uBAAuB;gBACvB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO;wBACH,OAAO,EAAE,CAAC;gCACN,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,4CAA4C,GAAG,sCAAsC;6BAC9F,CAAC;wBACF,OAAO,EAAE,IAAI;qBAChB,CAAC;gBACN,CAAC;gBAED,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,oBAAoB,KAAK,kBAAkB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,oDAAoD;yBACnI,CAAC;oBACF,OAAO,EAAE,IAAI;iBAChB,CAAC;YACN,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAClF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;YAEjC,MAAM,CAAC,QAAQ,CACX,gBAAgB,EAChB,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EACjC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EACjC,KAAK,CACR,CAAC;YAEF,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EACA,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,iBAAiB,IAAI;4BACxD,GAAG,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS;4BAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;4BACrD,WAAW,MAAM,CAAC,UAAU,UAAU;qBAC7C,CAAC;aACL,CAAC;QACN,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YACxC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAc;YACpD,CAAC,CAAC,CAAC,CAAC;QAER,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;QAEjC,MAAM,CAAC,QAAQ,CACX,gBAAgB,EAChB,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EACjC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EACjC,KAAK,CACR,CAAC;QAEF,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EACA,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,IAAI,KAAK,MAAM,CAAC,WAAW,WAAW;wBAC9E,GAAG,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS;wBAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;wBACrD,WAAW,MAAM,CAAC,UAAU,UAAU;iBAC7C,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,qBAAqB,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE;iBACpE,CAAC;SACL,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/handlers/guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAWrF,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAgC1B;AAID,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAwC1B;AAID,wBAAsB,YAAY,CAC9B,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA+D1B;AAID,wBAAsB,YAAY,CAC9B,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA8F1B;AAID,wBAAsB,WAAW,CAC7B,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAsB1B;AAID,wBAAsB,WAAW,CAC7B,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAuB1B;AAID,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA2D1B;AAID,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA6B1B;AAID,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA8C1B"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/handlers/guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAYrF,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAgC1B;AAID,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAwC1B;AAID,wBAAsB,YAAY,CAC9B,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA+D1B;AAID,wBAAsB,YAAY,CAC9B,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA8F1B;AAID,wBAAsB,WAAW,CAC7B,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAsB1B;AAID,wBAAsB,WAAW,CAC7B,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAuB1B;AAID,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA0E1B;AAID,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA6B1B;AAID,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA8D1B"}
@@ -6,11 +6,11 @@
6
6
  * Heartbeat wrapping is the router's responsibility.
7
7
  */
8
8
  import crypto from "crypto";
9
- import fs from "fs";
10
9
  import path from "path";
11
10
  import { estimateTokens } from "../utils/token-estimator.js";
12
11
  import { safePath } from "../utils/path-jail.js";
13
12
  import { readSource } from "../utils/read-source.js";
13
+ import { validatePath } from "../utils/path-guard.js";
14
14
  import { addPin, removePin, listPins } from "../pin-memory.js";
15
15
  import { latencyTracker } from "../utils/latency-tracker.js";
16
16
  import { logger } from "../utils/logger.js";
@@ -274,8 +274,6 @@ export async function handleSetPlan(params, deps) {
274
274
  let resolvedPath;
275
275
  try {
276
276
  resolvedPath = safePath(deps.engine.getProjectRoot(), params.text);
277
- if (!fs.existsSync(resolvedPath))
278
- throw new Error("File does not exist.");
279
277
  }
280
278
  catch (err) {
281
279
  return {
@@ -283,6 +281,21 @@ export async function handleSetPlan(params, deps) {
283
281
  isError: true,
284
282
  };
285
283
  }
284
+ const planGuard = validatePath({
285
+ absolutePath: resolvedPath,
286
+ userPath: params.text,
287
+ projectRoot: deps.engine.getProjectRoot(),
288
+ toolName: "set_plan",
289
+ });
290
+ if (!planGuard.ok) {
291
+ return {
292
+ content: [{
293
+ type: "text",
294
+ text: `## Set Plan: FAILED\n\n${planGuard.error}\nHint: ${planGuard.hint}`,
295
+ }],
296
+ isError: true,
297
+ };
298
+ }
286
299
  const planContent = readSource(resolvedPath);
287
300
  const planTokens = estimateTokens(planContent);
288
301
  if (planTokens > 4000) {
@@ -363,6 +376,21 @@ export async function handleEngram(params, deps) {
363
376
  isError: true,
364
377
  };
365
378
  }
379
+ const engramGuard = validatePath({
380
+ absolutePath: resolvedPath,
381
+ userPath: file,
382
+ projectRoot: root,
383
+ toolName: "engram",
384
+ });
385
+ if (!engramGuard.ok) {
386
+ return {
387
+ content: [{
388
+ type: "text",
389
+ text: `Engram failed: ${engramGuard.error}\nHint: ${engramGuard.hint}`,
390
+ }],
391
+ isError: true,
392
+ };
393
+ }
366
394
  const content = readSource(resolvedPath);
367
395
  const parser = deps.engine.getParser();
368
396
  const parseResult = await parser.parse(resolvedPath, content);
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/handlers/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/handlers/guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../src/handlers/navigate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAmBxF,wBAAsB,YAAY,CAC9B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA2G1B;AAID,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAoF1B;AAID,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAiD1B;AAgDD,wBAAsB,aAAa,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAuL1B;AAID,wBAAsB,SAAS,CAC3B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAkC1B;AAmCD,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA8H1B;AAID,wBAAsB,kBAAkB,CACpC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAkH1B;AAID,wBAAsB,eAAe,CACjC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAiD1B;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA2G1B;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA+F1B"}
1
+ {"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../src/handlers/navigate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAoBxF,wBAAsB,YAAY,CAC9B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA+G1B;AAID,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAoF1B;AAID,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAiD1B;AAgDD,wBAAsB,aAAa,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAuM1B;AAID,wBAAsB,SAAS,CAC3B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAkC1B;AAmCD,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA8H1B;AAID,wBAAsB,kBAAkB,CACpC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAkH1B;AAID,wBAAsB,eAAe,CACjC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAiD1B;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA2G1B;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CA+F1B"}
@@ -10,6 +10,7 @@ import path from "path";
10
10
  import { estimateTokens } from "../utils/token-estimator.js";
11
11
  import { safePath } from "../utils/path-jail.js";
12
12
  import { readSource } from "../utils/read-source.js";
13
+ import { validatePath } from "../utils/path-guard.js";
13
14
  import { findDefinition, findReferences, getFileSymbols, } from "../ast-navigator.js";
14
15
  import { getPinnedText } from "../pin-memory.js";
15
16
  import { repoMapToText } from "../repo-map.js";
@@ -45,9 +46,13 @@ export async function handleSearch(params, deps) {
45
46
  return {
46
47
  content: [{
47
48
  type: "text",
48
- text: `No results found for: "${query}"\n\n` +
49
- `Indexed ${engine.getStats().filesIndexed} files with ${engine.getStats().totalChunks} chunks.\n` +
50
- `Try a broader query or index more directories.`,
49
+ text: `No semantic results found for: "${query}"\n\n` +
50
+ `Indexed ${engine.getStats().filesIndexed} files with ${engine.getStats().totalChunks} chunks.\n\n` +
51
+ `Fallback options:\n` +
52
+ ` - nreki_navigate action:"fast_grep" query:"<exact text>" — exact substring match (RAM-resident, ~ms latency).\n` +
53
+ ` - nreki_navigate action:"hybrid_search" query:"${query}" — semantic + BM25 fusion (+207% tokens, better recall on heterogeneous repos).\n` +
54
+ ` - Broaden the query (drop adjectives, use base word) and retry.\n` +
55
+ ` - As a last resort: Bash grep over the project root.`,
51
56
  }],
52
57
  };
53
58
  }
@@ -328,6 +333,21 @@ export async function handleOutline(params, deps) {
328
333
  }],
329
334
  };
330
335
  }
336
+ const outlineGuard = validatePath({
337
+ absolutePath: resolvedPath,
338
+ userPath: file,
339
+ projectRoot: root,
340
+ toolName: "outline",
341
+ });
342
+ if (!outlineGuard.ok) {
343
+ return {
344
+ content: [{
345
+ type: "text",
346
+ text: `${outlineGuard.error}\nHint: ${outlineGuard.hint}`,
347
+ }],
348
+ isError: true,
349
+ };
350
+ }
331
351
  const parser = engine.getParser();
332
352
  const symbols = await getFileSymbols(resolvedPath, parser, root);
333
353
  if (symbols.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../src/handlers/navigate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../src/handlers/navigate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * path-guard.ts — DRY pre-read path validation.
3
+ *
4
+ * Centralizes the stat-based guard that every MCP handler needs before
5
+ * it calls `readSource` / `fs.readFileSync`. Returns a structured result
6
+ * instead of throwing, so handlers can produce a clean MCP `isError` reply
7
+ * with an actionable hint rather than surfacing an opaque OS error
8
+ * (EISDIR, ENOENT, blocking on a FIFO, etc.).
9
+ *
10
+ * History:
11
+ * - v11.4.0 added an inline stat-guard to handleRead/handleCompress only.
12
+ * - v11.4.1 user feedback + audit revealed 4+ other readSource callsites
13
+ * (set_plan, engram, outline via getFileSymbols, definition auto_context).
14
+ * - v11.4.2 extracts the guard into this single helper so every callsite
15
+ * has identical behavior and future callsites can't accidentally regress.
16
+ *
17
+ * Furia review (docs/furia-v11.4.0-review.md Q5): FIFO/device-file handling
18
+ * was deferred in v11.4.0 because no user had reported it. v11.4.2 closes
19
+ * that gap too — `validatePath` rejects anything that is not a regular file.
20
+ */
21
+ export type PathGuardKind = "ok" | "missing" | "directory" | "fifo" | "device" | "symlink_loop" | "other";
22
+ export interface PathGuardResult {
23
+ /** True iff the path resolves to a regular readable file. */
24
+ ok: boolean;
25
+ /** Classification of why the path was rejected (or "ok"). */
26
+ kind: PathGuardKind;
27
+ /** Short, user-facing one-line summary. Empty when ok. */
28
+ error: string;
29
+ /** Actionable next-step hint pointing at the right tool. Empty when ok. */
30
+ hint: string;
31
+ }
32
+ export interface ValidatePathOptions {
33
+ /** Absolute path the handler is about to read. */
34
+ absolutePath: string;
35
+ /** Original path string the user supplied (used only for error formatting). */
36
+ userPath?: string;
37
+ /** Project root, for relative-path display. Optional. */
38
+ projectRoot?: string;
39
+ /**
40
+ * Name of the tool/action being called, for the error hint
41
+ * (e.g. "read", "compress", "outline", "set_plan", "engram").
42
+ * Determines which alternative tool is recommended.
43
+ */
44
+ toolName: string;
45
+ }
46
+ /**
47
+ * Stat the path and classify it. Never throws — every failure produces a
48
+ * structured `{ok: false, ...}` result with a clean hint.
49
+ *
50
+ * Order of checks:
51
+ * 1. fs.statSync. ENOENT → "missing". Other stat errors → "other".
52
+ * 2. isDirectory → "directory".
53
+ * 3. isFIFO / isSocket → "fifo" (would block readFileSync indefinitely).
54
+ * 4. isBlockDevice / isCharacterDevice → "device".
55
+ * 5. !isFile → "other" (catch-all for anything that isn't a normal file).
56
+ * 6. Otherwise → ok.
57
+ */
58
+ export declare function validatePath(opts: ValidatePathOptions): PathGuardResult;
59
+ //# sourceMappingURL=path-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-guard.d.ts","sourceRoot":"","sources":["../../src/utils/path-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,CAAC;AAE1G,MAAM,WAAW,eAAe;IAC5B,6DAA6D;IAC7D,EAAE,EAAE,OAAO,CAAC;IACZ,6DAA6D;IAC7D,IAAI,EAAE,aAAa,CAAC;IACpB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAChC,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAyEvE"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * path-guard.ts — DRY pre-read path validation.
3
+ *
4
+ * Centralizes the stat-based guard that every MCP handler needs before
5
+ * it calls `readSource` / `fs.readFileSync`. Returns a structured result
6
+ * instead of throwing, so handlers can produce a clean MCP `isError` reply
7
+ * with an actionable hint rather than surfacing an opaque OS error
8
+ * (EISDIR, ENOENT, blocking on a FIFO, etc.).
9
+ *
10
+ * History:
11
+ * - v11.4.0 added an inline stat-guard to handleRead/handleCompress only.
12
+ * - v11.4.1 user feedback + audit revealed 4+ other readSource callsites
13
+ * (set_plan, engram, outline via getFileSymbols, definition auto_context).
14
+ * - v11.4.2 extracts the guard into this single helper so every callsite
15
+ * has identical behavior and future callsites can't accidentally regress.
16
+ *
17
+ * Furia review (docs/furia-v11.4.0-review.md Q5): FIFO/device-file handling
18
+ * was deferred in v11.4.0 because no user had reported it. v11.4.2 closes
19
+ * that gap too — `validatePath` rejects anything that is not a regular file.
20
+ */
21
+ import fs from "fs";
22
+ import path from "path";
23
+ /**
24
+ * Stat the path and classify it. Never throws — every failure produces a
25
+ * structured `{ok: false, ...}` result with a clean hint.
26
+ *
27
+ * Order of checks:
28
+ * 1. fs.statSync. ENOENT → "missing". Other stat errors → "other".
29
+ * 2. isDirectory → "directory".
30
+ * 3. isFIFO / isSocket → "fifo" (would block readFileSync indefinitely).
31
+ * 4. isBlockDevice / isCharacterDevice → "device".
32
+ * 5. !isFile → "other" (catch-all for anything that isn't a normal file).
33
+ * 6. Otherwise → ok.
34
+ */
35
+ export function validatePath(opts) {
36
+ const { absolutePath, projectRoot, toolName } = opts;
37
+ const userPath = opts.userPath ?? absolutePath;
38
+ const displayPath = projectRoot
39
+ ? (path.relative(projectRoot, absolutePath) || userPath)
40
+ : userPath;
41
+ let stat;
42
+ try {
43
+ stat = fs.statSync(absolutePath);
44
+ }
45
+ catch (err) {
46
+ const code = err.code;
47
+ if (code === "ENOENT") {
48
+ return {
49
+ ok: false,
50
+ kind: "missing",
51
+ error: `Path not found: ${displayPath}`,
52
+ hint: `Use nreki_navigate action:"fast_grep" or action:"outline" to locate files first.`,
53
+ };
54
+ }
55
+ if (code === "ELOOP") {
56
+ return {
57
+ ok: false,
58
+ kind: "symlink_loop",
59
+ error: `Symlink loop at: ${displayPath}`,
60
+ hint: `Resolve the symlink or use the real path.`,
61
+ };
62
+ }
63
+ return {
64
+ ok: false,
65
+ kind: "other",
66
+ error: `Cannot read path ${displayPath}: ${err.message}`,
67
+ hint: `Verify the path exists and is accessible.`,
68
+ };
69
+ }
70
+ if (stat.isDirectory()) {
71
+ return {
72
+ ok: false,
73
+ kind: "directory",
74
+ error: `Path is a directory, not a file: ${displayPath}`,
75
+ hint: directoryHint(toolName),
76
+ };
77
+ }
78
+ if (stat.isFIFO() || stat.isSocket()) {
79
+ return {
80
+ ok: false,
81
+ kind: "fifo",
82
+ error: `Path is a ${stat.isFIFO() ? "named pipe (FIFO)" : "socket"}: ${displayPath}`,
83
+ hint: `${toolName} reads regular files only. Reading a FIFO/socket would block the MCP server indefinitely.`,
84
+ };
85
+ }
86
+ if (stat.isBlockDevice() || stat.isCharacterDevice()) {
87
+ return {
88
+ ok: false,
89
+ kind: "device",
90
+ error: `Path is a device file: ${displayPath}`,
91
+ hint: `${toolName} reads regular files only.`,
92
+ };
93
+ }
94
+ if (!stat.isFile()) {
95
+ return {
96
+ ok: false,
97
+ kind: "other",
98
+ error: `Path is not a regular file: ${displayPath}`,
99
+ hint: `${toolName} reads regular files only.`,
100
+ };
101
+ }
102
+ return { ok: true, kind: "ok", error: "", hint: "" };
103
+ }
104
+ function directoryHint(toolName) {
105
+ switch (toolName) {
106
+ case "read":
107
+ case "compress":
108
+ return `nreki_code action:"${toolName}" operates on individual files. ` +
109
+ `For a directory overview, use nreki_navigate action:"outline" on a specific file, ` +
110
+ `or nreki_navigate action:"fast_grep" / "search" to locate symbols across the tree.`;
111
+ case "outline":
112
+ return `outline operates on a single file. ` +
113
+ `For directory-wide discovery, use nreki_navigate action:"search" (semantic), ` +
114
+ `action:"fast_grep" (exact substring), or action:"hybrid_search" (BM25-backed).`;
115
+ case "set_plan":
116
+ return `set_plan expects a Markdown plan file, not a directory. ` +
117
+ `Pass the path to your plan file, e.g. set_plan text:"PLAN.md".`;
118
+ case "engram":
119
+ return `engram expects a source file path, not a directory. ` +
120
+ `Anchor the engram to the file that contains the target symbol.`;
121
+ case "prepare_refactor":
122
+ return `prepare_refactor expects a single source file. Pass the file path that defines the symbol you want to rename.`;
123
+ default:
124
+ return `${toolName} operates on a single file path, not a directory.`;
125
+ }
126
+ }
127
+ //# sourceMappingURL=path-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-guard.js","sourceRoot":"","sources":["../../src/utils/path-guard.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ruso-0/nreki",
3
- "version": "11.4.1",
3
+ "version": "11.4.2",
4
4
  "description": "MCP plugin that validates AI agent edits in RAM before they touch disk. Spectral clustering, architecture diffs, bridge detection, dead code oracle, and cross-file semantic checks for TypeScript (full Type Ledger), with parser-level support for JavaScript, Python (pyright), Go (gopls), Kotlin, Java, C, and C++. Zero cloud dependencies.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -12,6 +12,7 @@ import { shouldProcess } from "../../utils/file-filter.js";
12
12
  import { readSource } from "../../utils/read-source.js";
13
13
  import { extractDependencies, cleanSignature, isSensitiveSignature } from "../../utils/imports.js";
14
14
  import { tfcCompress } from "../../compressor-foveal.js";
15
+ import { validatePath } from "../../utils/path-guard.js";
15
16
 
16
17
  // ─── Read ───────────────────────────────────────────────────────────
17
18
 
@@ -37,38 +38,19 @@ export async function handleRead(
37
38
  }
38
39
 
39
40
  try {
40
- let stat;
41
- try {
42
- stat = fs.statSync(resolvedPath);
43
- } catch (statErr) {
44
- const code = (statErr as NodeJS.ErrnoException).code;
45
- if (code === "ENOENT") {
46
- return {
47
- content: [{
48
- type: "text" as const,
49
- text:
50
- `Path not found: ${path.relative(engine.getProjectRoot(), resolvedPath) || file_path}\n` +
51
- `Hint: use nreki_navigate action:"fast_grep" or action:"outline" to locate files.`,
52
- }],
53
- isError: true,
54
- };
55
- }
56
- throw statErr;
57
- }
58
-
59
- if (stat.isDirectory()) {
41
+ const guard = validatePath({
42
+ absolutePath: resolvedPath,
43
+ userPath: file_path,
44
+ projectRoot: engine.getProjectRoot(),
45
+ toolName: "read",
46
+ });
47
+ if (!guard.ok) {
60
48
  return {
61
- content: [{
62
- type: "text" as const,
63
- text:
64
- `Path is a directory, not a file: ${path.relative(engine.getProjectRoot(), resolvedPath) || file_path}\n` +
65
- `Hint: nreki_code action:"read" / "compress" operates on individual files.\n` +
66
- `For a directory overview, use nreki_navigate action:"outline" path:"<file>" on specific files, ` +
67
- `or nreki_navigate action:"fast_grep" / "search" to locate symbols across the tree.`,
68
- }],
49
+ content: [{ type: "text" as const, text: `${guard.error}\nHint: ${guard.hint}` }],
69
50
  isError: true,
70
51
  };
71
52
  }
53
+ const stat = fs.statSync(resolvedPath);
72
54
 
73
55
  const filterResult = shouldProcess(resolvedPath, stat.size);
74
56
  if (!filterResult.process) {
@@ -246,35 +228,15 @@ export async function handleCompress(
246
228
  }
247
229
 
248
230
  try {
249
- let stat;
250
- try {
251
- stat = fs.statSync(resolvedPath);
252
- } catch (statErr) {
253
- const code = (statErr as NodeJS.ErrnoException).code;
254
- if (code === "ENOENT") {
255
- return {
256
- content: [{
257
- type: "text" as const,
258
- text:
259
- `Path not found: ${path.relative(engine.getProjectRoot(), resolvedPath) || file_path}\n` +
260
- `Hint: use nreki_navigate action:"fast_grep" or action:"outline" to locate files.`,
261
- }],
262
- isError: true,
263
- };
264
- }
265
- throw statErr;
266
- }
267
-
268
- if (stat.isDirectory()) {
231
+ const guard = validatePath({
232
+ absolutePath: resolvedPath,
233
+ userPath: file_path,
234
+ projectRoot: engine.getProjectRoot(),
235
+ toolName: "compress",
236
+ });
237
+ if (!guard.ok) {
269
238
  return {
270
- content: [{
271
- type: "text" as const,
272
- text:
273
- `Path is a directory, not a file: ${path.relative(engine.getProjectRoot(), resolvedPath) || file_path}\n` +
274
- `Hint: nreki_code action:"compress" operates on individual files.\n` +
275
- `For a directory overview, use nreki_navigate action:"outline" on specific files, ` +
276
- `or nreki_navigate action:"fast_grep" / "search" to locate symbols across the tree.`,
277
- }],
239
+ content: [{ type: "text" as const, text: `${guard.error}\nHint: ${guard.hint}` }],
278
240
  isError: true,
279
241
  };
280
242
  }
@@ -7,12 +7,12 @@
7
7
  */
8
8
 
9
9
  import crypto from "crypto";
10
- import fs from "fs";
11
10
  import path from "path";
12
11
  import type { McpToolResponse, GuardParams, RouterDependencies } from "../router.js";
13
12
  import { estimateTokens } from "../utils/token-estimator.js";
14
13
  import { safePath } from "../utils/path-jail.js";
15
14
  import { readSource } from "../utils/read-source.js";
15
+ import { validatePath } from "../utils/path-guard.js";
16
16
  import { addPin, removePin, listPins } from "../pin-memory.js";
17
17
  import { latencyTracker } from "../utils/latency-tracker.js";
18
18
  import { logger } from "../utils/logger.js";
@@ -348,7 +348,6 @@ export async function handleSetPlan(
348
348
  let resolvedPath: string;
349
349
  try {
350
350
  resolvedPath = safePath(deps.engine.getProjectRoot(), params.text);
351
- if (!fs.existsSync(resolvedPath)) throw new Error("File does not exist.");
352
351
  } catch (err) {
353
352
  return {
354
353
  content: [{ type: "text" as const, text: `## Set Plan: FAILED\n\n${(err as Error).message}` }],
@@ -356,6 +355,22 @@ export async function handleSetPlan(
356
355
  };
357
356
  }
358
357
 
358
+ const planGuard = validatePath({
359
+ absolutePath: resolvedPath,
360
+ userPath: params.text,
361
+ projectRoot: deps.engine.getProjectRoot(),
362
+ toolName: "set_plan",
363
+ });
364
+ if (!planGuard.ok) {
365
+ return {
366
+ content: [{
367
+ type: "text" as const,
368
+ text: `## Set Plan: FAILED\n\n${planGuard.error}\nHint: ${planGuard.hint}`,
369
+ }],
370
+ isError: true,
371
+ };
372
+ }
373
+
359
374
  const planContent = readSource(resolvedPath);
360
375
  const planTokens = estimateTokens(planContent);
361
376
 
@@ -462,6 +477,22 @@ export async function handleEngram(
462
477
  };
463
478
  }
464
479
 
480
+ const engramGuard = validatePath({
481
+ absolutePath: resolvedPath,
482
+ userPath: file,
483
+ projectRoot: root,
484
+ toolName: "engram",
485
+ });
486
+ if (!engramGuard.ok) {
487
+ return {
488
+ content: [{
489
+ type: "text" as const,
490
+ text: `Engram failed: ${engramGuard.error}\nHint: ${engramGuard.hint}`,
491
+ }],
492
+ isError: true,
493
+ };
494
+ }
495
+
465
496
  const content = readSource(resolvedPath);
466
497
  const parser = deps.engine.getParser();
467
498
  const parseResult = await parser.parse(resolvedPath, content);
@@ -13,6 +13,7 @@ import type { McpToolResponse, NavigateParams, RouterDependencies } from "../rou
13
13
  import { estimateTokens } from "../utils/token-estimator.js";
14
14
  import { safePath } from "../utils/path-jail.js";
15
15
  import { readSource } from "../utils/read-source.js";
16
+ import { validatePath } from "../utils/path-guard.js";
16
17
  import {
17
18
  findDefinition,
18
19
  findReferences,
@@ -66,9 +67,13 @@ export async function handleSearch(
66
67
  content: [{
67
68
  type: "text" as const,
68
69
  text:
69
- `No results found for: "${query}"\n\n` +
70
- `Indexed ${engine.getStats().filesIndexed} files with ${engine.getStats().totalChunks} chunks.\n` +
71
- `Try a broader query or index more directories.`,
70
+ `No semantic results found for: "${query}"\n\n` +
71
+ `Indexed ${engine.getStats().filesIndexed} files with ${engine.getStats().totalChunks} chunks.\n\n` +
72
+ `Fallback options:\n` +
73
+ ` - nreki_navigate action:"fast_grep" query:"<exact text>" — exact substring match (RAM-resident, ~ms latency).\n` +
74
+ ` - nreki_navigate action:"hybrid_search" query:"${query}" — semantic + BM25 fusion (+207% tokens, better recall on heterogeneous repos).\n` +
75
+ ` - Broaden the query (drop adjectives, use base word) and retry.\n` +
76
+ ` - As a last resort: Bash grep over the project root.`,
72
77
  }],
73
78
  };
74
79
  }
@@ -354,6 +359,22 @@ export async function handleOutline(
354
359
  };
355
360
  }
356
361
 
362
+ const outlineGuard = validatePath({
363
+ absolutePath: resolvedPath,
364
+ userPath: file,
365
+ projectRoot: root,
366
+ toolName: "outline",
367
+ });
368
+ if (!outlineGuard.ok) {
369
+ return {
370
+ content: [{
371
+ type: "text" as const,
372
+ text: `${outlineGuard.error}\nHint: ${outlineGuard.hint}`,
373
+ }],
374
+ isError: true,
375
+ };
376
+ }
377
+
357
378
  const parser = engine.getParser();
358
379
  const symbols = await getFileSymbols(resolvedPath, parser, root);
359
380
 
@@ -0,0 +1,162 @@
1
+ /**
2
+ * path-guard.ts — DRY pre-read path validation.
3
+ *
4
+ * Centralizes the stat-based guard that every MCP handler needs before
5
+ * it calls `readSource` / `fs.readFileSync`. Returns a structured result
6
+ * instead of throwing, so handlers can produce a clean MCP `isError` reply
7
+ * with an actionable hint rather than surfacing an opaque OS error
8
+ * (EISDIR, ENOENT, blocking on a FIFO, etc.).
9
+ *
10
+ * History:
11
+ * - v11.4.0 added an inline stat-guard to handleRead/handleCompress only.
12
+ * - v11.4.1 user feedback + audit revealed 4+ other readSource callsites
13
+ * (set_plan, engram, outline via getFileSymbols, definition auto_context).
14
+ * - v11.4.2 extracts the guard into this single helper so every callsite
15
+ * has identical behavior and future callsites can't accidentally regress.
16
+ *
17
+ * Furia review (docs/furia-v11.4.0-review.md Q5): FIFO/device-file handling
18
+ * was deferred in v11.4.0 because no user had reported it. v11.4.2 closes
19
+ * that gap too — `validatePath` rejects anything that is not a regular file.
20
+ */
21
+
22
+ import fs from "fs";
23
+ import path from "path";
24
+
25
+ export type PathGuardKind = "ok" | "missing" | "directory" | "fifo" | "device" | "symlink_loop" | "other";
26
+
27
+ export interface PathGuardResult {
28
+ /** True iff the path resolves to a regular readable file. */
29
+ ok: boolean;
30
+ /** Classification of why the path was rejected (or "ok"). */
31
+ kind: PathGuardKind;
32
+ /** Short, user-facing one-line summary. Empty when ok. */
33
+ error: string;
34
+ /** Actionable next-step hint pointing at the right tool. Empty when ok. */
35
+ hint: string;
36
+ }
37
+
38
+ export interface ValidatePathOptions {
39
+ /** Absolute path the handler is about to read. */
40
+ absolutePath: string;
41
+ /** Original path string the user supplied (used only for error formatting). */
42
+ userPath?: string;
43
+ /** Project root, for relative-path display. Optional. */
44
+ projectRoot?: string;
45
+ /**
46
+ * Name of the tool/action being called, for the error hint
47
+ * (e.g. "read", "compress", "outline", "set_plan", "engram").
48
+ * Determines which alternative tool is recommended.
49
+ */
50
+ toolName: string;
51
+ }
52
+
53
+ /**
54
+ * Stat the path and classify it. Never throws — every failure produces a
55
+ * structured `{ok: false, ...}` result with a clean hint.
56
+ *
57
+ * Order of checks:
58
+ * 1. fs.statSync. ENOENT → "missing". Other stat errors → "other".
59
+ * 2. isDirectory → "directory".
60
+ * 3. isFIFO / isSocket → "fifo" (would block readFileSync indefinitely).
61
+ * 4. isBlockDevice / isCharacterDevice → "device".
62
+ * 5. !isFile → "other" (catch-all for anything that isn't a normal file).
63
+ * 6. Otherwise → ok.
64
+ */
65
+ export function validatePath(opts: ValidatePathOptions): PathGuardResult {
66
+ const { absolutePath, projectRoot, toolName } = opts;
67
+ const userPath = opts.userPath ?? absolutePath;
68
+ const displayPath = projectRoot
69
+ ? (path.relative(projectRoot, absolutePath) || userPath)
70
+ : userPath;
71
+
72
+ let stat: fs.Stats;
73
+ try {
74
+ stat = fs.statSync(absolutePath);
75
+ } catch (err) {
76
+ const code = (err as NodeJS.ErrnoException).code;
77
+ if (code === "ENOENT") {
78
+ return {
79
+ ok: false,
80
+ kind: "missing",
81
+ error: `Path not found: ${displayPath}`,
82
+ hint: `Use nreki_navigate action:"fast_grep" or action:"outline" to locate files first.`,
83
+ };
84
+ }
85
+ if (code === "ELOOP") {
86
+ return {
87
+ ok: false,
88
+ kind: "symlink_loop",
89
+ error: `Symlink loop at: ${displayPath}`,
90
+ hint: `Resolve the symlink or use the real path.`,
91
+ };
92
+ }
93
+ return {
94
+ ok: false,
95
+ kind: "other",
96
+ error: `Cannot read path ${displayPath}: ${(err as Error).message}`,
97
+ hint: `Verify the path exists and is accessible.`,
98
+ };
99
+ }
100
+
101
+ if (stat.isDirectory()) {
102
+ return {
103
+ ok: false,
104
+ kind: "directory",
105
+ error: `Path is a directory, not a file: ${displayPath}`,
106
+ hint: directoryHint(toolName),
107
+ };
108
+ }
109
+
110
+ if (stat.isFIFO() || stat.isSocket()) {
111
+ return {
112
+ ok: false,
113
+ kind: "fifo",
114
+ error: `Path is a ${stat.isFIFO() ? "named pipe (FIFO)" : "socket"}: ${displayPath}`,
115
+ hint: `${toolName} reads regular files only. Reading a FIFO/socket would block the MCP server indefinitely.`,
116
+ };
117
+ }
118
+
119
+ if (stat.isBlockDevice() || stat.isCharacterDevice()) {
120
+ return {
121
+ ok: false,
122
+ kind: "device",
123
+ error: `Path is a device file: ${displayPath}`,
124
+ hint: `${toolName} reads regular files only.`,
125
+ };
126
+ }
127
+
128
+ if (!stat.isFile()) {
129
+ return {
130
+ ok: false,
131
+ kind: "other",
132
+ error: `Path is not a regular file: ${displayPath}`,
133
+ hint: `${toolName} reads regular files only.`,
134
+ };
135
+ }
136
+
137
+ return { ok: true, kind: "ok", error: "", hint: "" };
138
+ }
139
+
140
+ function directoryHint(toolName: string): string {
141
+ switch (toolName) {
142
+ case "read":
143
+ case "compress":
144
+ return `nreki_code action:"${toolName}" operates on individual files. ` +
145
+ `For a directory overview, use nreki_navigate action:"outline" on a specific file, ` +
146
+ `or nreki_navigate action:"fast_grep" / "search" to locate symbols across the tree.`;
147
+ case "outline":
148
+ return `outline operates on a single file. ` +
149
+ `For directory-wide discovery, use nreki_navigate action:"search" (semantic), ` +
150
+ `action:"fast_grep" (exact substring), or action:"hybrid_search" (BM25-backed).`;
151
+ case "set_plan":
152
+ return `set_plan expects a Markdown plan file, not a directory. ` +
153
+ `Pass the path to your plan file, e.g. set_plan text:"PLAN.md".`;
154
+ case "engram":
155
+ return `engram expects a source file path, not a directory. ` +
156
+ `Anchor the engram to the file that contains the target symbol.`;
157
+ case "prepare_refactor":
158
+ return `prepare_refactor expects a single source file. Pass the file path that defines the symbol you want to rename.`;
159
+ default:
160
+ return `${toolName} operates on a single file path, not a directory.`;
161
+ }
162
+ }
@@ -5,6 +5,7 @@ Call tools immediately. No preambles. One-line responses.
5
5
 
6
6
  ## 1. NAVIGATION & READING
7
7
  - NEVER use Bash grep/rg or native Read. `nreki_navigate action:"fast_grep"` for exact search, `action:"search"` for semantic (Type Ledger).
8
+ - "No semantic results" → use the fallback list in the response (`fast_grep` / `hybrid_search`) before `Bash grep`.
8
9
  - Diverse codebase + accuracy critical: `action:"hybrid_search"` (NREKI + BM25 fusion). Costs +207% tokens; skip on single-project corpora.
9
10
  - Batch reads: `nreki_code action:"compress" focus:"sym1, sym2"`.
10
11
  - Large files: outline first. `[BUDGET LIMIT REACHED]` → use `compress focus`. Heed ⚠️ and 👻.
@@ -6,6 +6,7 @@ Call tools immediately. No preambles. One-line responses.
6
6
 
7
7
  ## 1. NAVIGATION & READING
8
8
  - NEVER use Bash grep/rg or native Read. Use `nreki_navigate action:"fast_grep"` for exact search, `action:"search"` for semantic (Type Ledger).
9
+ - If `search` returns "No semantic results found", **read the fallback list in the response** — it names `fast_grep` (exact substring, RAM-resident) and `hybrid_search` (semantic+BM25, +207% tokens). Use them before reaching for `Bash grep`.
9
10
  - Diverse codebase + accuracy critical: `action:"hybrid_search"` (NREKI + BM25 fusion). Costs +207% tokens; skip on single-project corpora.
10
11
  - Batch reads: `nreki_code action:"compress" focus:"sym1, sym2"`.
11
12
  - Large files: `nreki_navigate action:"outline"` first. If `[BUDGET LIMIT REACHED]`, use `compress focus`. Heed ⚠️ and 👻 markers.
@@ -54,4 +54,6 @@ If nreki_* tools fail: fall back to native Read/Write ONLY for new files or <100
54
54
  - Circuit breaker: If you see BREAK & BUILD or DECOMPOSE, STOP. Read the strategy and rethink.
55
55
 
56
56
  ## 6. INPUT VALIDATION
57
- - nreki_code action:"read" and action:"compress" operate on individual FILES. Passing a directory returns an explicit error pointing to nreki_navigate action:"outline" / "fast_grep" / "search". Pick the tool that matches the input shape.
57
+ - nreki_code action:"read" and action:"compress" operate on individual FILES. Passing a directory returns an explicit error pointing to nreki_navigate action:"outline" / "fast_grep" / "search".
58
+ - nreki_navigate action:"outline" and nreki_guard action:"set_plan" / "engram" likewise operate on single FILE paths. Pass a directory and the response will name the correct alternative tool.
59
+ - When semantic search returns no results, the response lists fallbacks: fast_grep, hybrid_search, broaden-query, Bash grep. Follow that list in order.