ralph-hero-knowledge-index 0.1.40 → 0.1.41

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 (44) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.mcp.json +1 -1
  3. package/benchmark/results-2026-05-13.tsv +2 -0
  4. package/coverage/coverage-summary.json +4 -3
  5. package/coverage/lcov-report/index.html +31 -286
  6. package/coverage/lcov-report/{chunker.ts.html → src/chunker.ts.html} +17 -17
  7. package/coverage/lcov-report/{config.ts.html → src/config.ts.html} +10 -10
  8. package/coverage/lcov-report/{db.ts.html → src/db.ts.html} +38 -38
  9. package/coverage/lcov-report/{embedder.ts.html → src/embedder.ts.html} +236 -20
  10. package/coverage/lcov-report/{file-scanner.ts.html → src/file-scanner.ts.html} +21 -21
  11. package/coverage/lcov-report/{format.ts.html → src/format.ts.html} +10 -10
  12. package/coverage/lcov-report/{generate-indexes.ts.html → src/generate-indexes.ts.html} +10 -10
  13. package/coverage/lcov-report/{graph-builder.ts.html → src/graph-builder.ts.html} +10 -10
  14. package/coverage/lcov-report/{graph-tools.ts.html → src/graph-tools.ts.html} +10 -10
  15. package/coverage/lcov-report/{hybrid-search.ts.html → src/hybrid-search.ts.html} +10 -10
  16. package/coverage/lcov-report/{ignore.ts.html → src/ignore.ts.html} +20 -20
  17. package/coverage/lcov-report/src/index.html +386 -0
  18. package/coverage/lcov-report/{index.ts.html → src/index.ts.html} +10 -10
  19. package/coverage/lcov-report/{llm-client.ts.html → src/llm-client.ts.html} +10 -10
  20. package/coverage/lcov-report/{parser.ts.html → src/parser.ts.html} +35 -35
  21. package/coverage/lcov-report/{reindex.ts.html → src/reindex.ts.html} +567 -135
  22. package/coverage/lcov-report/{reranker.ts.html → src/reranker.ts.html} +10 -10
  23. package/coverage/lcov-report/src/scripts/index.html +116 -0
  24. package/coverage/lcov-report/src/scripts/verify-tiers.ts.html +406 -0
  25. package/coverage/lcov-report/{search.ts.html → src/search.ts.html} +20 -20
  26. package/coverage/lcov-report/{traverse.ts.html → src/traverse.ts.html} +10 -10
  27. package/coverage/lcov-report/{vector-search.ts.html → src/vector-search.ts.html} +26 -26
  28. package/coverage/lcov.info +673 -493
  29. package/dist/embedder.d.ts +22 -0
  30. package/dist/embedder.js +69 -0
  31. package/dist/embedder.js.map +1 -1
  32. package/dist/reindex.js +132 -12
  33. package/dist/reindex.js.map +1 -1
  34. package/dist/scripts/verify-tiers.d.ts +2 -0
  35. package/dist/scripts/verify-tiers.js +92 -0
  36. package/dist/scripts/verify-tiers.js.map +1 -0
  37. package/evals/golden-queries.json +48 -0
  38. package/package.json +3 -2
  39. package/scripts/eval-retrieval.ts +10 -9
  40. package/src/__tests__/embedder.test.ts +105 -3
  41. package/src/__tests__/reindex.test.ts +185 -54
  42. package/src/embedder.ts +72 -0
  43. package/src/reindex.ts +166 -22
  44. package/src/scripts/verify-tiers.ts +107 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ralph-knowledge",
3
- "version": "0.1.40",
3
+ "version": "0.1.41",
4
4
  "description": "Knowledge graph for ralph-hero: semantic search, relationship traversal, and document indexing across thoughts/ documents. Optional companion to ralph-hero.",
5
5
  "author": {
6
6
  "name": "Chad Dubiel",
package/.mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "ralph-knowledge": {
4
4
  "command": "npx",
5
- "args": ["-y", "ralph-hero-knowledge-index@0.1.40"]
5
+ "args": ["-y", "ralph-hero-knowledge-index@0.1.41"]
6
6
  }
7
7
  }
8
8
  }
