@ruso-0/nreki 10.15.0 → 10.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/CHANGELOG.md +122 -1
  2. package/dist/ast-navigator.d.ts +3 -2
  3. package/dist/ast-navigator.d.ts.map +1 -1
  4. package/dist/ast-navigator.js +130 -19
  5. package/dist/ast-navigator.js.map +1 -1
  6. package/dist/ast-sandbox.d.ts.map +1 -1
  7. package/dist/ast-sandbox.js +2 -1
  8. package/dist/ast-sandbox.js.map +1 -1
  9. package/dist/database.d.ts +17 -0
  10. package/dist/database.d.ts.map +1 -1
  11. package/dist/database.js +28 -0
  12. package/dist/database.js.map +1 -1
  13. package/dist/engine.d.ts +8 -2
  14. package/dist/engine.d.ts.map +1 -1
  15. package/dist/engine.js +25 -9
  16. package/dist/engine.js.map +1 -1
  17. package/dist/handlers/code/edit.d.ts.map +1 -1
  18. package/dist/handlers/code/edit.js +3 -2
  19. package/dist/handlers/code/edit.js.map +1 -1
  20. package/dist/handlers/navigate.d.ts +10 -0
  21. package/dist/handlers/navigate.d.ts.map +1 -1
  22. package/dist/handlers/navigate.js +94 -0
  23. package/dist/handlers/navigate.js.map +1 -1
  24. package/dist/index.js +116 -6
  25. package/dist/index.js.map +1 -1
  26. package/dist/parser.d.ts.map +1 -1
  27. package/dist/parser.js +64 -39
  28. package/dist/parser.js.map +1 -1
  29. package/dist/repo-map.d.ts.map +1 -1
  30. package/dist/repo-map.js +11 -5
  31. package/dist/repo-map.js.map +1 -1
  32. package/dist/router.d.ts.map +1 -1
  33. package/dist/router.js +4 -1
  34. package/dist/router.js.map +1 -1
  35. package/dist/semantic-edit.js +1 -1
  36. package/dist/semantic-edit.js.map +1 -1
  37. package/dist/utils/path-jail.d.ts.map +1 -1
  38. package/dist/utils/path-jail.js +11 -3
  39. package/dist/utils/path-jail.js.map +1 -1
  40. package/package.json +5 -4
  41. package/scripts/download-wasm.js +3 -2
  42. package/src/ast-navigator.ts +451 -0
  43. package/src/ast-sandbox.ts +344 -0
  44. package/src/audit.ts +703 -0
  45. package/src/chronos-memory.ts +338 -0
  46. package/src/circuit-breaker.ts +452 -0
  47. package/src/compressor-foveal.ts +284 -0
  48. package/{dist/compressor-advanced.js → src/compressor.ts} +915 -548
  49. package/src/database.ts +1003 -0
  50. package/src/embedder.ts +236 -0
  51. package/src/engine/indexer.ts +184 -0
  52. package/src/engine/searcher.ts +116 -0
  53. package/src/engine-types.ts +66 -0
  54. package/src/engine.ts +604 -0
  55. package/src/eslint-sidecar.ts +196 -0
  56. package/src/handlers/code/edit.ts +568 -0
  57. package/src/handlers/code/kernel-bridge.ts +236 -0
  58. package/src/handlers/code/read.ts +346 -0
  59. package/src/handlers/code/utils.ts +132 -0
  60. package/src/handlers/code.ts +10 -0
  61. package/src/handlers/guard.ts +487 -0
  62. package/src/handlers/navigate.test.ts +129 -0
  63. package/src/handlers/navigate.ts +1000 -0
  64. package/src/hologram/harvester.ts +174 -0
  65. package/src/hologram/shadow-cache.ts +198 -0
  66. package/src/hologram/shadow-generator.ts +982 -0
  67. package/src/hooks/cognitive-enforcer.ts +276 -0
  68. package/src/index.ts +863 -0
  69. package/src/kernel/backends/go-sidecar.ts +22 -0
  70. package/src/kernel/backends/lsp-sidecar-base.ts +710 -0
  71. package/src/kernel/backends/python-sidecar.ts +61 -0
  72. package/{dist/kernel/backends/typescript-strada.js → src/kernel/backends/ts-compiler-wrapper.ts} +789 -582
  73. package/src/kernel/backends/ts-corsa-sidecar.ts +31 -0
  74. package/src/kernel/healer.ts +284 -0
  75. package/src/kernel/mutex.ts +46 -0
  76. package/src/kernel/nreki-kernel.ts +1765 -0
  77. package/src/kernel/spectral-topology.ts +733 -0
  78. package/src/kernel/ttrd.ts +142 -0
  79. package/src/kernel/types.ts +114 -0
  80. package/src/middleware/circuit-breaker.ts +215 -0
  81. package/src/middleware/file-lock.ts +83 -0
  82. package/src/middleware/validator.ts +54 -0
  83. package/src/monitor.ts +362 -0
  84. package/src/parser-pool.ts +96 -0
  85. package/src/parser.ts +570 -0
  86. package/src/pin-memory.ts +203 -0
  87. package/src/repo-map.ts +899 -0
  88. package/src/router.ts +516 -0
  89. package/src/search/keyword-index.ts +219 -0
  90. package/src/search/vector-index.ts +111 -0
  91. package/src/semantic-edit.ts +1155 -0
  92. package/src/spectral/eigengap.ts +22 -0
  93. package/src/spectral/vonNeumann.ts +48 -0
  94. package/src/terminal-filter.ts +311 -0
  95. package/src/types/sql.js.d.ts +45 -0
  96. package/src/undo.ts +117 -0
  97. package/src/utils/code-tokenizer.ts +58 -0
  98. package/src/utils/defect-radar.ts +81 -0
  99. package/src/utils/file-filter.ts +58 -0
  100. package/src/utils/imports.ts +228 -0
  101. package/src/utils/latency-tracker.ts +63 -0
  102. package/src/utils/logger.ts +48 -0
  103. package/src/utils/path-jail.ts +159 -0
  104. package/src/utils/porter-stemmer.ts +161 -0
  105. package/src/utils/read-source.ts +23 -0
  106. package/src/utils/safe-parse.ts +42 -0
  107. package/src/utils/to-posix.ts +13 -0
  108. package/templates/AGENTS.md +46 -0
  109. package/templates/CLAUDE.md +36 -33
  110. package/templates/SKILL.md +52 -0
  111. package/wasm/tree-sitter-tsx.wasm +0 -0
  112. package/dist/compressor-advanced.d.ts +0 -79
  113. package/dist/compressor-advanced.d.ts.map +0 -1
  114. package/dist/compressor-advanced.js.map +0 -1
  115. package/dist/hooks/preToolUse.d.ts +0 -63
  116. package/dist/hooks/preToolUse.d.ts.map +0 -1
  117. package/dist/hooks/preToolUse.js +0 -103
  118. package/dist/hooks/preToolUse.js.map +0 -1
  119. package/dist/kernel/backends/typescript-strada.d.ts +0 -114
  120. package/dist/kernel/backends/typescript-strada.d.ts.map +0 -1
  121. package/dist/kernel/backends/typescript-strada.js.map +0 -1
  122. package/dist/kernel/language-backend.d.ts +0 -163
  123. package/dist/kernel/language-backend.d.ts.map +0 -1
  124. package/dist/kernel/language-backend.js +0 -13
  125. package/dist/kernel/language-backend.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,127 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to NREKI will be documented in this file.
