@coreyuan/vector-mind 1.0.54 → 1.1.0

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 (112) hide show
  1. package/README.md +99 -72
  2. package/admin-panel/README.md +77 -0
  3. package/admin-panel/dist/client/assets/index-Bzyjdhh2.css +1 -0
  4. package/admin-panel/dist/client/assets/index-Ph73ewzt.js +9 -0
  5. package/admin-panel/dist/client/index.html +14 -0
  6. package/admin-panel/package.json +25 -0
  7. package/admin-panel/server/index.mjs +1424 -0
  8. package/admin-panel/server/security.mjs +117 -0
  9. package/admin-panel/server/security.test.mjs +113 -0
  10. package/admin-panel/server/storage.mjs +49 -0
  11. package/admin-panel/server/storage.test.mjs +36 -0
  12. package/dist/checkpoint-snapshot.d.ts +56 -0
  13. package/dist/checkpoint-snapshot.js +411 -0
  14. package/dist/checkpoint-snapshot.js.map +1 -0
  15. package/dist/config.d.ts +1 -1
  16. package/dist/config.js +1 -1
  17. package/dist/config.js.map +1 -1
  18. package/dist/context-governance.d.ts +56 -0
  19. package/dist/context-governance.js +176 -0
  20. package/dist/context-governance.js.map +1 -0
  21. package/dist/database-runtime.d.ts +3 -1
  22. package/dist/database-runtime.js +232 -127
  23. package/dist/database-runtime.js.map +1 -1
  24. package/dist/development-warnings.d.ts +2 -1
  25. package/dist/development-warnings.js +90 -20
  26. package/dist/development-warnings.js.map +1 -1
  27. package/dist/file-indexing.d.ts +2 -1
  28. package/dist/file-indexing.js +127 -47
  29. package/dist/file-indexing.js.map +1 -1
  30. package/dist/grep.js +4 -0
  31. package/dist/grep.js.map +1 -1
  32. package/dist/index.js +5 -2
  33. package/dist/index.js.map +1 -1
  34. package/dist/large-file-split.d.ts +52 -8
  35. package/dist/large-file-split.js +290 -76
  36. package/dist/large-file-split.js.map +1 -1
  37. package/dist/memory-maintenance/compaction.js +3 -2
  38. package/dist/memory-maintenance/compaction.js.map +1 -1
  39. package/dist/memory-maintenance/metrics.d.ts +1 -1
  40. package/dist/memory-maintenance/metrics.js +11 -3
  41. package/dist/memory-maintenance/metrics.js.map +1 -1
  42. package/dist/memory-maintenance/purge.js +1 -1
  43. package/dist/memory-maintenance/purge.js.map +1 -1
  44. package/dist/memory-maintenance/runner.d.ts +1 -0
  45. package/dist/memory-maintenance/runner.js +15 -3
  46. package/dist/memory-maintenance/runner.js.map +1 -1
  47. package/dist/memory-maintenance/types.d.ts +1 -0
  48. package/dist/memory-mutations.d.ts +3 -3
  49. package/dist/memory-mutations.js +109 -43
  50. package/dist/memory-mutations.js.map +1 -1
  51. package/dist/memory-recall.js +16 -1
  52. package/dist/memory-recall.js.map +1 -1
  53. package/dist/operation-scope.js +42 -12
  54. package/dist/operation-scope.js.map +1 -1
  55. package/dist/path-containment.d.ts +5 -0
  56. package/dist/path-containment.js +64 -0
  57. package/dist/path-containment.js.map +1 -0
  58. package/dist/path-filters.d.ts +1 -1
  59. package/dist/path-filters.js +7 -6
  60. package/dist/path-filters.js.map +1 -1
  61. package/dist/pending-changes.d.ts +5 -0
  62. package/dist/pending-changes.js +26 -16
  63. package/dist/pending-changes.js.map +1 -1
  64. package/dist/project-files.d.ts +1 -0
  65. package/dist/project-files.js +19 -10
  66. package/dist/project-files.js.map +1 -1
  67. package/dist/root.d.ts +4 -1
  68. package/dist/root.js +34 -4
  69. package/dist/root.js.map +1 -1
  70. package/dist/rtk-integrity.d.ts +5 -0
  71. package/dist/rtk-integrity.js +35 -0
  72. package/dist/rtk-integrity.js.map +1 -0
  73. package/dist/rtk-shim.js +22 -9
  74. package/dist/rtk-shim.js.map +1 -1
  75. package/dist/rtk-tools.d.ts +8 -0
  76. package/dist/rtk-tools.js +59 -42
  77. package/dist/rtk-tools.js.map +1 -1
  78. package/dist/server-instructions.js +8 -88
  79. package/dist/server-instructions.js.map +1 -1
  80. package/dist/tool-catalog.d.ts +2 -0
  81. package/dist/tool-catalog.js +76 -23
  82. package/dist/tool-catalog.js.map +1 -1
  83. package/dist/tool-handlers/context-recovery.js +79 -54
  84. package/dist/tool-handlers/context-recovery.js.map +1 -1
  85. package/dist/tool-handlers/large-files.js +600 -44
  86. package/dist/tool-handlers/large-files.js.map +1 -1
  87. package/dist/tool-handlers/memory-diagnostics.js +240 -45
  88. package/dist/tool-handlers/memory-diagnostics.js.map +1 -1
  89. package/dist/tool-handlers/memory.js +167 -22
  90. package/dist/tool-handlers/memory.js.map +1 -1
  91. package/dist/tool-handlers/operations.js +28 -8
  92. package/dist/tool-handlers/operations.js.map +1 -1
  93. package/dist/tool-handlers/requirement-status.d.ts +5 -0
  94. package/dist/tool-handlers/requirement-status.js +267 -0
  95. package/dist/tool-handlers/requirement-status.js.map +1 -0
  96. package/dist/tool-handlers/requirements.js +786 -97
  97. package/dist/tool-handlers/requirements.js.map +1 -1
  98. package/dist/tool-handlers.d.ts +4 -0
  99. package/dist/tool-handlers.js +183 -10
  100. package/dist/tool-handlers.js.map +1 -1
  101. package/dist/tool-output.d.ts +32 -1
  102. package/dist/tool-output.js +31 -12
  103. package/dist/tool-output.js.map +1 -1
  104. package/dist/tool-schemas.d.ts +235 -0
  105. package/dist/tool-schemas.js +98 -26
  106. package/dist/tool-schemas.js.map +1 -1
  107. package/dist/types.d.ts +1 -0
  108. package/docs/capability-matrix.md +23 -17
  109. package/package.json +19 -6
  110. package/skills/vector-mind-autopilot/SKILL.md +82 -23
  111. package/skills/vector-mind-autopilot/references/claude-project-instructions.md +14 -11
  112. package/skills/vector-mind-autopilot/references/universal-system-prompt.md +24 -16