@@ -0,0 +1,2 @@
1
+ date doc_count chunk_count wall_clock_s peak_heap_used_mb peak_rss_mb peak_external_mb threshold_pass notes
2
+ 2026-05-13 50 240 5.35 38.8 579.9 28 true ok
@@ -1,8 +1,8 @@
1
- {"total": {"lines":{"total":1307,"covered":1218,"skipped":0,"pct":93.19},"statements":{"total":1428,"covered":1317,"skipped":0,"pct":92.22},"functions":{"total":200,"covered":186,"skipped":0,"pct":93},"branches":{"total":842,"covered":698,"skipped":0,"pct":82.89},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":"Unknown"}}
1
+ {"total": {"lines":{"total":1403,"covered":1275,"skipped":0,"pct":90.87},"statements":{"total":1534,"covered":1381,"skipped":0,"pct":90.02},"functions":{"total":208,"covered":191,"skipped":0,"pct":91.82},"branches":{"total":901,"covered":734,"skipped":0,"pct":81.46},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
2
2
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/chunker.ts": {"lines":{"total":91,"covered":85,"skipped":0,"pct":93.4},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":94,"covered":88,"skipped":0,"pct":93.61},"branches":{"total":45,"covered":39,"skipped":0,"pct":86.66}}
3
3
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/config.ts": {"lines":{"total":34,"covered":32,"skipped":0,"pct":94.11},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":36,"covered":34,"skipped":0,"pct":94.44},"branches":{"total":31,"covered":31,"skipped":0,"pct":100}}
4
4
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/db.ts": {"lines":{"total":119,"covered":117,"skipped":0,"pct":98.31},"functions":{"total":31,"covered":31,"skipped":0,"pct":100},"statements":{"total":125,"covered":122,"skipped":0,"pct":97.6},"branches":{"total":78,"covered":68,"skipped":0,"pct":87.17}}
5
- ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/embedder.ts": {"lines":{"total":32,"covered":32,"skipped":0,"pct":100},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":35,"covered":35,"skipped":0,"pct":100},"branches":{"total":24,"covered":22,"skipped":0,"pct":91.66}}
5
+ ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/embedder.ts": {"lines":{"total":55,"covered":52,"skipped":0,"pct":94.54},"functions":{"total":8,"covered":8,"skipped":0,"pct":100},"statements":{"total":60,"covered":57,"skipped":0,"pct":95},"branches":{"total":38,"covered":30,"skipped":0,"pct":78.94}}
6
6
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/file-scanner.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":19,"covered":19,"skipped":0,"pct":100},"branches":{"total":21,"covered":21,"skipped":0,"pct":100}}
7
7
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/format.ts": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}}
8
8
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/generate-indexes.ts": {"lines":{"total":97,"covered":92,"skipped":0,"pct":94.84},"functions":{"total":16,"covered":16,"skipped":0,"pct":100},"statements":{"total":108,"covered":103,"skipped":0,"pct":95.37},"branches":{"total":57,"covered":49,"skipped":0,"pct":85.96}}
@@ -13,9 +13,10 @@
13
13
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/index.ts": {"lines":{"total":112,"covered":91,"skipped":0,"pct":81.25},"functions":{"total":16,"covered":13,"skipped":0,"pct":81.25},"statements":{"total":128,"covered":105,"skipped":0,"pct":82.03},"branches":{"total":83,"covered":57,"skipped":0,"pct":68.67}}
14
14
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/llm-client.ts": {"lines":{"total":31,"covered":31,"skipped":0,"pct":100},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":33,"covered":32,"skipped":0,"pct":96.96},"branches":{"total":13,"covered":13,"skipped":0,"pct":100}}
15
15
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/parser.ts": {"lines":{"total":49,"covered":49,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":53,"covered":53,"skipped":0,"pct":100},"branches":{"total":46,"covered":41,"skipped":0,"pct":89.13}}
16
- ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/reindex.ts": {"lines":{"total":153,"covered":120,"skipped":0,"pct":78.43},"functions":{"total":11,"covered":5,"skipped":0,"pct":45.45},"statements":{"total":162,"covered":122,"skipped":0,"pct":75.3},"branches":{"total":73,"covered":46,"skipped":0,"pct":63.01}}
16
+ ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/reindex.ts": {"lines":{"total":194,"covered":157,"skipped":0,"pct":80.92},"functions":{"total":15,"covered":9,"skipped":0,"pct":60},"statements":{"total":209,"covered":164,"skipped":0,"pct":78.46},"branches":{"total":104,"covered":74,"skipped":0,"pct":71.15}}
17
17
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/reranker.ts": {"lines":{"total":42,"covered":37,"skipped":0,"pct":88.09},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":44,"covered":39,"skipped":0,"pct":88.63},"branches":{"total":22,"covered":18,"skipped":0,"pct":81.81}}
18
18
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/search.ts": {"lines":{"total":40,"covered":40,"skipped":0,"pct":100},"functions":{"total":12,"covered":12,"skipped":0,"pct":100},"statements":{"total":47,"covered":46,"skipped":0,"pct":97.87},"branches":{"total":24,"covered":23,"skipped":0,"pct":95.83}}
19
19
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/traverse.ts": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":19,"covered":18,"skipped":0,"pct":94.73},"branches":{"total":16,"covered":12,"skipped":0,"pct":75}}
20
20
  ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/vector-search.ts": {"lines":{"total":25,"covered":24,"skipped":0,"pct":96},"functions":{"total":10,"covered":9,"skipped":0,"pct":90},"statements":{"total":26,"covered":25,"skipped":0,"pct":96.15},"branches":{"total":5,"covered":5,"skipped":0,"pct":100}}
