@folterung/project-memory 0.1.19 → 0.1.21

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 (98) hide show
  1. package/README.md +13 -8
  2. package/package.json +4 -2
  3. package/packages/cli/coverage/lcov-report/chunking/chunker.ts.html +81 -81
  4. package/packages/cli/coverage/lcov-report/chunking/hash.ts.html +12 -12
  5. package/packages/cli/coverage/lcov-report/chunking/index.html +1 -1
  6. package/packages/cli/coverage/lcov-report/chunking/types.ts.html +23 -23
  7. package/packages/cli/coverage/lcov-report/config/index.html +1 -1
  8. package/packages/cli/coverage/lcov-report/config/load.ts.html +1 -1
  9. package/packages/cli/coverage/lcov-report/config/types.ts.html +1 -1
  10. package/packages/cli/coverage/lcov-report/embedding/index.html +1 -1
  11. package/packages/cli/coverage/lcov-report/embedding/stub.ts.html +1 -1
  12. package/packages/cli/coverage/lcov-report/index.html +18 -18
  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 +51 -51
  16. package/packages/cli/coverage/lcov-report/scope/ignore.ts.html +1 -1
  17. package/packages/cli/coverage/lcov-report/scope/index.html +19 -19
  18. package/packages/cli/coverage/lcov.info +221 -213
  19. package/packages/cli/coverage/tmp/{coverage-7460-1770137208481-0.json → coverage-24604-1770174821315-0.json} +1 -1
  20. package/packages/cli/coverage/tmp/coverage-24605-1770174821362-0.json +1 -0
  21. package/packages/cli/coverage/tmp/{coverage-7462-1770137208524-0.json → coverage-24606-1770174821361-0.json} +1 -1
  22. package/packages/cli/coverage/tmp/{coverage-7463-1770137208524-0.json → coverage-24607-1770174821359-0.json} +1 -1
  23. package/packages/cli/coverage/tmp/{coverage-7464-1770137208531-0.json → coverage-24608-1770174821367-0.json} +1 -1
  24. package/packages/cli/coverage/tmp/{coverage-7465-1770137208526-0.json → coverage-24609-1770174821359-0.json} +1 -1
  25. package/packages/cli/coverage/tmp/{coverage-7466-1770137208528-0.json → coverage-24610-1770174821360-0.json} +1 -1
  26. package/packages/cli/coverage/tmp/{coverage-7467-1770137208579-0.json → coverage-24611-1770174821416-0.json} +1 -1
  27. package/packages/cli/coverage/tmp/coverage-24612-1770174821392-0.json +1 -0
  28. package/packages/cli/coverage/tmp/{coverage-7469-1770137208543-0.json → coverage-24613-1770174821380-0.json} +1 -1
  29. package/packages/cli/dist/chunking/chunker.test.js +19 -0
  30. package/packages/cli/dist/chunking/chunker.test.js.map +1 -1
  31. package/packages/cli/dist/cli/index.js +1 -1
  32. package/packages/cli/dist/cli/index.js.map +1 -1
  33. package/packages/cli/dist/phase1/pipeline.js +17 -7
  34. package/packages/cli/dist/phase1/pipeline.js.map +1 -1
  35. package/packages/cli/dist/phase2/deep-index.js +18 -6
  36. package/packages/cli/dist/phase2/deep-index.js.map +1 -1
  37. package/packages/cli/dist/scope/allowlist.test.js +14 -1
  38. package/packages/cli/dist/scope/allowlist.test.js.map +1 -1
  39. package/packages/cli/src/chunking/chunker.test.ts +21 -0
  40. package/packages/cli/src/cli/index.ts +1 -1
  41. package/packages/cli/src/phase1/pipeline.ts +15 -8
  42. package/packages/cli/src/phase2/deep-index.ts +15 -6
  43. package/packages/cli/src/scope/allowlist.test.ts +16 -1
  44. package/packages/mcp-server/dist/index.js +174 -16
  45. package/packages/mcp-server/dist/index.js.map +1 -1
  46. package/packages/mcp-server/dist/system-instructions.md +2 -0
  47. package/packages/mcp-server/src/index.ts +204 -16
  48. package/packages/mcp-server/system-instructions.md +2 -0
  49. package/packages/server/coverage/lcov-report/api/index.html +146 -0
  50. package/packages/server/coverage/lcov-report/api/points.ts.html +361 -0
  51. package/packages/server/coverage/lcov-report/api/search.ts.html +436 -0
  52. package/packages/server/coverage/lcov-report/api/store.ts.html +487 -0
  53. package/packages/server/coverage/lcov-report/embedding/index.html +116 -0
  54. package/packages/server/coverage/lcov-report/embedding/stub.ts.html +184 -0
  55. package/packages/server/coverage/lcov-report/index.html +40 -10
  56. package/packages/server/coverage/lcov-report/qdrant/client.ts.html +517 -0
  57. package/packages/server/coverage/lcov-report/qdrant/index.html +116 -0
  58. package/packages/server/coverage/lcov-report/stub.ts.html +1 -1
  59. package/packages/server/coverage/lcov.info +674 -27
  60. package/packages/server/coverage/tmp/{coverage-7549-1770137209315-0.json → coverage-24692-1770174822211-0.json} +1 -1
  61. package/packages/server/coverage/tmp/coverage-24693-1770174822463-0.json +1 -0
  62. package/packages/server/coverage/tmp/coverage-24694-1770174822454-0.json +1 -0
  63. package/packages/server/coverage/tmp/coverage-24695-1770174822463-0.json +1 -0
  64. package/packages/server/coverage/tmp/{coverage-7550-1770137209349-0.json → coverage-24696-1770174822253-0.json} +1 -1
  65. package/packages/server/dist/api/points.d.ts +24 -0
  66. package/packages/server/dist/api/points.js +60 -0
  67. package/packages/server/dist/api/points.js.map +1 -0
  68. package/packages/server/dist/api/points.test.d.ts +1 -0
  69. package/packages/server/dist/api/points.test.js +105 -0
  70. package/packages/server/dist/api/points.test.js.map +1 -0
  71. package/packages/server/dist/api/search.d.ts +16 -0
  72. package/packages/server/dist/api/search.js +26 -8
  73. package/packages/server/dist/api/search.js.map +1 -1
  74. package/packages/server/dist/api/search.test.d.ts +1 -0
  75. package/packages/server/dist/api/search.test.js +102 -0
  76. package/packages/server/dist/api/search.test.js.map +1 -0
  77. package/packages/server/dist/api/store.d.ts +7 -0
  78. package/packages/server/dist/api/store.js +50 -7
  79. package/packages/server/dist/api/store.js.map +1 -1
  80. package/packages/server/dist/api/store.test.d.ts +1 -0
  81. package/packages/server/dist/api/store.test.js +85 -0
  82. package/packages/server/dist/api/store.test.js.map +1 -0
  83. package/packages/server/dist/index.js +2 -0
  84. package/packages/server/dist/index.js.map +1 -1
  85. package/packages/server/dist/qdrant/client.d.ts +4 -0
  86. package/packages/server/dist/qdrant/client.js +12 -0
  87. package/packages/server/dist/qdrant/client.js.map +1 -1
  88. package/packages/server/package.json +1 -1
  89. package/packages/server/src/api/points.test.ts +113 -0
  90. package/packages/server/src/api/points.ts +92 -0
  91. package/packages/server/src/api/search.test.ts +110 -0
  92. package/packages/server/src/api/search.ts +59 -13
  93. package/packages/server/src/api/store.test.ts +91 -0
  94. package/packages/server/src/api/store.ts +60 -12
  95. package/packages/server/src/index.ts +2 -0
  96. package/packages/server/src/qdrant/client.ts +15 -0
  97. package/packages/cli/coverage/tmp/coverage-7461-1770137208528-0.json +0 -1
  98. package/packages/cli/coverage/tmp/coverage-7468-1770137208547-0.json +0 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">47.36% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/38</span>
