@jcode.labs/ragmir 6.1.6 → 6.2.1

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 (162) hide show
  1. package/README.md +43 -49
  2. package/dist/cli.js +194 -24
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config.d.ts +24 -2
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +127 -24
  7. package/dist/config.js.map +1 -1
  8. package/dist/context-resources.d.ts.map +1 -1
  9. package/dist/context-resources.js +19 -8
  10. package/dist/context-resources.js.map +1 -1
  11. package/dist/defaults.d.ts +5 -0
  12. package/dist/defaults.d.ts.map +1 -1
  13. package/dist/defaults.js +16 -0
  14. package/dist/defaults.js.map +1 -1
  15. package/dist/destroy.d.ts.map +1 -1
  16. package/dist/destroy.js +3 -2
  17. package/dist/destroy.js.map +1 -1
  18. package/dist/doctor.d.ts.map +1 -1
  19. package/dist/doctor.js +37 -5
  20. package/dist/doctor.js.map +1 -1
  21. package/dist/durable-file.d.ts.map +1 -1
  22. package/dist/durable-file.js +3 -2
  23. package/dist/durable-file.js.map +1 -1
  24. package/dist/embeddings.d.ts.map +1 -1
  25. package/dist/embeddings.js +7 -6
  26. package/dist/embeddings.js.map +1 -1
  27. package/dist/evaluate.d.ts.map +1 -1
  28. package/dist/evaluate.js +11 -6
  29. package/dist/evaluate.js.map +1 -1
  30. package/dist/files.d.ts +27 -1
  31. package/dist/files.d.ts.map +1 -1
  32. package/dist/files.js +344 -100
  33. package/dist/files.js.map +1 -1
  34. package/dist/freshness.d.ts +16 -0
  35. package/dist/freshness.d.ts.map +1 -0
  36. package/dist/freshness.js +97 -0
  37. package/dist/freshness.js.map +1 -0
  38. package/dist/fs-retry.d.ts +16 -0
  39. package/dist/fs-retry.d.ts.map +1 -0
  40. package/dist/fs-retry.js +49 -0
  41. package/dist/fs-retry.js.map +1 -0
  42. package/dist/generation-retention.d.ts +12 -0
  43. package/dist/generation-retention.d.ts.map +1 -1
  44. package/dist/generation-retention.js +13 -2
  45. package/dist/generation-retention.js.map +1 -1
  46. package/dist/git-hooks.d.ts +25 -0
  47. package/dist/git-hooks.d.ts.map +1 -0
  48. package/dist/git-hooks.js +173 -0
  49. package/dist/git-hooks.js.map +1 -0
  50. package/dist/index-diagnostics.d.ts +9 -1
  51. package/dist/index-diagnostics.d.ts.map +1 -1
  52. package/dist/index-diagnostics.js +35 -0
  53. package/dist/index-diagnostics.js.map +1 -1
  54. package/dist/index-policy.d.ts.map +1 -1
  55. package/dist/index-policy.js +4 -0
  56. package/dist/index-policy.js.map +1 -1
  57. package/dist/index-write-lock.d.ts.map +1 -1
  58. package/dist/index-write-lock.js +8 -7
  59. package/dist/index-write-lock.js.map +1 -1
  60. package/dist/ingest.d.ts +6 -0
  61. package/dist/ingest.d.ts.map +1 -1
  62. package/dist/ingest.js +44 -21
  63. package/dist/ingest.js.map +1 -1
  64. package/dist/init.d.ts.map +1 -1
  65. package/dist/init.js +19 -4
  66. package/dist/init.js.map +1 -1
  67. package/dist/knowledge-bases.d.ts +18 -1
  68. package/dist/knowledge-bases.d.ts.map +1 -1
  69. package/dist/knowledge-bases.js +73 -4
  70. package/dist/knowledge-bases.js.map +1 -1
  71. package/dist/mcp-output.d.ts +14 -3
  72. package/dist/mcp-output.d.ts.map +1 -1
  73. package/dist/mcp-output.js +37 -0
  74. package/dist/mcp-output.js.map +1 -1
  75. package/dist/mcp-registrations.d.ts +9 -0
  76. package/dist/mcp-registrations.d.ts.map +1 -0
  77. package/dist/mcp-registrations.js +247 -0
  78. package/dist/mcp-registrations.js.map +1 -0
  79. package/dist/mcp-scope.d.ts +32 -0
  80. package/dist/mcp-scope.d.ts.map +1 -0
  81. package/dist/mcp-scope.js +114 -0
  82. package/dist/mcp-scope.js.map +1 -0
  83. package/dist/mcp-session.d.ts +37 -0
  84. package/dist/mcp-session.d.ts.map +1 -0
  85. package/dist/mcp-session.js +53 -0
  86. package/dist/mcp-session.js.map +1 -0
  87. package/dist/mcp-summaries.d.ts +5 -0
  88. package/dist/mcp-summaries.d.ts.map +1 -1
  89. package/dist/mcp-summaries.js +30 -0
  90. package/dist/mcp-summaries.js.map +1 -1
  91. package/dist/mcp.d.ts +6 -0
  92. package/dist/mcp.d.ts.map +1 -1
  93. package/dist/mcp.js +410 -103
  94. package/dist/mcp.js.map +1 -1
  95. package/dist/ocr-cache.d.ts.map +1 -1
  96. package/dist/ocr-cache.js +3 -2
  97. package/dist/ocr-cache.js.map +1 -1
  98. package/dist/ocr.d.ts +51 -0
  99. package/dist/ocr.d.ts.map +1 -1
  100. package/dist/ocr.js +213 -6
  101. package/dist/ocr.js.map +1 -1
  102. package/dist/package-manager.d.ts.map +1 -1
  103. package/dist/package-manager.js +2 -1
  104. package/dist/package-manager.js.map +1 -1
  105. package/dist/preview.d.ts.map +1 -1
  106. package/dist/preview.js +3 -7
  107. package/dist/preview.js.map +1 -1
  108. package/dist/project-config-file.d.ts.map +1 -1
  109. package/dist/project-config-file.js +3 -2
  110. package/dist/project-config-file.js.map +1 -1
  111. package/dist/quality-report.d.ts.map +1 -1
  112. package/dist/quality-report.js +1 -1
  113. package/dist/quality-report.js.map +1 -1
  114. package/dist/query.d.ts.map +1 -1
  115. package/dist/query.js +235 -34
  116. package/dist/query.js.map +1 -1
  117. package/dist/ranking.d.ts +56 -6
  118. package/dist/ranking.d.ts.map +1 -1
  119. package/dist/ranking.js +187 -16
  120. package/dist/ranking.js.map +1 -1
  121. package/dist/retrieval-diversity.d.ts +5 -0
  122. package/dist/retrieval-diversity.d.ts.map +1 -1
  123. package/dist/retrieval-diversity.js +4 -2
  124. package/dist/retrieval-diversity.js.map +1 -1
  125. package/dist/search-output.d.ts.map +1 -1
  126. package/dist/search-output.js +2 -0
  127. package/dist/search-output.js.map +1 -1
  128. package/dist/security.js +1 -1
  129. package/dist/security.js.map +1 -1
  130. package/dist/setup-prompt.d.ts +1 -1
  131. package/dist/setup-prompt.d.ts.map +1 -1
  132. package/dist/setup-prompt.js +3 -3
  133. package/dist/setup.js +1 -1
  134. package/dist/setup.js.map +1 -1
  135. package/dist/skill.d.ts +2 -0
  136. package/dist/skill.d.ts.map +1 -1
  137. package/dist/skill.js +125 -16
  138. package/dist/skill.js.map +1 -1
  139. package/dist/source-fingerprint-cache.d.ts.map +1 -1
  140. package/dist/source-fingerprint-cache.js +3 -2
  141. package/dist/source-fingerprint-cache.js.map +1 -1
  142. package/dist/source-paths.d.ts +36 -0
  143. package/dist/source-paths.d.ts.map +1 -0
  144. package/dist/source-paths.js +157 -0
  145. package/dist/source-paths.js.map +1 -0
  146. package/dist/source-weights.d.ts +28 -0
  147. package/dist/source-weights.d.ts.map +1 -0
  148. package/dist/source-weights.js +241 -0
  149. package/dist/source-weights.js.map +1 -0
  150. package/dist/storage-maintenance.d.ts +3 -1
  151. package/dist/storage-maintenance.d.ts.map +1 -1
  152. package/dist/storage-maintenance.js +24 -4
  153. package/dist/storage-maintenance.js.map +1 -1
  154. package/dist/storage-usage.d.ts +21 -0
  155. package/dist/storage-usage.d.ts.map +1 -0
  156. package/dist/storage-usage.js +119 -0
  157. package/dist/storage-usage.js.map +1 -0
  158. package/dist/types.d.ts +127 -3
  159. package/dist/types.d.ts.map +1 -1
  160. package/dist/version.d.ts +1 -1
  161. package/dist/version.js +1 -1
  162. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-paths.js","sourceRoot":"","sources":["../src/source-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Config } from "./types.js";