3
+ All notable changes to NREKI will be documented in this file.
4
+
5
+ ## [10.17.0] - 2026-04-25
6
+
7
+ ### Reliability pass: 6 critical bugs fixed
8
+
9
+ Pre-publish audit revealed 6 bugs in v10.16.x tags (never published to
10
+ npm). All fixed in this release.
11
+
12
+ - **fix(parser)**: `.tsx` files now use dedicated tree-sitter-tsx
13
+ grammar. Previously JSX caused 0 chunks, making React/Next/Remix
14
+ components invisible to NREKI. `da8275e`
15
+ - **fix(engine)**: File watcher auto-starts on boot. `fast_grep`
16
+ bootstraps index on first call. chokidar config uses
17
+ `ignoreInitial: true` and root-directory watching (required by
18
+ chokidar@4, which dropped glob support) to prevent race with
19
+ handler-side indexing. `77afbed`
20
+ - **fix(parser)**: Top-level `const`/`let` declarations now indexed.
21
+ Previously only arrow-function/function-expression constants
22
+ captured. Config objects, lookup tables, hardcoded values now
23
+ visible to fast_grep. `25287b2`
24
+ - **fix(semantic-edit)**: `batch_edit` path keys normalized via
25
+ `safePath()` for both stores and lookups, including hologram branch.
26
+ Relative paths no longer silently skip blast radius detection.
27
+ `907b7d2` + follow-up commit.
28
+ - **fix(path-jail)**: Windows drive letter comparison case-insensitive.
29
+ Lowercase `d:/` no longer blocked as traversal. Affects VSCode URIs,
30
+ WSL symlinks, shell copy-paste. `9c346d9`
31
+ - **fix(signature)**: `extractSignature` strips body from one-liner
32
+ functions, cutting at `=>` or `{` at zero paren/angle depth. No more
33
+ false positive blast radius on body-only edits. `76d778e`
34
+
35
+ ### Performance improvements
36
+
37
+ Zero-allocation rewrite + FFI diet from abandoned v10.16.0 branch now
38
+ published in this release:
39
+
40
+ - **perf(navigate)**: fast_grep O(L) pointer walk via `indexOf`
41
+ (V8 memchr SIMD internally). Replaces per-hit allocations.
42
+ - **perf(fast_grep)**: Lean SELECT (4 cols) reduces WASM-to-JS FFI
43
+ decoding overhead. Legacy 10-col method removed (breaking for
44
+ any hypothetical external consumer).
45
+
46
+ Combined benchmark delta on NREKI src/ (10 iter, median):
47
+ - export (156 hits): 11.24ms -> 5.22ms (-54%)
48
+ - findDefinition: 2.98ms -> 2.26ms (-24%)
49
+ - chronosMemory: 2.16ms -> 1.73ms (-20%)
50
+ - [OK]: 1.81ms -> 1.52ms (-16%)
51
+
52
+ ### Multi-agent manifest
53
+
54
+ `nreki init` now generates CLAUDE.md + AGENTS.md + SKILL.md. All three
55
+ share the IMMUNE SYSTEM operational rules: 80L Guillotine, Multi-patching
56
+ ACID, Anti-Sweep Shield, TTRD Shield with CFI, Engrams with ASSERT prefix.
57
+ Compatible with Claude Code, Codex, Gemini, and any MCP-capable agent.
58
+
59
+ ### Tests
60
+
61
+ 877 passing, 1 skipped (Linux-specific case-sensitivity test skipped on
62
+ win32). +26 tests added across 6 bug fixes.
63
+
64
+ ### Note on unreleased versions
65
+
66
+ v10.16.0 (`c08e61a`) and v10.16.1 (`ae9a526`) were git-tagged but never
67
+ reached npm registry due to the 6 bugs above discovered in pre-publish
68
+ audit. v10.17.0 is the next version reaching npm after v10.15.1.
69
+
70
+ ## [10.16.1] - 2026-04-24
71
+
72
+ ### Multi-agent manifest completion
73
+
74
+ - `nreki init` now also generates `SKILL.md` (completes the CLAUDE.md + AGENTS.md + SKILL.md trio). SKILL.md uses YAML frontmatter (`name: nreki-optimizer`) for Claude Code Skills system auto-discovery.
75
+ - All three manifest files share the same IMMUNE SYSTEM operational rules: 80L Guillotine, Multi-patching ACID, Anti-Sweep Shield, TTRD Shield with CFI, Engrams with ASSERT prefix.
76
+ - Cleanup: removed legacy `skills/SKILL.md` (orphan from pre-v10.12 era).
77
+
78
+ ### Note on v10.16.0
79
+
80
+ v10.16.0 was tagged in git (`c08e61a`) but never published to npm. v10.16.1 is the first release of the v10.16.x line to reach the npm registry. Consumers should use 10.16.1 or later.
81
+
82
+ ## [10.16.0] - 2026-04-24
83
+
84
+ ### ⚡ Performance
85
+
86
+ - **fast_grep zero-allocation rewrite**: `handleFastGrep` now uses O(L) pointer walking with `indexOf()` (V8's memchr SIMD internally) instead of per-hit `substring()+split()` allocations.
87
+ - **FFI diet SELECT**: `NrekiDB.fastGrep` now reads only 4 columns (path, raw_code, start_line, symbol_name) instead of 10, reducing WASM-to-JS decoding overhead by ~13%.
88
+
89
+ Combined benchmark delta on NREKI src/ (10 iter, median):
90
+ - `export` (156 hits): 11.24ms → 5.22ms (−54%)
91
+ - `findDefinition`: 2.98ms → 2.26ms (−24%)
92
+ - `chronosMemory`: 2.16ms → 1.73ms (−20%)
93
+ - `[OK]`: 1.81ms → 1.52ms (−16%)
94
+
95
+ Raw data: `scripts/benchmark-fastgrep-AFTER-patch.json`. Reproducible with `npx tsx scripts/benchmark-fastgrep.ts`.
96
+
97
+ ### ⚠️ BREAKING CHANGES
98
+
99
+ - `NrekiDB.fastGrep()` return type changed from `ChunkRecord[]` (10 columns) to `FastGrepHit[]` (4 columns: path, raw_code, start_line, symbol_name). The legacy method has been removed.
100
+ - Consumers relying on the full 10-column result (shorthand, node_type, defect_tags, external_refs, etc.) must use `NrekiDB.getChunkById()` or similar lookups for those fields.
101
+
102
+ ### 📦 Multi-agent manifest
103
+
104
+ - `nreki init` now generates `CLAUDE.md` + `AGENTS.md` templates, enabling compatibility with Claude Code, Codex, Gemini, and other MCP-capable agents.
105
+ - Templates reflect current NREKI features: 80L Guillotine, Multi-patching ACID, Anti-Sweep Shield, TTRD Shield with CFI, Engrams with ASSERT prefix, Go/Python LSP sidecars.
106
+
107
+ ## [10.15.1] — 2026-04-24
108
+
109
+ ### Multi-Agent Manifest
110
+
111
+ Docs-only patch. Rewrites the `nreki init` templates to reflect v10.15.0 features and adds an AGENTS.md template for non-Claude agent runtimes.
112
+
113
+ ### Added
114
+
115
+ - **AGENTS.md template**: new `templates/AGENTS.md`, generated by `nreki init` alongside CLAUDE.md. Same body, header targeted at AI coding agents consuming NREKI via MCP (Codex, Gemini, others). `nreki deinit` cleans it.
116
+ - **getAgentsMdContent()** helper + mirrored init/deinit blocks in src/index.ts. AGENTS.md is appended if the file exists without the NREKI marker, created fresh otherwise.
117
+
118
+ ### Changed
119
+
120
+ - **CLAUDE.md template** rewritten as "NREKI ACTIVE (IMMUNE SYSTEM)" manifest with v10.15.0 features: `fast_grep` as the default exact-search tool, 80L guillotine for batch_edit payload decomposition, patch mode mandate for symbols >40 lines, ACID rules for multi-patching, TTRD (Type Discipline) bounties, engram memory anchoring.
121
+
122
+ ### Notes
123
+
124
+ - No code/runtime behavior changes. Safe patch bump from v10.15.0. 845/845 tests pass unchanged.
4
125
 
5
126
  ## [10.15.0] — 2026-04-24
6
127
 
@@ -6,6 +6,7 @@
6
6
  * Typical latency: 3-50ms vs 900ms+ for embedding-based search.
7
7
  */
8
8
  import { ASTParser } from "./parser.js";
9
+ import type { NrekiEngine } from "./engine.js";
9
10
  export interface DefinitionResult {
10
11
  filePath: string;
11
12
  name: string;
@@ -23,7 +24,7 @@ export interface ReferenceResult {
23
24
  context: string;
24
25
  }
25
26
  export type SymbolKind = "function" | "class" | "interface" | "type" | "variable" | "enum" | "method" | "any";
26
- export declare function findDefinition(projectRoot: string, parser: ASTParser, symbolName: string, kind?: SymbolKind): Promise<DefinitionResult[]>;
27
- export declare function findReferences(projectRoot: string, parser: ASTParser, symbolName: string): Promise<ReferenceResult[]>;
27
+ export declare function findDefinition(projectRoot: string, parser: ASTParser, symbolName: string, kind?: SymbolKind, engine?: NrekiEngine): Promise<DefinitionResult[]>;
28
+ export declare function findReferences(projectRoot: string, parser: ASTParser, symbolName: string, engine?: NrekiEngine): Promise<ReferenceResult[]>;
28
29
  export declare function getFileSymbols(filePath: string, parser: ASTParser, projectRoot?: string): Promise<DefinitionResult[]>;
29
30
  //# sourceMappingURL=ast-navigator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-navigator.d.ts","sourceRoot":"","sources":["../src/ast-navigator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAM1D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAuK9G,wBAAsB,cAAc,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,UAAkB,GACzB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoD7B;AAED,wBAAsB,cAAc,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,EAAE,CAAC,CAuC5B;AAED,wBAAsB,cAAc,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6B7B"}
1
+ {"version":3,"file":"ast-navigator.d.ts","sourceRoot":"","sources":["../src/ast-navigator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAI1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAkO9G,wBAAsB,cAAc,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,UAAkB,EACxB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiF7B;AAED,wBAAsB,cAAc,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,eAAe,EAAE,CAAC,CA0D5B;AAED,wBAAsB,cAAc,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6B7B"}
@@ -9,6 +9,7 @@ import fs from "fs";
9
9
  import path from "path";
10
10
  import { shouldProcess } from "./utils/file-filter.js";
11
11
  import { readSource } from "./utils/read-source.js";
12
+ import { escapeRegExp } from "./utils/imports.js";
12
13
  // ─── Constants ──────────────────────────────────────────────────────
13
14
  const SUPPORTED_EXTENSIONS = new Set([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts", ".py", ".go", ".css", ".json", ".html"]);
14
15
  const IGNORE_DIRS = new Set([
@@ -66,20 +67,26 @@ function walkFiles(dirPath) {
66
67
  // ─── Signature Extraction ───────────────────────────────────────────
67
68
  function extractSignature(rawCode) {
68
69
  const lines = rawCode.split("\n");
69
- if (lines.length <= 1)
70
- return rawCode.trim();
71
70
  let parenDepth = 0;
72
71
  let angleDepth = 0;
72
+ let topLevelAssignmentSeen = false;
73
73
  for (let i = 0; i < rawCode.length; i++) {
74
74
  const ch = rawCode[i];
75
75
  if (ch === "(")
76
76
  parenDepth++;
77
77
  else if (ch === ")")
78
- parenDepth--;
78
+ parenDepth = Math.max(0, parenDepth - 1);
79
79
  else if (ch === "<")
80
80
  angleDepth++;
81
- else if (ch === ">")
82
- angleDepth--;
81
+ else if (ch === ">" && !(i > 0 && rawCode[i - 1] === "="))
82
+ angleDepth = Math.max(0, angleDepth - 1);
83
+ else if (ch === "=" && i + 1 < rawCode.length && rawCode[i + 1] === ">" &&
84
+ parenDepth === 0 && angleDepth === 0 && topLevelAssignmentSeen) {
85
+ return rawCode.slice(0, i + 2).trim();
86
+ }
87
+ else if (ch === "=" && parenDepth === 0 && angleDepth === 0) {
88
+ topLevelAssignmentSeen = true;
89
+ }
83
90
  else if (ch === "{" && parenDepth === 0 && angleDepth === 0) {
84
91
  return rawCode.slice(0, i).trim();
85
92
  }
@@ -165,8 +172,92 @@ function getExportStatus(rawCode, contentLines, startLine) {
165
172
  }
166
173
  return null;
167
174
  }
175
+ /**
176
+ * Replace contents of string literals and comments with spaces, preserving
177
+ * line and column geometry of the source. Used by findReferences AST-light
178
+ * filter to avoid matching inside strings/comments without shifting line/column.
179
+ *
180
+ * ORDER IS CRITICAL: strings are neutralized FIRST. If comments were processed
181
+ * first, "//" inside a string like "http://api.com" would eat the rest of the
182
+ * line and break the string regex.
183
+ */
184
+ function stripCommentsAndStringsPreservingGeometry(code) {
185
+ return code
186
+ .replace(/(["\u0027`])(?:\\.|(?!\1)[^\\])*\1/g, (m) => m.replace(/[^\n]/g, " "))
187
+ .replace(/\/\*[\s\S]*?\*\//g, (m) => m.replace(/[^\n]/g, " "))
188
+ .replace(/\/\/[^\n]*/g, (m) => " ".repeat(m.length));
189
+ }
190
+ /** Convert a ChunkRecord (SQLite) to a DefinitionResult. Re-reads file only if export status is ambiguous. */
191
+ function chunkRecordToDefinition(chunk, projectRoot, symbolName) {
192
+ const chunkKind = NODE_TYPE_TO_KIND[chunk.node_type] || chunk.node_type;
193
+ const relPath = path.relative(projectRoot, path.resolve(projectRoot, chunk.path)).replace(/\\/g, "/");
194
+ const trimmed = chunk.raw_code.trim();
195
+ let exportedAs = null;
196
+ if (trimmed.startsWith("export default "))
197
+ exportedAs = "default";
198
+ else if (trimmed.startsWith("export "))
199
+ exportedAs = "named";
200
+ else {
201
+ // Inner AST node (e.g. interface/type/enum without export wrapper). Re-read source line.
202
+ try {
203
+ const absPath = path.resolve(projectRoot, chunk.path);
204
+ const content = readSource(absPath);
205
+ const lineText = content.split("\n")[chunk.start_line - 1];
206
+ if (lineText) {
207
+ const lt = lineText.trim();
208
+ if (lt.startsWith("export default "))
209
+ exportedAs = "default";
210
+ else if (lt.startsWith("export "))
211
+ exportedAs = "named";
212
+ }
213
+ }
214
+ catch { /* non-fatal: leave exportedAs null */ }
215
+ }
216
+ return {
217
+ filePath: relPath,
218
+ name: chunk.symbol_name || symbolName,
219
+ kind: chunkKind,
220
+ signature: extractSignature(chunk.raw_code),
221
+ body: chunk.raw_code,
222
+ startLine: chunk.start_line,
223
+ endLine: chunk.end_line,
224
+ exportedAs,
225
+ };
226
+ }
168
227
  // ─── Core Navigation Functions ──────────────────────────────────────
169
- export async function findDefinition(projectRoot, parser, symbolName, kind = "any") {
228
+ export async function findDefinition(projectRoot, parser, symbolName, kind = "any", engine) {
229
+ if (!symbolName.trim())
230
+ return [];
231
+ // Fast path: SQLite lookup if engine provided
232
+ if (engine) {
233
+ try {
234
+ let chunks = await engine.getChunksBySymbolExact(symbolName, true);
235
+ if (chunks.length === 0) {
236
+ chunks = await engine.getChunksBySymbolExact(symbolName, false);
237
+ }
238
+ if (chunks.length > 0) {
239
+ const exactFast = [];
240
+ const partialFast = [];
241
+ const lowerSymbolFast = symbolName.toLowerCase();
242
+ for (const chunk of chunks) {
243
+ const chunkKind = NODE_TYPE_TO_KIND[chunk.node_type] || chunk.node_type;
244
+ if (kind !== "any" && chunkKind !== kind)
245
+ continue;
246
+ const def = chunkRecordToDefinition(chunk, projectRoot, symbolName);
247
+ if (chunk.symbol_name === symbolName)
248
+ exactFast.push(def);
249
+ else if ((chunk.symbol_name || "").toLowerCase() === lowerSymbolFast)
250
+ partialFast.push(def);
251
+ }
252
+ if (exactFast.length > 0 || partialFast.length > 0) {
253
+ return [...exactFast, ...partialFast];
254
+ }
255
+ // Fast path returned chunks but none passed kind filter: fall through to slow path
256
+ }
257
+ }
258
+ catch { /* SQLite unavailable — fall through to slow path */ }
259
+ }
260
+ // Slow path: walk disk (original behavior, backward-compatible)
170
261
  await parser.initialize();
171
262
  const files = walkFiles(projectRoot);
172
263
  const exact = [];
@@ -215,13 +306,30 @@ export async function findDefinition(projectRoot, parser, symbolName, kind = "an
215
306
  // Exact matches first, then case-insensitive matches
216
307
  return [...exact, ...partial];
217
308
  }
218
- export async function findReferences(projectRoot, parser, symbolName) {
219
- await parser.initialize();
220
- const files = walkFiles(projectRoot);
309
+ export async function findReferences(projectRoot, parser, symbolName, engine) {
310
+ if (!symbolName.trim())
311
+ return [];
312
+ // escapeRegExp from utils is blinded-tested and avoids the fragile inline character class
313
+ const symbolRe = new RegExp(`\\b${escapeRegExp(symbolName)}\\b`, "g");
221
314
  const results = [];
222
- // Word boundary regex for the symbol
223
- const symbolRe = new RegExp(`\\b${symbolName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`, "g");
224
- for (const filePath of files) {
315
+ // Candidate file selection: SQLite inverted index if engine available, else walk disk
316
+ let candidatePaths = [];
317
+ let usedFastPath = false;
318
+ if (engine) {
319
+ try {
320
+ const relCandidates = await engine.searchFilesBySymbol(symbolName);
321
+ if (relCandidates.length > 0) {
322
+ candidatePaths = relCandidates.map((rel) => path.resolve(projectRoot, rel));
323
+ usedFastPath = true;
324
+ }
325
+ }
326
+ catch { /* SQLite unavailable — fall through */ }
327
+ }
328
+ if (!usedFastPath) {
329
+ await parser.initialize();
330
+ candidatePaths = walkFiles(projectRoot);
331
+ }
332
+ for (const filePath of candidatePaths) {
225
333
  let content;
226
334
  try {
227
335
  content = readSource(filePath);
@@ -229,20 +337,23 @@ export async function findReferences(projectRoot, parser, symbolName) {
229
337
  catch {
230
338
  continue;
231
339
  }
232
- const lines = content.split("\n");
340
+ // AST-light: zero out string/comment content (preserves line/column geometry)
341
+ const cleanContent = stripCommentsAndStringsPreservingGeometry(content);
342
+ const cleanLines = cleanContent.split("\n");
343
+ const rawLines = content.split("\n");
233
344
  const relPath = path.relative(projectRoot, filePath).replace(/\\/g, "/");
234
- for (let i = 0; i < lines.length; i++) {
345
+ for (let i = 0; i < cleanLines.length; i++) {
235
346
  symbolRe.lastIndex = 0;
236
- const match = symbolRe.exec(lines[i]);
347
+ const match = symbolRe.exec(cleanLines[i]);
237
348
  if (!match)
238
349
  continue;
239
- // Build context: line + 1 line above and below
350
+ // Context: 1 line above and below from RAW content (not cleaned)
240
351
  const ctxStart = Math.max(0, i - 1);
241
- const ctxEnd = Math.min(lines.length - 1, i + 1);
242
- const context = lines.slice(ctxStart, ctxEnd + 1).join("\n");
352
+ const ctxEnd = Math.min(rawLines.length - 1, i + 1);
353
+ const context = rawLines.slice(ctxStart, ctxEnd + 1).join("\n");
243
354
  results.push({
244
355
  filePath: relPath,
245
- line: i + 1, // 1-indexed
356
+ line: i + 1,
246
357
  column: match.index + 1,
247
358
  context,
248
359
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ast-navigator.js","sourceRoot":"","sources":["../src/ast-navigator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-navigator.js","sourceRoot":"","sources":["../src/ast-navigator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ast-sandbox.d.ts","sourceRoot":"","sources":["../src/ast-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,WAAW,QAAQ;IACrB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC7B,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,0CAA0C;IAC1C,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACtB;AAiCD,qBAAa,UAAU;IACnB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAA8B;gBAElC,OAAO,CAAC,EAAE,MAAM;IAM5B,oEAAoE;IAC9D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,oCAAoC;IACpC,qBAAqB,IAAI,MAAM,EAAE;IAIjC,6CAA6C;IAC7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO/C,iFAAiF;YACnE,YAAY;IAgC1B;;;;;;OAMG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0D7E;;;;;OAKG;IACG,YAAY,CACd,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC;IA6B5B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsCrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CA+C7B"}
1
+ {"version":3,"file":"ast-sandbox.d.ts","sourceRoot":"","sources":["../src/ast-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,WAAW,QAAQ;IACrB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC7B,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,0CAA0C;IAC1C,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACtB;AAkCD,qBAAa,UAAU;IACnB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAA8B;gBAElC,OAAO,CAAC,EAAE,MAAM;IAM5B,oEAAoE;IAC9D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,oCAAoC;IACpC,qBAAqB,IAAI,MAAM,EAAE;IAIjC,6CAA6C;IAC7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO/C,iFAAiF;YACnE,YAAY;IAgC1B;;;;;;OAMG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0D7E;;;;;OAKG;IACG,YAAY,CACd,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC;IA6B5B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsCrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CA+C7B"}
@@ -16,6 +16,7 @@ import { ParserPool } from "./parser-pool.js";
16
16
  // ─── Language Mapping ────────────────────────────────────────────────
17
17
  const LANGUAGE_MAP = {
18
18
  typescript: "tree-sitter-typescript.wasm",
19
+ tsx: "tree-sitter-tsx.wasm",
19
20
  javascript: "tree-sitter-javascript.wasm",
20
21
  python: "tree-sitter-python.wasm",
21
22
  go: "tree-sitter-go.wasm",
@@ -26,7 +27,7 @@ const LANGUAGE_MAP = {
26
27
  /** Map file extensions to language names. */
27
28
  const EXT_TO_LANGUAGE = {
28
29
  ".ts": "typescript",
29
- ".tsx": "typescript",
30
+ ".tsx": "tsx",
30
31
  ".js": "javascript",
31
32
  ".jsx": "javascript",
32
33
  ".mjs": "javascript", // v10.12.0 — align with parser SUPPORTED_EXTENSIONS
@@ -1 +1 @@
1
- {"version":3,"file":"ast-sandbox.js","sourceRoot":"","sources":["../src/ast-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAwB9C,wEAAwE;AAExE,MAAM,YAAY,GAA2B;IACzC,UAAU,EAAE,6BAA6B;IACzC,UAAU,EAAE,6BAA6B;IACzC,MAAM,EAAE,yBAAyB;IACjC,EAAE,EAAE,qBAAqB;IACzB,GAAG,EAAE,sBAAsB;IAC3B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAuB;CAChC,CAAC;AAEF,6CAA6C;AAC7C,MAAM,eAAe,GAA2B;IAC5C,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY,EAAG,oDAAoD;IAC3E,MAAM,EAAE,YAAY,EAAG,WAAW;IAClC,MAAM,EAAE,YAAY,EAAG,WAAW;IAClC,MAAM,EAAE,YAAY,EAAG,WAAW;IAClC,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;CAClB,CAAC;AAEF,wEAAwE;AAExE,MAAM,OAAO,UAAU;IACX,IAAI,CAAa;IACjB,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnD,QAAQ,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/C,OAAO,CAAS;IAChB,WAAW,GAAG,KAAK,CAAC;IACpB,QAAQ,GAAyB,IAAI,CAAC;IAE9C,YAAY,OAAgB;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,UAAU;QACZ,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,oCAAoC;IACpC,qBAAqB;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,6CAA6C;IAC7C,cAAc,CAAC,QAAgB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED,kEAAkE;IAElE,iFAAiF;IACzE,KAAK,CAAC,YAAY,CAAC,QAAgB;QACvC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAC7C,CAAC;YAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAE3B,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,qEAAqE;QACrE,gEAAgE;QAChE,sEAAsE;QACtE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kEAAkE;IAElE;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAgB;QAC7C,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE;oBACJ;wBACI,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,CAAC;wBACT,QAAQ,EAAE,aAAa;wBACvB,OAAO,EAAE,yBAAyB,QAAQ,EAAE;qBAC/C;iBACJ;gBACD,UAAU,EAAE,aAAa,QAAQ,kCAAkC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC5G,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC;YACD,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACpC,8DAA8D;gBAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;gBACvD,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAe,EAAE,CAAC;gBAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAEjD,iEAAiE;gBACjE,wEAAwE;gBACxE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC1C,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC;oBAChE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;oBAChE,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;wBACrC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;wBAC1C,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO;wBACtE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;qBACpD,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,qDAAqD;oBACrD,qDAAqD;oBACrD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;gBACvD,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACnD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YAChD,CAAC,CAAC,CAAC;QACP,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CACd,YAAoB,EACpB,OAAe,EACf,QAAgB;QAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAErC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC/B,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,QAAQ,GACV,OAAO,GAAG,SAAS,CAAC,MAAM;wBACtB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;wBACpB,CAAC,CAAC,YAAY,CAAC;oBACvB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;wBACvB,KAAK,CAAC,OAAO;4BACT,YAAY,QAAQ,CAAC,IAAI,EAAE,EAAE;gCAC7B,YAAY,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBACrC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kEAAkE;IAElE;;;;;OAKG;IACK,aAAa,CACjB,IAAuB,EACvB,KAAe,EACf,MAAkB,EAClB,QAAgB,CAAC;QAEjB,2DAA2D;QAC3D,IAAI,KAAK,GAAG,GAAG;YAAE,OAAO;QAExB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE7D,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,MAAM;gBACN,QAAQ,EAAE,IAAI,CAAC,SAAS;oBACpB,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG;oBACzB,CAAC,CAAC,OAAO;gBACb,OAAO,EAAE,QAAQ;aACpB,CAAC,CAAC;YACH,OAAO,CAAC,iCAAiC;QAC7C,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;IACL,CAAC;IAED,kEAAkE;IAElE;;;;;OAKG;IACK,kBAAkB,CAAC,MAAkB;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,MAAM,GAAG,wBAAwB,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC;YAE1E,0CAA0C;YAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,OAAO,GACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;gBAC5D,MAAM,IAAI,aAAa,OAAO,EAAE,CAAC;YACrC,CAAC;YAED,0BAA0B;YAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,sBAAsB,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;YAC1D,CAAC;YAED,sCAAsC;YACtC,MAAM,GAAG,GAAG,WAAW,CAAC;YACxB,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,oCAAoC,CAAC;YACnD,CAAC;iBAAM,IACH,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,KAAK,CAAC,QAAQ,KAAK,YAAY,EACjC,CAAC;gBACC,MAAM,IAAI,+BAA+B,CAAC;YAC9C,CAAC;iBAAM,IACH,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,KAAK,CAAC,QAAQ,KAAK,YAAY,EACjC,CAAC;gBACC,MAAM,IAAI,qCAAqC,CAAC;YACpD,CAAC;iBAAM,IACH,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,KAAK,CAAC,QAAQ,KAAK,YAAY,EACjC,CAAC;gBACC,MAAM,IAAI,iCAAiC,CAAC;YAChD,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;gBACzC,MAAM,IAAI,uBAAuB,CAAC;YACtC,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ"}
1
+ {"version":3,"file":"ast-sandbox.js","sourceRoot":"","sources":["../src/ast-sandbox.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,16 @@ export interface ChunkRecord {
29
29
  end_index: number;
30
30
  symbol_name: string;
31
31
  }
32
+ /**
33
+ * Shape returned by fastGrep(): the 4 columns handleFastGrep consumes.
34
+ * Avoids sql.js WASM overhead of serializing unused columns per row.
35
+ */
36
+ export interface FastGrepHit {
37
+ path: string;
38
+ raw_code: string;
39
+ start_line: number;
40
+ symbol_name: string;
41
+ }
32
42
  export interface HybridSearchResult {
33
43
  id: number;
34
44
  path: string;
@@ -184,6 +194,13 @@ export declare class NrekiDB {
184
194
  * Returns chunks whose raw_code contains the query as substring. LIMIT-bounded.
185
195
  */
186
196
  searchRawCodeLike(queryText: string, limit?: number): ChunkRecord[];
197
+ /**
198
+ * Exact substring search for the nreki_navigate fast_grep action.
199
+ * Uses SQLite INSTR (no wildcard interpretation — safe for arbitrary queries)
200
+ * and SELECTs only the 4 columns handleFastGrep consumes to minimize
201
+ * sql.js WASM row-serialization cost.
202
+ */
203
+ fastGrep(queryText: string, limit?: number): FastGrepHit[];
187
204
  close(): void;
188
205
  }
189
206
  export { fastSimilarity };
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,OAAO,EAAe,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAKvE,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAKD,qBAAa,OAAO;IAChB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,OAAO,CAAsB;IACrC,0FAA0F;IAC1F,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,MAAoB;IAKxC,qEAAqE;IAC/D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAQnB,KAAK;IAiCnB,IAAI,KAAK,IAAI,OAAO,CAEnB;IAID,OAAO,CAAC,WAAW;IAkEnB,oEAAoE;IACpE,OAAO,CAAC,mBAAmB;IAa3B,iFAAiF;IACjF,OAAO,CAAC,sBAAsB;IAkB9B,uEAAuE;IACvE,OAAO,CAAC,YAAY;IAUpB,wDAAwD;IACxD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAavC,gDAAgD;IAChD,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO7C;;;;OAIG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IA0BnD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ1F,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAetF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQxD,iDAAiD;IACjD,IAAI,IAAI,IAAI;IA8BZ,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAe3D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IA0BnC,WAAW,CACP,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,YAAY,EACvB,UAAU,GAAE,MAAU,EACtB,QAAQ,GAAE,MAAU,EACpB,UAAU,GAAE,MAAW,GACxB,MAAM;IAmBT,iBAAiB,CACb,MAAM,EAAE,KAAK,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,YAAY,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,GACH,IAAI;IAkCP,4EAA4E;IAC5E,OAAO,CAAC,YAAY;IAYpB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;;;;;;OAOG;IACH,YAAY,CACR,cAAc,EAAE,YAAY,EAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACnB,kBAAkB,EAAE;IAsDvB;;;OAGG;IACH,iBAAiB,CACb,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACnB,kBAAkB,EAAE;IA0BvB;;;;OAIG;IACH,uBAAuB,CACnB,IAAI,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EACjD,SAAS,GAAE,MAAY,GACxB,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAwCvC,YAAY,CACR,cAAc,EAAE,YAAY,EAC5B,KAAK,GAAE,MAAW,GACnB,kBAAkB,EAAE;IA0BvB,QAAQ,CACJ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GACpB,IAAI;IAQP,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;KACtB;IAgCD;;;OAGG;IACH,gBAAgB,CAAC,KAAK,GAAE,MAAU,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;IA4BtF,QAAQ,IAAI,UAAU;IAmCtB,YAAY,IAAI,MAAM;IAMtB,cAAc,IAAI,MAAM;IAIxB;;;;;;;;OAQG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAU3C;;;OAGG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,OAAc,GAAG,WAAW,EAAE;IA8BhF;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IA6BvE;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IAuB9D,KAAK,IAAI,IAAI;CAKhB;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC"}
package/dist/database.js CHANGED
@@ -783,6 +783,34 @@ export class NrekiDB {
783
783
  }
784
784
  return results;
785
785
  }
786
+ /**
787
+ * Exact substring search for the nreki_navigate fast_grep action.
788
+ * Uses SQLite INSTR (no wildcard interpretation — safe for arbitrary queries)
789
+ * and SELECTs only the 4 columns handleFastGrep consumes to minimize
790
+ * sql.js WASM row-serialization cost.
791
+ */
792
+ fastGrep(queryText, limit = 50) {
793
+ if (!this._ready)
794
+ return [];
795
+ const stmt = this.db.prepare("SELECT path, raw_code, start_line, symbol_name FROM chunks WHERE INSTR(raw_code, ?) > 0 LIMIT ?");
796
+ const results = [];
797
+ try {
798
+ stmt.bind([queryText, limit]);
799
+ while (stmt.step()) {
800
+ const row = stmt.getAsObject();
801
+ results.push({
802
+ path: row.path,
803
+ raw_code: row.raw_code,
804
+ start_line: row.start_line,
805
+ symbol_name: row.symbol_name ?? "",
806
+ });
807
+ }
808
+ }
809
+ finally {
810
+ stmt.free();
811
+ }
812
+ return results;
813
+ }
786
814
  close() {
787
815
  if (!this.db)
788
816
  return;