28
+ <span class='fraction'>38/38</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">77.77% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/1</span>
35
+ <span class='fraction'>7/9</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/2</span>
42
+ <span class='fraction'>2/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">47.36% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>18/38</span>
49
+ <span class='fraction'>38/38</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -111,26 +111,26 @@
111
111
  <span class="cline-any cline-yes">1x</span>
112
112
  <span class="cline-any cline-yes">1x</span>
113
113
  <span class="cline-any cline-yes">1x</span>
114
- <span class="cline-any cline-no">&nbsp;</span>
115
- <span class="cline-any cline-no">&nbsp;</span>
116
- <span class="cline-any cline-no">&nbsp;</span>
117
- <span class="cline-any cline-no">&nbsp;</span>
118
- <span class="cline-any cline-no">&nbsp;</span>
119
- <span class="cline-any cline-no">&nbsp;</span>
120
- <span class="cline-any cline-no">&nbsp;</span>
121
- <span class="cline-any cline-no">&nbsp;</span>
122
- <span class="cline-any cline-no">&nbsp;</span>
123
- <span class="cline-any cline-no">&nbsp;</span>
124
- <span class="cline-any cline-no">&nbsp;</span>
125
- <span class="cline-any cline-no">&nbsp;</span>
126
- <span class="cline-any cline-no">&nbsp;</span>
127
- <span class="cline-any cline-no">&nbsp;</span>
128
- <span class="cline-any cline-no">&nbsp;</span>
129
- <span class="cline-any cline-no">&nbsp;</span>
130
- <span class="cline-any cline-no">&nbsp;</span>
131
- <span class="cline-any cline-no">&nbsp;</span>
132
- <span class="cline-any cline-no">&nbsp;</span>
133
- <span class="cline-any cline-no">&nbsp;</span>
114
+ <span class="cline-any cline-yes">2x</span>
115
+ <span class="cline-any cline-yes">2x</span>
116
+ <span class="cline-any cline-yes">1x</span>
117
+ <span class="cline-any cline-yes">1x</span>
118
+ <span class="cline-any cline-yes">1x</span>
119
+ <span class="cline-any cline-yes">1x</span>
120
+ <span class="cline-any cline-yes">1x</span>
121
+ <span class="cline-any cline-yes">1x</span>
122
+ <span class="cline-any cline-yes">1x</span>
123
+ <span class="cline-any cline-yes">1x</span>
124
+ <span class="cline-any cline-yes">1x</span>
125
+ <span class="cline-any cline-yes">1x</span>
126
+ <span class="cline-any cline-yes">1x</span>
127
+ <span class="cline-any cline-yes">1x</span>
128
+ <span class="cline-any cline-yes">1x</span>
129
+ <span class="cline-any cline-yes">1x</span>
130
+ <span class="cline-any cline-yes">1x</span>
131
+ <span class="cline-any cline-yes">1x</span>
132
+ <span class="cline-any cline-yes">1x</span>
133
+ <span class="cline-any cline-yes">1x</span>
134
134
  <span class="cline-any cline-yes">1x</span>