21
+ ,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/scripts/verify-tiers.ts": {"lines":{"total":32,"covered":0,"skipped":0,"pct":0},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":0,"skipped":0,"pct":0},"branches":{"total":14,"covered":0,"skipped":0,"pct":0}}
21
22
  }
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92.22% </span>
26
+ <span class="strong">90.02% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1317/1428</span>
28
+ <span class='fraction'>1381/1534</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.89% </span>
33
+ <span class="strong">81.46% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>698/842</span>
35
+ <span class='fraction'>734/901</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">93% </span>
40
+ <span class="strong">91.82% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>186/200</span>
42
+ <span class='fraction'>191/208</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.19% </span>
47
+ <span class="strong">90.87% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1218/1307</span>
49
+ <span class='fraction'>1275/1403</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,288 +79,33 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file high" data-value="chunker.ts"><a href="chunker.ts.html">chunker.ts</a></td>
83
- <td data-value="93.61" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
82
+ <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
83
+ <td data-value="92.06" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
85
85
  </td>
86
- <td data-value="93.61" class="pct high">93.61%</td>
87
- <td data-value="94" class="abs high">88/94</td>
88
- <td data-value="86.66" class="pct high">86.66%</td>
89
- <td data-value="45" class="abs high">39/45</td>
90
- <td data-value="100" class="pct high">100%</td>
91
- <td data-value="6" class="abs high">6/6</td>
92
- <td data-value="93.4" class="pct high">93.4%</td>
93
- <td data-value="91" class="abs high">85/91</td>
86
+ <td data-value="92.06" class="pct high">92.06%</td>
87
+ <td data-value="1500" class="abs high">1381/1500</td>
88
+ <td data-value="82.75" class="pct high">82.75%</td>
89
+ <td data-value="887" class="abs high">734/887</td>
90
+ <td data-value="93.17" class="pct high">93.17%</td>
91
+ <td data-value="205" class="abs high">191/205</td>
92
+ <td data-value="92.99" class="pct high">92.99%</td>
93
+ <td data-value="1371" class="abs high">1275/1371</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file high" data-value="config.ts"><a href="config.ts.html">config.ts</a></td>
98
- <td data-value="94.44" class="pic high">
99
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
97
+ <td class="file low" data-value="src/scripts"><a href="src/scripts/index.html">src/scripts</a></td>
98
+ <td data-value="0" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
100
100
  </td>
