ralph-hero-knowledge-index 0.1.40 → 0.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/README.md +42 -0
- package/benchmark/results-2026-05-13.tsv +2 -0
- package/coverage/coverage-summary.json +5 -4
- package/coverage/lcov-report/index.html +31 -286
- package/coverage/lcov-report/{chunker.ts.html → src/chunker.ts.html} +20 -20
- package/coverage/lcov-report/{config.ts.html → src/config.ts.html} +10 -10
- package/coverage/lcov-report/{db.ts.html → src/db.ts.html} +47 -47
- package/coverage/lcov-report/{embedder.ts.html → src/embedder.ts.html} +241 -25
- package/coverage/lcov-report/{file-scanner.ts.html → src/file-scanner.ts.html} +21 -21
- package/coverage/lcov-report/{format.ts.html → src/format.ts.html} +12 -12
- package/coverage/lcov-report/{generate-indexes.ts.html → src/generate-indexes.ts.html} +10 -10
- package/coverage/lcov-report/{graph-builder.ts.html → src/graph-builder.ts.html} +11 -11
- package/coverage/lcov-report/{graph-tools.ts.html → src/graph-tools.ts.html} +24 -24
- package/coverage/lcov-report/{hybrid-search.ts.html → src/hybrid-search.ts.html} +102 -102
- package/coverage/lcov-report/{ignore.ts.html → src/ignore.ts.html} +20 -20
- package/coverage/lcov-report/src/index.html +386 -0
- package/coverage/lcov-report/{index.ts.html → src/index.ts.html} +488 -59
- package/coverage/lcov-report/{llm-client.ts.html → src/llm-client.ts.html} +10 -10
- package/coverage/lcov-report/{parser.ts.html → src/parser.ts.html} +35 -35
- package/coverage/lcov-report/{reindex.ts.html → src/reindex.ts.html} +567 -135
- package/coverage/lcov-report/{reranker.ts.html → src/reranker.ts.html} +20 -20
- package/coverage/lcov-report/src/scripts/index.html +116 -0
- package/coverage/lcov-report/src/scripts/verify-tiers.ts.html +406 -0
- package/coverage/lcov-report/{search.ts.html → src/search.ts.html} +39 -39
- package/coverage/lcov-report/{traverse.ts.html → src/traverse.ts.html} +11 -11
- package/coverage/lcov-report/{vector-search.ts.html → src/vector-search.ts.html} +29 -29
- package/coverage/lcov.info +1154 -910
- package/dist/embedder.d.ts +22 -0
- package/dist/embedder.js +69 -0
- package/dist/embedder.js.map +1 -1
- package/dist/index.js +110 -0
- package/dist/index.js.map +1 -1
- package/dist/reindex.js +132 -12
- package/dist/reindex.js.map +1 -1
- package/dist/scripts/verify-tiers.d.ts +2 -0
- package/dist/scripts/verify-tiers.js +92 -0
- package/dist/scripts/verify-tiers.js.map +1 -0
- package/evals/golden-queries.json +48 -0
- package/package.json +3 -2
- package/scripts/eval-retrieval.ts +10 -9
- package/src/__tests__/embedder.test.ts +105 -3
- package/src/__tests__/recall.test.ts +562 -0
- package/src/__tests__/reindex.test.ts +185 -54
- package/src/embedder.ts +72 -0
- package/src/index.ts +143 -0
- package/src/reindex.ts +166 -22
- package/src/scripts/verify-tiers.ts +107 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ralph-knowledge",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.42",
|
|
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
package/README.md
CHANGED
|
@@ -100,6 +100,48 @@ Patterns behave exactly like `.gitignore`:
|
|
|
100
100
|
Directories whose names start with `.` or `_` are also always skipped, as a
|
|
101
101
|
fast-path before any matcher is consulted.
|
|
102
102
|
|
|
103
|
+
## Choosing between `knowledge_search` and `knowledge_recall`
|
|
104
|
+
|
|
105
|
+
ralph-knowledge exposes two retrieval MCP tools that wrap the same underlying
|
|
106
|
+
hybrid search. They differ on **who decides the tier policy**:
|
|
107
|
+
|
|
108
|
+
| Tool | When to use | Tier handling |
|
|
109
|
+
|------|-------------|---------------|
|
|
110
|
+
| `knowledge_search` | Power-user / explicit path. You know the tier and want full control over `rerank`, `lambda`, `return_diagnostics`, chunk metadata, etc. | You pass `memory_tier` explicitly (`doc`, `raw`, `reflection`, `wiki`, or `any` — default `any`). |
|
|
111
|
+
| `knowledge_recall` | Default for agents and skills. You declare your role and the tool picks the right tiers. | A role-keyed policy fans out one rerank-enabled `hybrid.search()` per tier in the role's list, then merges and re-ranks. |
|
|
112
|
+
|
|
113
|
+
### Role -> tier policy
|
|
114
|
+
|
|
115
|
+
`knowledge_recall(query, role, ...)` follows this fixed policy map:
|
|
116
|
+
|
|
117
|
+
| Role | Tiers (priority order) | Intent |
|
|
118
|
+
|------|------------------------|--------|
|
|
119
|
+
| `researcher` | `raw`, `reflection`, `doc` | Recovery of unfiltered observations + synthesized insights + curated research. Excludes wiki (we are looking for things the wiki does not already cover). |
|
|
120
|
+
| `planner` | `reflection`, `wiki`, `doc` | Bias toward synthesized insights + canonical curated knowledge; excludes raw observations to keep the planning frame stable. |
|
|
121
|
+
| `implementer` | `wiki`, `doc` | Only canonical references — never raw memory or speculative reflections. Keeps implementations grounded in agreed-upon truth. |
|
|
122
|
+
| `reviewer` | `wiki`, `doc` | Same constraints as implementer — review against the canonical surface, not the raw or speculative tiers. |
|
|
123
|
+
| `triager` | `doc`, `wiki` | Doc-first for issue context, wiki as fallback. |
|
|
124
|
+
|
|
125
|
+
### Cost notes
|
|
126
|
+
|
|
127
|
+
- `knowledge_recall` always runs the cross-encoder reranker (`rerank=true`)
|
|
128
|
+
because role-aware retrieval is the most context-sensitive call path in the
|
|
129
|
+
surface. Expect a one-time ~0.5-1 s cold-start (ONNX model load on the first
|
|
130
|
+
call after process boot) and ~25-45 ms per (query, doc) pair on warm calls.
|
|
131
|
+
- Each tier sub-query targets <50 ms; a 3-tier fanout totals <150 ms before
|
|
132
|
+
reranking.
|
|
133
|
+
- If a tier sub-query throws (e.g., transient DB lock), `knowledge_recall`
|
|
134
|
+
logs the error to stderr and continues with the remaining tiers — degraded
|
|
135
|
+
results rather than a hard failure.
|
|
136
|
+
|
|
137
|
+
### Power-user override
|
|
138
|
+
|
|
139
|
+
Skills can mix both tools. For example, `/ralph-hero:plan` calls
|
|
140
|
+
`knowledge_recall(role="planner", ...)` for the default tier-balanced context
|
|
141
|
+
gather, and ALSO calls `knowledge_search(type="research", ...)` for an explicit
|
|
142
|
+
artifact lookup where it needs a precise type filter. Keeping both tools in a
|
|
143
|
+
skill's allowlist is the recommended pattern.
|
|
144
|
+
|
|
103
145
|
## Environment variables
|
|
104
146
|
|
|
105
147
|
| Variable | Purpose |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{"total": {"lines":{"total":
|
|
1
|
+
{"total": {"lines":{"total":1439,"covered":1305,"skipped":0,"pct":90.68},"statements":{"total":1572,"covered":1412,"skipped":0,"pct":89.82},"functions":{"total":211,"covered":194,"skipped":0,"pct":91.94},"branches":{"total":923,"covered":744,"skipped":0,"pct":80.6},"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":
|
|
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}}
|
|
@@ -10,12 +10,13 @@
|
|
|
10
10
|
,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/graph-tools.ts": {"lines":{"total":242,"covered":230,"skipped":0,"pct":95.04},"functions":{"total":34,"covered":32,"skipped":0,"pct":94.11},"statements":{"total":257,"covered":243,"skipped":0,"pct":94.55},"branches":{"total":151,"covered":120,"skipped":0,"pct":79.47}}
|
|
11
11
|
,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/hybrid-search.ts": {"lines":{"total":174,"covered":173,"skipped":0,"pct":99.42},"functions":{"total":19,"covered":19,"skipped":0,"pct":100},"statements":{"total":203,"covered":195,"skipped":0,"pct":96.05},"branches":{"total":129,"covered":110,"skipped":0,"pct":85.27}}
|
|
12
12
|
,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/ignore.ts": {"lines":{"total":17,"covered":16,"skipped":0,"pct":94.11},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":19,"covered":18,"skipped":0,"pct":94.73},"branches":{"total":12,"covered":11,"skipped":0,"pct":91.66}}
|
|
13
|
-
,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/index.ts": {"lines":{"total":
|
|
13
|
+
,"/home/runner/work/ralph-hero/ralph-hero/plugin/ralph-knowledge/src/index.ts": {"lines":{"total":148,"covered":121,"skipped":0,"pct":81.75},"functions":{"total":19,"covered":16,"skipped":0,"pct":84.21},"statements":{"total":166,"covered":136,"skipped":0,"pct":81.92},"branches":{"total":105,"covered":67,"skipped":0,"pct":63.8}}
|
|
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":
|
|
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">
|
|
26
|
+
<span class="strong">89.82% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>1412/1572</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">80.6% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>744/923</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">91.94% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>194/211</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">90.68% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>1305/1439</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="
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
82
|
+
<td class="file high" data-value="src"><a href="src/index.html">src</a></td>
|
|
83
|
+
<td data-value="91.8" class="pic high">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
86
|
+
<td data-value="91.8" class="pct high">91.8%</td>
|
|
87
|
+
<td data-value="1538" class="abs high">1412/1538</td>
|
|
88
|
+
<td data-value="81.84" class="pct high">81.84%</td>
|
|
89
|
+
<td data-value="909" class="abs high">744/909</td>
|
|
90
|
+
<td data-value="93.26" class="pct high">93.26%</td>
|
|
91
|
+
<td data-value="208" class="abs high">194/208</td>
|
|
92
|
+
<td data-value="92.75" class="pct high">92.75%</td>
|
|
93
|
+
<td data-value="1407" class="abs high">1305/1407</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
|
-
<td class="file
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
102
|
-
<td data-value="
|
|
103
|
-
<td data-value="
|
|
104
|
-
<td data-value="
|
|
105
|
-
<td data-value="
|
|
106
|
-
<td data-value="
|
|
107
|
-
<td data-value="
|
|
108
|
-
<td data-value="
|
|
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-
|
|
119
|
+
at 2026-05-13T02:34:08.145Z
|
|
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'>
|
|
@@ -379,9 +379,9 @@
|
|
|
379
379
|
<span class="cline-any cline-neutral"> </span>
|
|
380
380
|
<span class="cline-any cline-neutral"> </span>
|
|
381
381
|
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-yes">
|
|
383
|
-
<span class="cline-any cline-yes">
|
|
384
|
-
<span class="cline-any cline-yes">
|
|
382
|
+
<span class="cline-any cline-yes">6x</span>
|
|
383
|
+
<span class="cline-any cline-yes">6x</span>
|
|
384
|
+
<span class="cline-any cline-yes">6x</span>
|
|
385
385
|
<span class="cline-any cline-neutral"> </span>
|
|
386
386
|
<span class="cline-any cline-neutral"> </span>
|
|
387
387
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -568,23 +568,23 @@
|
|
|
568
568
|
<span class="cline-any cline-neutral"> </span>
|
|
569
569
|
<span class="cline-any cline-neutral"> </span>
|
|
570
570
|
<span class="cline-any cline-neutral"> </span>
|
|
571
|
-
<span class="cline-any cline-yes">
|
|
572
|
-
<span class="cline-any cline-yes">
|
|
573
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
575
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
578
578
|
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
582
582
|
<span class="cline-any cline-neutral"> </span>
|
|
583
583
|
<span class="cline-any cline-neutral"> </span>
|
|
584
584
|
<span class="cline-any cline-neutral"> </span>
|
|
585
585
|
<span class="cline-any cline-neutral"> </span>
|
|
586
|
-
<span class="cline-any cline-yes">
|
|
587
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
589
589
|
<span class="cline-any cline-neutral"> </span>
|
|
590
590
|
<span class="cline-any cline-neutral"> </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-
|
|
943
|
+
at 2026-05-13T02:34:08.145Z
|
|
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
|
|