@folterung/project-memory 0.1.14 → 0.1.16

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 (65) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/packages/cli/coverage/lcov-report/chunking/chunker.ts.html +1 -1
  4. package/packages/cli/coverage/lcov-report/chunking/hash.ts.html +1 -1
  5. package/packages/cli/coverage/lcov-report/chunking/index.html +1 -1
  6. package/packages/cli/coverage/lcov-report/chunking/types.ts.html +1 -1
  7. package/packages/cli/coverage/lcov-report/config/index.html +5 -5
  8. package/packages/cli/coverage/lcov-report/config/load.ts.html +1 -1
  9. package/packages/cli/coverage/lcov-report/config/types.ts.html +7 -4
  10. package/packages/cli/coverage/lcov-report/embedding/index.html +15 -15
  11. package/packages/cli/coverage/lcov-report/embedding/stub.ts.html +56 -8
  12. package/packages/cli/coverage/lcov-report/index.html +17 -17
  13. package/packages/cli/coverage/lcov-report/qdrant/index.html +1 -1
  14. package/packages/cli/coverage/lcov-report/qdrant/upsert.ts.html +1 -1
  15. package/packages/cli/coverage/lcov-report/scope/allowlist.ts.html +1 -1
  16. package/packages/cli/coverage/lcov-report/scope/ignore.ts.html +1 -1
  17. package/packages/cli/coverage/lcov-report/scope/index.html +1 -1
  18. package/packages/cli/coverage/lcov.info +24 -5
  19. package/packages/cli/coverage/tmp/{coverage-31303-1770081858145-0.json → coverage-88905-1770086028547-0.json} +1 -1
  20. package/packages/cli/coverage/tmp/{coverage-31304-1770081858192-0.json → coverage-88906-1770086028593-0.json} +1 -1
  21. package/packages/cli/coverage/tmp/{coverage-31305-1770081858190-0.json → coverage-88907-1770086028592-0.json} +1 -1
  22. package/packages/cli/coverage/tmp/{coverage-31306-1770081858189-0.json → coverage-88908-1770086028592-0.json} +1 -1
  23. package/packages/cli/coverage/tmp/{coverage-31307-1770081858198-0.json → coverage-88909-1770086028598-0.json} +1 -1
  24. package/packages/cli/coverage/tmp/{coverage-31308-1770081858189-0.json → coverage-88910-1770086028593-0.json} +1 -1
  25. package/packages/cli/coverage/tmp/{coverage-31309-1770081858191-0.json → coverage-88911-1770086028594-0.json} +1 -1
  26. package/packages/cli/coverage/tmp/{coverage-31310-1770081858245-0.json → coverage-88912-1770086028648-0.json} +1 -1
  27. package/packages/cli/coverage/tmp/{coverage-31311-1770081858213-0.json → coverage-88913-1770086028615-0.json} +1 -1
  28. package/packages/cli/coverage/tmp/{coverage-31312-1770081858208-0.json → coverage-88914-1770086028612-0.json} +1 -1
  29. package/packages/cli/dist/commands/down.js +27 -0
  30. package/packages/cli/dist/commands/down.js.map +1 -1
  31. package/packages/cli/dist/commands/scaffold.js +8 -1
  32. package/packages/cli/dist/commands/scaffold.js.map +1 -1
  33. package/packages/cli/dist/config/types.d.ts +1 -0
  34. package/packages/cli/dist/config/types.js +1 -0
  35. package/packages/cli/dist/config/types.js.map +1 -1
  36. package/packages/cli/dist/embedding/stub.d.ts +5 -0
  37. package/packages/cli/dist/embedding/stub.js +11 -0
  38. package/packages/cli/dist/embedding/stub.js.map +1 -1
  39. package/packages/cli/dist/phase1/pipeline.js +2 -2
  40. package/packages/cli/dist/phase1/pipeline.js.map +1 -1
  41. package/packages/cli/dist/phase2/deep-index.js +2 -2
  42. package/packages/cli/dist/phase2/deep-index.js.map +1 -1
  43. package/packages/cli/src/commands/down.ts +23 -0
  44. package/packages/cli/src/commands/scaffold.ts +8 -1
  45. package/packages/cli/src/config/types.ts +1 -0
  46. package/packages/cli/src/embedding/stub.ts +16 -0
  47. package/packages/cli/src/phase1/pipeline.ts +4 -2
  48. package/packages/cli/src/phase2/deep-index.ts +2 -2
  49. package/packages/mcp-server/dist/index.js +84 -0
  50. package/packages/mcp-server/dist/index.js.map +1 -1
  51. package/packages/mcp-server/src/index.ts +114 -0
  52. package/packages/server/coverage/lcov-report/index.html +1 -1
  53. package/packages/server/coverage/lcov-report/stub.ts.html +1 -1
  54. package/packages/server/coverage/tmp/{coverage-31403-1770081859010-0.json → coverage-88999-1770086029452-0.json} +1 -1
  55. package/packages/server/coverage/tmp/{coverage-31404-1770081859045-0.json → coverage-89000-1770086029487-0.json} +1 -1
  56. package/packages/server/dist/api/search.js +1 -1
  57. package/packages/server/dist/api/search.js.map +1 -1
  58. package/packages/server/dist/api/store.d.ts +11 -0
  59. package/packages/server/dist/api/store.js +60 -0
  60. package/packages/server/dist/api/store.js.map +1 -0
  61. package/packages/server/dist/index.js +2 -0
  62. package/packages/server/dist/index.js.map +1 -1
  63. package/packages/server/src/api/search.ts +1 -1
  64. package/packages/server/src/api/store.ts +81 -0
  65. package/packages/server/src/index.ts +2 -0