@@ -1,16 +1,21 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import * as readline from "node:readline";
4
+ import crypto from "node:crypto";
3
5
  import { normalizeToDbPath } from "./root.js";
6
+ export const LARGE_FILE_SPLIT_PLANNER_VERSION = 2;
4
7
  function oneLine(input, max = 120) {
5
8
  const normalized = String(input ?? "").replace(/\s+/g, " ").trim();
6
9
  if (normalized.length <= max)
7
10
  return normalized;
8
- return `${normalized.slice(0, Math.max(0, max - 1))}…`;
11
+ return `${normalized.slice(0, Math.max(0, max - 1))}...`;
9
12
  }
10
13
  export function hasOrdinalModuleName(input) {
11
14
  const normalized = input.replace(/\\/g, "/").trim();
12
- const base = path.basename(normalized, path.extname(normalized));
13
- return /^\d+(?:$|[\s._-]+)/.test(base);
15
+ return normalized.split("/").some((segment) => {
16
+ const base = path.basename(segment, path.extname(segment));
17
+ return /^\d+(?:$|[\s._-]+)/.test(base);
18
+ });
14
19
  }
15
20
  function declarationRegexForExtension(ext) {
16
21
  switch (ext) {
@@ -28,53 +33,127 @@ function declarationRegexForExtension(ext) {
28
33
  case ".cjs":
29
34
  return /^\s*(?:export\s+)?(?:default\s+)?(?:async\s+)?(?:function|class|interface|type|enum|const|let|var)\s+([A-Za-z_$][\w$]*)?/;
30
35
  default:
31
- return /^\s*(?:pub\s+)?(?:async\s+)?(?:fn|function|class|struct|enum|interface|type|const|static)\s+([A-Za-z_][\w]*)?/;
36
+ return /^\s*(?:(?:pub\s+)?(?:class|struct|enum|interface|type)\s+([A-Za-z_][\w]*)|(?:[A-Za-z_][\w:<>,\s*&?\[\]]+)\s+([A-Za-z_][\w]*)\s*\()/;
32
37
  }
33
38
  }
39
+ const GENERIC_ROLE_TOKENS = new Set([
40
+ "api", "app", "base", "client", "controller", "core", "data", "default", "factory", "handler",
41
+ "helper", "impl", "manager", "model", "module", "provider", "repository", "request", "response",
42
+ "service", "state", "store", "type", "types", "util", "utils", "view",
43
+ ]);
44
+ function identifierTokens(input) {
45
+ return input
46
+ .replace(/([a-z0-9])([A-Z])/g, "$1 $2")
47
+ .replace(/[^A-Za-z0-9]+/g, " ")
48
+ .trim()
49
+ .toLowerCase()
50
+ .split(/\s+/)
51
+ .filter((token) => token.length >= 2);
52
+ }
34
53
  function moduleNameFromDeclaration(name, signature) {
35
54
  const text = `${name} ${signature}`.toLowerCase();
36
- const rules = [
37
- [/(config|setting|env)/, "config"],
38
- [/(state|store|persist)/, "state"],
39
- [/(api|client|request|response|heartbeat|activate|sync)/, "api"],
40
- [/(service|daemon|install|start|stop)/, "service"],
41
- [/(log|logger|redact)/, "logging"],
42
- [/(gui|window|dialog|form|view|button|list)/, "ui"],
43
- [/(share|disk|smb|unc|folder|directory)/, "share"],
44
- [/(repair|cleanup|probe|health)/, "maintenance"],
45
- [/(path|sanitize|normalize|host|ip|util|helper)/, "util"],
55
+ const infrastructureRules = [
56
+ [/(config|setting|environment|\benv\b)/, "config"],
57
+ [/(database|storage|persist|cache|transaction)/, "storage"],
58
+ [/(http|api|client|request|response|transport)/, "transport"],
59
+ [/(log|logger|redact|telemetry|metric)/, "observability"],
60
+ [/(window|dialog|form|component|render|button|view)/, "ui"],
61
+ [/(repair|cleanup|migration|probe|health)/, "maintenance"],
62
+ [/(path|sanitize|normalize|parse|format|convert)/, "utilities"],
46
63
  [/(test|mock|fixture)/, "tests"],
47
64
  ];
48
- for (const [pattern, moduleName] of rules) {
65
+ for (const [pattern, moduleName] of infrastructureRules) {
49
66
  if (pattern.test(text))
50
67
  return moduleName;
51
68
  }
52
- return "core";
69
+ const domainToken = identifierTokens(name).find((token) => token.length >= 3 && !GENERIC_ROLE_TOKENS.has(token) && !/^\d+$/.test(token));
70
+ return domainToken?.replace(/[^a-z0-9_-]/g, "") || "core";
71
+ }
72
+ function braceDelta(line) {
73
+ const withoutStrings = line
74
+ .replace(/(['"`])(?:\\.|(?!\1).)*\1/g, "")
75
+ .replace(/\/\/.*$/, "");
76
+ let delta = 0;
77
+ for (const char of withoutStrings) {
78
+ if (char === "{")
79
+ delta += 1;
80
+ if (char === "}")
81
+ delta -= 1;
82
+ }
83
+ return delta;
53
84
  }
54
- function topLevelDeclarationsForPlan(content, ext, maxDecls = 160) {
55
- const decls = [];
56
- const lines = content.split(/\r?\n/);
85
+ async function scanTopLevelDeclarations(absPath, ext, declarationLimit) {
86
+ const declarations = [];
57
87
  const regex = declarationRegexForExtension(ext);
58
- for (let i = 0; i < lines.length && decls.length < maxDecls; i++) {
59
- const raw = lines[i];
60
- const trimmed = raw.trim();
61
- if (!trimmed || trimmed.startsWith("//") || trimmed.startsWith("#"))
62
- continue;
63
- const m = raw.match(regex);
64
- if (!m)
65
- continue;
66
- const fallback = trimmed.split(/\s+/).slice(0, 3).join("_").replace(/[^\w$]+/g, "_");
67
- const name = (m[1] || fallback || `declaration_${i + 1}`).replace(/^[^A-Za-z_]+/, "") || `declaration_${i + 1}`;
68
- const kind = trimmed.split(/\s+/).find((part) => ["fn", "function", "class", "struct", "enum", "trait", "impl", "mod", "type", "const", "static", "interface"].includes(part.replace(/[({].*$/, ""))) ?? "declaration";
69
- decls.push({
70
- line: i + 1,
71
- kind,
72
- name,
73
- signature: oneLine(trimmed, 180),
74
- suggested_module: moduleNameFromDeclaration(name, trimmed),
75
- });
88
+ const hash = crypto.createHash("sha256");
89
+ const stream = fs.createReadStream(absPath);
90
+ stream.on("data", (chunk) => hash.update(chunk));
91
+ const reader = readline.createInterface({ input: stream, crlfDelay: Infinity });
92
+ const braceLanguage = ext !== ".py";
93
+ let lineCount = 0;
94
+ let detected = 0;
95
+ let depth = 0;
96
+ try {
97
+ for await (const raw of reader) {
98
+ lineCount += 1;
99
+ const trimmed = raw.trim();
100
+ const topLevel = !braceLanguage ? raw.length === raw.trimStart().length : depth === 0;
101
+ if (topLevel && trimmed && !trimmed.startsWith("//") && !trimmed.startsWith("#")) {
102
+ const match = raw.match(regex);
103
+ if (match) {
104
+ detected += 1;
105
+ if (declarations.length < declarationLimit) {
106
+ const fallback = trimmed.split(/\s+/).slice(0, 3).join("_").replace(/[^\w$]+/g, "_");
107
+ const matchedName = match.slice(1).find((value) => typeof value === "string" && value.length > 0);
108
+ const name = (matchedName || fallback || `declaration_${lineCount}`).replace(/^[^A-Za-z_]+/, "") || `declaration_${lineCount}`;
109
+ const kind = trimmed.split(/\s+/).find((part) => ["fn", "function", "class", "struct", "enum", "trait", "impl", "mod", "type", "const", "static", "interface"].includes(part.replace(/[({].*$/, ""))) ?? "declaration";
110
+ const previous = declarations.at(-1);
111
+ if (previous)
112
+ previous.end_line = Math.max(previous.line, lineCount - 1);
113
+ declarations.push({
114
+ line: lineCount,
115
+ end_line: lineCount,
116
+ kind,
117
+ name,
118
+ signature: oneLine(trimmed, 220),
119
+ suggested_module: moduleNameFromDeclaration(name, trimmed),
120
+ });
121
+ }
122
+ }
123
+ }
124
+ if (braceLanguage)
125
+ depth = Math.max(0, depth + braceDelta(raw));
126
+ }
127
+ }
128
+ finally {
129
+ reader.close();
130
+ stream.destroy();
131
+ }
132
+ const finalDeclaration = declarations.at(-1);
133
+ if (finalDeclaration)
134
+ finalDeclaration.end_line = Math.max(finalDeclaration.line, lineCount);
135
+ return { lineCount, detected, declarations, contentHash: hash.digest("hex") };
136
+ }
137
+ export async function countFileLinesStreaming(absPath) {
138
+ const stream = fs.createReadStream(absPath, { encoding: "utf8" });
139
+ const reader = readline.createInterface({ input: stream, crlfDelay: Infinity });
140
+ let lineCount = 0;
141
+ try {
142
+ for await (const _line of reader)
143
+ lineCount += 1;
76
144
  }
77
- return decls;
145
+ finally {
146
+ reader.close();
147
+ stream.destroy();
148
+ }
149
+ return lineCount;
150
+ }
151
+ export async function hashFileContentStreaming(absPath) {
152
+ const hash = crypto.createHash("sha256");
153
+ const stream = fs.createReadStream(absPath);
154
+ for await (const chunk of stream)
155
+ hash.update(chunk);
156
+ return hash.digest("hex");
78
157
  }
79
158
  function targetPathForModule(originalFilePath, targetDir, moduleName) {
80
159
  const ext = path.extname(originalFilePath) || ".txt";
@@ -83,69 +162,204 @@ function targetPathForModule(originalFilePath, targetDir, moduleName) {
83
162
  return `${moduleName}${ext}`;
84
163
  return `${normalizedTargetDir}/${moduleName}${ext}`;
85
164
  }
86
- export function buildLargeFileSplitPlan(args) {
87
- const content = fs.readFileSync(args.absPath, "utf8");
88
- const st = fs.statSync(args.absPath);
89
- const lines = content.split(/\r?\n/).length;
165
+ function boundedModuleGroups(declarations, maxModules) {
166
+ const initial = new Map();
167
+ for (const declaration of declarations) {
168
+ const list = initial.get(declaration.suggested_module) ?? [];
169
+ list.push(declaration);
170
+ initial.set(declaration.suggested_module, list);
171
+ }
172
+ if (initial.size <= maxModules)
173
+ return initial;
174
+ const core = [...(initial.get("core") ?? [])];
175
+ const ranked = [...initial.entries()]
176
+ .filter(([name]) => name !== "core")
177
+ .sort((a, b) => b[1].length - a[1].length || a[0].localeCompare(b[0]));
178
+ const kept = new Map(ranked.slice(0, Math.max(1, maxModules - 1)));
179
+ for (const [, overflow] of ranked.slice(Math.max(1, maxModules - 1)))
180
+ core.push(...overflow);
181
+ if (core.length)
182
+ kept.set("core", core.sort((a, b) => a.line - b.line));
183
+ return kept;
184
+ }
185
+ function overriddenModuleGroups(declarations, overrides) {
186
+ const groups = new Map();
187
+ const targetPaths = new Map();
188
+ const assigned = new Map();
189
+ const warnings = [];
190
+ for (const override of overrides) {
191
+ const names = new Set(override.declaration_names ?? []);
192
+ const ranges = override.line_ranges ?? [];
193
+ const matches = declarations.filter((declaration) => names.has(declaration.name) || ranges.some((range) => declaration.line >= range.start && declaration.line <= range.end));
194
+ if (!names.size && !ranges.length) {
195
+ warnings.push(`Module override ${override.module} has no declaration_names or line_ranges selector.`);
196
+ }
197
+ if (!matches.length)
198
+ warnings.push(`Module override ${override.module} did not match any detected declaration.`);
199
+ const accepted = [];
200
+ for (const declaration of matches) {
201
+ const previousModule = assigned.get(declaration);
202
+ if (previousModule) {
203
+ warnings.push(`Declaration ${declaration.name} @L${declaration.line} is assigned to both ${previousModule} and ${override.module}.`);
204
+ continue;
205
+ }
206
+ assigned.set(declaration, override.module);
207
+ accepted.push(declaration);
208
+ }
209
+ groups.set(override.module, accepted.sort((a, b) => a.line - b.line));
210
+ targetPaths.set(override.module, override.target_path);
211
+ }
212
+ const unassigned = declarations.filter((declaration) => !assigned.has(declaration));
213
+ if (unassigned.length) {
214
+ warnings.push(`${unassigned.length} detected declarations are not assigned by module_overrides: ${unassigned
215
+ .slice(0, 12)
216
+ .map((declaration) => `${declaration.name}@L${declaration.line}`)
217
+ .join(", ")}.`);
218
+ }
219
+ return {
220
+ groups,
221
+ targetPaths,
222
+ assignedCount: assigned.size,
223
+ complete: declarations.length > 0 && assigned.size === declarations.length && warnings.length === 0,
224
+ warnings,
225
+ };
226
+ }
227
+ function moduleDependencies(groups) {
228
+ const declarationModules = new Map();
229
+ for (const [moduleName, declarations] of groups) {
230
+ for (const declaration of declarations)
231
+ declarationModules.set(declaration.name.toLowerCase(), moduleName);
232
+ }
233
+ const result = new Map();
234
+ for (const [moduleName, declarations] of groups) {
235
+ const dependencies = new Set();
236
+ for (const declaration of declarations) {
237
+ const referencedNames = declaration.signature.toLowerCase().match(/[a-z_$][\w$]*/g) ?? [];
238
+ for (const name of referencedNames) {
239
+ const dependencyModule = declarationModules.get(name);
240
+ if (dependencyModule && dependencyModule !== moduleName)
241
+ dependencies.add(dependencyModule);
242
+ }
243
+ }
244
+ result.set(moduleName, [...dependencies].sort());
245
+ }
246
+ return result;
247
+ }
248
+ export async function buildLargeFileSplitPlan(args) {
249
+ const stat = fs.statSync(args.absPath);
90
250
  const ext = path.extname(args.absPath).toLowerCase();
251
+ const declarationLimit = Math.max(500, args.declarationLimit ?? 10_000);
252
+ const maxDeclarationsPerModule = Math.min(200, Math.max(20, args.maxDeclarationsPerModule ?? 200));
253
+ const maxEstimatedLinesPerModule = Math.min(1200, Math.max(100, args.maxEstimatedLinesPerModule ?? 1200));
254
+ const scan = await scanTopLevelDeclarations(args.absPath, ext, declarationLimit);
91
255
  const baseName = path.basename(args.filePath, path.extname(args.filePath));
92
256
  const parentDir = path.dirname(args.filePath).replace(/\\/g, "/");
93
257
  const defaultTargetDir = parentDir === "." ? baseName : `${parentDir}/${baseName}`;
94
258
  const targetDir = normalizeToDbPath(args.targetDir ?? defaultTargetDir);
95
- const declarations = topLevelDeclarationsForPlan(content, ext);
96
- const grouped = new Map();
97
- for (const decl of declarations) {
98
- const key = grouped.size >= args.maxModules && !grouped.has(decl.suggested_module) ? "core" : decl.suggested_module;
99
- const list = grouped.get(key) ?? [];
100
- list.push(decl);
101
- grouped.set(key, list);
102
- }
103
- if (!grouped.size)
104
- grouped.set("core", []);
105
- const modules = Array.from(grouped.entries())
106
- .slice(0, args.maxModules)
107
- .map(([moduleName, decls]) => ({
259
+ const overrideResult = args.moduleOverrides?.length
260
+ ? overriddenModuleGroups(scan.declarations, args.moduleOverrides)
261
+ : null;
262
+ const groups = overrideResult?.groups ?? boundedModuleGroups(scan.declarations, args.maxModules);
263
+ const dependencies = moduleDependencies(groups);
264
+ const modules = [...groups.entries()]
265
+ .sort((a, b) => a[1][0]?.line - b[1][0]?.line)
266
+ .map(([moduleName, declarations]) => ({
108
267
  module: moduleName,
109
- target_path: targetPathForModule(args.filePath, targetDir, moduleName),
110
- declarations: decls.slice(0, 24).map((d) => `${d.kind} ${d.name} @L${d.line}`),
111
- reason: `Move whole ${moduleName}-related declarations together without changing behavior.`,
268
+ target_path: overrideResult?.targetPaths.get(moduleName) ?? targetPathForModule(args.filePath, targetDir, moduleName),
269
+ declaration_count: declarations.length,
270
+ estimated_lines: declarations.reduce((total, declaration) => total + Math.max(1, declaration.end_line - declaration.line + 1), 0),
271
+ declarations: declarations.slice(0, 48).map((declaration) => `${declaration.kind} ${declaration.name} @L${declaration.line}`),
272
+ omitted_declarations: Math.max(0, declarations.length - 48),
273
+ dependencies: dependencies.get(moduleName) ?? [],
274
+ reason: moduleName === "core"
275
+ ? "Fallback group for declarations without a stable domain boundary; refine this group before moving it as one module."
276
+ : `Group declarations around the ${moduleName} domain/infrastructure boundary while preserving behavior.`,
277
+ }));
278
+ const omitted = Math.max(0, scan.detected - scan.declarations.length);
279
+ const complete = omitted === 0 && scan.declarations.length > 0 && (overrideResult?.complete ?? true);
280
+ const coreCount = groups.get("core")?.length ?? 0;
281
+ const coreNeedsRefinement = !overrideResult && coreCount > Math.max(12, Math.floor(scan.declarations.length * 0.35));
282
+ const oversizedModules = modules
283
+ .filter((module) => module.declaration_count > maxDeclarationsPerModule ||
284
+ module.estimated_lines >= maxEstimatedLinesPerModule)
285
+ .map((module) => ({
286
+ module: module.module,
287
+ declaration_count: module.declaration_count,
288
+ estimated_lines: module.estimated_lines,
112
289
  }));
290
+ const warnings = [];
291
+ warnings.push(...(overrideResult?.warnings ?? []));
292
+ if (groups.size > args.maxModules) {
293
+ warnings.push(`module_overrides defines ${groups.size} modules, exceeding max_modules=${args.maxModules}.`);
294
+ }
295
+ if (omitted > 0)
296
+ warnings.push(`${omitted} declarations exceeded the safety limit; refine the plan before editing.`);
297
+ if (!scan.detected)
298
+ warnings.push("No top-level declarations were detected; a manual boundary plan is required before editing.");
299
+ if (coreNeedsRefinement) {
300
+ warnings.push(`The core fallback contains ${coreCount} declarations and must be refined into semantic modules before execution.`);
301
+ }
302
+ if (oversizedModules.length) {
303
+ warnings.push(`Target modules exceed the ${maxDeclarationsPerModule}-declaration or ${maxEstimatedLinesPerModule}-line estimate: ${oversizedModules
304
+ .slice(0, 8)
305
+ .map((module) => `${module.module}=${module.declaration_count} declarations/${module.estimated_lines} lines`)
306
+ .join(", ")}. Refine responsibilities instead of moving the god file intact.`);
307
+ }
113
308
  return {
114
- ok: true,
309
+ ok: complete && !coreNeedsRefinement && oversizedModules.length === 0 && groups.size <= args.maxModules,
115
310
  file_path: args.filePath,
116
- line_count: lines,
117
- bytes: st.size,
311
+ line_count: scan.lineCount,
312
+ bytes: stat.size,
313
+ source_content_hash: scan.contentHash,
314
+ planner_fingerprint: args.plannerFingerprint,
118
315
  huge_threshold_lines: args.hugeThresholdLines,
119
316
  required_action: "mechanical_modularization",
120
317
  intent: args.intent,
121
318
  target_dir: targetDir,
319
+ analysis_mode: "heuristic_stream",
320
+ confidence: "low",
321
+ coverage: {
322
+ detected_declarations: scan.detected,
323
+ assigned_declarations: overrideResult?.assignedCount ?? scan.declarations.length,
324
+ omitted_declarations: omitted,
325
+ declaration_limit: declarationLimit,
326
+ complete,
327
+ },
328
+ module_constraints: {
329
+ max_declarations_per_module: maxDeclarationsPerModule,
330
+ max_estimated_lines_per_module: maxEstimatedLinesPerModule,
331
+ oversized_modules: oversizedModules,
332
+ satisfied: oversizedModules.length === 0,
333
+ },
122
334
  forbidden_patterns: ["*.generated.*", "*.parts", "*.rs.parts", "*_part*", "*Part*", "[0-9]_*", "[0-9]-*", "[0-9].*"],
123
335
  mechanical_rules: [
124
336
  "Move only complete declarations/impl blocks/functions/classes/types; do not split a declaration body.",
125
- "Use real semantic module names and clear directory boundaries; do not create generated/parts/partN files or ordinal file names such as 1_config.ts, 2_api.ts, or 03-service.rs.",
337
+ "Use real semantic module names and clear directory boundaries; do not create generated/parts/partN files or ordinal names.",
126
338
  "Preserve behavior, names, API semantics, data formats, side effects, and test expectations.",
127
- "Only add necessary module declarations, imports, pub(crate), and re-exports to make moved code compile.",
339
+ "Only add necessary module declarations, imports, visibility adjustments, and re-exports.",
128
340
  "Run formatter, build/check, and relevant tests after each small phase.",
129
341
  ],
130
342
  modules,
131
343
  steps: [
132
- "Create a dedicated mechanical modularization requirement before touching the huge file.",
133
- "Add the target module directory and move one cohesive declaration group at a time.",
134
- "Keep the original file as a thin entry/mod orchestration file where possible.",
344
+ "Keep this mechanical modularization attached to the current requirement and selected split plan.",
345
+ "Move one cohesive declaration group at a time into the planned semantic module directory.",
346
+ "Keep the original file as thin entry/orchestration glue where possible.",
135
347
  "After each group, run formatter and the smallest available compile/test command.",
136
- "Record the split with record_large_file_split(status='partial' or 'resolved').",
137
- "Resume the original feature only after the target huge file is no longer the default place for new code.",
348
+ "Record in_progress or partial progress against the same plan_id.",
349
+ "Mark the plan resolved only after module paths, remaining line count, and verification evidence pass validation.",
138
350
  ],
139
351
  validation: [
140
- "No *.generated.*, *.parts, *.rs.parts, numbered part files, or ordinal-prefixed files such as 1_xxx/2_xxx were created.",
141
- "The original file line count decreased or contains only thin orchestration glue.",
142
- "Formatter passes.",
143
- "Build/check passes.",
144
- "Relevant tests pass.",
352
+ "Every detected declaration is assigned; coverage.complete must be true.",
353
+ "No generated/parts/numbered module files or ordinal-prefixed directories were created.",
354
+ "The original file is below the huge threshold or contains only thin orchestration glue.",
355
+ "All recorded module paths exist under project_root.",
356
+ "Formatter, build/check, and relevant tests pass.",
357
+ ],
358
+ warnings,
359
+ notes: [
360
+ `Detected ${scan.detected} top-level declarations with bounded-memory streaming analysis.`,
361
+ "Dependency hints are signature-based; verify runtime/private-state dependencies against repository facts before moving code.",
145
362
  ],
146
- notes: declarations.length
147
- ? [`Detected ${declarations.length} top-level declarations for mechanical grouping.`]
148
- : ["No top-level declarations were detected by lightweight scanning; split by obvious cohesive sections and verify after each move."],
149
363
  };
150
364
  }
151
365
  //# sourceMappingURL=large-file-split.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"large-file-split.js","sourceRoot":"","sources":["../src/large-file-split.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"large-file-split.js","sourceRoot":"","sources":["../src/large-file-split.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { oneLine, safeJson } from "../tool-output.js";
3
3
  import { getDb, getInsertMemoryItemStatement, isHiddenFromDefaultRecall, metadataStatus, parseMetadataJson, sha256Hex, } from "./context.js";
4
4
  function selectCompactionCandidates(opts) {
5
5
  const kinds = opts.compactNotes
6
- ? ["requirement", "change_intent", "note"]
7
- : ["requirement", "change_intent"];
6
+ ? ["requirement", "change_intent", "note", "large_file_split_plan"]
7
+ : ["requirement", "change_intent", "large_file_split_plan"];
8
8
  const placeholders = kinds.map(() => "?").join(", ");
9
9
  const rows = getDb()
10
10
  .prepare(`SELECT
@@ -21,6 +21,7 @@ function selectCompactionCandidates(opts) {
21
21
  return rows
22
22
  .filter((row) => !isHiddenFromDefaultRecall(row))
23
23
  .filter((row) => metadataStatus(row) !== "current" && metadataStatus(row) !== "active")
24
+ .filter((row) => row.kind !== "large_file_split_plan" || ["resolved", "superseded", "deferred", "abandoned"].includes(metadataStatus(row) ?? ""))
24
25
  .filter((row) => row.req_status !== "active")
25
26
  .filter((row) => row.kind !== "note" || opts.compactNotes)
26
27
  .slice(0, opts.maxMemoryItems);
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/memory-maintenance/compaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/memory-maintenance/compaction.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { MaintenanceMetricsPruneResult } from "./types.js";
2
- export declare function pruneTokenSavings(opts: {
2
+ export declare function pruneMetrics(opts: {
3
3
  dryRun: boolean;
4
4
  retentionDays: number;
5
5
  }): MaintenanceMetricsPruneResult;
@@ -1,7 +1,8 @@
1
1
  import { getDb } from "./context.js";
2
- export function pruneTokenSavings(opts) {
2
+ export function pruneMetrics(opts) {
3
3
  const cutoff = new Date(Date.now() - opts.retentionDays * 86_400_000).toISOString();
4
4
  let deleted = 0;
5
+ let toolMetricsDeleted = 0;
5
6
  try {
6
7
  if (opts.dryRun) {
7
8
  deleted = Number(getDb()
@@ -13,10 +14,17 @@ export function pruneTokenSavings(opts) {
13
14
  .prepare(`DELETE FROM token_savings WHERE created_at < datetime('now', ?)`)
14
15
  .run(`-${opts.retentionDays} days`).changes;
15
16
  }
17
+ if (opts.dryRun) {
18
+ toolMetricsDeleted = Number(getDb().prepare(`SELECT COUNT(1) AS c FROM mcp_tool_metrics WHERE created_at < datetime('now', ?)`).get(`-${opts.retentionDays} days`)?.c ?? 0);
19
+ }
20
+ else {
21
+ toolMetricsDeleted = getDb()
22
+ .prepare(`DELETE FROM mcp_tool_metrics WHERE created_at < datetime('now', ?)`).run(`-${opts.retentionDays} days`).changes;
23
+ }
16
24
  }
17
25
  catch (err) {
18
- console.error("[vectormind] prune token_savings failed:", err);
26
+ console.error("[vectormind] prune metrics failed:", err);
19
27
  }
20
- return { cutoff, token_savings_deleted: deleted };
28
+ return { cutoff, token_savings_deleted: deleted, mcp_tool_metrics_deleted: toolMetricsDeleted };
21
29
  }
22
30
  //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/memory-maintenance/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,MAAM,UAAU,iBAAiB,CAAC,IAAgD;IAChF,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;IACpF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,GAAG,MAAM,CAEZ,KAAK,EAAE;iBACJ,OAAO,CAAC,+EAA+E,CAAC;iBACxF,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,OAAO,CACrC,EAAE,CAAC,IAAI,CAAC,CACV,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,KAAK,EAAE;iBACd,OAAO,CAAC,iEAAiE,CAAC;iBAC1E,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,OAAO,CAAC,CAAC,OAAO,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/memory-maintenance/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,MAAM,UAAU,YAAY,CAAC,IAAgD;IAC3E,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;IACpF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,GAAG,MAAM,CAEZ,KAAK,EAAE;iBACJ,OAAO,CAAC,+EAA+E,CAAC;iBACxF,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,OAAO,CACrC,EAAE,CAAC,IAAI,CAAC,CACV,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,KAAK,EAAE;iBACd,OAAO,CAAC,iEAAiE,CAAC;iBAC1E,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,OAAO,CAAC,CAAC,OAAO,CAAC;QAChD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,kBAAkB,GAAG,MAAM,CACxB,KAAK,EAAE,CAAC,OAAO,CAAC,kFAAkF,CAAC,CAAC,GAAG,CACtG,IAAI,IAAI,CAAC,aAAa,OAAO,CACA,EAAE,CAAC,IAAI,CAAC,CACxC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,kBAAkB,GAAG,KAAK,EAAE;iBACzB,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,CAChF,IAAI,IAAI,CAAC,aAAa,OAAO,CAC9B,CAAC,OAAO,CAAC;QACd,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC;AAClG,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { logActivity } from "../activity-log.js";
2
2
  import { getDb } from "./context.js";
3
- const SAFE_HARD_PURGE_KINDS = ["requirement", "change_intent", "note"];
3
+ const SAFE_HARD_PURGE_KINDS = ["requirement", "change_intent", "note", "large_file_split_plan"];
4
4
  function validMetadataExpr(alias) {
5
5
  return `CASE WHEN json_valid(COALESCE(${alias}.metadata_json, '{}')) THEN COALESCE(${alias}.metadata_json, '{}') ELSE '{}' END`;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"purge.js","sourceRoot":"","sources":["../../src/memory-maintenance/purge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"purge.js","sourceRoot":"","sources":["../../src/memory-maintenance/purge.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { MaintainMemoryArgs } from "../tool-schemas.js";
2
2
  import type { MaintenanceResult } from "./types.js";
3
+ export declare function withAutoMaintenanceSuppressed<T>(task: () => Promise<T>): Promise<T>;
3
4
  export declare function runMemoryMaintenance(args: MaintainMemoryArgs, trigger?: "manual" | "auto"): MaintenanceResult;
4
5
  export declare function runAutoMaintenanceIfDue(): void;