2
+ /**
3
+ * Ranking priors that slightly demote files agents rarely need as primary evidence: tests restate
4
+ * the code they cover and snapshots repeat generated output. They only reorder close candidates;
5
+ * `pathPriors: false` turns them off and `sourceWeights` can override any pattern. Agent
6
+ * instruction files stay neutral: in many projects they hold the rules a question is about.
7
+ */
8
+ export declare const DEFAULT_PATH_PRIORS: Readonly<Record<string, number>>;
9
+ /**
10
+ * Ranking multiplier for a source path: the product of every matching path prior and configured
11
+ * source weight. A configured pattern that repeats a prior replaces it.
12
+ */
13
+ export declare function sourceWeightOf(config: Pick<Config, "pathPriors" | "sourceWeights">): (relativePath: string) => number;
14
+ /**
15
+ * Key shared by the translations of one document: `messages/fr.json` and `messages/en.json`, or
16
+ * `docs/fr/guide.md` and `docs/en/guide.md`, collapse to one key so they take one result slot.
17
+ */
18
+ export declare function localeDocumentKey(relativePath: string): string;
19
+ /**
20
+ * Boost code passages that define what the question names: "how are permissions checked" should
21
+ * reach the class that declares `PermissionService` before tests and docs that only mention it.
22
+ * Returns a multiplier of 1 (no definition matches) up to 1.2.
23
+ */
24
+ export declare function definitionBoostOf(queryTokens: readonly string[]): (row: {
25
+ relativePath: string;
26
+ text: string;
27
+ }) => number;
28
+ //# sourceMappingURL=source-weights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-weights.d.ts","sourceRoot":"","sources":["../src/source-weights.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUhE,CAAA;AASD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAAC,GACnD,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CA2BlC;AAiDD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAW9D;AAwFD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,CAAC,GAAG,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAiCzD"}
@@ -0,0 +1,241 @@
1
+ import path from "node:path";
2
+ import picomatch from "picomatch";
3
+ import { identifierParts, normalizeForMatch } from "./text.js";
4
+ /**
5
+ * Ranking priors that slightly demote files agents rarely need as primary evidence: tests restate
6
+ * the code they cover and snapshots repeat generated output. They only reorder close candidates;
7
+ * `pathPriors: false` turns them off and `sourceWeights` can override any pattern. Agent
8
+ * instruction files stay neutral: in many projects they hold the rules a question is about.
9
+ */
10
+ export const DEFAULT_PATH_PRIORS = {
11
+ "**/__tests__/**": 0.85,
12
+ "**/*.{test,spec}.*": 0.85,
13
+ "**/test/**": 0.85,
14
+ "**/tests/**": 0.85,
15
+ "**/*{Test,Tests,IT}.{java,kt,scala,groovy}": 0.85,
16
+ "**/*_test.{go,py,rb,exs}": 0.85,
17
+ "**/test_*.py": 0.85,
18
+ "**/__snapshots__/**": 0.7,
19
+ "**/*.snap": 0.7,
20
+ };
21
+ const compiledWeights = new Map();
22
+ /**
23
+ * Ranking multiplier for a source path: the product of every matching path prior and configured
24
+ * source weight. A configured pattern that repeats a prior replaces it.
25
+ */
26
+ export function sourceWeightOf(config) {
27
+ const entries = {
28
+ ...(config.pathPriors ? DEFAULT_PATH_PRIORS : {}),
29
+ ...config.sourceWeights,
30
+ };
31
+ const key = JSON.stringify(entries);
32
+ let compiled = compiledWeights.get(key);
33
+ if (!compiled) {
34
+ compiled = Object.entries(entries)
35
+ .filter(([, weight]) => weight !== 1)
36
+ .map(([pattern, weight]) => ({
37
+ matches: picomatch(pattern, { dot: true, nocase: true, basename: !pattern.includes("/") }),
38
+ weight,
39
+ }));
40
+ compiledWeights.set(key, compiled);
41
+ }
42
+ const weights = compiled;
43
+ if (weights.length === 0) {
44
+ return () => 1;
45
+ }
46
+ return (relativePath) => {
47
+ let weight = 1;
48
+ for (const entry of weights) {
49
+ if (entry.matches(relativePath))
50
+ weight *= entry.weight;
51
+ }
52
+ return weight;
53
+ };
54
+ }
55
+ const LOCALE_CONTAINERS = new Set([
56
+ "i18n",
57
+ "intl",
58
+ "l10n",
59
+ "lang",
60
+ "langs",
61
+ "language",
62
+ "languages",
63
+ "locale",
64
+ "locales",
65
+ "messages",
66
+ "nls",
67
+ "strings",
68
+ "translation",
69
+ "translations",
70
+ ]);
71
+ const TRANSLATION_EXTENSIONS = new Set([
72
+ ".arb",
73
+ ".ftl",
74
+ ".json",
75
+ ".po",
76
+ ".pot",
77
+ ".properties",
78
+ ".resx",
79
+ ".strings",
80
+ ".toml",
81
+ ".xlf",
82
+ ".xliff",
83
+ ".yaml",
84
+ ".yml",
85
+ ]);
86
+ const DOCUMENT_EXTENSIONS = new Set([".html", ".md", ".mdx", ".rst", ".txt", ".adoc"]);
87
+ // ISO 639-1 codes, so `id/`, `db/`, or `ui/` folders only collapse in a translation context.
88
+ const LANGUAGE_CODES = new Set(("aa ab ae af ak am an ar as av ay az ba be bg bh bi bm bn bo br bs ca ce ch co cr cs cu cv cy " +
89
+ "da de dv dz ee el en eo es et eu fa ff fi fj fo fr fy ga gd gl gn gu gv ha he hi ho hr ht hu " +
90
+ "hy hz ia id ie ig ii ik io is it iu ja jv ka kg ki kj kk kl km kn ko kr ks ku kv kw ky la lb " +
91
+ "lg li ln lo lt lu lv mg mh mi mk ml mn mr ms mt my na nb nd ne ng nl nn no nr nv ny oc oj om " +
92
+ "or os pa pi pl ps pt qu rm rn ro ru rw sa sc sd se sg si sk sl sm sn so sq sr ss st su sv sw " +
93
+ "ta te tg th ti tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa wo xh yi yo za zh zu").split(" "));
94
+ const LOCALE_PATTERN = /^([a-z]{2})(?:[-_]([A-Za-z]{4}))?(?:[-_]([A-Za-z]{2}|\d{3}))?$/u;
95
+ const ANDROID_VALUES_PATTERN = /^values-([a-z]{2})(?:-r[A-Z]{2})?$/u;
96
+ const APPLE_LPROJ_PATTERN = /^([a-z]{2})(?:[-_][A-Za-z]{2,4})?\.lproj$/u;
97
+ /**
98
+ * Key shared by the translations of one document: `messages/fr.json` and `messages/en.json`, or
99
+ * `docs/fr/guide.md` and `docs/en/guide.md`, collapse to one key so they take one result slot.
100
+ */
101
+ export function localeDocumentKey(relativePath) {
102
+ const segments = relativePath.split("/");
103
+ const fileName = segments.pop() ?? "";
104
+ const directories = segments.map((segment, index) => isLocaleDirectory(segment, index > 0 ? segments[index - 1] : undefined) ? "{locale}" : segment);
105
+ const extension = path.posix.extname(fileName);
106
+ const stem = extension ? fileName.slice(0, -extension.length) : fileName;
107
+ const parent = segments.at(-1);
108
+ const fileKey = localeFileStem(stem, extension.toLowerCase(), parent);
109
+ return [...directories, `${fileKey}${extension}`].join("/");
110
+ }
111
+ function isLocaleDirectory(segment, parent) {
112
+ if (ANDROID_VALUES_PATTERN.test(segment) || APPLE_LPROJ_PATTERN.test(segment)) {
113
+ return true;
114
+ }
115
+ const locale = LOCALE_PATTERN.exec(segment);
116
+ if (!locale || !LANGUAGE_CODES.has(locale[1] ?? "")) {
117
+ return false;
118
+ }
119
+ // `fr-FR/` is unambiguous; a bare `fr/` needs a translation parent such as `locales/`.
120
+ return locale[2] !== undefined || locale[3] !== undefined || isLocaleContainer(parent);
121
+ }
122
+ function localeFileStem(stem, extension, parent) {
123
+ if (isLocaleCode(stem) && (TRANSLATION_EXTENSIONS.has(extension) || isLocaleContainer(parent))) {
124
+ return "{locale}";
125
+ }
126
+ // README.fr.md, messages_fr.properties, Resources.fr-FR.resx
127
+ const suffix = /^(.+?)([._-])([a-z]{2}(?:[-_][A-Za-z]{2,4})?)$/u.exec(stem);
128
+ if (suffix &&
129
+ isLocaleCode(suffix[3] ?? "") &&
130
+ (TRANSLATION_EXTENSIONS.has(extension) || DOCUMENT_EXTENSIONS.has(extension)) &&
131
+ (suffix[2] === "." || TRANSLATION_EXTENSIONS.has(extension))) {
132
+ return `${suffix[1]}${suffix[2]}{locale}`;
133
+ }
134
+ return stem;
135
+ }
136
+ function isLocaleCode(value) {
137
+ const locale = LOCALE_PATTERN.exec(value);
138
+ return locale !== null && LANGUAGE_CODES.has(locale[1] ?? "");
139
+ }
140
+ function isLocaleContainer(segment) {
141
+ return segment !== undefined && LOCALE_CONTAINERS.has(segment.toLowerCase());
142
+ }
143
+ const CODE_EXTENSIONS = new Set([
144
+ ".c",
145
+ ".cc",
146
+ ".cjs",
147
+ ".cpp",
148
+ ".cs",
149
+ ".cts",
150
+ ".dart",
151
+ ".ex",
152
+ ".exs",
153
+ ".go",
154
+ ".groovy",
155
+ ".h",
156
+ ".hpp",
157
+ ".java",
158
+ ".js",
159
+ ".jsx",
160
+ ".kt",
161
+ ".kts",
162
+ ".mjs",
163
+ ".mts",
164
+ ".php",
165
+ ".py",
166
+ ".rb",
167
+ ".rs",
168
+ ".scala",
169
+ ".svelte",
170
+ ".swift",
171
+ ".ts",
172
+ ".tsx",
173
+ ".vue",
174
+ ]);
175
+ const DEFINITION_PATTERNS = [
176
+ // Types and modules across C-family, JVM, Swift, Rust, Python, Ruby, PHP, and TypeScript.
177
+ /\b(?:class|interface|enum|record|struct|trait|object|protocol|module|namespace|type)\s+([A-Za-z_$][\w$]*)/gu,
178
+ // Functions and methods introduced by a keyword.
179
+ /\b(?:function|func|fn|def|fun|sub)\s+\*?\s*([A-Za-z_$][\w$]*)/gu,
180
+ // const handler = (...) => / async function expressions.
181
+ /\b(?:const|let|var|val)\s+([A-Za-z_$][\w$]*)\s*(?::[^=]+)?=\s*(?:async\s+)?(?:function\b|\([^)]*\)\s*=>|[A-Za-z_$][\w$]*\s*=>)/gu,
182
+ // Java, C#, Kotlin, and Scala methods after visibility or modifier keywords.
183
+ /\b(?:public|private|protected|internal|static|final|override|abstract|synchronized|suspend)\s+(?:[\w<>[\],.?]+\s+)*?([a-z_$][\w$]*)\s*\(/gu,
184
+ ];
185
+ // Calibrated on a Java and TypeScript monorepo golden set: enough to lift the defining class above
186
+ // tests and notes that mention it, not enough to outrank prose that answers the question better.
187
+ const DEFINITION_BOOST_PER_PART = 0.07;
188
+ const MAX_DEFINITION_BOOST = 0.2;
189
+ const MIN_STEM_LENGTH = 5;
190
+ /**
191
+ * Boost code passages that define what the question names: "how are permissions checked" should
192
+ * reach the class that declares `PermissionService` before tests and docs that only mention it.
193
+ * Returns a multiplier of 1 (no definition matches) up to 1.2.
194
+ */
195
+ export function definitionBoostOf(queryTokens) {
196
+ const tokens = [...new Set(queryTokens)].filter((token) => token.length >= 3);
197
+ if (tokens.length === 0) {
198
+ return () => 1;
199
+ }
200
+ return (row) => {
201
+ if (!CODE_EXTENSIONS.has(path.posix.extname(row.relativePath).toLowerCase())) {
202
+ return 1;
203
+ }
204
+ const parts = new Set();
205
+ for (const pattern of DEFINITION_PATTERNS) {
206
+ pattern.lastIndex = 0;
207
+ for (const match of row.text.matchAll(pattern)) {
208
+ const name = match[1];
209
+ if (!name)
210
+ continue;
211
+ parts.add(normalizeForMatch(name));
212
+ for (const part of identifierParts(name))
213
+ parts.add(part);
214
+ }
215
+ }
216
+ if (parts.size === 0) {
217
+ return 1;
218
+ }
219
+ let matched = 0;
220
+ for (const token of tokens) {
221
+ for (const part of parts) {
222
+ if (sameStem(token, part)) {
223
+ matched += 1;
224
+ break;
225
+ }
226
+ }
227
+ }
228
+ return 1 + Math.min(MAX_DEFINITION_BOOST, matched * DEFINITION_BOOST_PER_PART);
229
+ };
230
+ }
231
+ function sameStem(left, right) {
232
+ if (left === right) {
233
+ return true;
234
+ }
235
+ const shorter = left.length <= right.length ? left : right;
236
+ const longer = shorter === left ? right : left;
237
+ return (shorter.length >= MIN_STEM_LENGTH &&
238
+ longer.startsWith(shorter) &&
239
+ longer.length - shorter.length <= 4);
240
+ }
241
+ //# sourceMappingURL=source-weights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-weights.js","sourceRoot":"","sources":["../src/source-weights.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { Connection, OptimizeStats, Table } from "@lancedb/lancedb";
2
2
  import type { Config, OperationOptions } from "./types.js";