package/README.md CHANGED
@@ -14,7 +14,7 @@ Then in Cursor: **Command Palette → Project Memory: Attach to Chat**.
14
14
 
15
15
  ### Using with Cursor MCP
16
16
 
17
- When the workspace has a `.mem` folder (after `mem init`), the Project Memory extension **auto-registers** an MCP server with Cursor. Cursor’s Agent can then call `search_project_memory` and `explain_symbol` automatically when relevantno need to run “Attach to Chat” every time.
17
+ When the workspace has a `.mem` folder (after `mem init`), the Project Memory extension **auto-registers** an MCP server with Cursor. You can also add the MCP server manually (Cursor, Claude Desktop, or any MCP client). The agent can then call `search_project_memory`, `explain_symbol`, `refresh_project_memory_index`, and **`store_project_memory`** (store a summary or finding so future search can use it incremental context from the agent). Use **Project Memory: Refresh Index** (Command Palette) or ask the agent to refresh the index so the vector DB stays up to date after code changes.
18
18
 
19
19
  - Ensure the memory server is running (`mem scaffold` in the project).
20
20
  - The extension registers the MCP server on activate; Cursor starts the MCP process when needed (stdio). If the project has `node_modules/@folterung/project-memory`, the extension uses that; otherwise it expects `project-memory-mcp` on your PATH (e.g. after `npm install -g @folterung/project-memory`).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@folterung/project-memory",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "private": false,
5
5
  "description": "Local-first Project Memory: scoped indexing, embeddings, Cursor integration",
6
6
  "repository": "https://github.com/folterung/project-memory",
