@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 +55 -3
- package/dist/handlers/code/read.d.ts.map +1 -1
- package/dist/handlers/code/read.js +18 -52
- package/dist/handlers/code/read.js.map +1 -1
- package/dist/handlers/guard.d.ts.map +1 -1
- package/dist/handlers/guard.js +31 -3
- package/dist/handlers/guard.js.map +1 -1
- package/dist/handlers/navigate.d.ts.map +1 -1
- package/dist/handlers/navigate.js +23 -3
- package/dist/handlers/navigate.js.map +1 -1
- package/dist/utils/path-guard.d.ts +59 -0
- package/dist/utils/path-guard.d.ts.map +1 -0
- package/dist/utils/path-guard.js +127 -0
- package/dist/utils/path-guard.js.map +1 -0
- package/package.json +1 -1
- package/src/handlers/code/read.ts +18 -56
- package/src/handlers/guard.ts +33 -2
- package/src/handlers/navigate.ts +24 -3
- package/src/utils/path-guard.ts +162 -0
- package/templates/AGENTS.md +1 -0
- package/templates/CLAUDE.md +1 -0
- package/templates/SKILL.md +3 -1
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
|
|
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
|
-
- **`
|
|
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;
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/handlers/guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
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"}
|
package/dist/handlers/guard.js
CHANGED
|
@@ -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;
|
|
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
|
-
`
|
|
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":"AAAA;;;;;;GAMG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,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,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACH,cAAc,EACd,cAAc,EACd,cAAc,GAGjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAsB,EACtB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAEjC,oEAAoE;IACpE,oEAAoE;IACpE,sEAAsE;IACtE,kEAAkE;IAClE,qEAAqE;IACrE,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,MAAM,CAAC,uBAAuB,EAAE,CAAC;IAEnF,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC;IAEhD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,YAAY,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EACA,uBAAuB,KAAK,OAAO;wBACnC,mFAAmF;wBACnF,6EAA6E;wBAC7E,0CAA0C;iBACjD,CAAC;SACL,CAAC;IACN,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EACA,mCAAmC,KAAK,OAAO;wBAC/C,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,WAAW,cAAc;wBACnG,qBAAqB;wBACrB,oHAAoH;wBACpH,oDAAoD,KAAK,qFAAqF;wBAC9I,qEAAqE;wBACrE,wDAAwD;iBAC/D,CAAC;SACL,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAE1E,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,IAAI,GAAG,GAAG,CAAC;QACf,IAAI,aAAa,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,IAAI,GAAG,YAAY,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;QAAC,CAAC;aACxF,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,IAAI,GAAG,YAAY,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;QAAC,CAAC;aAC7F,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,QAAQ,CAAC;YAAC,aAAa,GAAG,GAAG,CAAC;QAAC,CAAC;aAC3D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;QAAC,CAAC;aACxD,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,IAAI,GAAG,QAAQ,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;QAAC,CAAC;aAC3E,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAAC,IAAI,GAAG,MAAM,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;QAAC,CAAC;aAC5D,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,IAAI,GAAG,KAAK,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;QAAC,CAAC;aACnG,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,YAAY,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;QAAC,CAAC;QAE9D,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC/E,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtI,UAAU,GAAG,GAAG,aAAa,+BAA+B,CAAC,CAAC,QAAQ,CAAC,QAAQ,iBAAiB,KAAK,IAAI,OAAO,IAAI,CAAC;YACzH,CAAC;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAClC,UAAU,GAAG,GAAG,aAAa,8DAA8D,CAAC;YAChG,CAAC;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjC,UAAU,GAAG,GAAG,aAAa,mBAAmB,CAAC,CAAC,QAAQ,CAAC,QAAQ,wBAAwB,CAAC;YAChG,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,IAAI,KAAK,UAAU,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC;QAEvE,MAAM,UAAU,GAAG,WAAW;YAC1B,CAAC,CAAC,sDAAsD,IAAI,KAAK,CAAC,CAAC,OAAO,sBAAsB;YAChG,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnE,OAAO,GAAG,MAAM,KAAK,SAAS,KAAK,KAAK,GAAG,UAAU,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtB,YAAY,IAAI,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,MAAM,UAAU,GAAG,WAAW,KAAK,MAAM,OAAO,CAAC,MAAM,eAAe,SAAS,YAAY;QACvF,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,UAAU,CAAC;IAE7B,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAEnE,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,SAAS;aAClB,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAsB,EACtB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAkB,CAAC,CAAC;IAE/E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EACA,oCAAoC,MAAM,GAAG;wBAC7C,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjD,CAAC;SACL,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,CACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,KAAK;YACpF,oBAAoB,CAAC,CAAC,SAAS,MAAM;YACrC,WAAW,CAAC,CAAC,IAAI,UAAU,CAC9B,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9C,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC;IAClD,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEtE,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC3C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,qBAAqB,QAAQ,sBAAsB,CAAC,CAAC;gBAC9E,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5E,MAAM,QAAQ,GAAG,aAAa;qBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;qBAC1E,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,gBAAgB;wBACZ,iEAAiE;4BACjE,sEAAsE;4BACtE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;oBAC/C,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,+CAA+C;QACnD,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE,UAAU,GAAG,WAAW,EAAE,UAAU,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;IAEpG,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EACA,kBAAkB,MAAM,IAAI;oBAC5B,SAAS,OAAO,CAAC,MAAM,qBAAqB;oBAC5C,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtB,gBAAgB;aACvB,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAsB,EACtB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,6BAA6B,MAAM,GAAG;iBAC/C,CAAC;SACL,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;YACpC,SAAS,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CACjD,CAAC;IAEF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAEvD,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EACA,kBAAkB,MAAM,IAAI;oBAC5B,SAAS,OAAO,CAAC,MAAM,wBAAwB,MAAM,CAAC,IAAI,eAAe;oBACzE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aAC3B,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,SAAS,iBAAiB,CAAC,IAAY,EAAE,OAAe,EAAE,UAAkB;IACxE,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC;IAAC,CAAC;SAC/B,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;SAC1D,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC;IAAC,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO;SACpB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,4CAA4C,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;QAC5E,CAAC,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACzE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,WAAW,CAAC,CAAC;IAAC,CAAC;SAClE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC;IAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACrE,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAAC,CAAC;IACzD,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,mHAAmH,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACtK,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAAC,CAAC;SAC7D,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAAC,CAAC;IACtE,IAAI,6FAA6F,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3G,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,0GAA0G,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxH,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,sDAAsD,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACvG,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,gBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACzE,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,eAAe,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACxE,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAsB,EACtB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IACrC,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;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mBAAoB,GAAa,CAAC,OAAO,EAAE;iBACpD,CAAC;SACL,CAAC;IACN,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC;QAC9B,YAAY,EAAE,YAAY;QAC1B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,SAAS;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,GAAG,YAAY,CAAC,KAAK,WAAW,YAAY,CAAC,IAAI,EAAE;iBAC5D,CAAC;YACF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAEjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EACA,wBAAwB,IAAI,IAAI;wBAChC,+DAA+D;iBACtE,CAAC;SACL,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,eAAe,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,YAAY,EAAE,EAAE,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,wEAAwE;IACxE,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,WAAW,GAAG,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClF,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrD,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAC1C,OAAO;SACF,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;SACnH,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACxB,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC;QAC1G,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC,CAAC;IAEJ,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/E,yEAAyE;YACzE,mEAAmE;YACnE,iEAAiE;YACjE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrE,IAAI,WAAW,KAAK,MAAM,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;gBAC/C,UAAU,GAAG,eAAe,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC7C,cAAc,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjD,gBAAgB,EAAE,CAAC;gBACnB,UAAU,GAAG,6DAA6D,CAAC;YAC/E,CAAC;QACL,CAAC;QAED,+DAA+D;QAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAChC,CAAC,CAAC,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACjD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK;YAC/C,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9B,SAAS;QACb,CAAC;QAED,KAAK,CAAC,IAAI,CACN,OAAO,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,SAAS,GAAG,QAAQ,OAAO,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CACvH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QACrC,IAAI,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,WAAW,gBAAgB,kFAAkF,CAAC,CAAC;IAC9H,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,OAAO,cAAc,CAAC,MAAM,6EAA6E,CAAC,CAAC;QACtH,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,8GAA8G,CAAC,CAAC;IAC/H,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAE/B,MAAM,UAAU,GAAG,eAAe;SAC7B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;SACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3E,MAAM,YAAY,GAAsB,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,cAAc,GAAG,SAAS,GAAG,iBAAiB,EAAE,CAAC;YACjD,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,SAAS;QACb,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,cAAc,IAAI,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,qCAAqC,YAAY,CAAC,MAAM,cAAc,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAEhI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAEvD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,0BAA0B,eAAe,CAAC,MAAM,uDAAuD,CAAC,CAAC;QACpH,KAAK,CAAC,IAAI,CAAC,kEAAkE,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5H,CAAC;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvD,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,CAAC;QAEtD,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAE1E,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC/D,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAsB,EACtB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,sEAAsE;IACtE,oEAAoE;IACpE,kDAAkD;IAClD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,uBAAuB,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEnE,qGAAqG;IACrG,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,CAAC,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,UAAmB,CAAC,CAAC,CAAC,KAA4B,CAAC;IAExH,qFAAqF;IACrF,MAAM,IAAI,GAAG,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAE3F,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEhD,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,QAAQ;aACjB,CAAC;KACL,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,yFAAyF;AACzF,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACrC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB;IAC7C,iBAAiB,EAAE,uBAAuB;IAC1C,4BAA4B,EAAE,oBAAoB;IAClD,qBAAqB;IACrB,SAAS,EAAE,cAAc,EAAE,eAAe;IAC1C,UAAU;IACV,qBAAqB,EAAE,+BAA+B;CACzD,CAAC,CAAC;AAEH,sEAAsE;AACtE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAE3F,SAAS,0BAA0B,CAC/B,IAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IAE3C,IAAI,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACrF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/D,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,MAAsB,EACtB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mDAAmD,EAAE,CAAC;YAC/F,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,2DAA2D;IAC3D,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAEnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC5E,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAElE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEnF,MAAM,KAAK,GAAa;oBACpB,4BAA4B,UAAU,IAAI;oBAC1C,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK;oBAC/D,UAAU;oBACV,EAAE,CAAC,MAAM;iBACZ,CAAC;gBAEF,OAAO;oBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC/D,CAAC;YACN,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACrD,0CAA0C;QAC9C,CAAC;IACL,CAAC;IACD,0CAA0C;IAE1C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IAE/C,MAAM,cAAc,GAA2D,EAAE,CAAC;IAClF,MAAM,cAAc,GAA2E,EAAE,CAAC;IAElG,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACD,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QAErB,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACD,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QAErB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC;QAEpB,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,IAAiB,EAAE,EAAE;YAC3D,SAAS,KAAK,CAAC,IAAuB;gBAClC,IACI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;oBAC7D,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,IAAI,CAAC,IAAI,KAAK,+BAA+B,CAAC;oBACtF,IAAI,CAAC,IAAI,KAAK,UAAU,EAC1B,CAAC;oBACC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;oBACxC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBACvE,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;oBAEpD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;wBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;oBAClE,CAAC;yBAAM,CAAC;wBACJ,cAAc,CAAC,IAAI,CAAC;4BAChB,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW;4BACpC,MAAM,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,SAAS,EAAE;yBACtD,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,KAAK,GAAa;QACpB,0BAA0B,UAAU,IAAI;QACxC,EAAE;KACL,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,wBAAwB,cAAc,CAAC,MAAM,sBAAsB,CAAC,CAAC;QAChF,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,wBAAwB,cAAc,CAAC,MAAM,+BAA+B,CAAC,CAAC;QACzF,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,uBAAuB,UAAU,0BAA0B,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CACN,gFAAgF;YAChF,yDAAyD,CAC5D,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC/D,CAAC;AACN,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,OAAuB,EACvB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,oEAAoE;IACpE,sEAAsE;IACtE,kEAAkE;IAClE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,uBAAuB,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAEhD,MAAM,aAAa,GAAG;QAClB,gDAAgD;QAChD,6FAA6F;QAC7F,wEAAwE;QACxE,qBAAqB;QACrB,kCAAkC;QAClC,sBAAsB;QACtB,0CAA0C;QAC1C,yBAAyB;KAC5B,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,+CAA+C;IAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC7B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACL,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,MAAM,WAAW,GAA8D,EAAE,CAAC;IAClF,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,QAAQ;gBACpB,KAAK,EAAE,KAAK,CAAC,SAAS;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC;QAClC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,8DAA8D;wBAChE,kEAAkE;iBACzE,CAAC;SACL,CAAC;IACN,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CACnC,OAAO,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,KAAK,wBAAwB;QACrD,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9E,CAAC;IAEF,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,yDAAyD;oBAC3D,8DAA8D;oBAC9D,WAAW,WAAW,CAAC,MAAM,qCAAqC;oBAClE,4CAA4C;oBAC5C,2CAA2C;oBAC3C,4BAA4B;oBAC5B,kCAAkC;oBAClC,4CAA4C;oBAC5C,4CAA4C;oBAC5C,uCAAuC;oBACvC,yBAAyB,UAAU,eAAe;oBAClD,yDAAyD;oBACzD,8CAA8C;oBAC9C,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACjD,CAAC;KACL,CAAC;AACN,CAAC;AAED,wEAAwE;AAExE,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAsB,EACtB,IAAwB;IAExB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qEAAqE,EAAE,CAAC;YACjH,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1B,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6EAA6E,EAAE,CAAC;YACzH,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kDAAkD,EAAE,CAAC;YAC9F,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,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,MAAM,mBAAmB,IAAI,+DAA+D,EAAE,CAAC;YACpK,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,4BAA4B,MAAM,gCAAgC,MAAM,MAAM,KAAK,UAAU;aACtG,CAAC;KACL,CAAC;AACN,CAAC;AAED,wEAAwE;AAExE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAsB,EACtB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,+CAA+C,EAAE,CAAC;YAC3F,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAED,sEAAsE;IACtE,kEAAkE;IAClE,oEAAoE;IACpE,kEAAkE;IAClE,mEAAmE;IACnE,qBAAqB;IACrB,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,MAAM,CAAC,uBAAuB,EAAE,CAAC;IACnF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACvC,IAAI;QACJ,iBAAiB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAe;oBACrB,IAAI,EACA,2BAA2B,KAAK,OAAO;wBACvC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,UAAU;wBACnD,wDAAwD;iBAC/D,CAAC;SACL,CAAC;IACN,CAAC;IAED,oEAAoE;IACpE,uDAAuD;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,wEAAwE;IACxE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS;QACvC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACnD,MAAM,KAAK,GAAa;QACpB,sBAAsB,KAAK,GAAG;QAC9B,GAAG,OAAO,CAAC,MAAM,oBAAoB,MAAM,CAAC,IAAI,6CAA6C;QAC7F,EAAE;KACL,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QAClC,CAAC,EAAE,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC;QAEnE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,cAAc,KAAK,CAAC,MAAM,WAAW,KAAK,GAAG,CAAC,CAAC;QAE/E,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,KAAK,WAAW;gBACvC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,sBAAsB;gBACxC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CACN,kBAAkB,WAAW,CAAC,KAAK,gBAAgB,WAAW,CAAC,IAAI,cAAc;QACjF,GAAG,WAAW,CAAC,IAAI,iEAAiE,CACvF,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAEjD,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAEnF,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACxD,CAAC;AACN,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAsB,EACtB,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,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,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC5D,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0CAA0C,KAAK,IAAI,EAAE,CAAC;SAClG,CAAC;IACN,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,2BAA2B,KAAK,KAAK,CAAC,CAAC;IACtD,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAC1B,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;IAChG,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE9D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC;YACjD,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,CAAC,CAAC;gBAAE,SAAS;YAE7B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE1C,OAAO,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,OAAO,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;oBACvC,iBAAiB,EAAE,CAAC;oBACpB,gBAAgB,GAAG,MAAM,GAAG,CAAC,CAAC;oBAC9B,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBAC5D,CAAC;gBAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC;gBAEvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC7B,UAAU,EAAE,CAAC;oBAEb,IAAI,WAAW,EAAE,CAAC;wBACd,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,OAAO,OAAO,MAAM,SAAS,gCAAgC,CAAC,CAAC;wBACpF,KAAK,CAAC,IAAI,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBACJ,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;wBAE3E,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,OAAO,OAAO,MAAM,SAAS,GAAG,CAAC,CAAC;wBACvD,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACL,CAAC;gBAED,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,UAAU,qBAAqB,MAAM,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAE7F,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACxD,CAAC;AACN,CAAC"}
|
|
@@ -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.
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
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
|
}
|
package/src/handlers/guard.ts
CHANGED
|
@@ -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);
|
package/src/handlers/navigate.ts
CHANGED
|
@@ -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
|
-
`
|
|
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
|
+
}
|
package/templates/AGENTS.md
CHANGED
|
@@ -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 👻.
|
package/templates/CLAUDE.md
CHANGED
|
@@ -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.
|
package/templates/SKILL.md
CHANGED
|
@@ -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".
|
|
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.
|