@ruso-0/nreki 11.4.0 → 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,18 +2,70 @@
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
+
33
+ ## [11.4.1] - 2026-05-19
34
+
35
+ ### Added
36
+
37
+ - **Hologram-mode regression tests** (Phase 1.5 follow-up to v11.4.0). Four new tests in [`tests/kernel-pre-existing-errors-hologram.test.ts`](tests/kernel-pre-existing-errors-hologram.test.ts) that literally reproduce **TS1259** (`esModuleInterop:true` + `allowSyntheticDefaultImports:false` + `export =` source) and **TS2802** (`target:ES5` + `downlevelIteration:false` + `Set` iteration) — the exact codes the user originally reported — in hologram mode, the production MCP runtime path. The v11.4.0 suite had pinned only project mode and only triggered TS1192 (not TS1259) despite the CHANGELOG claim of "exact scenario" coverage.
38
+ - [`docs/hologram-mode-verify.md`](docs/hologram-mode-verify.md) — empirical PASS report from the hologram-mode round: differential filter works in hologram, including the JIT-specific subcase where the target file enters `rootNames` only at edit time.
39
+ - [`docs/v11.4.0-self-exploration.md`](docs/v11.4.0-self-exploration.md) — 10-finding pre-Furia self-audit that drove the Phase 1.5 round (process documentation; honest list of what I was uncomfortable with after v11.4.0).
40
+
41
+ ### Verified empirically (no code fix required)
42
+
43
+ - The differential pre-existing-error check (`count > baseline.get(fingerprint)` at [`src/kernel/backends/ts-compiler-wrapper.ts:611`](src/kernel/backends/ts-compiler-wrapper.ts#L611)) holds in hologram mode for the user's exact TS1259 and TS2802 cases. The user's original report most likely ran against the globally installed `@ruso-0/nreki@10.19.0` (the binary that was active when the report was filed); the fix had already shipped in an earlier release.
44
+
45
+ ### Internal
46
+
47
+ - v11.4.0's CHANGELOG entry overstated test coverage. v11.4.1 is the honest closure: same release intent, but with the hologram suite that actually pins the user-reported codes, and a self-exploration document that names what the original sprint missed.
48
+ - All v11.4.0 deliverables remain shipped on the `v11.4.0` tag at commit `984c781`. v11.4.1 strictly adds tests + docs on top; no runtime behavior change.
49
+
50
+ ### Tests
51
+
52
+ - 1 427 passed, 3 skipped, 0 failed (+4 vs v11.4.0).
53
+
5
54
  ## [11.4.0] - 2026-05-19
6
55
 
7
56
  ### Fixed
8
57
 
9
58
  - **EISDIR crash on `nreki_code action:"read"` / `action:"compress"` with a directory path.** Both handlers previously called `fs.readFileSync` without a stat guard; passing a directory surfaced an opaque `EISDIR: illegal operation on a directory` error from the MCP server. v11.4.0 explicitly checks `stat.isDirectory()` and returns a structured error that points to the correct tool: `nreki_navigate action:"outline"` for per-file overview, `action:"fast_grep" / "search"` for cross-tree lookup. `ENOENT` (missing file) is now also caught with a structured "Path not found" message instead of an uncaught stack trace.
10
- - **Regression guard for pre-existing TS errors in edited files.** A user reported (2026-05-19) that NREKI rolled back unrelated edits in `fillTemplate.ts` because of pre-existing TS1259/TS2802 errors elsewhere in the same file. The differential check (`count > baseline.get(fingerprint)` in `src/kernel/backends/ts-compiler-wrapper.ts:611`) was already in place and works correctly in v11.3.x — the user's binary was likely an older release (the globally installed `@ruso-0/nreki@10.19.0`). v11.4.0 closes the gap by adding four explicit regression tests in [`tests/kernel-pre-existing-errors.test.ts`](tests/kernel-pre-existing-errors.test.ts) that pin the exact same-file scenario the user described (existing kernel tests only covered separate-file pre-existing errors).
59
+ - **Regression guards for pre-existing TS errors in edited files.** A user reported (2026-05-19) that NREKI rolled back unrelated edits in `fillTemplate.ts` because of pre-existing TS1259/TS2802 errors elsewhere in the same file. The differential check (`count > baseline.get(fingerprint)` in `src/kernel/backends/ts-compiler-wrapper.ts:611`) was already in place and works correctly in v11.3.x — the user's binary was likely an older release (the globally installed `@ruso-0/nreki@10.19.0`). v11.4.0 closes the test-coverage gap with two suites: one in project mode covering same-file pre-existing TS2322 / TS1192-family, and one in hologram mode (the MCP server's default) covering the user's *exact* TS1259 and TS2802 codes plus a JIT-specific subcase where the target file enters `rootNames` only at edit time.
11
60
 
12
61
  ### Added
13
62
 
14
63
  - **`tests/read-compress-directory.test.ts`** — 4 tests covering directory + missing-file inputs to both `handleRead` and `handleCompress`. Confirms EISDIR is gone, error messages name the correct alternative tool, and the response shape is `isError: true` (not a crash).
15
- - **`tests/kernel-pre-existing-errors.test.ts`** — 4 tests pinning the same-file pre-existing-error scenario (TS2322, TS1192-family, same-symbol edit, counter-test of genuine new error).
16
- - **`docs/furia-v11.4.0-review.md`** — adversarial Q1-Q5 review documenting (Q1) why Phase 1 contributes only regression guards, (Q2) why the EISDIR fix returns an explicit error instead of auto-redirecting, (Q3) zero perf overhead, (Q4) anti-silent-failure audit, (Q5) two residual gaps logged for a future iteration (FIFO/device-file handling, push the guard into `readSource` itself).
64
+ - **`tests/kernel-pre-existing-errors.test.ts`** — 4 project-mode tests pinning the same-file pre-existing-error scenario (TS2322, TS1192-family, same-symbol edit, counter-test of genuine new error).
65
+ - **`tests/kernel-pre-existing-errors-hologram.test.ts`** — 4 hologram-mode tests covering the **exact** TS codes the user reported (TS1259 reproduced via `esModuleInterop:true` + `allowSyntheticDefaultImports:false` + `export =` source; TS2802 reproduced via `target:ES5` + `downlevelIteration:false` + Set iteration). Includes a JIT-specific case where the target file is not yet in `rootNames` at boot and only enters via the per-transaction `captureBaseline` ordering.
66
+ - **`docs/furia-v11.4.0-review.md`** — adversarial Q1-Q5 review documenting why the Phase 1 contribution is regression guards (not a code fix), why the EISDIR fix returns an explicit error instead of auto-redirecting, perf claims, anti-silent-failure audit, and two residual gaps (FIFO/device-file handling, un-guarded `readSource` helper).
67
+ - **`docs/v11.4.0-self-exploration.md`** — honest pre-Furia self-audit listing 10 findings I was uncomfortable with after the initial implementation. Drove the additional hologram-mode verification.
68
+ - **`docs/hologram-mode-verify.md`** — empirical verification result for the hologram-mode question raised by Finding D of the self-audit. All 4 hologram tests pass; no kernel scoping bug; no code change required.
17
69
 
18
70
  ### Templates
19
71
 
@@ -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":"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;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,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACD,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,OAAiC,CAAC,IAAI,CAAC;YACrD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpB,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAe;4BACrB,IAAI,EACA,mBAAmB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,IAAI,SAAS,IAAI;gCACxF,kFAAkF;yBACzF,CAAC;oBACF,OAAO,EAAE,IAAI;iBAChB,CAAC;YACN,CAAC;YACD,MAAM,OAAO,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EACA,oCAAoC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,IAAI,SAAS,IAAI;4BACzG,6EAA6E;4BAC7E,iGAAiG;4BACjG,oFAAoF;qBAC3F,CAAC;gBACF,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QAED,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,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACD,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,OAAiC,CAAC,IAAI,CAAC;YACrD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpB,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAe;4BACrB,IAAI,EACA,mBAAmB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,IAAI,SAAS,IAAI;gCACxF,kFAAkF;yBACzF,CAAC;oBACF,OAAO,EAAE,IAAI;iBAChB,CAAC;YACN,CAAC;YACD,MAAM,OAAO,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EACA,oCAAoC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,IAAI,SAAS,IAAI;4BACzG,oEAAoE;4BACpE,mFAAmF;4BACnF,oFAAoF;qBAC3F,CAAC;gBACF,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
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/handlers/code/read.ts"],"names":[],"mappings":"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"}
@@ -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":"AAAA;;;;;;GAMG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,IAAwB;IAExB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,+CAA+C;iBACxD,CAAC;YACF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,eAAe,MAAM,CAAC,KAAK,EAAE;iBACtC,CAAC;YACF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnC,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,uBAAuB,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,MAAM;aAC3F,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAmB,EACnB,IAAwB;IAExB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,EAAE,GAAG,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACjC,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,0DAA0D;iBACnE,CAAC;YACF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,sBAAsB,KAAK,GAAG;iBACvC,CAAC;YACF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,yBAAyB,KAAK,GAAG;aAC1C,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE/C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG;QACjB,EAAE;QACF,eAAe;QACf,YAAY,KAAK,CAAC,YAAY,EAAE;QAChC,aAAa,KAAK,CAAC,WAAW,EAAE;QAChC,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAC9D,cAAc,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,cAAc,GAAG;QACnB,EAAE;QACF,yBAAyB;QACzB,cAAc,CAAC,UAAU,EAAE;KAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,WAAW,GAAG;YACV,EAAE;YACF,uCAAuC;YACvC,4DAA4D;YAC5D,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,UAAU,CAChH;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACvC,eAAe;YACX,wBAAwB;gBACxB,4DAA4D;gBAC5D,+EAA+E;gBAC/E,mDAAmD;gBACnD,2CAA2C,CAAC;IACpD,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7C,eAAe;YACX,wBAAwB;gBACxB,iEAAiE;gBACjE,+DAA+D;gBAC/D,6BAA6B,CAAC;IACtC,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EACA,MAAM;oBACN,YAAY;oBACZ,cAAc;oBACd,WAAW;oBACX,eAAe;aACtB,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACpD,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAChC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,UAAU;YAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB;YACnD,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,eAAe,CACpD,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,CAAC,CAAC,yBAAyB,CAAC;IAEhC,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,QAAQ,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI;YACtC,CAAC,CAAC,wCAAwC;YAC1C,CAAC,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI;gBAC7B,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ,GAAG,4CAA4C,CAAC;IAC5D,IAAI,aAAa,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC;QACnD,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC;QAC/C,IAAI,WAAW,GAAG,IAAI,EAAE,CAAC;YACrB,QAAQ,GAAG,6CAA6C,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,8CAA8C,CAAC;QACnJ,CAAC;aAAM,CAAC;YACJ,QAAQ,GAAG,gDAAgD,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QACxI,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,GAAG,CAAC;QAC3C,4CAA4C;QAC5C,8DAA8D;QAC9D,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ;YAC1E,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxB,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACnB,aAAa,CAAC,cAAc,EAC5B,aAAa,CAAC,YAAY,CAC7B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG;QACZ,sBAAsB;QACtB,aAAa,aAAa,CAAC,eAAe,uBAAuB,aAAa,CAAC,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE;QAC/K,UAAU,OAAO,CAAC,cAAc,qBAAqB,OAAO,CAAC,aAAa,iBAAiB,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,mBAAmB,EAAE;QACnJ,SAAS,IAAI,CAAC,MAAM,kBAAkB,aAAa,CAAC,qBAAqB,qBAAqB,MAAM,KAAK,SAAS,GAAG;KACxH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACxD,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CACzC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAClC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CACrC,GAAG,MAAM,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG;QACX,wBAAwB;QACxB,EAAE;QACF,qBAAqB,aAAa,CAAC,eAAe,MAAM;QACxD,uBAAuB,aAAa,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE;QACxE,oBAAoB,aAAa,CAAC,mBAAmB,CAAC,cAAc,EAAE,EAAE;QACxE,wBAAwB,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACxE,EAAE;QACF,wBAAwB;QACxB,2BAA2B,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACpE,0BAA0B,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjE,EAAE;QACF,0BAA0B;QAC1B,YAAY;QACZ,EAAE;QACF,cAAc,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,UAAU;QACjE,UAAU,QAAQ,EAAE;QACpB,eAAe,UAAU,CAAC,OAAO,EAAE;QACnC,EAAE;QACF,yBAAyB,QAAQ,EAAE;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,OAAO;aAC1C,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,IAAwB;IAExB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAChC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IAExC,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,+DAA+D;iBACxE,CAAC;SACL,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC;IACxC,cAAc,CAAC,KAAK,EAAE,CAAC;IAEvB,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,yCAAyC,SAAS,GAAG;aAC9D,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACrF,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAChD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEvC,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI;aACP,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,IAAwB;IAExB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAE/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACf,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,uDAAuD,EAAE,CAAC;YACnG,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACD,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA2B,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9F,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE/C,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QACpB,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EACA,uCAAuC;wBACvC,gCAAgC,UAAU,CAAC,cAAc,EAAE,cAAc;wBACzE,uEAAuE;wBACvE,yEAAyE;wBACzE,gCAAgC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB;wBAC5E,yDAAyD;iBAChE,CAAC;YACF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5H,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,WAAW,CACnB,uBAAuB,EACvB,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,CACjD,CAAC;IAEF,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EACA,6BAA6B;oBAC7B,aAAa,YAAY,IAAI;oBAC7B,cAAc,UAAU,CAAC,cAAc,EAAE,2BAA2B;oBACpE,sEAAsE;oBACtE,iFAAiF;oBACjF,mGAAmG;aAC1G,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAmB,EACnB,IAAwB;IAExB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAE/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACf,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iDAAiD,EAAE,CAAC;YAC7F,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QAC5B,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0EAA0E,EAAE,CAAC;YACtH,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzD,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EACA,qBAAqB;oBACrB,4DAA4D;oBAC5D,kEAAkE;oBAClE,sDAAsD;aAC7D,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAmB,EACnB,IAAwB;IAExB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAE/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAElC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,8DAA8D,EAAE,CAAC;YAC1G,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAC1C,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACD,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAoB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACvF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC;IAEpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,MAAM,kBAAkB,IAAI,wCAAwC,EAAE,CAAC;YAClI,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEjE,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,yCAAyC,MAAM,kFAAkF;aAC1I,CAAC;KACL,CAAC;AACN,CAAC"}
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.0",
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.