@ruso-0/nreki 10.19.0 → 11.2.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 (172) hide show
  1. package/CHANGELOG.md +238 -0
  2. package/README.md +62 -6
  3. package/dist/ast-navigator.d.ts.map +1 -1
  4. package/dist/ast-navigator.js +10 -1
  5. package/dist/ast-navigator.js.map +1 -1
  6. package/dist/ast-sandbox.d.ts +1 -0
  7. package/dist/ast-sandbox.d.ts.map +1 -1
  8. package/dist/ast-sandbox.js +24 -0
  9. package/dist/ast-sandbox.js.map +1 -1
  10. package/dist/bm25-engine.d.ts +102 -0
  11. package/dist/bm25-engine.d.ts.map +1 -0
  12. package/dist/bm25-engine.js +246 -0
  13. package/dist/bm25-engine.js.map +1 -0
  14. package/dist/compressor-foveal-cross-file.d.ts +75 -0
  15. package/dist/compressor-foveal-cross-file.d.ts.map +1 -0
  16. package/dist/compressor-foveal-cross-file.js +321 -0
  17. package/dist/compressor-foveal-cross-file.js.map +1 -0
  18. package/dist/compressor-foveal.d.ts +10 -1
  19. package/dist/compressor-foveal.d.ts.map +1 -1
  20. package/dist/compressor-foveal.js +89 -7
  21. package/dist/compressor-foveal.js.map +1 -1
  22. package/dist/compressor.d.ts +2 -6
  23. package/dist/compressor.d.ts.map +1 -1
  24. package/dist/compressor.js +21 -38
  25. package/dist/compressor.js.map +1 -1
  26. package/dist/database.d.ts +114 -32
  27. package/dist/database.d.ts.map +1 -1
  28. package/dist/database.js +436 -184
  29. package/dist/database.js.map +1 -1
  30. package/dist/detect-mode.d.ts +2 -0
  31. package/dist/detect-mode.d.ts.map +1 -0
  32. package/dist/detect-mode.js +54 -0
  33. package/dist/detect-mode.js.map +1 -0
  34. package/dist/engine/indexer.d.ts +1 -4
  35. package/dist/engine/indexer.d.ts.map +1 -1
  36. package/dist/engine/indexer.js +24 -25
  37. package/dist/engine/indexer.js.map +1 -1
  38. package/dist/engine/searcher.d.ts +2 -6
  39. package/dist/engine/searcher.d.ts.map +1 -1
  40. package/dist/engine/searcher.js +4 -17
  41. package/dist/engine/searcher.js.map +1 -1
  42. package/dist/engine-types.d.ts +23 -1
  43. package/dist/engine-types.d.ts.map +1 -1
  44. package/dist/engine.d.ts +50 -14
  45. package/dist/engine.d.ts.map +1 -1
  46. package/dist/engine.js +223 -36
  47. package/dist/engine.js.map +1 -1
  48. package/dist/handlers/code/edit.js +2 -2
  49. package/dist/handlers/code/edit.js.map +1 -1
  50. package/dist/handlers/code/read.d.ts.map +1 -1
  51. package/dist/handlers/code/read.js +13 -9
  52. package/dist/handlers/code/read.js.map +1 -1
  53. package/dist/handlers/guard.d.ts.map +1 -1
  54. package/dist/handlers/guard.js +3 -4
  55. package/dist/handlers/guard.js.map +1 -1
  56. package/dist/handlers/navigate.d.ts +15 -0
  57. package/dist/handlers/navigate.d.ts.map +1 -1
  58. package/dist/handlers/navigate.js +128 -25
  59. package/dist/handlers/navigate.js.map +1 -1
  60. package/dist/handlers/type-graph.d.ts +23 -0
  61. package/dist/handlers/type-graph.d.ts.map +1 -0
  62. package/dist/handlers/type-graph.js +201 -0
  63. package/dist/handlers/type-graph.js.map +1 -0
  64. package/dist/hooks/cognitive-enforcer.d.ts.map +1 -1
  65. package/dist/hooks/cognitive-enforcer.js +7 -2
  66. package/dist/hooks/cognitive-enforcer.js.map +1 -1
  67. package/dist/hybrid-engine.d.ts +92 -0
  68. package/dist/hybrid-engine.d.ts.map +1 -0
  69. package/dist/hybrid-engine.js +197 -0
  70. package/dist/hybrid-engine.js.map +1 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +45 -65
  73. package/dist/index.js.map +1 -1
  74. package/dist/parser-pool.d.ts +1 -0
  75. package/dist/parser-pool.d.ts.map +1 -1
  76. package/dist/parser-pool.js +17 -0
  77. package/dist/parser-pool.js.map +1 -1
  78. package/dist/parser.d.ts +46 -6
  79. package/dist/parser.d.ts.map +1 -1
  80. package/dist/parser.js +283 -22
  81. package/dist/parser.js.map +1 -1
  82. package/dist/repo-map.d.ts.map +1 -1
  83. package/dist/repo-map.js +10 -1
  84. package/dist/repo-map.js.map +1 -1
  85. package/dist/router.d.ts +9 -1
  86. package/dist/router.d.ts.map +1 -1
  87. package/dist/router.js +10 -2
  88. package/dist/router.js.map +1 -1
  89. package/dist/search/fastgrep-cache.d.ts +54 -0
  90. package/dist/search/fastgrep-cache.d.ts.map +1 -0
  91. package/dist/search/fastgrep-cache.js +197 -0
  92. package/dist/search/fastgrep-cache.js.map +1 -0
  93. package/dist/search/in-degree.d.ts +53 -0
  94. package/dist/search/in-degree.d.ts.map +1 -0
  95. package/dist/search/in-degree.js +70 -0
  96. package/dist/search/in-degree.js.map +1 -0
  97. package/dist/semantic-edit.d.ts.map +1 -1
  98. package/dist/semantic-edit.js +38 -4
  99. package/dist/semantic-edit.js.map +1 -1
  100. package/dist/terminal-filter.js +3 -3
  101. package/dist/terminal-filter.js.map +1 -1
  102. package/dist/utils/header-router.d.ts +22 -0
  103. package/dist/utils/header-router.d.ts.map +1 -0
  104. package/dist/utils/header-router.js +52 -0
  105. package/dist/utils/header-router.js.map +1 -0
  106. package/dist/utils/imports.d.ts.map +1 -1
  107. package/dist/utils/imports.js +5 -0
  108. package/dist/utils/imports.js.map +1 -1
  109. package/dist/utils/test-resource-registry.d.ts +7 -0
  110. package/dist/utils/test-resource-registry.d.ts.map +1 -0
  111. package/dist/utils/test-resource-registry.js +5 -0
  112. package/dist/utils/test-resource-registry.js.map +1 -0
  113. package/dist/utils/token-estimator.d.ts +13 -0
  114. package/dist/utils/token-estimator.d.ts.map +1 -0
  115. package/dist/utils/token-estimator.js +44 -0
  116. package/dist/utils/token-estimator.js.map +1 -0
  117. package/dist/utils/type-extractor.d.ts +67 -0
  118. package/dist/utils/type-extractor.d.ts.map +1 -0
  119. package/dist/utils/type-extractor.js +296 -0
  120. package/dist/utils/type-extractor.js.map +1 -0
  121. package/package.json +5 -5
  122. package/scripts/download-wasm.js +19 -5
  123. package/src/.nreki/repo-map.json +1 -0
  124. package/src/ast-navigator.ts +10 -1
  125. package/src/ast-sandbox.ts +51 -26
  126. package/src/bm25-engine.ts +295 -0
  127. package/src/compressor-foveal-cross-file.ts +385 -0
  128. package/src/compressor-foveal.ts +119 -7
  129. package/src/compressor.ts +22 -52
  130. package/src/database.ts +490 -242
  131. package/src/detect-mode.ts +55 -0
  132. package/src/engine/indexer.ts +25 -21
  133. package/src/engine/searcher.ts +105 -116
  134. package/src/engine-types.ts +88 -66
  135. package/src/engine.ts +241 -38
  136. package/src/handlers/code/edit.ts +3 -3
  137. package/src/handlers/code/read.ts +17 -13
  138. package/src/handlers/guard.ts +486 -487
  139. package/src/handlers/navigate.ts +153 -36
  140. package/src/handlers/type-graph.ts +236 -0
  141. package/src/hooks/cognitive-enforcer.ts +11 -6
  142. package/src/hybrid-engine.ts +282 -0
  143. package/src/index.ts +47 -69
  144. package/src/parser-pool.ts +15 -0
  145. package/src/parser.ts +328 -24
  146. package/src/repo-map.ts +10 -1
  147. package/src/router.ts +15 -2
  148. package/src/search/fastgrep-cache.ts +209 -0
  149. package/src/search/in-degree.ts +84 -0
  150. package/src/semantic-edit.ts +43 -9
  151. package/src/terminal-filter.ts +3 -3
  152. package/src/utils/header-router.ts +53 -0
  153. package/src/utils/imports.ts +5 -0
  154. package/src/utils/test-resource-registry.ts +16 -0
  155. package/src/utils/token-estimator.ts +43 -0
  156. package/src/utils/type-extractor.ts +301 -0
  157. package/templates/AGENTS.md +25 -46
  158. package/templates/CLAUDE.md +31 -46
  159. package/wasm/tree-sitter-c.wasm +0 -0
  160. package/wasm/tree-sitter-cpp.wasm +0 -0
  161. package/wasm/tree-sitter-java.wasm +0 -0
  162. package/wasm/tree-sitter-kotlin.wasm +0 -0
  163. package/dist/embedder.d.ts +0 -75
  164. package/dist/embedder.d.ts.map +0 -1
  165. package/dist/embedder.js +0 -173
  166. package/dist/embedder.js.map +0 -1
  167. package/dist/search/vector-index.d.ts +0 -29
  168. package/dist/search/vector-index.d.ts.map +0 -1
  169. package/dist/search/vector-index.js +0 -97
  170. package/dist/search/vector-index.js.map +0 -1
  171. package/src/embedder.ts +0 -236
  172. package/src/search/vector-index.ts +0 -111