3
3
  import { type AdaptiveIndexMaintenanceReport } from "./vector-index.js";
4
4
  export type StorageMaintenanceAction = "compact-fragments" | "prune-old-versions" | "refresh-full-text-index";
5
- export type StorageMaintenanceReason = "forced" | "fragmentation-threshold" | "missing-full-text-index" | "mutation-threshold" | "unindexed-full-text-rows";
5
+ export type StorageMaintenanceReason = "forced" | "fragmentation-threshold" | "missing-full-text-index" | "mutation-threshold" | "unindexed-full-text-rows" | "version-threshold";
6
6
  export interface StorageMaintenanceOptions {
7
7
  additionalMutations?: number;
8
8
  dryRun?: boolean;
@@ -21,6 +21,8 @@ export interface StorageMaintenanceReport {
21
21
  forced: boolean;
22
22
  totalRows: number;
23
23
  tableVersion: number | null;
24
+ /** Table versions kept on disk; old ones are pruned once they pile up. */
25
+ versionCount: number;
24
26
  mutationsSinceOptimization: number;
25
27
  fragments: {
26
28
  total: number;
@@ -1 +1 @@
1
- {"version":3,"file":"storage-maintenance.d.ts","sourceRoot":"","sources":["../src/storage-maintenance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAQxE,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,KAAK,8BAA8B,EAA2B,MAAM,mBAAmB,CAAA;AAehG,MAAM,MAAM,wBAAwB,GAChC,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,CAAA;AAE7B,MAAM,MAAM,wBAAwB,GAChC,QAAQ,GACR,yBAAyB,GACzB,yBAAyB,GACzB,oBAAoB,GACpB,0BAA0B,CAAA;AAE9B,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,CAAC,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;IAClE,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,0BAA0B,EAAE,MAAM,CAAA;IAClC,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,eAAe,EAAE,8BAA8B,GAAG,IAAI,CAAA;IACtD,OAAO,EAAE,wBAAwB,EAAE,CAAA;IACnC,cAAc,EAAE,wBAAwB,EAAE,CAAA;IAC1C,gBAAgB,EAAE,wBAAwB,EAAE,CAAA;IAC5C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAmBD,wBAAsB,eAAe,CACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAwJnC"}
1
+ {"version":3,"file":"storage-maintenance.d.ts","sourceRoot":"","sources":["../src/storage-maintenance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AASxE,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,KAAK,8BAA8B,EAA2B,MAAM,mBAAmB,CAAA;AAoBhG,MAAM,MAAM,wBAAwB,GAChC,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,CAAA;AAE7B,MAAM,MAAM,wBAAwB,GAChC,QAAQ,GACR,yBAAyB,GACzB,yBAAyB,GACzB,oBAAoB,GACpB,0BAA0B,GAC1B,mBAAmB,CAAA;AAEvB,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,CAAC,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;IAClE,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAA;IACpB,0BAA0B,EAAE,MAAM,CAAA;IAClC,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,eAAe,EAAE,8BAA8B,GAAG,IAAI,CAAA;IACtD,OAAO,EAAE,wBAAwB,EAAE,CAAA;IACnC,cAAc,EAAE,wBAAwB,EAAE,CAAA;IAC1C,gBAAgB,EAAE,wBAAwB,EAAE,CAAA;IAC5C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAoBD,wBAAsB,eAAe,CACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CA6JnC"}
@@ -1,8 +1,9 @@
1
1
  import { randomUUID } from "node:crypto";
2
- import { readFile, rename, rm, writeFile } from "node:fs/promises";
2
+ import { readFile, rm, writeFile } from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import * as lancedb from "@lancedb/lancedb";
5
5
  import { loadConfig } from "./config.js";
6
+ import { renameWithRetry } from "./fs-retry.js";
6
7
  import { isRecord } from "./guards.js";
7
8
  import { withIndexWriteLock } from "./index-write-lock.js";
8
9
  import { operationSignal } from "./operation.js";
@@ -21,6 +22,11 @@ const MINIMUM_FRAGMENT_COUNT = 8;
21
22
  const AUTOMATIC_COMPACTION_FRAGMENT_COUNT = 64;
22
23
  const SMALL_FRAGMENT_RATIO_THRESHOLD = 0.25;
23
24
  const OLD_VERSION_RETENTION_MS = 7 * 24 * 60 * 60 * 1_000;
25
+ // Every incremental ingest commits new table versions. Below the compaction thresholds nothing
26
+ // pruned them, and a 44,000-row index kept 1,300 versions: 1.5 GB on disk for 115 MB of data.
27
+ // Readers reopen the latest version after each ingest, so a short retention is safe once they pile up.
28
+ const VERSION_PILEUP_THRESHOLD = 100;
29
+ const PILEUP_VERSION_RETENTION_MS = 60 * 60 * 1_000;
24
30
  export async function optimizeStorage(options = {}) {
25
31
  const config = await loadConfig(options.cwd ?? process.cwd());
26
32
  const signal = operationSignal(options);
@@ -85,7 +91,10 @@ export async function maintainOpenStorageTable(table, tableName, config, options
85
91
  let optimizeStats = null;
86
92
  let optimized = false;
87
93
  const optimizeOptions = {
88
- cleanupOlderThan: new Date(Date.now() - OLD_VERSION_RETENTION_MS),
94
+ cleanupOlderThan: new Date(Date.now() -
95
+ (before.versionCount > VERSION_PILEUP_THRESHOLD
96
+ ? PILEUP_VERSION_RETENTION_MS
97
+ : OLD_VERSION_RETENTION_MS)),
89
98
  deleteUnverified: false,
90
99
  };
91
100
  if (plannedActions.includes("compact-fragments")) {
@@ -181,10 +190,15 @@ export async function maintainOpenStorageTable(table, tableName, config, options
181
190
  });
182
191
  }
183
192
  async function inspectTableHealth(table) {
184
- const [stats, tableVersion] = await Promise.all([table.stats(), table.version()]);
193
+ const [stats, tableVersion, versions] = await Promise.all([
194
+ table.stats(),
195
+ table.version(),
196
+ table.listVersions().catch(() => []),
197
+ ]);
185
198
  return {
186
199
  totalRows: stats.numRows,
187
200
  tableVersion,
201
+ versionCount: versions.length,
188
202
  fragments: {
189
203
  total: stats.fragmentStats.numFragments,
190
204
  small: stats.fragmentStats.numSmallFragments,
@@ -251,6 +265,9 @@ function maintenanceReasons(health, mutationsSinceOptimization, forced) {
251
265
  if (fragmentationRequiresCompaction(health, automaticCompactionEligible)) {
252
266
  reasons.push("fragmentation-threshold");
253
267
  }
268
+ if (health.versionCount > VERSION_PILEUP_THRESHOLD) {
269
+ reasons.push("version-threshold");
270
+ }
254
271
  return reasons;
255
272
  }
256
273
  function fragmentationRequiresCompaction(health, automaticCompactionEligible) {
@@ -264,6 +281,7 @@ function maintenanceActions(health, mutationsSinceOptimization, forced) {
264
281
  const actions = [];
265
282
  const automaticCompactionEligible = health.totalRows >= MINIMUM_AUTOMATIC_COMPACTION_ROWS;
266
283
  const compact = forced ||
284
+ health.versionCount > VERSION_PILEUP_THRESHOLD ||
267
285
  fragmentationRequiresCompaction(health, automaticCompactionEligible) ||
268
286
  (automaticCompactionEligible && mutationsSinceOptimization >= MUTATION_COMPACTION_THRESHOLD);
269
287
  if (compact) {
@@ -283,6 +301,7 @@ function reportForHealth(input) {
283
301
  forced: input.forced,
284
302
  totalRows: input.health.totalRows,
285
303
  tableVersion: input.health.tableVersion,
304
+ versionCount: input.health.versionCount,
286
305
  mutationsSinceOptimization: input.mutationsSinceOptimization,
287
306
  fragments: input.health.fragments,
288
307
  fullTextIndex: input.health.fullTextIndex,
@@ -303,6 +322,7 @@ function missingTableReport(tableName, options) {
303
322
  forced: options.force === true,
304
323
  totalRows: 0,
305
324
  tableVersion: null,
325
+ versionCount: 0,
306
326
  mutationsSinceOptimization: 0,
307
327
  fragments: { total: 0, small: 0, smallRatio: 0 },
308
328
  fullTextIndex: { present: false, indexedRows: 0, unindexedRows: 0, complete: false },
@@ -357,7 +377,7 @@ async function writeMaintenanceState(state, config) {
357
377
  try {
358
378
  await writeFile(temporary, JSON.stringify(state, null, 2), "utf8");
359
379
  await hardenPrivateFile(temporary);
360
- await rename(temporary, target);
380
+ await renameWithRetry(temporary, target);
361
381
  }
362
382
  finally {
363
383
  await rm(temporary, { force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"storage-maintenance.js","sourceRoot":"","sources":["../src/storage-maintenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-maintenance.js","sourceRoot":"","sources":["../src/storage-maintenance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Config } from "./types.js";
2
+ export type StorageOrphanKind = "model" | "storage-copy" | "retired-output";
3
+ export interface StorageOrphan {
4
+ path: string;
5
+ kind: StorageOrphanKind;
6
+ diskBytes: number;
7
+ reason: string;
8
+ }
9
+ /**
10
+ * Bytes a directory occupies on disk, counting allocated blocks rather than logical sizes: LanceDB
11
+ * keeps every old version and index file, so a table can occupy many times its logical size.
12
+ */
13
+ export declare function diskUsage(target: string): Promise<number>;
14
+ /**
15
+ * Files under `.ragmir/` that no current feature reads: models other than the configured embedding
16
+ * model (including chat models from retired packages), copies of the storage directory, and
17
+ * outputs of retired commands. Listed for review; removed only on explicit request.
18
+ */
19
+ export declare function findStorageOrphans(config: Config): Promise<StorageOrphan[]>;
20
+ export declare function removeStorageOrphans(orphans: readonly StorageOrphan[]): Promise<string[]>;
21
+ //# sourceMappingURL=storage-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-usage.d.ts","sourceRoot":"","sources":["../src/storage-usage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,cAAc,GAAG,gBAAgB,CAAA;AAE3E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,iBAAiB,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAMD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAc/D;AAOD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CA6CjF;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAO/F"}
@@ -0,0 +1,119 @@
1
+ import { lstat, readdir } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { RAGMIR_DIR } from "./defaults.js";
4
+ import { removeTree } from "./fs-retry.js";
5
+ const MODEL_ARCHIVE_EXTENSIONS = new Set([".gguf", ".ggml", ".bin", ".safetensors"]);
6
+ // Outputs of commands removed with the focused-retrieval release (chat, audio, reports).
7
+ const RETIRED_OUTPUT_DIRECTORIES = ["audio", "chat", "reports"];
8
+ /**
9
+ * Bytes a directory occupies on disk, counting allocated blocks rather than logical sizes: LanceDB
10
+ * keeps every old version and index file, so a table can occupy many times its logical size.
11
+ */
12
+ export async function diskUsage(target) {
13
+ let info;
14
+ try {
15
+ info = await lstat(target);
16
+ }
17
+ catch {
18
+ return 0;
19
+ }
20
+ const own = allocatedBytes(info);
21
+ if (!info.isDirectory()) {
22
+ return own;
23
+ }
24
+ const entries = await readdir(target).catch(() => []);
25
+ const children = await Promise.all(entries.map((entry) => diskUsage(path.join(target, entry))));
26
+ return own + children.reduce((sum, bytes) => sum + bytes, 0);
27
+ }
28
+ function allocatedBytes(info) {
29
+ // Windows reports no block count; the logical size is the best available measure there.
30
+ return Number.isFinite(info.blocks) && info.blocks > 0 ? info.blocks * 512 : info.size;
31
+ }
32
+ /**
33
+ * Files under `.ragmir/` that no current feature reads: models other than the configured embedding
34
+ * model (including chat models from retired packages), copies of the storage directory, and
35
+ * outputs of retired commands. Listed for review; removed only on explicit request.
36
+ */
37
+ export async function findStorageOrphans(config) {
38
+ const ragmirDir = path.join(config.projectRoot, RAGMIR_DIR);
39
+ const orphans = [];
40
+ const configuredModel = path.join(config.embeddingModelPath, ...config.embeddingModel.split("/"));
41
+ if (isInside(config.embeddingModelPath, ragmirDir)) {
42
+ for (const candidate of await modelDirectories(config.embeddingModelPath)) {
43
+ if (path.resolve(candidate) === path.resolve(configuredModel)) {
44
+ continue;
45
+ }
46
+ orphans.push({
47
+ path: candidate,
48
+ kind: "model",
49
+ diskBytes: await diskUsage(candidate),
50
+ reason: path.basename(path.dirname(candidate)) === "chat" ||
51
+ MODEL_ARCHIVE_EXTENSIONS.has(path.extname(candidate).toLowerCase())
52
+ ? "Chat model from a retired Ragmir package; no installed package loads it."
53
+ : `Embedding model other than the configured ${config.embeddingModel}.`,
54
+ });
55
+ }
56
+ }
57
+ const storageName = path.basename(config.storageDir);
58
+ for (const entry of await readdir(ragmirDir).catch(() => [])) {
59
+ const candidate = path.join(ragmirDir, entry);
60
+ if (entry !== storageName &&
61
+ /^storage[-._]/u.test(entry) &&
62
+ path.resolve(candidate) !== path.resolve(config.storageDir)) {
63
+ orphans.push({
64
+ path: candidate,
65
+ kind: "storage-copy",
66
+ diskBytes: await diskUsage(candidate),
67
+ reason: "Storage copy that the active configuration does not use.",
68
+ });
69
+ }
70
+ else if (RETIRED_OUTPUT_DIRECTORIES.includes(entry)) {
71
+ orphans.push({
72
+ path: candidate,
73
+ kind: "retired-output",
74
+ diskBytes: await diskUsage(candidate),
75
+ reason: "Output folder of a command removed from Ragmir (chat, audio, or reports).",
76
+ });
77
+ }
78
+ }
79
+ return orphans.sort((left, right) => right.diskBytes - left.diskBytes);
80
+ }
81
+ export async function removeStorageOrphans(orphans) {
82
+ const removed = [];
83
+ for (const orphan of orphans) {
84
+ await removeTree(orphan.path);
85
+ removed.push(orphan.path);
86
+ }
87
+ return removed;
88
+ }
89
+ /**
90
+ * Model folders two levels deep (`<organization>/<model>`), plus single model files such as GGUF
91
+ * chat models at either level.
92
+ */
93
+ async function modelDirectories(modelRoot) {
94
+ const found = [];
95
+ for (const organization of await readdir(modelRoot, { withFileTypes: true }).catch(() => [])) {
96
+ if (organization.name.startsWith(".")) {
97
+ continue;
98
+ }
99
+ const organizationPath = path.join(modelRoot, organization.name);
100
+ if (!organization.isDirectory()) {
101
+ if (MODEL_ARCHIVE_EXTENSIONS.has(path.extname(organization.name).toLowerCase())) {
102
+ found.push(organizationPath);
103
+ }
104
+ continue;
105
+ }
106
+ for (const model of await readdir(organizationPath, { withFileTypes: true }).catch(() => [])) {
107
+ if (model.isDirectory() ||
108
+ MODEL_ARCHIVE_EXTENSIONS.has(path.extname(model.name).toLowerCase())) {
109
+ found.push(path.join(organizationPath, model.name));
110
+ }
111
+ }
112
+ }
113
+ return found;
114
+ }
115
+ function isInside(child, parent) {
116
+ const relative = path.relative(parent, child);
117
+ return relative !== ".." && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);
118
+ }
119
+ //# sourceMappingURL=storage-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-usage.js","sourceRoot":"","sources":["../src/storage-usage.ts"],"names":[],"mappings":"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"}