135
135
  <span class="cline-any cline-yes">1x</span>
136
136
  <span class="cline-any cline-yes">1x</span>
@@ -148,27 +148,27 @@ import type { MemConfig } from "../config/types.js";
148
148
  * Apply BEFORE any directory traversal. Only these paths are eligible.
149
149
  * If indexing.include is absent, entire repo root is eligible (we still need to list files).
150
150
  */
151
- export<span class="fstat-no" title="function not covered" > function listInScopeFiles(cwd: string, config: MemConfig): string[] {</span>
152
- <span class="cstat-no" title="statement not covered" > const include = config.indexing?.include;</span>
153
- <span class="cstat-no" title="statement not covered" > if (!include?.length) {</span>
154
- <span class="cstat-no" title="statement not covered" > const all = fg.sync("**/*", {</span>
155
- <span class="cstat-no" title="statement not covered" > cwd,</span>
156
- <span class="cstat-no" title="statement not covered" > dot: true,</span>
157
- <span class="cstat-no" title="statement not covered" > onlyFiles: true,</span>
158
- <span class="cstat-no" title="statement not covered" > absolute: true,</span>
159
- <span class="cstat-no" title="statement not covered" > suppressErrors: true,</span>
160
- <span class="cstat-no" title="statement not covered" > });</span>
161
- <span class="cstat-no" title="statement not covered" > return all.map((p) =&gt; p.startsWith(cwd) ? p : join(cwd, p));</span>
162
- <span class="cstat-no" title="statement not covered" > }</span>
163
- <span class="cstat-no" title="statement not covered" > const files = fg.sync(include, {</span>
164
- <span class="cstat-no" title="statement not covered" > cwd,</span>
165
- <span class="cstat-no" title="statement not covered" > dot: true,</span>
166
- <span class="cstat-no" title="statement not covered" > onlyFiles: true,</span>
167
- <span class="cstat-no" title="statement not covered" > absolute: true,</span>
168
- <span class="cstat-no" title="statement not covered" > suppressErrors: true,</span>
169
- <span class="cstat-no" title="statement not covered" > });</span>
170
- <span class="cstat-no" title="statement not covered" > return files.map((p) =&gt; (p.startsWith(cwd) ? p : join(cwd, p)));</span>
171
- <span class="cstat-no" title="statement not covered" >}</span>
151
+ export function listInScopeFiles(cwd: string, config: MemConfig): string[] {
152
+ const include = config.indexing?.include;
153
+ if (!include?.length) {
154
+ const all = fg.sync("**/*", {
155
+ cwd,
156
+ dot: true,
157
+ onlyFiles: true,
158
+ absolute: true,
159
+ suppressErrors: true,
160
+ });
161
+ return all.map((p) =&gt; p.startsWith(cwd) ? p <span class="branch-0 cbranch-no" title="branch not covered" >: join(cwd, p))</span>;
162
+ }
163
+ const files = fg.sync(include, {
164
+ cwd,
165
+ dot: true,
166
+ onlyFiles: true,
167
+ absolute: true,
168
+ suppressErrors: true,
169
+ });
170
+ return files.map((p) =&gt; (p.startsWith(cwd) ? p <span class="branch-0 cbranch-no" title="branch not covered" >: join(cwd, p))</span>);
171
+ }
172
172
  &nbsp;