101
- <td data-value="94.44" class="pct high">94.44%</td>
102
- <td data-value="36" class="abs high">34/36</td>
103
- <td data-value="100" class="pct high">100%</td>
104
- <td data-value="31" class="abs high">31/31</td>
105
- <td data-value="100" class="pct high">100%</td>
106
- <td data-value="5" class="abs high">5/5</td>
107
- <td data-value="94.11" class="pct high">94.11%</td>
108
- <td data-value="34" class="abs high">32/34</td>
109
- </tr>
110
-
111
- <tr>
112
- <td class="file high" data-value="db.ts"><a href="db.ts.html">db.ts</a></td>
113
- <td data-value="97.6" class="pic high">
114
- <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
115
- </td>
116
- <td data-value="97.6" class="pct high">97.6%</td>
117
- <td data-value="125" class="abs high">122/125</td>
118
- <td data-value="87.17" class="pct high">87.17%</td>
119
- <td data-value="78" class="abs high">68/78</td>
120
- <td data-value="100" class="pct high">100%</td>
121
- <td data-value="31" class="abs high">31/31</td>
122
- <td data-value="98.31" class="pct high">98.31%</td>
123
- <td data-value="119" class="abs high">117/119</td>
124
- </tr>
125
-
126
- <tr>
127
- <td class="file high" data-value="embedder.ts"><a href="embedder.ts.html">embedder.ts</a></td>
128
- <td data-value="100" class="pic high">
129
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
130
- </td>
131
- <td data-value="100" class="pct high">100%</td>
132
- <td data-value="35" class="abs high">35/35</td>
133
- <td data-value="91.66" class="pct high">91.66%</td>
134
- <td data-value="24" class="abs high">22/24</td>
135
- <td data-value="100" class="pct high">100%</td>
136
- <td data-value="7" class="abs high">7/7</td>
137
- <td data-value="100" class="pct high">100%</td>
138
- <td data-value="32" class="abs high">32/32</td>
139
- </tr>
140
-
141
- <tr>
142
- <td class="file high" data-value="file-scanner.ts"><a href="file-scanner.ts.html">file-scanner.ts</a></td>
143
- <td data-value="100" class="pic high">
144
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
145
- </td>
146
- <td data-value="100" class="pct high">100%</td>
147
- <td data-value="19" class="abs high">19/19</td>
148
- <td data-value="100" class="pct high">100%</td>
149
- <td data-value="21" class="abs high">21/21</td>
150
- <td data-value="100" class="pct high">100%</td>
151
- <td data-value="2" class="abs high">2/2</td>
152
- <td data-value="100" class="pct high">100%</td>
153
- <td data-value="16" class="abs high">16/16</td>
154
- </tr>
155
-
156
- <tr>
157
- <td class="file high" data-value="format.ts"><a href="format.ts.html">format.ts</a></td>
158
- <td data-value="100" class="pic high">
159
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
160
- </td>
161
- <td data-value="100" class="pct high">100%</td>
162
- <td data-value="8" class="abs high">8/8</td>
163
- <td data-value="100" class="pct high">100%</td>
164
- <td data-value="6" class="abs high">6/6</td>
165
- <td data-value="100" class="pct high">100%</td>
166
- <td data-value="4" class="abs high">4/4</td>
167
- <td data-value="100" class="pct high">100%</td>
168
- <td data-value="6" class="abs high">6/6</td>
169
- </tr>
170
-
171
- <tr>
172
- <td class="file high" data-value="generate-indexes.ts"><a href="generate-indexes.ts.html">generate-indexes.ts</a></td>
173
- <td data-value="95.37" class="pic high">
174
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
175
- </td>
176
- <td data-value="95.37" class="pct high">95.37%</td>
177
- <td data-value="108" class="abs high">103/108</td>
178
- <td data-value="85.96" class="pct high">85.96%</td>
179
- <td data-value="57" class="abs high">49/57</td>
180
- <td data-value="100" class="pct high">100%</td>
181
- <td data-value="16" class="abs high">16/16</td>
182
- <td data-value="94.84" class="pct high">94.84%</td>
183
- <td data-value="97" class="abs high">92/97</td>
184
- </tr>
185
-
186
- <tr>
187
- <td class="file high" data-value="graph-builder.ts"><a href="graph-builder.ts.html">graph-builder.ts</a></td>
188
- <td data-value="100" class="pic high">
189
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
190
- </td>
191
- <td data-value="100" class="pct high">100%</td>
192
- <td data-value="12" class="abs high">12/12</td>
193
- <td data-value="100" class="pct high">100%</td>
194
- <td data-value="6" class="abs high">6/6</td>
195
- <td data-value="100" class="pct high">100%</td>
196
- <td data-value="2" class="abs high">2/2</td>
197
- <td data-value="100" class="pct high">100%</td>
198
- <td data-value="12" class="abs high">12/12</td>
199
- </tr>
200
-
201
- <tr>
202
- <td class="file high" data-value="graph-tools.ts"><a href="graph-tools.ts.html">graph-tools.ts</a></td>
203
- <td data-value="94.55" class="pic high">
204
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
205
- </td>
206
- <td data-value="94.55" class="pct high">94.55%</td>
207
- <td data-value="257" class="abs high">243/257</td>
208
- <td data-value="79.47" class="pct medium">79.47%</td>
209
- <td data-value="151" class="abs medium">120/151</td>
210
- <td data-value="94.11" class="pct high">94.11%</td>
211
- <td data-value="34" class="abs high">32/34</td>
212
- <td data-value="95.04" class="pct high">95.04%</td>
213
- <td data-value="242" class="abs high">230/242</td>
214
- </tr>
215
-
216
- <tr>
217
- <td class="file high" data-value="hybrid-search.ts"><a href="hybrid-search.ts.html">hybrid-search.ts</a></td>
218
- <td data-value="96.05" class="pic high">
219
- <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
220
- </td>
221
- <td data-value="96.05" class="pct high">96.05%</td>
222
- <td data-value="203" class="abs high">195/203</td>
223
- <td data-value="85.27" class="pct high">85.27%</td>
224
- <td data-value="129" class="abs high">110/129</td>
225
- <td data-value="100" class="pct high">100%</td>
226
- <td data-value="19" class="abs high">19/19</td>
227
- <td data-value="99.42" class="pct high">99.42%</td>
228
- <td data-value="174" class="abs high">173/174</td>
229
- </tr>
230
-
231
- <tr>
232
- <td class="file high" data-value="ignore.ts"><a href="ignore.ts.html">ignore.ts</a></td>
233
- <td data-value="94.73" class="pic high">
234
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
235
- </td>
236
- <td data-value="94.73" class="pct high">94.73%</td>
237
- <td data-value="19" class="abs high">18/19</td>
238
- <td data-value="91.66" class="pct high">91.66%</td>
239
- <td data-value="12" class="abs high">11/12</td>
240
- <td data-value="100" class="pct high">100%</td>
241
- <td data-value="2" class="abs high">2/2</td>
242
- <td data-value="94.11" class="pct high">94.11%</td>
243
- <td data-value="17" class="abs high">16/17</td>
244
- </tr>
245
-
246
- <tr>
247
- <td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
248
- <td data-value="82.03" class="pic high">
249
- <div class="chart"><div class="cover-fill" style="width: 82%"></div><div class="cover-empty" style="width: 18%"></div></div>
250
- </td>
251
- <td data-value="82.03" class="pct high">82.03%</td>
252
- <td data-value="128" class="abs high">105/128</td>
253
- <td data-value="68.67" class="pct medium">68.67%</td>
254
- <td data-value="83" class="abs medium">57/83</td>
255
- <td data-value="81.25" class="pct high">81.25%</td>
256
- <td data-value="16" class="abs high">13/16</td>
257
- <td data-value="81.25" class="pct high">81.25%</td>
258
- <td data-value="112" class="abs high">91/112</td>
259
- </tr>
260
-
261
- <tr>
262
- <td class="file high" data-value="llm-client.ts"><a href="llm-client.ts.html">llm-client.ts</a></td>
263
- <td data-value="96.96" class="pic high">
264
- <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
265
- </td>
266
- <td data-value="96.96" class="pct high">96.96%</td>
267
- <td data-value="33" class="abs high">32/33</td>
268
- <td data-value="100" class="pct high">100%</td>
269
- <td data-value="13" class="abs high">13/13</td>
270
- <td data-value="83.33" class="pct high">83.33%</td>
271
- <td data-value="6" class="abs high">5/6</td>
272
- <td data-value="100" class="pct high">100%</td>
273
- <td data-value="31" class="abs high">31/31</td>
274
- </tr>
275
-
276
- <tr>
277
- <td class="file high" data-value="parser.ts"><a href="parser.ts.html">parser.ts</a></td>
278
- <td data-value="100" class="pic high">
279
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
280
- </td>
281
- <td data-value="100" class="pct high">100%</td>
282
- <td data-value="53" class="abs high">53/53</td>
283
- <td data-value="89.13" class="pct high">89.13%</td>
284
- <td data-value="46" class="abs high">41/46</td>
285
- <td data-value="100" class="pct high">100%</td>
286
- <td data-value="5" class="abs high">5/5</td>
287
- <td data-value="100" class="pct high">100%</td>
288
- <td data-value="49" class="abs high">49/49</td>
289
- </tr>
290
-
291
- <tr>
292
- <td class="file medium" data-value="reindex.ts"><a href="reindex.ts.html">reindex.ts</a></td>
293
- <td data-value="75.3" class="pic medium">
294
- <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
295
- </td>
296
- <td data-value="75.3" class="pct medium">75.3%</td>
297
- <td data-value="162" class="abs medium">122/162</td>
298
- <td data-value="63.01" class="pct medium">63.01%</td>
299
- <td data-value="73" class="abs medium">46/73</td>
300
- <td data-value="45.45" class="pct low">45.45%</td>
301
- <td data-value="11" class="abs low">5/11</td>
302
- <td data-value="78.43" class="pct medium">78.43%</td>
303
- <td data-value="153" class="abs medium">120/153</td>
304
- </tr>
305
-
306
- <tr>
307
- <td class="file high" data-value="reranker.ts"><a href="reranker.ts.html">reranker.ts</a></td>
308
- <td data-value="88.63" class="pic high">
309
- <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
310
- </td>
311
- <td data-value="88.63" class="pct high">88.63%</td>
312
- <td data-value="44" class="abs high">39/44</td>
313
- <td data-value="81.81" class="pct high">81.81%</td>
314
- <td data-value="22" class="abs high">18/22</td>
315
- <td data-value="85.71" class="pct high">85.71%</td>
316
- <td data-value="7" class="abs high">6/7</td>
317
- <td data-value="88.09" class="pct high">88.09%</td>
318
- <td data-value="42" class="abs high">37/42</td>
319
- </tr>
320
-
321
- <tr>
322
- <td class="file high" data-value="search.ts"><a href="search.ts.html">search.ts</a></td>
323
- <td data-value="97.87" class="pic high">
324
- <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
325
- </td>
326
- <td data-value="97.87" class="pct high">97.87%</td>
327
- <td data-value="47" class="abs high">46/47</td>
328
- <td data-value="95.83" class="pct high">95.83%</td>
329
- <td data-value="24" class="abs high">23/24</td>
330
- <td data-value="100" class="pct high">100%</td>
331
- <td data-value="12" class="abs high">12/12</td>
332
- <td data-value="100" class="pct high">100%</td>
333
- <td data-value="40" class="abs high">40/40</td>
334
- </tr>
335
-
336
- <tr>
337
- <td class="file high" data-value="traverse.ts"><a href="traverse.ts.html">traverse.ts</a></td>
338
- <td data-value="94.73" class="pic high">
339
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
340
- </td>
341
- <td data-value="94.73" class="pct high">94.73%</td>
342
- <td data-value="19" class="abs high">18/19</td>
343
- <td data-value="75" class="pct medium">75%</td>
344
- <td data-value="16" class="abs medium">12/16</td>
345
- <td data-value="100" class="pct high">100%</td>
346
- <td data-value="5" class="abs high">5/5</td>
347
- <td data-value="100" class="pct high">100%</td>
348
- <td data-value="15" class="abs high">15/15</td>
349
- </tr>
350
-
351
- <tr>
352
- <td class="file high" data-value="vector-search.ts"><a href="vector-search.ts.html">vector-search.ts</a></td>
353
- <td data-value="96.15" class="pic high">
354
- <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
355
- </td>
356
- <td data-value="96.15" class="pct high">96.15%</td>
357
- <td data-value="26" class="abs high">25/26</td>
358
- <td data-value="100" class="pct high">100%</td>
359
- <td data-value="5" class="abs high">5/5</td>
360
- <td data-value="90" class="pct high">90%</td>
361
- <td data-value="10" class="abs high">9/10</td>
362
- <td data-value="96" class="pct high">96%</td>
363
- <td data-value="25" class="abs high">24/25</td>
101
+ <td data-value="0" class="pct low">0%</td>
102
+ <td data-value="34" class="abs low">0/34</td>
103
+ <td data-value="0" class="pct low">0%</td>
104
+ <td data-value="14" class="abs low">0/14</td>
105
+ <td data-value="0" class="pct low">0%</td>
106
+ <td data-value="3" class="abs low">0/3</td>
107
+ <td data-value="0" class="pct low">0%</td>
108
+ <td data-value="32" class="abs low">0/32</td>
364
109
  </tr>