@@ -523,7 +523,7 @@ export function chunkFile(path: string, content: string): Chunk[] {
523
523
  <div class='footer quiet pad2 space-top1 center small'>
524
524
  Code coverage generated by
525
525
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
526
- at 2026-02-03T01:24:18.283Z
526
+ at 2026-02-03T02:33:48.686Z
527
527
  </div>
528
528
  <script src="../prettify.js"></script>
529
529
  <script>
@@ -133,7 +133,7 @@ export function chunkIdFromParts(path: string, part: string, contentHash: string
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at 2026-02-03T01:24:18.283Z
136
+ at 2026-02-03T02:33:48.686Z
137
137
  </div>
138
138
  <script src="../prettify.js"></script>
139
139
  <script>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2026-02-03T01:24:18.283Z
134
+ at 2026-02-03T02:33:48.686Z
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
137
137
  <script>
@@ -199,7 +199,7 @@ export function getLanguageFromPath(path: string): string {
199
199
  <div class='footer quiet pad2 space-top1 center small'>
200
200
  Code coverage generated by
201
201
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
202
- at 2026-02-03T01:24:18.283Z
202
+ at 2026-02-03T02:33:48.686Z
203
203
  </div>
204
204
  <script src="../prettify.js"></script>
205
205
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>82/82</span>
28
+ <span class='fraction'>83/83</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>82/82</span>
49
+ <span class='fraction'>83/83</span>
50
50
  </div>
51
51
 
52
52
 
@@ -99,13 +99,13 @@
99
99
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
100
  </td>
101
101
  <td data-value="100" class="pct high">100%</td>
102
- <td data-value="49" class="abs high">49/49</td>
102
+ <td data-value="50" class="abs high">50/50</td>
103
103
  <td data-value="100" class="pct high">100%</td>
104
104
  <td data-value="0" class="abs high">0/0</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
106
  <td data-value="0" class="abs high">0/0</td>
107
107
  <td data-value="100" class="pct high">100%</td>
108
- <td data-value="49" class="abs high">49/49</td>
108
+ <td data-value="50" class="abs high">50/50</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2026-02-03T01:24:18.283Z
119
+ at 2026-02-03T02:33:48.686Z
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -169,7 +169,7 @@ export function configExists(cwd: string): boolean {
169
169
  <div class='footer quiet pad2 space-top1 center small'>
170
170
  Code coverage generated by
171
171
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
172
- at 2026-02-03T01:24:18.283Z
172
+ at 2026-02-03T02:33:48.686Z
173
173
  </div>
174
174
  <script src="../prettify.js"></script>
175
175
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>49/49</span>
28
+ <span class='fraction'>50/50</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>49/49</span>
49
+ <span class='fraction'>50/50</span>
50
50
  </div>
51
51
 
52
52
 
@@ -112,7 +112,9 @@
112
112
  <a name='L47'></a><a href='#L47'>47</a>
113
113
  <a name='L48'></a><a href='#L48'>48</a>
114
114
  <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
117
+ <span class="cline-any cline-yes">1x</span>
116
118
  <span class="cline-any cline-yes">1x</span>
117
119
  <span class="cline-any cline-yes">1x</span>
118
120
  <span class="cline-any cline-yes">1x</span>
@@ -210,6 +212,7 @@ export const CONFIG_DIR = ".mem";
210
212
  export const CONFIG_FILE = ".mem/config.yml";
211
213
  export const MEMIGNORE_FILE = ".memignore";
212
214
  export const DEEP_INDEX_STATE_FILE = ".mem/state/deep-index.json";
215
+ export const MEMORY_SERVER_PID_FILE = ".mem/memory-server.pid";
213
216
  &nbsp;</pre></td></tr></table></pre>
214
217
 
215
218
  <div class='push'></div><!-- for sticky footer -->
@@ -217,7 +220,7 @@ export const DEEP_INDEX_STATE_FILE = ".mem/state/deep-index.json";
217
220
  <div class='footer quiet pad2 space-top1 center small'>
218
221
  Code coverage generated by
219
222
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
220
- at 2026-02-03T01:24:18.283Z
223
+ at 2026-02-03T02:33:48.686Z
221
224
  </div>
222
225
  <script src="../prettify.js"></script>
223
226
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">83.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>32/32</span>
28
+ <span class='fraction'>40/48</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">80% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/4</span>
42
+ <span class='fraction'>4/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">83.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>32/32</span>
49
+ <span class='fraction'>40/48</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="stub.ts"><a href="stub.ts.html">stub.ts</a></td>
83
- <td data-value="100" class="pic high">
84
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
83
+ <td data-value="83.33" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
85
85
  </td>
86
- <td data-value="100" class="pct high">100%</td>
87
- <td data-value="32" class="abs high">32/32</td>
86
+ <td data-value="83.33" class="pct high">83.33%</td>
87
+ <td data-value="48" class="abs high">40/48</td>
88
88
  <td data-value="85.71" class="pct high">85.71%</td>
89
89
  <td data-value="7" class="abs high">6/7</td>
90
- <td data-value="100" class="pct high">100%</td>
91
- <td data-value="4" class="abs high">4/4</td>
92
- <td data-value="100" class="pct high">100%</td>
93
- <td data-value="32" class="abs high">32/32</td>
90
+ <td data-value="80" class="pct high">80%</td>
91
+ <td data-value="5" class="abs high">4/5</td>
92
+ <td data-value="83.33" class="pct high">83.33%</td>
93
+ <td data-value="48" class="abs high">40/48</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-02-03T01:24:18.283Z
104
+ at 2026-02-03T02:33:48.686Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">83.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>32/32</span>
28
+ <span class='fraction'>40/48</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">80% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/4</span>
42
+ <span class='fraction'>4/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">83.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>32/32</span>
49
+ <span class='fraction'>40/48</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,7 +95,23 @@
95
95
  <a name='L30'></a><a href='#L30'>30</a>
96
96
  <a name='L31'></a><a href='#L31'>31</a>
97
97
  <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
99
115
  <span class="cline-any cline-yes">1x</span>
100
116
  <span class="cline-any cline-yes">3072x</span>
101
117
  <span class="cline-any cline-yes">3072x</span>
@@ -127,6 +143,22 @@
127
143
  <span class="cline-any cline-yes">1x</span>
128
144
  <span class="cline-any cline-yes">1x</span>
129
145
  <span class="cline-any cline-yes">1x</span>
146
+ <span class="cline-any cline-yes">1x</span>
147
+ <span class="cline-any cline-yes">1x</span>
148
+ <span class="cline-any cline-yes">1x</span>
149
+ <span class="cline-any cline-yes">1x</span>
150
+ <span class="cline-any cline-yes">1x</span>
151
+ <span class="cline-any cline-yes">1x</span>
152
+ <span class="cline-any cline-yes">1x</span>
153
+ <span class="cline-any cline-yes">1x</span>
154
+ <span class="cline-any cline-no">&nbsp;</span>
155
+ <span class="cline-any cline-no">&nbsp;</span>
156
+ <span class="cline-any cline-no">&nbsp;</span>
157
+ <span class="cline-any cline-no">&nbsp;</span>
158
+ <span class="cline-any cline-no">&nbsp;</span>
159
+ <span class="cline-any cline-no">&nbsp;</span>
160
+ <span class="cline-any cline-no">&nbsp;</span>
161
+ <span class="cline-any cline-no">&nbsp;</span>
130
162
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const VECTOR_SIZE = 384;
131
163
  &nbsp;
132
164
  function simpleHash(str: string): number {
@@ -159,6 +191,22 @@ export function embedBatch(texts: string[]): number[][] {
159
191
  export function getVectorSize(): number {
160
192
  return VECTOR_SIZE;
161
193
  }
194
+ &nbsp;
195
+ const DEFAULT_MAX_EMBED_LEN = 8000;
196
+ &nbsp;
197
+ /**
198
+ * Prefixes text with file path so the embedding reflects path/filename as well as content.
199
+ * Improves retrieval for queries like "sync scripts" when filenames (e.g. sync_*.php) are relevant.
200
+ */
201
+ export<span class="fstat-no" title="function not covered" > function textWithPathForEmbedding(</span>
202
+ <span class="cstat-no" title="statement not covered" > path: string,</span>
203
+ <span class="cstat-no" title="statement not covered" > text: string,</span>
204
+ <span class="cstat-no" title="statement not covered" > maxTotal: number = DEFAULT_MAX_EMBED_LEN</span>
205
+ <span class="cstat-no" title="statement not covered" >): string {</span>
206
+ <span class="cstat-no" title="statement not covered" > const prefix = `File: ${path}\n\n`;</span>
207
+ <span class="cstat-no" title="statement not covered" > if (prefix.length &gt;= maxTotal) return prefix.slice(0, maxTotal);</span>
208
+ <span class="cstat-no" title="statement not covered" > return prefix + text.slice(0, maxTotal - prefix.length);</span>
209
+ <span class="cstat-no" title="statement not covered" >}</span>
162
210
  &nbsp;</pre></td></tr></table></pre>
163
211
 
164
212
  <div class='push'></div><!-- for sticky footer -->
@@ -166,7 +214,7 @@ export function getVectorSize(): number {
166
214
  <div class='footer quiet pad2 space-top1 center small'>
167
215
  Code coverage generated by
168
216
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
169
- at 2026-02-03T01:24:18.283Z
217
+ at 2026-02-03T02:33:48.686Z
170
218
  </div>
171
219
  <script src="../prettify.js"></script>
172
220
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">89.18% </span>
26
+ <span class="strong">88.03% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>462/518</span>
28
+ <span class='fraction'>471/535</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">88.23% </span>
40
+ <span class="strong">85.71% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>30/34</span>
42
+ <span class='fraction'>30/35</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">89.18% </span>
47
+ <span class="strong">88.03% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>462/518</span>
49
+ <span class='fraction'>471/535</span>
50
50
  </div>
51
51
 
52
52
 
@@ -99,28 +99,28 @@
99
99
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
100
  </td>
101
101
  <td data-value="100" class="pct high">100%</td>
102
- <td data-value="82" class="abs high">82/82</td>
102
+ <td data-value="83" class="abs high">83/83</td>
103
103
  <td data-value="83.33" class="pct high">83.33%</td>
104
104
  <td data-value="6" class="abs high">5/6</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
106
  <td data-value="4" class="abs high">4/4</td>
107
107
  <td data-value="100" class="pct high">100%</td>
108
- <td data-value="82" class="abs high">82/82</td>
108
+ <td data-value="83" class="abs high">83/83</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
112
  <td class="file high" data-value="embedding"><a href="embedding/index.html">embedding</a></td>
113
- <td data-value="100" class="pic high">
114
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
113
+ <td data-value="83.33" class="pic high">
114
+ <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
115
115
  </td>
116
- <td data-value="100" class="pct high">100%</td>
117
- <td data-value="32" class="abs high">32/32</td>
116
+ <td data-value="83.33" class="pct high">83.33%</td>
117
+ <td data-value="48" class="abs high">40/48</td>
118
118
  <td data-value="85.71" class="pct high">85.71%</td>
119
119
  <td data-value="7" class="abs high">6/7</td>
120
- <td data-value="100" class="pct high">100%</td>
121
- <td data-value="4" class="abs high">4/4</td>
122
- <td data-value="100" class="pct high">100%</td>
123
- <td data-value="32" class="abs high">32/32</td>
120
+ <td data-value="80" class="pct high">80%</td>
121
+ <td data-value="5" class="abs high">4/5</td>
122
+ <td data-value="83.33" class="pct high">83.33%</td>
123
+ <td data-value="48" class="abs high">40/48</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
@@ -161,7 +161,7 @@
161
161
  <div class='footer quiet pad2 space-top1 center small'>
162
162
  Code coverage generated by
163
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at 2026-02-03T01:24:18.283Z
164
+ at 2026-02-03T02:33:48.686Z
165
165
  </div>
166
166
  <script src="prettify.js"></script>
167
167
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-02-03T01:24:18.283Z
104
+ at 2026-02-03T02:33:48.686Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -265,7 +265,7 @@ export <span class="fstat-no" title="function not covered" >async function upser
265
265
  <div class='footer quiet pad2 space-top1 center small'>
266
266
  Code coverage generated by
267
267
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
268
- at 2026-02-03T01:24:18.283Z
268
+ at 2026-02-03T02:33:48.686Z
269
269
  </div>
270
270
  <script src="../prettify.js"></script>
271
271
  <script>
@@ -184,7 +184,7 @@ export function toRelativePath(cwd: string, absolutePath: string): string {
184
184
  <div class='footer quiet pad2 space-top1 center small'>
185
185
  Code coverage generated by
186
186
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
187
- at 2026-02-03T01:24:18.283Z
187
+ at 2026-02-03T02:33:48.686Z
188
188
  </div>
189
189
  <script src="../prettify.js"></script>
190
190
  <script>
@@ -328,7 +328,7 @@ export function getBuiltinIgnores(): string[] {
328
328
  <div class='footer quiet pad2 space-top1 center small'>
329
329
  Code coverage generated by
330
330
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
331
- at 2026-02-03T01:24:18.283Z
331
+ at 2026-02-03T02:33:48.686Z
332
332
  </div>
333
333
  <script src="../prettify.js"></script>
334
334
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2026-02-03T01:24:18.283Z
119
+ at 2026-02-03T02:33:48.686Z
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -419,8 +419,9 @@ DA:46,1
419
419
  DA:47,1
420
420
  DA:48,1
421
421
  DA:49,1
422
- LF:49
423
- LH:49
422
+ DA:50,1
423
+ LF:50
424
+ LH:50
424
425
  BRF:0
425
426
  BRH:0
426
427
  end_of_record
@@ -430,12 +431,14 @@ FN:3,simpleHash
430
431
  FN:14,embedText
431
432
  FN:26,embedBatch
432
433
  FN:30,getVectorSize
433
- FNF:4
434
+ FN:40,textWithPathForEmbedding
435
+ FNF:5
434
436
  FNH:4
435
437
  FNDA:3072,simpleHash
436
438
  FNDA:8,embedText
437
439
  FNDA:1,embedBatch
438
440
  FNDA:1,getVectorSize
441
+ FNDA:0,textWithPathForEmbedding
439
442
  DA:1,1
440
443
  DA:2,1
441
444
  DA:3,3072
@@ -468,8 +471,24 @@ DA:29,1
468
471
  DA:30,1
469
472
  DA:31,1
470
473
  DA:32,1
471
- LF:32
472
- LH:32
474
+ DA:33,1
475
+ DA:34,1
476
+ DA:35,1
477
+ DA:36,1
478
+ DA:37,1
479
+ DA:38,1
480
+ DA:39,1
481
+ DA:40,1
482
+ DA:41,0
483
+ DA:42,0
484
+ DA:43,0
485
+ DA:44,0
486
+ DA:45,0
487
+ DA:46,0
488
+ DA:47,0
489
+ DA:48,0
490
+ LF:48
491
+ LH:40
473
492
  BRDA:3,0,0,3072
474
493
  BRDA:5,1,0,8448
475
494
  BRDA:14,2,0,8