173
173
  /**
174
174
  * Given an absolute path, return the relative path from cwd for ignore matching.
@@ -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-03T16:46:48.617Z
187
+ at 2026-02-04T03:13:41.455Z
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-03T16:46:48.617Z
331
+ at 2026-02-04T03:13:41.455Z
332
332
  </div>
333
333
  <script src="../prettify.js"></script>
334
334
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">83.87% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>104/124</span>
28
+ <span class='fraction'>124/124</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">94.28% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>27/27</span>
35
+ <span class='fraction'>33/35</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">88.88% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/9</span>
42
+ <span class='fraction'>9/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.87% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>104/124</span>
49
+ <span class='fraction'>124/124</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,18 +79,18 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file low" data-value="allowlist.ts"><a href="allowlist.ts.html">allowlist.ts</a></td>
83
- <td data-value="47.36" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 47%"></div><div class="cover-empty" style="width: 53%"></div></div>
82
+ <td class="file high" data-value="allowlist.ts"><a href="allowlist.ts.html">allowlist.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>
85
85
  </td>
86
- <td data-value="47.36" class="pct low">47.36%</td>
87
- <td data-value="38" class="abs low">18/38</td>
88
86
  <td data-value="100" class="pct high">100%</td>
89
- <td data-value="1" class="abs high">1/1</td>
90
- <td data-value="50" class="pct medium">50%</td>
91
- <td data-value="2" class="abs medium">1/2</td>
92
- <td data-value="47.36" class="pct low">47.36%</td>
93
- <td data-value="38" class="abs low">18/38</td>
87
+ <td data-value="38" class="abs high">38/38</td>
88
+ <td data-value="77.77" class="pct medium">77.77%</td>
89
+ <td data-value="9" class="abs medium">7/9</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="2" class="abs high">2/2</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="38" class="abs high">38/38</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -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-03T16:46:48.617Z
119
+ at 2026-02-04T03:13:41.455Z
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>