@coreyuan/vector-mind 1.0.49 → 1.0.53

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 (123) hide show
  1. package/README.md +67 -61
  2. package/dist/activity-log.d.ts +19 -0
  3. package/dist/activity-log.js +106 -0
  4. package/dist/activity-log.js.map +1 -0
  5. package/dist/builtin-conventions.d.ts +2 -1
  6. package/dist/builtin-conventions.js +5 -0
  7. package/dist/builtin-conventions.js.map +1 -1
  8. package/dist/config.d.ts +28 -0
  9. package/dist/config.js +189 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/database-runtime.d.ts +54 -0
  12. package/dist/database-runtime.js +512 -0
  13. package/dist/database-runtime.js.map +1 -0
  14. package/dist/development-warnings.d.ts +93 -0
  15. package/dist/development-warnings.js +589 -0
  16. package/dist/development-warnings.js.map +1 -0
  17. package/dist/file-indexing.d.ts +22 -0
  18. package/dist/file-indexing.js +243 -0
  19. package/dist/file-indexing.js.map +1 -0
  20. package/dist/fix-patterns.d.ts +58 -0
  21. package/dist/fix-patterns.js +347 -0
  22. package/dist/fix-patterns.js.map +1 -0
  23. package/dist/grep.d.ts +64 -0
  24. package/dist/grep.js +475 -0
  25. package/dist/grep.js.map +1 -0
  26. package/dist/index.js +167 -7279
  27. package/dist/index.js.map +1 -1
  28. package/dist/large-file-split.d.ts +29 -0
  29. package/dist/large-file-split.js +146 -0
  30. package/dist/large-file-split.js.map +1 -0
  31. package/dist/memory-maintenance.d.ts +80 -0
  32. package/dist/memory-maintenance.js +537 -0
  33. package/dist/memory-maintenance.js.map +1 -0
  34. package/dist/memory-mutations.d.ts +23 -0
  35. package/dist/memory-mutations.js +83 -0
  36. package/dist/memory-mutations.js.map +1 -0
  37. package/dist/memory-recall.d.ts +93 -0
  38. package/dist/memory-recall.js +801 -0
  39. package/dist/memory-recall.js.map +1 -0
  40. package/dist/operation-scope.d.ts +63 -0
  41. package/dist/operation-scope.js +438 -0
  42. package/dist/operation-scope.js.map +1 -0
  43. package/dist/path-filters.d.ts +1 -0
  44. package/dist/path-filters.js +27 -0
  45. package/dist/path-filters.js.map +1 -0
  46. package/dist/path-rules.d.ts +12 -0
  47. package/dist/path-rules.js +208 -0
  48. package/dist/path-rules.js.map +1 -0
  49. package/dist/pending-changes.d.ts +22 -0
  50. package/dist/pending-changes.js +166 -0
  51. package/dist/pending-changes.js.map +1 -0
  52. package/dist/project-files.d.ts +66 -0
  53. package/dist/project-files.js +215 -0
  54. package/dist/project-files.js.map +1 -0
  55. package/dist/root.d.ts +15 -0
  56. package/dist/root.js +191 -0
  57. package/dist/root.js.map +1 -0
  58. package/dist/rtk-tools.d.ts +20 -0
  59. package/dist/rtk-tools.js +318 -0
  60. package/dist/rtk-tools.js.map +1 -0
  61. package/dist/server-instructions.d.ts +1 -0
  62. package/dist/server-instructions.js +92 -0
  63. package/dist/server-instructions.js.map +1 -0
  64. package/dist/symbols.d.ts +2 -0
  65. package/dist/symbols.js +159 -0
  66. package/dist/symbols.js.map +1 -0
  67. package/dist/token-savings.d.ts +40 -0
  68. package/dist/token-savings.js +50 -0
  69. package/dist/token-savings.js.map +1 -0
  70. package/dist/tool-catalog.d.ts +18 -0
  71. package/dist/tool-catalog.js +249 -0
  72. package/dist/tool-catalog.js.map +1 -0
  73. package/dist/tool-handlers/context-recovery.d.ts +6 -0
  74. package/dist/tool-handlers/context-recovery.js +319 -0
  75. package/dist/tool-handlers/context-recovery.js.map +1 -0
  76. package/dist/tool-handlers/context.d.ts +34 -0
  77. package/dist/tool-handlers/context.js +2 -0
  78. package/dist/tool-handlers/context.js.map +1 -0
  79. package/dist/tool-handlers/diagnostics.d.ts +8 -0
  80. package/dist/tool-handlers/diagnostics.js +114 -0
  81. package/dist/tool-handlers/diagnostics.js.map +1 -0
  82. package/dist/tool-handlers/files.d.ts +8 -0
  83. package/dist/tool-handlers/files.js +493 -0
  84. package/dist/tool-handlers/files.js.map +1 -0
  85. package/dist/tool-handlers/large-files.d.ts +4 -0
  86. package/dist/tool-handlers/large-files.js +139 -0
  87. package/dist/tool-handlers/large-files.js.map +1 -0
  88. package/dist/tool-handlers/maintenance.d.ts +4 -0
  89. package/dist/tool-handlers/maintenance.js +160 -0
  90. package/dist/tool-handlers/maintenance.js.map +1 -0
  91. package/dist/tool-handlers/memory-diagnostics.d.ts +5 -0
  92. package/dist/tool-handlers/memory-diagnostics.js +558 -0
  93. package/dist/tool-handlers/memory-diagnostics.js.map +1 -0
  94. package/dist/tool-handlers/memory.d.ts +6 -0
  95. package/dist/tool-handlers/memory.js +352 -0
  96. package/dist/tool-handlers/memory.js.map +1 -0
  97. package/dist/tool-handlers/notes-decisions.d.ts +7 -0
  98. package/dist/tool-handlers/notes-decisions.js +169 -0
  99. package/dist/tool-handlers/notes-decisions.js.map +1 -0
  100. package/dist/tool-handlers/operations.d.ts +4 -0
  101. package/dist/tool-handlers/operations.js +62 -0
  102. package/dist/tool-handlers/operations.js.map +1 -0
  103. package/dist/tool-handlers/requirements.d.ts +7 -0
  104. package/dist/tool-handlers/requirements.js +399 -0
  105. package/dist/tool-handlers/requirements.js.map +1 -0
  106. package/dist/tool-handlers.d.ts +4 -0
  107. package/dist/tool-handlers.js +107 -0
  108. package/dist/tool-handlers.js.map +1 -0
  109. package/dist/tool-output.d.ts +266 -0
  110. package/dist/tool-output.js +328 -0
  111. package/dist/tool-output.js.map +1 -0
  112. package/dist/tool-schemas.d.ts +460 -0
  113. package/dist/tool-schemas.js +350 -0
  114. package/dist/tool-schemas.js.map +1 -0
  115. package/dist/types.d.ts +61 -0
  116. package/dist/types.js +2 -0
  117. package/dist/types.js.map +1 -0
  118. package/docs/capability-matrix.md +43 -0
  119. package/package.json +11 -10
  120. package/skills/vector-mind-autopilot/SKILL.md +173 -0
  121. package/skills/vector-mind-autopilot/references/claude-desktop-mcp-config.json +9 -0
  122. package/skills/vector-mind-autopilot/references/claude-project-instructions.md +51 -0
  123. package/skills/vector-mind-autopilot/references/universal-system-prompt.md +81 -0