package/CHANGELOG.md CHANGED
@@ -2,6 +2,244 @@
2
2
 
3
3
  All notable changes to NREKI will be documented in this file.
4
4
 
5
+ ## [11.2.0] - 2026-05-18
6
+
7
+ ### Added
8
+ - **Hybrid Runtime Integration (Phase 5.5.2)**: New `nreki_navigate
9
+ action="hybrid_search"` exposes the Type Ledger semantic + BM25
10
+ lexical fusion (RRF) documented in the Phase 5 paper to the
11
+ production MCP runtime. Previously only reachable via eval scripts.
12
+ - **`src/bm25-engine.ts`**: BM25 lexical retrieval migrated from
13
+ `scripts/eval-phase5/runners/bm25-runner.ts` to production runtime.
14
+ Standard Okapi (k1=1.5, b=0.75); code-aware tokenization (PascalCase
15
+ / snake_case / camelCase decomposition, 2-char minimum). Lazy
16
+ in-memory index built on first `search()`; invalidated on
17
+ `indexFile()` / `indexDirectory()` mutations.
18
+ - **`src/hybrid-engine.ts`**: Hybrid RRF engine. Calls NREKI semantic
19
+ search + BM25 in parallel, fuses file rankings via Reciprocal Rank
20
+ Fusion (k=60), deterministic tie-break by `localeCompare`. Returns
21
+ unified results with `source: "nreki" | "bm25" | "both"` origin
22
+ tracking.
23
+ - **Foveal compression on BM25-only files (Reto 5)**: Files surfaced
24
+ exclusively by BM25 (≥100 lines) receive `tfcCompress` with a focus
25
+ symbol extracted from the query. Aligns with the
26
+ `compressor-foveal.ts:109` small-file bypass threshold to avoid
27
+ no-op compressor calls.
28
+ - **`NrekiEngine.getHybridEngine()` + `invalidateHybridIndex()`**:
29
+ lazy-construction of the hybrid stack; BM25 cache auto-invalidates
30
+ on `indexFile()` and `indexDirectory()`.
31
+ - **`BM25EngineOptions.excludedDirs`**: configurable directory exclusion
32
+ for projects with non-standard build/fixture roots. Default excludes
33
+ `node_modules`, `.git`, `.nreki`, `dist`, `build`, `coverage`,
34
+ `.next`, `__pycache__`, `corpus`, plus any dot-prefixed directory.
35
+ - **`scripts/benchmark-hybrid-smoke.ts`**: reproducible dogfood smoke
36
+ bench (`action="search"` vs `action="hybrid_search"`) on NREKI's own
37
+ `src/`. Run with `npx tsx scripts/benchmark-hybrid-smoke.ts`.
38
+ - **`docs/sprint-6.5-empirical.md`**: honest Sprint 6.5 empirical
39
+ findings + N=99 PolyBench re-bench deferral disclosure.
40
+ - **28 new tests**: `tests/bm25-engine.test.ts` (16) +
41
+ `tests/hybrid-engine.test.ts` (12). Full suite: 1384 pass.
42
+
43
+ ### Changed
44
+ - **`nreki_navigate` action enum**: `hybrid_search` added to
45
+ `src/index.ts` MCP schema and `src/router.ts` switch dispatch.
46
+ Existing actions (`search`, `fast_grep`, `definition`, `references`,
47
+ `outline`, `map`, `prepare_refactor`, `orphan_oracle`, `type_shape`,
48
+ `type_graph`) preserved unchanged — backward compatible.
49
+
50
+ ### Internal
51
+ - Hybrid retrieval previously available only in eval scripts
52
+ (`scripts/eval-phase5/runners/hybrid-runner.ts`). The eval runner
53
+ remains unchanged for paper reproducibility; production now uses
54
+ the migrated `src/hybrid-engine.ts`.
55
+ - "El mejor que se quede" architectural decision: hybrid USES the
56
+ underlying retrievers, does NOT replace them. Users still pick
57
+ `search` for pure topological queries (lower tokens) and
58
+ `hybrid_search` for accuracy-critical retrieval (≈3-5x tokens, per
59
+ Sprint 6.4 paper; dogfood smoke shows up to ~3x on tiny corpora).
60
+
61
+ ### Empirical findings (honest)
62
+ - **Dogfood smoke (73 files, 8 queries)**: `search` recall 60% vs
63
+ `hybrid_search` recall 60% (Δ=0pp). Hybrid pays 207% token overhead
64
+ with no recall gain on this micro-corpus. This is expected — the
65
+ Sprint 6.4 paper's +15pp FHR gain was measured on N=99 diverse
66
+ external repos, not on a single internal codebase.
67
+ - **Sprint 6.5 N=99 PolyBench re-benchmark: DEFERRED**. The directive
68
+ required this empirical step; this commit ships without it. Reason:
69
+ the eval orchestrator (`scripts/eval-phase5/orchestrate.ts`)
70
+ constructs its own runners and would need re-plumbing to invoke the
71
+ migrated `HybridEngine`; the bench itself is multi-hour. Tracked as
72
+ Sprint 6.5.1 in `docs/sprint-6.5-empirical.md`.
73
+ - **Token cost is real, not noise**. BM25 returns file-level payloads;
74
+ even with foveal compression on BM25-only files ≥100 lines, hybrid
75
+ hits cost more than NREKI-only AST chunks.
76
+
77
+ ### Wall-clock honesty
78
+ - Original Pipipi estimate: 4 hours. Actual: ~3 hours implementation
79
+ + path-rooting bug discovery + dot-dir corpus walk bug discovery +
80
+ bench-corpus hang debug. Closer to the directive's "1-2 días"
81
+ honest estimate than the 4-hour Pipipi figure.
82
+
83
+ ## [11.1.0] - 2026-05-18
84
+
85
+ ### Added
86
+ - **Real BPE tokenizer**: tiktoken cl100k_base integration via
87
+ `src/utils/token-estimator.ts`. Replaces chars/3.5 heuristic for
88
+ token cost estimation. Heuristic preserved as fallback (zero-downtime).
89
+ Empirical verification: 72-file benchmark 276,516 raw → 60,732
90
+ compressed = 78% savings sostained con real BPE tokenizer.
91
+ - **Defense-in-depth conditional compression**: compressor-level
92
+ bypass for files <100 lines OR <1024 bytes (`src/compressor-foveal.ts`
93
+ :102-123). Complements existing handler-level bypass
94
+ (`src/handlers/code/read.ts:84`). Zero overhead instances confirmed
95
+ empirically across all file-size buckets (72 files tested).
96
+ - **`bySize` SessionReport field**: per-file-size tracking buckets
97
+ (<100L, 100-299L, 300-999L, ≥1000L) in `engine.getSessionReport()`
98
+ output. Enables empirical analysis of compression effectiveness by
99
+ file size class.
100
+ - **Empirical benchmark scripts**: `scripts/benchmark-token-economics.ts`
101
+ + `scripts/simulate-claude-session.ts` for ongoing verification.
102
+ - **Token economics empirical verify documentation**:
103
+ `docs/token-economics-empirical-verify.md` documents Sprint Empirical
104
+ Verify findings honest including methodology caveats.
105
+
106
+ ### Changed
107
+ - **Template adelgazamiento**:
108
+ `templates/CLAUDE.md` 3,965 → 1,670 bytes (495 BPE tokens, ~58% reduction)
109
+ `templates/AGENTS.md` 3,885 → 1,253 bytes (372 BPE tokens, ~68% reduction)
110
+ Combined 867 BPE tokens (~61% reduction, ~8% over Apr 2026 target
111
+ of 800 combined tokens, honest disclosure of remaining gap).
112
+ - **Token cost estimation accuracy**: real BPE tokenizer measurement
113
+ replaces direccional-but-imprecise chars/3.5 heuristic. Heuristic
114
+ validated within ~10% magnitude accuracy of real BPE empírico.
115
+
116
+ ### Internal
117
+ - Sprint Empirical Token Economics Verify executed pre-Phase 5.5.1:
118
+ - 72-file per-bucket benchmark
119
+ - 45-file session simulation
120
+ - Zero overhead instances confirmed empírico
121
+ - Claim "29 calls vs 5-7 without TFC-Pro" marked UNVERIFIABLE
122
+ (no measurement code exists)
123
+ - Reto 8 Causal Program Slicing Phase 0 design committed
124
+ (`docs/adrs/reto-8-causal-slicing/`, strategic pause Nova Phase 8.2-8.5
125
+ prerequisite for Reto 7 Compiler-Hijacking)
126
+
127
+ ### Deferred
128
+ - **Phase 5.5.2**: Hybrid runtime integration (Reto 5).
129
+ Migrate `scripts/eval-phase5/runners/hybrid-runner.ts` →
130
+ `src/hybrid-engine.ts`. Foveal compression on BM25-fused files.
131
+ - **Phase 5.5.3**: Comparative head-to-head benchmarks
132
+ (NREKI vs Corsa, Zilliz Claude Context, codebase-memory-mcp, GitNexus).
133
+ Currently disclosed as research gap.
134
+
135
+ ## [11.0.2] - 2026-05-16
136
+
137
+ Mini-sprint closure for v11.0.1 cabos sueltos. No new features; only
138
+ empirical closure of v11.0.1 measurement, query, and paper deliverables.
139
+
140
+ ### Added
141
+
142
+ - **Corpus measurement consolidation**: `docs/paper-phase5/corpus-measurements-v11.0.1.json` ships full distribution stats (n_files, aggregate %, p50, p95) for six OSS corpora — Spring Boot Java (748 files, 81.3% aggregate), Square Okio Kotlin (306 files, 80.8%), nowinandroid app/ Kotlin Android (16 files, 89.4%), abseil-cpp absl/strings .cc (103 files, 89.9%), redis src/ C (133 files, 92.4%), abseil-cpp absl/strings .h C++-routed (66 files, 88.7%). Closes the Phase 7 abort from v11.0.1 sprint where Node was not installed in WSL2.
143
+ - **Paper compile reproducibility**: `scripts/compile-paper-pdf.mjs` re-compiles the Phase 5 paper PDF via Chrome headless + Skia/PDF, matching the v11.0.0/v11.0.1 PDF metadata profile. `docs/paper-phase5/paper-style.css` provides academic-paper rendering. `marked` added to devDependencies.
144
+
145
+ ### Fixed
146
+
147
+ - **typedef C variants in `C_QUERY`** (v11.0.1 empirical discrepancy): `typedef struct Foo Foo;` previously produced only a `@class` chunk for the inner struct because chunk dedup dropped the outer typedef match with the same symbol name. Added `type_definition` variants for named-struct and named-enum typedef aliases plus function-pointer typedef (`typedef int (*callback_t)(int)`). Dedup now allows a strictly-containing chunk with a different `nodeType` to replace the inner chunk (preserves equal-range dedup unchanged).
148
+
149
+ ### Changed
150
+
151
+ - Phase 5 paper Section 6.4 (all three drafts: arxiv, arxiv-restored, submission) updated to v11.0.1 12-binding active grammar set (adds `.c` and `.h` header routing), retained three-capability-gate disclosure, plus corpus measurement table sourced from `corpus-measurements-v11.0.1.json` with explicit bias disclosure (well-maintained OSS reference repos; distribution exposed via p50/p95). PDF re-compiled (HeadlessChrome 148).
152
+
153
+ ## [11.0.1] - 2026-05-16
154
+
155
+ ### Added
156
+
157
+ - **C language activation**: tree-sitter-c@0.20.7 grammar activated for `.c` files. Captures function definitions (including pointer-returning functions via nested `pointer_declarator` variants), struct/union/enum/typedef declarations, and forward declarations. C99 designated initializers parse without ERROR nodes.
158
+
159
+ - **Header file routing (`.h`)**: dynamic detection of C vs C++ at parse time. Headers containing C++ markers (template, namespace, class, `#ifdef __cplusplus`, `extern "C"`, scope-resolution `::`, access specifiers) route to tree-sitter-cpp grammar; pure C headers route to tree-sitter-c grammar. Default: C grammar (smaller WASM load: 792 KB vs 4.6 MB). Empirically verified against abseil-cpp/absl/strings/ (66 .h files, 870 chunks produced vs 0 pre-fix; 88.7% aggregate compression savings).
160
+
161
+ - **Cross-language compression measurement script**: `scripts/measure-cross-language-savings.mjs` (with README) for empirical corpus benchmarking.
162
+
163
+ - **Corpus measurement data**: production corpora measured — Spring Boot (Java, via WSL2), Square Okio (Kotlin, 39 files, 82.6% savings), Abseil (C++ .cc 103 files 89.9% + .h 66 files 88.7%), Redis (C, pending).
164
+
165
+ ### Fixed
166
+
167
+ - **`.c` and `.h` files invisible to parser** (silent activation gap from v11.0.0): LANGUAGE_CONFIGS missing entries caused parser to return 0 chunks with `language: "unsupported"` for C source and header files despite tree-sitter-c WASM being bundled. Confirmed empirically against Abseil headers (66 .h files: 0→870 chunks post-fix).
168
+
169
+ - **extractName regex fallback C keyword safety** (Furia 41 Adicional 1, Furia 42 Adicional 2): semantic-edit fallback regex captured first word of C function declarations ("void", "int", "static") as symbol name when AST extraction failed. Added explicit C/C++ pattern with keyword denylist; keyword matches return empty string.
170
+
171
+ - **C pointer declarator blindness** (Furia 42 Adicional 1): C functions returning pointers (`char *strdup`, `int **alloc`) were invisible to symbol extraction because `function_declarator` nests inside `pointer_declarator`. Added 3 declarator variant captures to C_QUERY.
172
+
173
+ ### Changed
174
+
175
+ - README "AST parser coverage" table extended for C row with `.h` header-routing footnote.
176
+ - package.json description updated to include C in parser-level support list.
177
+ - CPP_QUERY used for .h files routed to C++ grammar (was incorrectly using C_QUERY for all .h files).
178
+
179
+ ### Known Limitations
180
+
181
+ - **Android XML / Gradle Groovy NOT indexed**: tracked as issue #4. v11.0.2 target.
182
+ - **download-wasm.js SHA-256 checksums**: tracked as issue #5.
183
+ - **chunks table language column**: breaking migration tracked as issue #6.
184
+
185
+ ## [11.0.0] - 2026-05-15
186
+
187
+ ### BREAKING CHANGES
188
+
189
+ - **Removed**: ONNX embeddings dependency (`@xenova/transformers`). Users relying on embedding-based retrieval should migrate to Hybrid RRF (NREKI Type Ledger + BM25 file-level fusion) or to an external dense embedding provider (`voyage-code-3`, OpenAI, etc.). The removed embedding code was unused by NREKI's primary retrieval path and added substantial package weight and runtime memory risk. Migration path for local evaluation workflows: `hybrid-rrf` runner.
190
+
191
+ ### Added
192
+
193
+ - **Hybrid RRF retrieval**: Late-fusion file-level RRF combining NREKI Type Ledger + BM25. See `scripts/eval-phase5/runners/hybrid-runner.ts`.
194
+ - **Multi-language parser activation**: tree-sitter grammars for Kotlin (.kt / .kts), Java (.java), and C++ (.cpp / .cc / .cxx / .hpp / .hh / .hxx) activated via tree-sitter-wasms bundle. Targets Android development (Kotlin app + Java legacy + C++ NDK) and the broader JVM / native cross-platform ecosystem. Files in these languages now receive foveal compression, semantic-edit syntactic validation, and inclusion in the retrieval index.
195
+ - **DEFAULT_EXTENSIONS retroactive fix**: indexer FS watcher now includes .mjs / .cjs / .mts / .cts which were parser-supported since v10.12.0 but never reached the walker. Plus the 9 new Kotlin/Java/C++ extensions.
196
+ - **Type Ledger pollution guard**: extractTypeIO now gated to TypeScript/JavaScript family extensions. Prevents phantom type extractions from Kotlin/Java/C++ regex matches from polluting symbol_io and corrupting TFC-Pro cross-file injection, type-graph queries, and in-degree ranking.
197
+ - **Activation smoke tests**: tests/parser-kotlin.test.ts, tests/parser-java.test.ts, tests/parser-cpp.test.ts, plus tests/parser-multilang-smoke.test.ts as regression guard against tree-sitter-wasms grammar upgrades.
198
+ - **Adversarial methodology**: adversarial AI-in-the-loop auditing protocol documented in the Phase 5 paper draft Section 3.5.
199
+ - **Bonferroni-corrected significance testing**: bootstrap CI95% + Bonferroni `alpha=0.01` for multi-hypothesis evaluation.
200
+ - **Phase 5 paper artifacts**: submission-ready paper draft and anonymous supplementary archive under `docs/paper-phase5/`.
201
+ - **Cross-file mode detection**: `src/detect-mode.ts` module, preserving mode behavior while isolating test imports from CLI side effects.
202
+ - **Materia Oscura rescue disclosure**: 4 tasks where Hybrid RRF reached Rank-1 despite NREKI Top-10 miss; 10 tasks where Hybrid RRF reached Rank-1 despite neither standalone retriever being Rank-1.
203
+
204
+ ### Changed
205
+
206
+ - **Sprint 6.4 evaluation**: N=99 PolyBench-Verified TypeScript tribunal verified Hybrid RRF FHR 0.566 vs NREKI 0.414 vs BM25 0.374; 9/10 hybrid deltas survive Bonferroni correction.
207
+ - README "Language support" section renamed to "Language support (Validation + Auto-heal)" to disambiguate LSP-backed capabilities from AST parser coverage.
208
+ - New "AST parser coverage" section documents foveal + retrieval + syntax-check capability for the 10-language active parser set with explicit Type Ledger TS-only disclosure.
209
+ - Phase 5 paper Section 6.4 updated: active parser languages from 7 to 10. Empirical Phase 5 claims unchanged (TypeScript N=99 PolyBench-Verified remains the entire evaluation corpus).
210
+ - **Test lifecycle hooks**: WASM/engine resources now have release-safe teardown paths for Vitest forks, covering `ASTParser`, `AstSandbox`, `ParserPool`, `NrekiDB`, and `NrekiEngine`.
211
+ - **Evaluation orchestration**: `hybrid-rrf` is available via `--runners`; default runner set remains backward-compatible with the seven historical report runners.
212
+
213
+ ### Known Limitations
214
+
215
+ - Cross-file dependency graph for Kotlin/Java/C++ files is intra-file only. Import statements not yet parsed for repo-map edges. Cross-file import resolution tracked as v11.0.x.1.
216
+ - Type Ledger (TypeScript compiler-derived architectural deps) remains TypeScript-specific by design. Multi-language Type Ledger tracked as Phase 8 roadmap.
217
+ - LSP auto-heal unchanged: only TS/JS/Go/Python receive codeAction-based auto-heal. Kotlin/Java/C++ surface syntax errors via tree-sitter ERROR / MISSING detection without auto-heal attempts.
218
+ - .h files (ambiguous C vs C++) are excluded from default C++ activation. Users with C++ projects using .h for headers can opt-in via config.extensions override.
219
+
220
+ ### Deferred (tracked)
221
+
222
+ - download-wasm.js SHA-256 checksum verification (issue #TBD)
223
+ - Cross-file imports for Kotlin/Java/C++ (issue #TBD)
224
+ - README test count badge update 783 → current (TECH_DEBT)
225
+ - semantic-edit.ts:98 .tsx → "typescript" (bug, out of scope)
226
+
227
+ ### Fixed
228
+
229
+ - **WASM Tree-sitter cleanup**: hygienic parser/query teardown prevents cumulative WASM allocations from surviving test-file boundaries.
230
+ - **Cached prepared statements**: cached SQL statement cleanup eliminates sql.js WASM refcount overflow.
231
+ - **Child process task isolation**: per-task evaluation isolation protects long PolyBench runs.
232
+ - **Tree-sitter SDK pin**: MCP SDK `1.23.1` fixes silent tool drops in strict MCP clients.
233
+ - **CSS parser gaps**: at-rules + focus normalization asymmetry.
234
+ - **Cognitive Enforcer deadlock**: Chronos recovery via `_nreki_bypass`.
235
+ - **Backward compatibility test OOM**: `backward-compat.test.ts` now uses a tiny temp workspace instead of scanning the full repository root for definition/reference tests.
236
+
237
+ ### Internal
238
+
239
+ - Working tree covers Sprint 4.7 through Sprint 6.4 plus Phase 5 paper artifacts.
240
+ - Trilateral methodology: 40 adversarial rounds completed pre-release.
241
+ - Anti-silent-failure disclosures retained for methodology, statistics, reliability, token cost, and case-study claims.
242
+
5
243
  ## [10.19.0] - 2026-05-05
6
244
 
7
245
  # v10.19.0 — Zombie shutdown fix (parent watchdog + signal handlers)
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  <img src="https://img.shields.io/npm/v/@ruso-0/nreki?style=for-the-badge&color=blue" alt="npm version">
5
5
  <img src="https://img.shields.io/badge/Tests-783-brightgreen?style=for-the-badge" alt="783 Tests">
6
6
  <img src="https://img.shields.io/badge/AHI-9.7%2F10-brightgreen?style=for-the-badge" alt="AHI 9.7/10">
7
- <img src="https://img.shields.io/badge/Languages-TS%20%7C%20JS%20%7C%20Go%20%7C%20Python-blue?style=for-the-badge" alt="Multi-language">
7
+ <img src="https://img.shields.io/badge/Languages-TS%20%7C%20JS%20%7C%20Go%20%7C%20Python%20%7C%20Kotlin%20%7C%20Java%20%7C%20C%2B%2B-blue?style=for-the-badge" alt="Multi-language">
8
8
  <img src="https://img.shields.io/badge/Cloud-Zero-orange?style=for-the-badge" alt="Zero Cloud">
9
9
  <img src="https://img.shields.io/badge/License-Apache_2.0-yellow?style=for-the-badge" alt="Apache 2.0">
10
10
  </p>
@@ -53,15 +53,71 @@ Three tools (`nreki_navigate`, `nreki_code`, `nreki_guard`), 23 actions, 4 langu
53
53
  - **Defect radar + ghost oracle.** Four inline detectors and a 0-ext-refs tagger run during `outline` - free signals, no extra tool call.
54
54
  - **Executable engrams.** Pin insights to symbols. Engrams prefixed `ASSERT` survive AST mutation; everything else invalidates on body change so memory can't go stale.
55
55
 
56
- ## Language support
56
+ ## Language support (Validation + Auto-heal)
57
57
 
58
58
  | Language | Validation | Auto-heal |
59
59
  |----------|------------|-----------|
60
60
  | TypeScript / JavaScript | Full (TS Compiler API) | TS CodeFix API |
61
- | Go | gopls LSP sidecar | codeAction (atomic) |
62
- | Python | pyright LSP sidecar | codeAction (atomic) |
63
-
64
- ## Docs & links
61
+ | Go | gopls LSP sidecar | codeAction (atomic) |
62
+ | Python | pyright LSP sidecar | codeAction (atomic) |
63
+
64
+ ## AST parser coverage
65
+
66
+ NREKI's tree-sitter parser layer indexes additional languages for
67
+ foveal compression + symbol retrieval + semantic-edit syntactic
68
+ validation. These languages do **not** have LSP sidecars and
69
+ therefore receive no auto-heal; otherwise their files participate
70
+ in the retrieval index identically to TypeScript files.
71
+
72
+ | Language | Extensions | Parser | Foveal | Syntax check | LSP auto-heal | Type Ledger |
73
+ |-------------|-----------------------------------------|--------|--------|--------------|---------------|-------------|
74
+ | TypeScript | .ts .tsx .mts .cts | ✓ | ✓ | ✓ | ✓ (tsc) | ✓ |
75
+ | JavaScript | .js .jsx .mjs .cjs | ✓ | ✓ | ✓ | ✓ (tsc) | ✓ |
76
+ | Python | .py | ✓ | ✓ | ✓ | ✓ (pyright) | — |
77
+ | Go | .go | ✓ | ✓ | ✓ | ✓ (gopls) | — |
78
+ | CSS | .css | ✓ | ✓ | ✓ | — | — |
79
+ | JSON | .json | ✓ | ✓ | ✓ | — | — |
80
+ | HTML | .html | ✓ | ✓ | ✓ | — | — |
81
+ | **Kotlin** | .kt .kts | ✓ | ✓ | ✓ | — | — |
82
+ | **Java** | .java | ✓ | ✓ | ✓ | — | — |
83
+ | **C++** | .cpp .cc .cxx .hpp .hh .hxx .h* | ✓ | ✓ | ✓ | — | — |
84
+ | **C** | .c .h* | ✓ | ✓ | ✓ | — | — |
85
+
86
+ Kotlin / Java / C++ / C activation in v11.0.x covers Android development
87
+ (Kotlin app layer + Java legacy + C++ NDK native layer + C NDK code) and the
88
+ broader JVM / native cross-platform ecosystem.
89
+
90
+ > *`.h` headers are routed at parse time: headers containing
91
+ > C++ markers (template, namespace, class, `#ifdef __cplusplus`)
92
+ > use the C++ grammar; pure C headers use the C grammar. Default
93
+ > to C grammar for ambiguous cases.
94
+
95
+ **Known limitation (v11.0.x):** cross-file import detection for
96
+ Kotlin / Java / C++ / C is not yet implemented. Repo-map dependency edges
97
+ for files in these languages are intra-file only until v11.0.x.1.
98
+
99
+ ### Known limitations (v11.0.1)
100
+
101
+ **Android XML manifests and Gradle build files are NOT yet indexed.**
102
+ AndroidManifest.xml, resource XMLs (`res/layout/`, `res/values/`, etc.),
103
+ and Gradle build scripts (`build.gradle` Groovy DSL) coverage is tracked
104
+ for v11.0.2 (see issue #4).
105
+
106
+ **WASM checksum verification deferred.** Upstream grammar upgrades may not
107
+ propagate to vendor `wasm/` directory due to skip-if-exists logic in
108
+ `scripts/download-wasm.js`. SHA-256 checksum verification tracked as issue #5.
109
+
110
+ **chunks table lacks language column.** Retrieval language-aware scoring
111
+ requires runtime path extension filtering. Breaking migration tracked as
112
+ issue #6 (coordinated with v11.0.2 XML activation due to noise risk
113
+ amplification).
114
+
115
+ **Type Ledger (cross-file architectural dependency mapping) remains
116
+ TypeScript-specific by design** - it relies on TypeScript compiler-
117
+ derived type information. Multi-language Type Ledger expansion is
118
+ tracked under the Phase 8 roadmap.
119
+
120
+ ## Docs & links
65
121
 
66
122
  - **[CHANGELOG.md](CHANGELOG.md)** - full version history (every patch, every release, every test count).
67
123
  - **[templates/CLAUDE.md](templates/CLAUDE.md)** - optimized instructions auto-installed by `npx @ruso-0/nreki init`.
@@ -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;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"}
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;AA2O9G,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"}
@@ -11,7 +11,16 @@ import { shouldProcess } from "./utils/file-filter.js";
11
11
  import { readSource } from "./utils/read-source.js";
12
12
  import { escapeRegExp } from "./utils/imports.js";
13
13
  // ─── Constants ──────────────────────────────────────────────────────
14
- const SUPPORTED_EXTENSIONS = new Set([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts", ".py", ".go", ".css", ".json", ".html"]);
14
+ const SUPPORTED_EXTENSIONS = new Set([
15
+ ".ts", ".tsx", ".mts", ".cts",
16
+ ".js", ".jsx", ".mjs", ".cjs",
17
+ ".py", ".go",
18
+ ".css", ".json", ".html",
19
+ ".kt", ".kts",
20
+ ".java",
21
+ ".cpp", ".cc", ".cxx", ".hpp", ".hh", ".hxx",
22
+ ".c", ".h",
23
+ ]);
15
24
  const IGNORE_DIRS = new Set([
16
25
  "node_modules", "dist", "build", ".git", "coverage",
17
26
  ".next", "__pycache__", ".nreki",
@@ -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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"}
@@ -36,6 +36,7 @@ export declare class AstSandbox {
36
36
  constructor(wasmDir?: string);
37
37
  /** Initialize the Tree-sitter WASM runtime. Must be called once. */
38
38
  initialize(): Promise<void>;
39
+ shutdown(): void;
39
40
  /** Get supported language names. */
40
41
  getSupportedLanguages(): string[];
41
42
  /** Detect language from a file extension. */
@@ -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;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"}
1
+ {"version":3,"file":"ast-sandbox.d.ts","sourceRoot":"","sources":["../src/ast-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,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;AAiDD,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;IAO5B,oEAAoE;IAC9D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,QAAQ,IAAI,IAAI;IAQhB,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"}
@@ -13,6 +13,7 @@ import path from "path";
13
13
  import { fileURLToPath } from "url";
14
14
  import { safeParse } from "./utils/safe-parse.js";
15
15
  import { ParserPool } from "./parser-pool.js";
16
+ import { registerTestResource } from "./utils/test-resource-registry.js";
16
17
  // ─── Language Mapping ────────────────────────────────────────────────
17
18
  const LANGUAGE_MAP = {
18
19
  typescript: "tree-sitter-typescript.wasm",
@@ -23,6 +24,10 @@ const LANGUAGE_MAP = {
23
24
  css: "tree-sitter-css.wasm",
24
25
  json: "tree-sitter-json.wasm",
25
26
  html: "tree-sitter-html.wasm",
27
+ kotlin: "tree-sitter-kotlin.wasm",
28
+ java: "tree-sitter-java.wasm",
29
+ cpp: "tree-sitter-cpp.wasm",
30
+ c: "tree-sitter-c.wasm",
26
31
  };
27
32
  /** Map file extensions to language names. */
28
33
  const EXT_TO_LANGUAGE = {
@@ -39,6 +44,17 @@ const EXT_TO_LANGUAGE = {
39
44
  ".css": "css",
40
45
  ".json": "json",
41
46
  ".html": "html",
47
+ ".kt": "kotlin",
48
+ ".kts": "kotlin",
49
+ ".java": "java",
50
+ ".cpp": "cpp",
51
+ ".cc": "cpp",
52
+ ".cxx": "cpp",
53
+ ".hpp": "cpp",
54
+ ".hh": "cpp",
55
+ ".hxx": "cpp",
56
+ ".c": "c",
57
+ ".h": "c",
42
58
  };
43
59
  // ─── AstSandbox ──────────────────────────────────────────────────────
44
60
  export class AstSandbox {
@@ -52,6 +68,7 @@ export class AstSandbox {
52
68
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
53
69
  this.wasmDir = wasmDir ?? path.join(__dirname, "..", "wasm");
54
70
  this.pool = new ParserPool(4);
71
+ registerTestResource(this);
55
72
  }
56
73
  /** Initialize the Tree-sitter WASM runtime. Must be called once. */
57
74
  async initialize() {
@@ -64,6 +81,13 @@ export class AstSandbox {
64
81
  }
65
82
  return this.initGate;
66
83
  }
84
+ shutdown() {
85
+ this.pool.shutdown();
86
+ this.languageCache.clear();
87
+ this.initialized = false;
88
+ this.initGate = null;
89
+ this.loadGate = Promise.resolve();
90
+ }
67
91
  /** Get supported language names. */
68
92
  getSupportedLanguages() {
69
93
  return Object.keys(LANGUAGE_MAP);
@@ -1 +1 @@
1
- {"version":3,"file":"ast-sandbox.js","sourceRoot":"","sources":["../src/ast-sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-sandbox.js","sourceRoot":"","sources":["../src/ast-sandbox.ts"],"names":[],"mappings":"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"}