365
110
 
366
111
  </tbody>
@@ -371,7 +116,7 @@
371
116
  <div class='footer quiet pad2 space-top1 center small'>
372
117
  Code coverage generated by
373
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
374
- at 2026-05-12T02:41:45.982Z
119
+ at 2026-05-13T01:40:01.638Z
375
120
  </div>
376
121
  <script src="prettify.js"></script>
377
122
  <script>
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for chunker.ts</title>
6
+ <title>Code coverage report for src/chunker.ts</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="prettify.css" />
9
- <link rel="stylesheet" href="base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(sort-arrow-sprite.png);
14
+ background-image: url(../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,7 +19,7 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="index.html">All files</a> chunker.ts</h1>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> chunker.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -568,23 +568,23 @@
568
568
  <span class="cline-any cline-neutral">&nbsp;</span>
569
569
  <span class="cline-any cline-neutral">&nbsp;</span>
570
570
  <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-yes">94x</span>
572
- <span class="cline-any cline-yes">94x</span>
573
- <span class="cline-any cline-yes">94x</span>
571
+ <span class="cline-any cline-yes">215x</span>
572
+ <span class="cline-any cline-yes">215x</span>
573
+ <span class="cline-any cline-yes">215x</span>
574
574
  <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-yes">94x</span>
575
+ <span class="cline-any cline-yes">215x</span>
576
576
  <span class="cline-any cline-yes">1x</span>
577
577
  <span class="cline-any cline-neutral">&nbsp;</span>
578
578
  <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-yes">93x</span>
579
+ <span class="cline-any cline-yes">214x</span>
580
580
  <span class="cline-any cline-yes">2x</span>
581
581
  <span class="cline-any cline-neutral">&nbsp;</span>
582
582
  <span class="cline-any cline-neutral">&nbsp;</span>
583
583
  <span class="cline-any cline-neutral">&nbsp;</span>
584
584
  <span class="cline-any cline-neutral">&nbsp;</span>
585
585
  <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-yes">91x</span>
587
- <span class="cline-any cline-yes">63x</span>
586
+ <span class="cline-any cline-yes">212x</span>
587
+ <span class="cline-any cline-yes">184x</span>
588
588
  <span class="cline-any cline-neutral">&nbsp;</span>
589
589
  <span class="cline-any cline-neutral">&nbsp;</span>
590
590
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -940,16 +940,16 @@ export function chunkText(text: string, opts: ChunkerOptions = {}): Chunk[] {
940
940
  <div class='footer quiet pad2 space-top1 center small'>
941
941
  Code coverage generated by
942
942
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
943
- at 2026-05-12T02:41:45.982Z
943
+ at 2026-05-13T01:40:01.638Z
944
944
  </div>
945
- <script src="prettify.js"></script>
945
+ <script src="../prettify.js"></script>
946
946
  <script>
947
947
  window.onload = function () {
948
948
  prettyPrint();
949
949
  };
950
950
  </script>
951
- <script src="sorter.js"></script>
952
- <script src="block-navigation.js"></script>
951
+ <script src="../sorter.js"></script>
952
+ <script src="../block-navigation.js"></script>
953
953
  </body>
954
954
  </html>
955
955
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for config.ts</title>
6
+ <title>Code coverage report for src/config.ts</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="prettify.css" />
9
- <link rel="stylesheet" href="base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(sort-arrow-sprite.png);
14
+ background-image: url(../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,7 +19,7 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="index.html">All files</a> config.ts</h1>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> config.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -385,16 +385,16 @@ export function loadConfig(): KnowledgeConfig {
385
385
  <div class='footer quiet pad2 space-top1 center small'>
386
386
  Code coverage generated by
387
387
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
388
- at 2026-05-12T02:41:45.982Z
388
+ at 2026-05-13T01:40:01.638Z
389
389
  </div>
390
- <script src="prettify.js"></script>
390
+ <script src="../prettify.js"></script>
391
391
  <script>
392
392
  window.onload = function () {
393
393
  prettyPrint();
394
394
  };
395
395
  </script>
396
- <script src="sorter.js"></script>
397
- <script src="block-navigation.js"></script>
396
+ <script src="../sorter.js"></script>
397
+ <script src="../block-navigation.js"></script>
398
398
  </body>
399
399
  </html>
400
400