@@ -0,0 +1,399 @@
1
+ import path from "node:path";
2
+ import { CompleteRequirementArgsSchema, GetPendingChangesArgsSchema, MAX_PENDING_LIMIT, PreflightChangeScopeArgsSchema, StartRequirementArgsSchema, SyncChangeIntentArgsSchema } from "../tool-schemas.js";
3
+ import { buildDevelopmentWarnings, buildRequirementMappingWarnings, buildRequirementScopeContract, buildRequirementStartWarnings, buildScopeDriftWarnings, getRequirementItems, getRequirementScopeContract, isDevelopmentWarningBlockingForChangeMode, mergeScopeContracts, normalizeRequirementItems } from "../development-warnings.js";
4
+ import { mergePendingWithGit } from "../pending-changes.js";
5
+ import { toolCompactOrJson } from "../token-savings.js";
6
+ import { flushPendingChangeBuffer, indexFile } from "../file-indexing.js";
7
+ import { buildFixPatternContent, buildFixPatternMetadata, buildFixPatternQualitySignals, collectRelevantFixPatterns, normalizeFixPattern } from "../fix-patterns.js";
8
+ import { completeAllActiveRequirementMemoryItems, completeRequirementMemoryItemsByReqId } from "../memory-mutations.js";
9
+ import { makePreviewText } from "../memory-recall.js";
10
+ import { logActivity } from "../activity-log.js";
11
+ import { compactPreflightChangeScopeText, safeJson, toolJson } from "../tool-output.js";
12
+ export async function handleStartRequirement(rawArgs, context) {
13
+ const sha256Hex = context.sha256Hex;
14
+ const { insertRequirementStmt, completeAllActiveRequirementsStmt, insertMemoryItemStmt } = context.getStatements();
15
+ const args = StartRequirementArgsSchema.parse(rawArgs);
16
+ flushPendingChangeBuffer();
17
+ const scope_contract = buildRequirementScopeContract({
18
+ title: args.title,
19
+ background: args.background,
20
+ scope_allow: args.scope_allow,
21
+ scope_deny: args.scope_deny,
22
+ allowed_paths: args.allowed_paths,
23
+ denied_paths: args.denied_paths,
24
+ });
25
+ const requirement_items = normalizeRequirementItems(args.requirement_items);
26
+ const development_warnings = buildRequirementStartWarnings({
27
+ title: args.title,
28
+ background: args.background,
29
+ close_previous: args.close_previous,
30
+ });
31
+ if (args.close_previous) {
32
+ try {
33
+ completeAllActiveRequirementsStmt.run();
34
+ completeAllActiveRequirementMemoryItems();
35
+ }
36
+ catch (err) {
37
+ console.error("[vectormind] failed to close previous active requirements:", err);
38
+ }
39
+ }
40
+ const info = insertRequirementStmt.run(args.title, args.background || null);
41
+ const id = Number(info.lastInsertRowid);
42
+ const background = args.background?.trim() ?? "";
43
+ const content = background ? `${args.title}\n\n${background}` : args.title;
44
+ const memoryInfo = insertMemoryItemStmt.run("requirement", args.title, content, null, null, null, id, safeJson({ status: "active", scope_contract, requirement_items }), sha256Hex(content));
45
+ const memory_id = Number(memoryInfo.lastInsertRowid);
46
+ logActivity("start_requirement", {
47
+ req_id: id,
48
+ title: args.title,
49
+ closed_previous: args.close_previous,
50
+ scope_contract,
51
+ requirement_items,
52
+ development_warnings: development_warnings.length,
53
+ });
54
+ return {
55
+ content: [
56
+ {
57
+ type: "text",
58
+ text: toolJson({
59
+ ok: true,
60
+ requirement: { id, title: args.title },
61
+ memory_item: { id: memory_id },
62
+ closed_previous: args.close_previous,
63
+ scope_contract,
64
+ requirement_items,
65
+ development_warnings,
66
+ }),
67
+ },
68
+ ],
69
+ };
70
+ }
71
+ export async function handlePreflightChangeScope(rawArgs, context) {
72
+ const normalizeToDbPath = context.normalizeToDbPath;
73
+ const { getActiveRequirementStmt } = context.getStatements();
74
+ const args = PreflightChangeScopeArgsSchema.parse(rawArgs);
75
+ const changeMode = args.change_mode;
76
+ flushPendingChangeBuffer();
77
+ const files = (args.files ?? args.planned_files ?? []).filter((f) => typeof f === "string" && f.length > 0);
78
+ const active = getActiveRequirementStmt.get();
79
+ const explicitContract = buildRequirementScopeContract({
80
+ title: active?.title ?? "",
81
+ background: active?.context_data ?? "",
82
+ scope_allow: args.scope_allow,
83
+ scope_deny: args.scope_deny,
84
+ allowed_paths: args.allowed_paths,
85
+ denied_paths: args.denied_paths,
86
+ });
87
+ const explicitRequirementItems = normalizeRequirementItems(args.requirement_items);
88
+ const requirementItems = explicitRequirementItems.length
89
+ ? explicitRequirementItems
90
+ : active
91
+ ? getRequirementItems(active.id)
92
+ : [];
93
+ const fileInputs = files.map((file_path) => ({ file_path }));
94
+ const development_warnings = [
95
+ ...buildDevelopmentWarnings(fileInputs, { includeUnspecified: fileInputs.length === 0 }),
96
+ ...buildScopeDriftWarnings({
97
+ requirement: active,
98
+ contract: explicitContract,
99
+ intent: args.intent,
100
+ files: fileInputs,
101
+ includeMissingContractHint: true,
102
+ }),
103
+ ...buildRequirementMappingWarnings({
104
+ requirement: active,
105
+ requirement_items: requirementItems,
106
+ planned_changes: args.planned_changes,
107
+ files: fileInputs,
108
+ change_mode: changeMode,
109
+ }),
110
+ ];
111
+ const scope_contract = mergeScopeContracts(active ? getRequirementScopeContract(active.id) : null, explicitContract);
112
+ logActivity("preflight_change_scope", {
113
+ req_id: active?.id ?? null,
114
+ intent_preview: makePreviewText(args.intent, 200),
115
+ change_mode: changeMode,
116
+ files: files.slice(0, 25),
117
+ files_total: files.length,
118
+ development_warnings: development_warnings.length,
119
+ });
120
+ const hasTargetFiles = fileInputs.length > 0;
121
+ const hugeWarnings = development_warnings.filter((w) => w.code === "huge_file_modularization_required");
122
+ const hasHugeFile = hugeWarnings.length > 0;
123
+ const blockingWarnings = development_warnings.filter((w) => isDevelopmentWarningBlockingForChangeMode(w, changeMode));
124
+ const hasBlockingWarnings = blockingWarnings.length > 0;
125
+ const safeToEdit = hasTargetFiles && !hasBlockingWarnings;
126
+ const normalizedFiles = files.map(normalizeToDbPath);
127
+ const relevantFixPatterns = collectRelevantFixPatterns(context, {
128
+ intent: args.intent,
129
+ files: normalizedFiles,
130
+ planned_changes: args.planned_changes,
131
+ requirement: active ?? null,
132
+ limit: 3,
133
+ });
134
+ const quality_signals = buildFixPatternQualitySignals(relevantFixPatterns);
135
+ const recommendedAction = !hasTargetFiles
136
+ ? "Identify the intended target files/modules and rerun preflight_change_scope before editing."
137
+ : hasHugeFile && changeMode === "mechanical_modularization" && safeToEdit
138
+ ? "Proceed only with mechanical modularization: call plan_large_file_split, move whole declarations into real named modules/directories, avoid generated/parts files, validate, then record_large_file_split."
139
+ : hasHugeFile && changeMode === "emergency_hotfix" && safeToEdit
140
+ ? "Proceed only with the smallest urgent fix, do not add new responsibilities, record why mechanical modularization was deferred, and plan/record the split next."
141
+ : hasHugeFile
142
+ ? "Stop normal feature work. Call plan_large_file_split and perform mechanical modularization first, or rerun preflight_change_scope with change_mode='mechanical_modularization' for the split itself."
143
+ : hasBlockingWarnings
144
+ ? "Stop before editing. Narrow the planned files or explicitly expand the current requirement/scope contract."
145
+ : "Planned files are within the current generic scope checks.";
146
+ const requiredAction = hasHugeFile && changeMode !== "mechanical_modularization"
147
+ ? "mechanical_modularization"
148
+ : undefined;
149
+ const allowedChangeModes = hasHugeFile
150
+ ? ["mechanical_modularization", "emergency_hotfix"]
151
+ : undefined;
152
+ const outputValue = {
153
+ ok: safeToEdit,
154
+ safe_to_edit: safeToEdit,
155
+ change_mode: changeMode,
156
+ recommended_action: recommendedAction,
157
+ required_action: requiredAction,
158
+ allowed_change_modes: allowedChangeModes,
159
+ active_requirement: active ? { id: active.id, title: active.title } : null,
160
+ intent: args.intent,
161
+ files: normalizedFiles,
162
+ requirement_mapping: {
163
+ requirement_items: requirementItems,
164
+ planned_changes: args.planned_changes ?? [],
165
+ },
166
+ scope_contract,
167
+ development_warnings,
168
+ quality_signals,
169
+ };
170
+ return {
171
+ content: [
172
+ {
173
+ type: "text",
174
+ text: toolCompactOrJson("preflight_change_scope", outputValue, compactPreflightChangeScopeText(outputValue), args.format),
175
+ },
176
+ ],
177
+ };
178
+ }
179
+ export async function handleSyncChangeIntent(rawArgs, context) {
180
+ const db = context.getDb();
181
+ const projectRoot = context.getProjectRoot();
182
+ const normalizeToDbPath = context.normalizeToDbPath;
183
+ const sha256Hex = context.sha256Hex;
184
+ const getFileStateHash = context.getFileStateHash;
185
+ const { insertChangeLogStmt, insertMemoryItemStmt, getActiveRequirementStmt, listPendingChangesStmt, deletePendingChangeStmt, deleteAllPendingChangesStmt, } = context.getStatements();
186
+ const args = SyncChangeIntentArgsSchema.parse(rawArgs);
187
+ const explicitFixPattern = args.fix_pattern
188
+ ? normalizeFixPattern({
189
+ ...args.fix_pattern,
190
+ verification: args.fix_pattern.verification?.length ? args.fix_pattern.verification : args.verification,
191
+ verification_gaps: args.fix_pattern.verification_gaps?.length
192
+ ? args.fix_pattern.verification_gaps
193
+ : args.verification_gaps,
194
+ })
195
+ : null;
196
+ flushPendingChangeBuffer();
197
+ const explicitFiles = (args.files ?? args.affected_files ?? []).filter((f) => typeof f === "string" && f.length > 0);
198
+ const active = getActiveRequirementStmt.get();
199
+ if (!active) {
200
+ return {
201
+ isError: true,
202
+ content: [
203
+ {
204
+ type: "text",
205
+ text: toolJson({
206
+ ok: false,
207
+ error: "No active requirement. Call start_requirement({ project_root, title, background }) before syncing change intent.",
208
+ }),
209
+ },
210
+ ],
211
+ };
212
+ }
213
+ const created = [];
214
+ const fixPatternMemoryItem = { value: null };
215
+ const synced_files = [];
216
+ const insertTx = db.transaction(() => {
217
+ const targets = [];
218
+ if (explicitFiles.length) {
219
+ for (const rawFile of explicitFiles) {
220
+ const dbFilePath = normalizeToDbPath(rawFile);
221
+ targets.push({ rawFile, dbFilePath, event: "manual", source: "args" });
222
+ }
223
+ for (const t of targets) {
224
+ deletePendingChangeStmt.run(t.dbFilePath);
225
+ }
226
+ }
227
+ else {
228
+ const pendingAll = listPendingChangesStmt.all();
229
+ const merged = mergePendingWithGit(pendingAll, { offset: 0, limit: MAX_PENDING_LIMIT });
230
+ if (merged.page.length) {
231
+ for (const p of merged.page) {
232
+ targets.push({
233
+ rawFile: p.file_path,
234
+ dbFilePath: p.file_path,
235
+ event: p.last_event,
236
+ source: p.source === "git" ? "pending" : "pending",
237
+ });
238
+ }
239
+ deleteAllPendingChangesStmt.run();
240
+ }
241
+ else {
242
+ targets.push({
243
+ rawFile: "(unspecified)",
244
+ dbFilePath: "(unspecified)",
245
+ event: "manual",
246
+ source: "unspecified",
247
+ });
248
+ }
249
+ }
250
+ for (const t of targets) {
251
+ const isUnspecified = t.dbFilePath === "(unspecified)";
252
+ const changeInfo = insertChangeLogStmt.run(active.id, t.dbFilePath, args.intent);
253
+ const change_log_id = Number(changeInfo.lastInsertRowid);
254
+ const memoryInfo = insertMemoryItemStmt.run("change_intent", active.title, args.intent, isUnspecified ? null : t.dbFilePath, null, null, active.id, safeJson({
255
+ change_log_id,
256
+ event: t.event,
257
+ source: t.source,
258
+ file_state_hash: isUnspecified ? null : getFileStateHash(t.rawFile),
259
+ verification: args.verification ?? [],
260
+ verification_gaps: args.verification_gaps ?? [],
261
+ }), sha256Hex(args.intent));
262
+ const memory_item_id = Number(memoryInfo.lastInsertRowid);
263
+ synced_files.push({ file_path: t.dbFilePath, event: t.event, source: t.source });
264
+ created.push({
265
+ file_path: t.dbFilePath,
266
+ event: t.event,
267
+ source: t.source,
268
+ change_log_id,
269
+ memory_item_id,
270
+ });
271
+ if (!isUnspecified && t.event !== "unlink") {
272
+ const abs = path.isAbsolute(t.rawFile)
273
+ ? t.rawFile
274
+ : path.join(projectRoot, t.rawFile);
275
+ indexFile(abs, "manual");
276
+ }
277
+ }
278
+ if (explicitFixPattern) {
279
+ const sourceFiles = Array.from(new Set(synced_files.map((f) => f.file_path).filter((f) => f !== "(unspecified)")));
280
+ const content = buildFixPatternContent(explicitFixPattern, args.intent, sourceFiles);
281
+ const title = `Fix pattern: ${makePreviewText(explicitFixPattern.invariant, 120)}`;
282
+ const memoryInfo = insertMemoryItemStmt.run("fix_pattern", title, content, null, null, null, active.id, buildFixPatternMetadata({
283
+ pattern: explicitFixPattern,
284
+ intent: args.intent,
285
+ files: sourceFiles,
286
+ requirement_id: active.id,
287
+ source_change_ids: created.map((c) => c.change_log_id),
288
+ verification: args.verification,
289
+ verification_gaps: args.verification_gaps,
290
+ }), sha256Hex(content));
291
+ fixPatternMemoryItem.value = { id: Number(memoryInfo.lastInsertRowid), kind: "fix_pattern", title };
292
+ }
293
+ });
294
+ insertTx();
295
+ const development_warnings = [
296
+ ...buildDevelopmentWarnings(synced_files, {
297
+ includeUnspecified: synced_files.some((f) => f.file_path === "(unspecified)"),
298
+ }),
299
+ ...buildScopeDriftWarnings({
300
+ requirement: active,
301
+ intent: args.intent,
302
+ files: synced_files,
303
+ }),
304
+ ];
305
+ logActivity("sync_change_intent", {
306
+ req_id: active.id,
307
+ title: active.title,
308
+ intent_preview: makePreviewText(args.intent, 200),
309
+ files: synced_files.slice(0, 25),
310
+ files_total: synced_files.length,
311
+ fix_pattern_memory_id: fixPatternMemoryItem.value?.id ?? null,
312
+ development_warnings: development_warnings.length,
313
+ });
314
+ return {
315
+ content: [
316
+ {
317
+ type: "text",
318
+ text: toolJson({
319
+ ok: true,
320
+ linked_to_requirement: { id: active.id, title: active.title },
321
+ synced_files,
322
+ created,
323
+ verification: args.verification ?? [],
324
+ verification_gaps: args.verification_gaps ?? [],
325
+ created_fix_pattern: fixPatternMemoryItem.value,
326
+ development_warnings,
327
+ }),
328
+ },
329
+ ],
330
+ };
331
+ }
332
+ export async function handleGetPendingChanges(rawArgs, context) {
333
+ const { getActiveRequirementStmt, listPendingChangesStmt } = context.getStatements();
334
+ const args = GetPendingChangesArgsSchema.parse(rawArgs);
335
+ flushPendingChangeBuffer();
336
+ const offset = args.offset;
337
+ const limit = args.limit;
338
+ const pendingDbRows = listPendingChangesStmt.all();
339
+ const mergedPending = mergePendingWithGit(pendingDbRows, { offset, limit });
340
+ const total = mergedPending.total;
341
+ const truncated = mergedPending.truncated;
342
+ const pending = mergedPending.page;
343
+ const activeForScope = getActiveRequirementStmt.get();
344
+ const development_warnings = [
345
+ ...buildDevelopmentWarnings(pending),
346
+ ...(activeForScope ? buildScopeDriftWarnings({ requirement: activeForScope, files: pending }) : []),
347
+ ];
348
+ logActivity("get_pending_changes", {
349
+ total,
350
+ offset,
351
+ limit,
352
+ returned: pending.length,
353
+ truncated,
354
+ development_warnings: development_warnings.length,
355
+ });
356
+ return {
357
+ content: [
358
+ {
359
+ type: "text",
360
+ text: toolJson({ ok: true, total, offset, limit, truncated, pending, development_warnings }),
361
+ },
362
+ ],
363
+ };
364
+ }
365
+ export async function handleCompleteRequirement(rawArgs, context) {
366
+ const db = context.getDb();
367
+ const { completeAllActiveRequirementsStmt, getActiveRequirementStmt, completeRequirementByIdStmt } = context.getStatements();
368
+ const args = CompleteRequirementArgsSchema.parse(rawArgs);
369
+ flushPendingChangeBuffer();
370
+ const updated = [];
371
+ if (args.all_active) {
372
+ const activeRows = db.prepare(`SELECT id FROM requirements WHERE status = 'active' ORDER BY created_at DESC, id DESC`).all().slice(0, 200);
373
+ try {
374
+ completeAllActiveRequirementsStmt.run();
375
+ completeAllActiveRequirementMemoryItems();
376
+ }
377
+ catch (err) {
378
+ console.error("[vectormind] complete all active requirements failed:", err);
379
+ }
380
+ for (const r of activeRows)
381
+ updated.push({ id: r.id });
382
+ logActivity("complete_requirement", { all_active: true, completed: updated.map((u) => u.id) });
383
+ return { content: [{ type: "text", text: toolJson({ ok: true, completed: updated }) }] };
384
+ }
385
+ const targetId = args.req_id ?? getActiveRequirementStmt.get()?.id ?? null;
386
+ if (!targetId) {
387
+ return { content: [{ type: "text", text: toolJson({ ok: true, completed: [] }) }] };
388
+ }
389
+ try {
390
+ completeRequirementByIdStmt.run(targetId);
391
+ completeRequirementMemoryItemsByReqId(targetId);
392
+ }
393
+ catch (err) {
394
+ console.error("[vectormind] complete requirement failed:", err);
395
+ }
396
+ logActivity("complete_requirement", { req_id: targetId });
397
+ return { content: [{ type: "text", text: toolJson({ ok: true, completed: [{ id: targetId }] }) }] };
398
+ }
399
+ //# sourceMappingURL=requirements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../src/tool-handlers/requirements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import type { ToolHandlerContext } from "./tool-handlers/context.js";
3
+ export type { ToolHandlerContext } from "./tool-handlers/context.js";
4
+ export declare function registerToolHandlers(server: Server, context: ToolHandlerContext): void;
@@ -0,0 +1,107 @@
1
+ import { CallToolRequestSchema } from "@modelcontextprotocol/sdk/types.js";
2
+ import { handleStartRequirement, handlePreflightChangeScope, handleSyncChangeIntent, handleGetPendingChanges, handleCompleteRequirement } from "./tool-handlers/requirements.js";
3
+ import { handlePruneIndex, handleMaintainMemory } from "./tool-handlers/maintenance.js";
4
+ import { handlePlanLargeFileSplit, handleRecordLargeFileSplit } from "./tool-handlers/large-files.js";
5
+ import { handleBootstrapContext, handleGetBrainDump, handleReadMemoryItem, handleSemanticSearch } from "./tool-handlers/memory.js";
6
+ import { handleGrep, handleListProjectFiles, handleReadFileText, handleReadCodexTextFile, handleReadFileLines, handleQueryCodebase } from "./tool-handlers/files.js";
7
+ import { handleUpsertProjectSummary, handleAddNote, handleUpsertDecision, handleSupersedeMemory, handleUpsertConvention } from "./tool-handlers/notes-decisions.js";
8
+ import { handleGetActivityLog, handleGetActivitySummary, handleClearActivityLog, handleDetectRtk, handleInstallRtk, handleGetTokenSavings } from "./tool-handlers/diagnostics.js";
9
+ import { handleCreateCheckpoint, handleListCheckpoints, handleMemoryTimeline, handleRestoreCheckpointContext } from "./tool-handlers/context-recovery.js";
10
+ import { handleAnalyzeMemoryConflicts, handleCompareCheckpointContext, handleMemoryQualityReport } from "./tool-handlers/memory-diagnostics.js";
11
+ import { handlePreflightOperationScope } from "./tool-handlers/operations.js";
12
+ import { oneLine, toolJson } from "./tool-output.js";
13
+ const TOOL_HANDLERS = {
14
+ start_requirement: handleStartRequirement,
15
+ prune_index: handlePruneIndex,
16
+ maintain_memory: handleMaintainMemory,
17
+ preflight_change_scope: handlePreflightChangeScope,
18
+ preflight_operation_scope: handlePreflightOperationScope,
19
+ plan_large_file_split: handlePlanLargeFileSplit,
20
+ record_large_file_split: handleRecordLargeFileSplit,
21
+ sync_change_intent: handleSyncChangeIntent,
22
+ bootstrap_context: handleBootstrapContext,
23
+ get_brain_dump: handleGetBrainDump,
24
+ get_pending_changes: handleGetPendingChanges,
25
+ complete_requirement: handleCompleteRequirement,
26
+ read_memory_item: handleReadMemoryItem,
27
+ get_activity_log: handleGetActivityLog,
28
+ get_activity_summary: handleGetActivitySummary,
29
+ clear_activity_log: handleClearActivityLog,
30
+ detect_rtk: handleDetectRtk,
31
+ install_rtk: handleInstallRtk,
32
+ get_token_savings: handleGetTokenSavings,
33
+ grep: handleGrep,
34
+ list_project_files: handleListProjectFiles,
35
+ read_file_text: handleReadFileText,
36
+ read_codex_text_file: handleReadCodexTextFile,
37
+ read_file_lines: handleReadFileLines,
38
+ query_codebase: handleQueryCodebase,
39
+ upsert_project_summary: handleUpsertProjectSummary,
40
+ add_note: handleAddNote,
41
+ upsert_decision: handleUpsertDecision,
42
+ supersede_memory: handleSupersedeMemory,
43
+ upsert_convention: handleUpsertConvention,
44
+ semantic_search: handleSemanticSearch,
45
+ memory_timeline: handleMemoryTimeline,
46
+ create_checkpoint: handleCreateCheckpoint,
47
+ list_checkpoints: handleListCheckpoints,
48
+ restore_checkpoint_context: handleRestoreCheckpointContext,
49
+ analyze_memory_conflicts: handleAnalyzeMemoryConflicts,
50
+ memory_quality_report: handleMemoryQualityReport,
51
+ compare_checkpoint_context: handleCompareCheckpointContext,
52
+ };
53
+ function attachProjectContextAdvisory(result, advisory) {
54
+ if (!advisory)
55
+ return result;
56
+ const content = result.content?.map((item, index) => {
57
+ if (index !== 0 || item.type !== "text" || typeof item.text !== "string")
58
+ return item;
59
+ const text = item.text.trim();
60
+ if (text.startsWith("{") || text.startsWith("[")) {
61
+ try {
62
+ const parsed = JSON.parse(item.text);
63
+ return {
64
+ ...item,
65
+ text: toolJson({
66
+ ...parsed,
67
+ project_context_advisory: advisory,
68
+ }),
69
+ };
70
+ }
71
+ catch {
72
+ // Fall back to compact-text injection below.
73
+ }
74
+ }
75
+ const advisoryLine = `project_context_advisory ${advisory.code}: external_reference=true read_only_reference=true previous="${oneLine(advisory.previous_project_root, 90)}" current="${oneLine(advisory.current_project_root, 90)}"`;
76
+ return {
77
+ ...item,
78
+ text: `${advisoryLine}\n${item.text}`,
79
+ };
80
+ });
81
+ return { ...result, content };
82
+ }
83
+ export function registerToolHandlers(server, context) {
84
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
85
+ const toolName = request.params.name;
86
+ const rawArgs = (request.params.arguments ?? {});
87
+ try {
88
+ await context.ensureInitializedForArgs(rawArgs);
89
+ const handler = TOOL_HANDLERS[toolName];
90
+ if (!handler) {
91
+ return attachProjectContextAdvisory({
92
+ isError: true,
93
+ content: [{ type: "text", text: `Unknown tool: ${toolName}` }],
94
+ }, context.consumeProjectContextAdvisory());
95
+ }
96
+ const result = await handler(rawArgs, context);
97
+ return attachProjectContextAdvisory(result, context.consumeProjectContextAdvisory());
98
+ }
99
+ catch (err) {
100
+ return attachProjectContextAdvisory({
101
+ isError: true,
102
+ content: [{ type: "text", text: String(err) }],
103
+ }, context.consumeProjectContextAdvisory());
104
+ }
105
+ });
106
+ }
107
+ //# sourceMappingURL=tool-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}