@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
package/README.md CHANGED
@@ -1,37 +1,54 @@
1
1
  # VectorMind MCP
2
2
 
3
- VectorMind 是一个给 AI 编程助手用的本地项目记忆 MCP。
4
-
5
- 它把“当前在做什么、为什么这样改、哪些决定已经更新、哪些文件不能乱动”保存到项目本地,帮助 AI 在长周期开发里少丢上下文、少猜路径、少把旧功能改回来。
6
-
7
- 当前版本:`1.0.49`
8
-
9
- ## 1.0.49 的效果
10
-
11
- - 普通新功能遇到 3000 行以上实现文件,会被拦住,不再继续往巨量文件里堆代码。
12
- - AI 会先收到 `huge_file_modularization_required`,并被要求进入机械搬迁式模块化拆分流程。
13
- - 拆分会使用真实模块名和清晰目录,按完整函数、类型、类、impl、声明块搬迁。
14
- - 拆分时禁止创建 `*.generated.*`、`.parts`、`*.rs.parts`、`part1/part2` 这类假拆分文件。
15
- - 只有明确进入 `mechanical_modularization` 模式时,AI 才能继续操作巨量文件做拆分。
16
- - 拆分计划和拆分结果会被记录,后续会话能知道这个文件正在或已经被拆,不会每次都只重复提示。
17
- - 这只影响开发规范、文件边界和上下文记忆,不处理客户端运行权限或审批权限。
18
-
19
- ## 主要能力
20
-
21
- - **恢复上下文**:新会话可恢复项目总结、最新决策、近期需求、近期改动、待同步变化。
22
- - **记录需求**:每次开发先记录一个清晰需求,后续改动归属到这个需求下。
23
- - **记录改动原因**:改完代码后保存“改了什么、为什么改”。
24
- - **最新决策优先**:新规则可以覆盖旧记录,减少 AI 按旧需求回退功能。
25
- - **项目知识沉淀**:保存项目总结、笔记、约定、构建命令、命名规则、TODO。
26
- - **代码定位**:维护文件和符号索引,帮助 AI 找函数、类、配置、关键逻辑。
27
- - **安全读文件/搜索**:提供有边界的文件列表、按行读取、文本搜索,避免一次塞入太多内容。
28
- - **本地记忆搜索**:搜索需求、改动、决策、笔记、代码片段和文档片段。
29
- - **Pending Changes**:发现“文件变了但还没记录原因”的改动。
30
- - **开发边界检查**:改代码前检查目标文件是否超出当前需求,避免乱改相关但未要求的功能。
31
- - **巨量文件拆分引导**:检测到巨量实现文件时,要求先做机械搬迁式模块化拆分,使用真实模块目录,禁止 `*.generated.*`、`.parts`、`*.rs.parts`、`part1/part2` 这类假拆分。
32
- - **记忆维护**:压缩过旧记忆、清理无效索引,减轻大项目长期使用后的检索压力。
33
- - **低 token 输出**:默认返回 compact 结果,也集成 `rtk` 来减少命令输出占用。
34
- - **内置开发规范**:提供计划、架构、UI 输出、git 提交、长线程、大文件、需求边界等开发规范;只定义开发质量要求,不接管客户端操作权限。
3
+ VectorMind 是给 AI 编程助手用的本地项目记忆 MCP。
4
+
5
+ 它会把“当前在做什么、为什么这样改、哪些决策已经更新、哪些文件不能乱动、哪些改动对应哪个需求点”保存到项目本地,帮助 AI 在长期开发里少丢上下文、少猜路径、少把旧功能改回来。
6
+
7
+ 当前版本:`1.0.52`
8
+
9
+ ## 它能做什么
10
+
11
+ - **恢复上下文**:新会话可以找回项目摘要、最近需求、最近改动、决策、约定和待同步文件。
12
+ - **守住需求边界**:修改前先确认当前需求和计划文件,减少乱改无关模块。
13
+ - **逐条核对需求**:当需求有明确条目时,改动计划必须能对应到这些条目,避免 AI 自己扩展需求。
14
+ - **隔离多项目上下文**:同一会话切换项目时,会提示这是另一个项目的只读参考,减少串项目、串记忆。
15
+ - **记录改动原因**:改完后保存“改了什么、为什么改”,后续会话能接上。
16
+ - **让新决策覆盖旧记忆**:需求反转或规则更新后,可以标记旧记忆过时,避免 AI 按旧规则回退功能。
17
+ - **查看上下文时间线**:按需求、文件、记忆或关键词查看前后发生了什么,帮助判断新旧关系。
18
+ - **保存会话检查点**:长会话或交接前保存 waypoint,后续只读恢复上下文,不改变模型判断。
19
+ - **诊断记忆质量**:检查记忆冲突、重复记忆和 checkpoint 差异,只给证据,不自动修改。
20
+ - **沉淀项目知识**:保存架构说明、构建命令、命名规则、注意事项和 TODO。
21
+ - **定位代码和搜索文本**:帮 AI 找函数、类、配置、关键逻辑,不靠猜。
22
+ - **安全读取文件**:按目录、按行、按大小读取,避免一次塞入过多上下文。
23
+ - **治理巨量文件**:遇到几千行实现文件,会要求先做真实模块拆分,不继续往大文件里堆代码。
24
+ - **维护长期记忆**:压缩过时记忆、清理无效索引,减轻大项目越用越慢的问题。
25
+ - **减少输出占用**:默认返回简洁结果,并可配合 `rtk` 降低命令输出负担。
26
+
27
+ 更完整的能力表见:`docs/capability-matrix.md`
28
+
29
+ ## 安装后怎么用
30
+
31
+ 安装并配置好 MCP 后,正常跟 AI 聊天即可。
32
+
33
+ VectorMind 会在背后自动恢复上下文、记录需求、检查改动范围、保存改动原因和维护长期记忆。用户不需要记工具名,也不需要手动按步骤调用。
34
+
35
+ ## 巨量文件规则
36
+
37
+ 当实现文件达到巨量阈值时,VectorMind 会提示:
38
+
39
+ - 不要继续往这个文件里加新功能。
40
+ - 先做机械搬迁式模块化拆分。
41
+ - 使用真实模块名和清晰目录。
42
+ - 禁止 `*.generated.*`、`.parts`、`*.rs.parts`、`part1/part2` 这类假拆分。
43
+ - 拆分计划和结果会被记录,后续会话知道这个文件正在或已经被治理。
44
+
45
+ ## 它不做什么
46
+
47
+ VectorMind 只定义开发规范、记忆和质量约束。
48
+
49
+ 它的输出只是上下文证据和质量信号,不替模型做决定,不削弱模型自己的推理、判断、创造和实现能力。
50
+
51
+ 它不接管 Codex、Claude 或其他客户端的运行控制,也不处理客户端自己的确认弹窗、执行策略或访问设置。
35
52
 
36
53
  ## 安装
37
54
 
@@ -45,16 +62,16 @@ npx -y @coreyuan/vector-mind
45
62
  npm install -g @coreyuan/vector-mind
46
63
  ```
47
64
 
48
- 全局安装后会提供:
65
+ 全局安装后可用:
49
66
 
50
67
  ```text
51
68
  vector-mind
52
69
  rtk
53
70
  ```
54
71
 
55
- ## Codex 配置示例
72
+ ## Codex 配置
56
73
 
57
- 在 `~/.codex/config.toml` 中添加:
74
+ 在 `~/.codex/config.toml` 添加:
58
75
 
59
76
  ```toml
60
77
  [mcp_servers.vector-mind]
@@ -65,7 +82,7 @@ args = ["-y", "@coreyuan/vector-mind"]
65
82
 
66
83
  配置后重启 Codex,并开启新会话。
67
84
 
68
- ## Claude Desktop 配置示例
85
+ ## Claude Desktop 配置
69
86
 
70
87
  ```json
71
88
  {
@@ -78,23 +95,9 @@ args = ["-y", "@coreyuan/vector-mind"]
78
95
  }
79
96
  ```
80
97
 
81
- ## 推荐用法
98
+ ## 多项目使用
82
99
 
83
- 你不需要记工具名,直接这样告诉 AI 即可:
84
-
85
- ```text
86
- 先用 VectorMind 恢复这个项目的上下文,再继续做。
87
- ```
88
-
89
- ```text
90
- 这是最新决定:任务申请不再需要上级审核,申请后直接通过。请写入 VectorMind,并标记旧审核需求已过时。
91
- ```
92
-
93
- ```text
94
- 改完后,把这次改动原因同步到 VectorMind。
95
- ```
96
-
97
- 多项目使用时,建议明确项目路径:
100
+ 多数情况下直接正常聊天即可。若同一窗口里同时处理多个项目,可以明确告诉 AI 当前项目路径:
98
101
 
99
102
  ```text
100
103
  这个任务的项目路径是 H:\2025\YourProject,请 VectorMind 使用这个 project_root。
@@ -106,24 +109,27 @@ args = ["-y", "@coreyuan/vector-mind"]
106
109
  <project>/.vectormind/
107
110
  ```
108
111
 
109
- ## 主要工具
112
+ 如果同一个 MCP 会话里切换了 `project_root`,VectorMind 会给出跨项目提示。这个提示只说明“这是另一个项目的上下文证据”,不会接管 AI 的判断,也不会改客户端权限。
113
+
114
+ ## 背后的能力
110
115
 
111
- | 能力 | 工具 |
116
+ 这些能力主要给 AI 客户端自动调用,普通用户不用手动操作。
117
+
118
+ | 能力 | 背后工具 |
112
119
  | --- | --- |
113
120
  | 恢复上下文 | `bootstrap_context`, `get_brain_dump` |
114
- | 需求管理 | `start_requirement`, `complete_requirement` |
121
+ | 需求管理 | `start_requirement`, `preflight_change_scope`, `complete_requirement` |
115
122
  | 改动记录 | `sync_change_intent`, `get_pending_changes` |
116
- | 开发边界检查 | `preflight_change_scope`, `development_warnings` |
117
- | 巨量文件拆分 | `plan_large_file_split`, `record_large_file_split` |
118
- | 最新决策 | `upsert_decision`, `supersede_memory` |
123
+ | 决策更新 | `upsert_decision`, `supersede_memory` |
119
124
  | 项目知识 | `upsert_project_summary`, `add_note`, `upsert_convention` |
120
- | 搜索记忆 | `semantic_search`, `read_memory_item` |
125
+ | 时间线/检查点 | `memory_timeline`, `create_checkpoint`, `list_checkpoints`, `restore_checkpoint_context` |
126
+ | 记忆诊断 | `analyze_memory_conflicts`, `memory_quality_report`, `compare_checkpoint_context` |
121
127
  | 代码定位 | `query_codebase`, `grep` |
122
128
  | 读项目文件 | `list_project_files`, `read_file_lines`, `read_file_text` |
123
129
  | 读 Codex 文本 | `read_codex_text_file` |
130
+ | 巨量文件拆分 | `plan_large_file_split`, `record_large_file_split` |
124
131
  | 记忆维护 | `maintain_memory`, `prune_index` |
125
- | token 节省 | `detect_rtk`, `install_rtk`, `get_token_savings` |
126
- | 调试 | `get_activity_summary`, `get_activity_log`, `clear_activity_log` |
132
+ | 调试/降噪 | `get_activity_summary`, `get_activity_log`, `get_token_savings`, `detect_rtk` |
127
133
 
128
134
  ## 开发与发布
129
135
 
@@ -0,0 +1,19 @@
1
+ export declare function configureActivityLogProjectRoot(fn: () => string): void;
2
+ type ActivityEvent = {
3
+ id: number;
4
+ ts: string;
5
+ type: string;
6
+ project_root: string;
7
+ data: Record<string, unknown>;
8
+ };
9
+ export declare function logActivity(type: string, data: Record<string, unknown>): void;
10
+ export declare function snapshotActivityLog(opts: {
11
+ sinceId: number;
12
+ limit: number;
13
+ }): {
14
+ events: ActivityEvent[];
15
+ last_id: number;
16
+ };
17
+ export declare function clearActivityLog(): void;
18
+ export declare function summarizeActivityEvent(e: ActivityEvent): string;
19
+ export {};
@@ -0,0 +1,106 @@
1
+ import { debugLogEnabled, debugLogMaxEntries } from "./config.js";
2
+ let getProjectRoot = () => "";
3
+ export function configureActivityLogProjectRoot(fn) {
4
+ getProjectRoot = fn;
5
+ }
6
+ let activitySeq = 0;
7
+ const activityLog = [];
8
+ function sanitizeForLog(value, depth = 0) {
9
+ if (depth > 4)
10
+ return "[max-depth]";
11
+ if (value === null || value === undefined)
12
+ return value;
13
+ if (typeof value === "string") {
14
+ return value.length > 500 ? `${value.slice(0, 500)}...` : value;
15
+ }
16
+ if (typeof value === "number" || typeof value === "boolean")
17
+ return value;
18
+ if (Array.isArray(value)) {
19
+ const sliced = value.slice(0, 20).map((v) => sanitizeForLog(v, depth + 1));
20
+ return value.length > 20 ? [...sliced, `[+${value.length - 20} more]`] : sliced;
21
+ }
22
+ if (typeof value === "object") {
23
+ const obj = value;
24
+ const keys = Object.keys(obj).slice(0, 40);
25
+ const out = {};
26
+ for (const k of keys)
27
+ out[k] = sanitizeForLog(obj[k], depth + 1);
28
+ if (Object.keys(obj).length > 40)
29
+ out["__more_keys__"] = Object.keys(obj).length - 40;
30
+ return out;
31
+ }
32
+ try {
33
+ return String(value);
34
+ }
35
+ catch {
36
+ return "[unserializable]";
37
+ }
38
+ }
39
+ export function logActivity(type, data) {
40
+ if (!debugLogEnabled)
41
+ return;
42
+ activityLog.push({
43
+ id: ++activitySeq,
44
+ ts: new Date().toISOString(),
45
+ type,
46
+ project_root: getProjectRoot() || "",
47
+ data: sanitizeForLog(data),
48
+ });
49
+ while (activityLog.length > debugLogMaxEntries)
50
+ activityLog.shift();
51
+ }
52
+ export function snapshotActivityLog(opts) {
53
+ const sinceId = Math.max(0, opts.sinceId);
54
+ const limit = Math.max(1, Math.min(500, opts.limit));
55
+ const lastId = activitySeq;
56
+ const events = activityLog.filter((e) => e.id > sinceId).slice(0, limit);
57
+ return { events, last_id: lastId };
58
+ }
59
+ export function clearActivityLog() {
60
+ activityLog.length = 0;
61
+ activitySeq = 0;
62
+ }
63
+ export function summarizeActivityEvent(e) {
64
+ const d = e.data ?? {};
65
+ switch (e.type) {
66
+ case "index_file":
67
+ return `index ${String(d.file_path ?? "")} reason=${String(d.reason ?? "")} symbols=${String(d.symbols ?? "")} chunks=${String(d.chunks ?? "")}`;
68
+ case "remove_file":
69
+ return `remove ${String(d.file_path ?? "")}`;
70
+ case "pending_flush":
71
+ return `pending_flush entries=${String(d.entries ?? "")}`;
72
+ case "pending_prune":
73
+ return `pending_prune ${String(d.before ?? "")}->${String(d.after ?? "")}`;
74
+ case "bootstrap_context":
75
+ return `bootstrap q=${String(d.query ?? "")} pending=${String(d.pending_returned ?? "")}/${String(d.pending_total ?? "")} reqs=${String(d.requirements_returned ?? "")} semantic=${String(d.semantic_mode ?? "")}+${String(d.semantic_matches ?? "")}`;
76
+ case "get_brain_dump":
77
+ return `brain_dump pending=${String(d.pending_returned ?? "")}/${String(d.pending_total ?? "")} reqs=${String(d.requirements_returned ?? "")} notes=${String(d.notes_returned ?? "")}`;
78
+ case "get_pending_changes":
79
+ return `pending_list returned=${String(d.returned ?? "")} total=${String(d.total ?? "")}`;
80
+ case "semantic_search":
81
+ return `semantic_search mode=${String(d.mode ?? "")} q=${String(d.query ?? "")} matches=${String(d.matches ?? "")}`;
82
+ case "grep":
83
+ return `grep backend=${String(d.backend ?? "")} q=${String(d.query ?? "")} matches=${String(d.matches ?? "")} truncated=${String(d.truncated ?? "")}`;
84
+ case "query_codebase":
85
+ return `query_codebase q=${String(d.query ?? "")} matches=${String(d.matches ?? "")}`;
86
+ case "read_file_lines":
87
+ return `read_file_lines file=${String(d.file_path ?? "")} returned=${String(d.returned ?? "")} truncated=${String(d.truncated ?? "")}`;
88
+ case "read_file_text":
89
+ return `read_file_text file=${String(d.file_path ?? "")} returned=${String(d.returned_chars ?? "")}/${String(d.total_chars ?? "")} truncated=${String(d.truncated ?? "")}`;
90
+ case "list_project_files":
91
+ return `list_project_files path=${String(d.path ?? "")} returned=${String(d.returned ?? "")} scanned=${String(d.scanned ?? "")} truncated=${String(d.truncated ?? "")}`;
92
+ case "read_codex_text_file":
93
+ return `read_codex_text_file file=${String(d.file_path ?? "")} returned=${String(d.returned_chars ?? "")}/${String(d.total_chars ?? "")} truncated=${String(d.truncated ?? "")}`;
94
+ case "start_requirement":
95
+ return `start_requirement #${String(d.req_id ?? "")} ${String(d.title ?? "")}`;
96
+ case "sync_change_intent":
97
+ return `sync_change_intent #${String(d.req_id ?? "")} files=${String(d.files_total ?? "")}`;
98
+ case "complete_requirement":
99
+ return `complete_requirement ${String(d.all_active ? "all_active" : d.req_id ?? "")}`;
100
+ case "memory_maintenance":
101
+ return `memory_maintenance trigger=${String(d.trigger ?? "")} compacted=${String(d.compacted ?? "")} stale=${String(d.stale_files ?? "")} chunks_deleted=${String(d.chunks_deleted ?? "")}`;
102
+ default:
103
+ return e.type;
104
+ }
105
+ }
106
+ //# sourceMappingURL=activity-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-log.js","sourceRoot":"","sources":["../src/activity-log.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- export type BuiltinConventionSpec = {
1
+ type BuiltinConventionSpec = {
2
2
  key: string;
3
3
  content: string;
4
4
  tags?: string[];
5
5
  };
6
6
  export declare const BUILTIN_CONVENTIONS: BuiltinConventionSpec[];
7
+ export {};
@@ -5,6 +5,11 @@ export const BUILTIN_CONVENTIONS = [
5
5
  content: `${DEVELOPMENT_GUIDELINE_SCOPE} VectorMind 的内置内容用于统一项目协作、代码组织、交付质量和长期记忆。`,
6
6
  tags: ["builtin", "development-guideline", "scope"],
7
7
  },
8
+ {
9
+ key: "builtin:model_autonomy_floor",
10
+ content: `${DEVELOPMENT_GUIDELINE_SCOPE} VectorMind 工具输出只是上下文证据和质量信号,不得削弱模型自身的推理、决策、创造和实现能力;当工具上下文不完整,或与直接观察到的仓库事实冲突时,应继续检查并使用模型判断。`,
11
+ tags: ["builtin", "model-autonomy", "advisory-only", "scope"],
12
+ },
8
13
  {
9
14
  key: "builtin:branch_write_boundary",
10
15
  content: `${DEVELOPMENT_GUIDELINE_SCOPE} 所有代码或文件改动默认在当前活跃分支中进行;禁止创建、切换或使用临时分支、临时子分支,除非用户明确要求或既有工作流已经这样安排。`,
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-conventions.js","sourceRoot":"","sources":["../src/builtin-conventions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin-conventions.js","sourceRoot":"","sources":["../src/builtin-conventions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export declare const SERVER_NAME = "vector-mind";
2
+ export declare const SERVER_VERSION = "1.0.52";
3
+ export declare const prettyJsonOutput: boolean;
4
+ export declare const debugLogEnabled: boolean;
5
+ export declare const debugLogMaxEntries: number;
6
+ export declare const PENDING_FLUSH_MS: number;
7
+ export declare const PENDING_TTL_DAYS: number;
8
+ export declare const PENDING_MAX_ENTRIES: number;
9
+ export declare const PENDING_PRUNE_EVERY: number;
10
+ export declare const DEVELOPMENT_WARN_FILE_LINES: number;
11
+ export declare const DEVELOPMENT_BLOCK_FILE_LINES: number;
12
+ export declare const DEVELOPMENT_HUGE_FILE_LINES: number;
13
+ export declare const DEVELOPMENT_WARN_FILE_BYTES: number;
14
+ export declare const DEVELOPMENT_WARN_PENDING_FILES: number;
15
+ export declare const RIPGREP_RESOLVE_TIMEOUT_MS = 5000;
16
+ export declare const RIPGREP_SEARCH_TIMEOUT_MS = 30000;
17
+ export declare const RIPGREP_MAX_BUFFER_BYTES: number;
18
+ export declare const INDEX_MAX_CODE_BYTES: number;
19
+ export declare const INDEX_MAX_DOC_BYTES: number;
20
+ export declare const INDEX_SKIP_MINIFIED: boolean;
21
+ export declare const INDEX_AUTO_PRUNE_IGNORED: boolean;
22
+ export declare const MAINTENANCE_AUTO_ENABLED: boolean;
23
+ export declare const MAINTENANCE_INTERVAL_HOURS: number;
24
+ export declare const MAINTENANCE_COMPACT_AFTER_DAYS: number;
25
+ export declare const MAINTENANCE_MAX_MEMORY_ITEMS: number;
26
+ export declare const MAINTENANCE_MAX_INDEX_FILES: number;
27
+ export declare const ROOTS_LIST_TIMEOUT_MS: number;
28
+ export declare const BOOTSTRAP_SEMANTIC_TIMEOUT_MS: number;
package/dist/config.js ADDED
@@ -0,0 +1,189 @@
1
+ export const SERVER_NAME = "vector-mind";
2
+ export const SERVER_VERSION = "1.0.52";
3
+ export const prettyJsonOutput = ["1", "true", "on", "yes"].includes((process.env.VECTORMIND_PRETTY_JSON ?? "").trim().toLowerCase());
4
+ export const debugLogEnabled = ["1", "true", "on", "yes"].includes((process.env.VECTORMIND_DEBUG_LOG ?? "").trim().toLowerCase());
5
+ export const debugLogMaxEntries = (() => {
6
+ const raw = process.env.VECTORMIND_DEBUG_LOG_MAX?.trim();
7
+ if (!raw)
8
+ return 200;
9
+ const n = Number.parseInt(raw, 10);
10
+ if (!Number.isFinite(n) || n <= 0)
11
+ return 200;
12
+ return Math.min(5000, n);
13
+ })();
14
+ export const PENDING_FLUSH_MS = (() => {
15
+ const raw = process.env.VECTORMIND_PENDING_FLUSH_MS?.trim();
16
+ if (!raw)
17
+ return 200;
18
+ const n = Number.parseInt(raw, 10);
19
+ if (!Number.isFinite(n) || n < 0)
20
+ return 200;
21
+ return n;
22
+ })();
23
+ export const PENDING_TTL_DAYS = (() => {
24
+ const raw = process.env.VECTORMIND_PENDING_TTL_DAYS?.trim();
25
+ if (!raw)
26
+ return 30;
27
+ const n = Number.parseInt(raw, 10);
28
+ if (!Number.isFinite(n) || n < 0)
29
+ return 30;
30
+ return n;
31
+ })();
32
+ export const PENDING_MAX_ENTRIES = (() => {
33
+ const raw = process.env.VECTORMIND_PENDING_MAX?.trim();
34
+ if (!raw)
35
+ return 5000;
36
+ const n = Number.parseInt(raw, 10);
37
+ if (!Number.isFinite(n) || n <= 0)
38
+ return 5000;
39
+ return n;
40
+ })();
41
+ export const PENDING_PRUNE_EVERY = (() => {
42
+ const raw = process.env.VECTORMIND_PENDING_PRUNE_EVERY?.trim();
43
+ if (!raw)
44
+ return 500;
45
+ const n = Number.parseInt(raw, 10);
46
+ if (!Number.isFinite(n) || n <= 0)
47
+ return 500;
48
+ return n;
49
+ })();
50
+ export const DEVELOPMENT_WARN_FILE_LINES = (() => {
51
+ const raw = process.env.VECTORMIND_WARN_FILE_LINES?.trim();
52
+ if (!raw)
53
+ return 800;
54
+ const n = Number.parseInt(raw, 10);
55
+ if (!Number.isFinite(n) || n < 100)
56
+ return 800;
57
+ return Math.min(50_000, n);
58
+ })();
59
+ export const DEVELOPMENT_BLOCK_FILE_LINES = (() => {
60
+ const raw = process.env.VECTORMIND_BLOCK_FILE_LINES?.trim();
61
+ if (!raw)
62
+ return 1200;
63
+ const n = Number.parseInt(raw, 10);
64
+ if (!Number.isFinite(n) || n < DEVELOPMENT_WARN_FILE_LINES)
65
+ return Math.max(1200, DEVELOPMENT_WARN_FILE_LINES);
66
+ return Math.min(100_000, n);
67
+ })();
68
+ export const DEVELOPMENT_HUGE_FILE_LINES = (() => {
69
+ const raw = process.env.VECTORMIND_HUGE_FILE_LINES?.trim();
70
+ if (!raw)
71
+ return 3000;
72
+ const n = Number.parseInt(raw, 10);
73
+ if (!Number.isFinite(n) || n < DEVELOPMENT_BLOCK_FILE_LINES) {
74
+ return Math.max(3000, DEVELOPMENT_BLOCK_FILE_LINES);
75
+ }
76
+ return Math.min(200_000, n);
77
+ })();
78
+ export const DEVELOPMENT_WARN_FILE_BYTES = (() => {
79
+ const raw = process.env.VECTORMIND_WARN_FILE_BYTES?.trim();
80
+ if (!raw)
81
+ return 120_000;
82
+ const n = Number.parseInt(raw, 10);
83
+ if (!Number.isFinite(n) || n < 10_000)
84
+ return 120_000;
85
+ return Math.min(20_000_000, n);
86
+ })();
87
+ export const DEVELOPMENT_WARN_PENDING_FILES = (() => {
88
+ const raw = process.env.VECTORMIND_WARN_PENDING_FILES?.trim();
89
+ if (!raw)
90
+ return 12;
91
+ const n = Number.parseInt(raw, 10);
92
+ if (!Number.isFinite(n) || n < 1)
93
+ return 12;
94
+ return Math.min(500, n);
95
+ })();
96
+ export const RIPGREP_RESOLVE_TIMEOUT_MS = 5_000;
97
+ export const RIPGREP_SEARCH_TIMEOUT_MS = 30_000;
98
+ export const RIPGREP_MAX_BUFFER_BYTES = 16 * 1024 * 1024;
99
+ export const INDEX_MAX_CODE_BYTES = (() => {
100
+ const raw = process.env.VECTORMIND_INDEX_MAX_CODE_BYTES?.trim();
101
+ if (!raw)
102
+ return 400_000;
103
+ const n = Number.parseInt(raw, 10);
104
+ if (!Number.isFinite(n) || n <= 0)
105
+ return 400_000;
106
+ return n;
107
+ })();
108
+ export const INDEX_MAX_DOC_BYTES = (() => {
109
+ const raw = process.env.VECTORMIND_INDEX_MAX_DOC_BYTES?.trim();
110
+ if (!raw)
111
+ return 600_000;
112
+ const n = Number.parseInt(raw, 10);
113
+ if (!Number.isFinite(n) || n <= 0)
114
+ return 600_000;
115
+ return n;
116
+ })();
117
+ export const INDEX_SKIP_MINIFIED = (() => {
118
+ const raw = (process.env.VECTORMIND_INDEX_SKIP_MINIFIED ?? "").trim().toLowerCase();
119
+ if (!raw)
120
+ return true;
121
+ return ["1", "true", "on", "yes"].includes(raw);
122
+ })();
123
+ export const INDEX_AUTO_PRUNE_IGNORED = (() => {
124
+ const raw = (process.env.VECTORMIND_INDEX_AUTO_PRUNE_IGNORED ?? "").trim().toLowerCase();
125
+ if (!raw)
126
+ return true;
127
+ return ["1", "true", "on", "yes"].includes(raw);
128
+ })();
129
+ export const MAINTENANCE_AUTO_ENABLED = (() => {
130
+ const raw = (process.env.VECTORMIND_MAINTENANCE_AUTO ?? "").trim().toLowerCase();
131
+ if (!raw)
132
+ return true;
133
+ return ["1", "true", "on", "yes"].includes(raw);
134
+ })();
135
+ export const MAINTENANCE_INTERVAL_HOURS = (() => {
136
+ const raw = process.env.VECTORMIND_MAINTENANCE_INTERVAL_HOURS?.trim();
137
+ if (!raw)
138
+ return 24;
139
+ const n = Number.parseInt(raw, 10);
140
+ if (!Number.isFinite(n) || n < 1)
141
+ return 24;
142
+ return Math.min(24 * 30, n);
143
+ })();
144
+ export const MAINTENANCE_COMPACT_AFTER_DAYS = (() => {
145
+ const raw = process.env.VECTORMIND_COMPACT_AFTER_DAYS?.trim();
146
+ if (!raw)
147
+ return 45;
148
+ const n = Number.parseInt(raw, 10);
149
+ if (!Number.isFinite(n) || n < 1)
150
+ return 45;
151
+ return Math.min(3650, n);
152
+ })();
153
+ export const MAINTENANCE_MAX_MEMORY_ITEMS = (() => {
154
+ const raw = process.env.VECTORMIND_MAINTENANCE_MAX_MEMORY_ITEMS?.trim();
155
+ if (!raw)
156
+ return 250;
157
+ const n = Number.parseInt(raw, 10);
158
+ if (!Number.isFinite(n) || n < 1)
159
+ return 250;
160
+ return Math.min(5000, n);
161
+ })();
162
+ export const MAINTENANCE_MAX_INDEX_FILES = (() => {
163
+ const raw = process.env.VECTORMIND_MAINTENANCE_MAX_INDEX_FILES?.trim();
164
+ if (!raw)
165
+ return 1500;
166
+ const n = Number.parseInt(raw, 10);
167
+ if (!Number.isFinite(n) || n < 1)
168
+ return 1500;
169
+ return Math.min(50_000, n);
170
+ })();
171
+ export const ROOTS_LIST_TIMEOUT_MS = (() => {
172
+ const raw = process.env.VECTORMIND_ROOTS_TIMEOUT_MS?.trim();
173
+ if (!raw)
174
+ return 750;
175
+ const n = Number.parseInt(raw, 10);
176
+ if (!Number.isFinite(n) || n <= 0)
177
+ return 750;
178
+ return n;
179
+ })();
180
+ export const BOOTSTRAP_SEMANTIC_TIMEOUT_MS = (() => {
181
+ const raw = process.env.VECTORMIND_SEMANTIC_TIMEOUT_MS?.trim();
182
+ if (!raw)
183
+ return 2500;
184
+ const n = Number.parseInt(raw, 10);
185
+ if (!Number.isFinite(n) || n <= 0)
186
+ return 2500;
187
+ return n;
188
+ })();
189
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import Database from "better-sqlite3";
2
+ import type { ExtractedSymbol } from "./types.js";
3
+ export declare const FTS_TABLE_NAME = "memory_items_fts";
4
+ export type PreparedDatabaseStatements = {
5
+ insertRequirementStmt: Database.Statement;
6
+ getActiveRequirementStmt: Database.Statement;
7
+ listActiveRequirementsStmt: Database.Statement;
8
+ listRecentRequirementsStmt: Database.Statement;
9
+ completeAllActiveRequirementsStmt: Database.Statement;
10
+ completeRequirementByIdStmt: Database.Statement;
11
+ completeAllActiveRequirementMemoryItemsStmt: Database.Statement;
12
+ completeRequirementMemoryItemByReqIdStmt: Database.Statement;
13
+ listChangeLogsForRequirementStmt: Database.Statement;
14
+ insertChangeLogStmt: Database.Statement;
15
+ insertMemoryItemStmt: Database.Statement;
16
+ getMemoryItemByIdStmt: Database.Statement;
17
+ getRequirementMemoryItemIdStmt: Database.Statement;
18
+ getConventionByKeyStmt: Database.Statement;
19
+ insertConventionStmt: Database.Statement;
20
+ updateConventionByIdStmt: Database.Statement;
21
+ listConventionsStmt: Database.Statement;
22
+ upsertDecisionStmt: Database.Statement;
23
+ getDecisionByKeyStmt: Database.Statement;
24
+ listCurrentDecisionsStmt: Database.Statement;
25
+ upsertProjectSummaryStmt: Database.Statement;
26
+ getProjectSummaryStmt: Database.Statement;
27
+ getLatestChangeIntentForFileStmt: Database.Statement;
28
+ deleteFileChunkItemsStmt: Database.Statement;
29
+ upsertPendingChangeStmt: Database.Statement;
30
+ listPendingChangesStmt: Database.Statement;
31
+ countPendingChangesStmt: Database.Statement;
32
+ deletePendingChangeStmt: Database.Statement;
33
+ deleteAllPendingChangesStmt: Database.Statement;
34
+ deleteOldPendingChangesStmt: Database.Statement;
35
+ deleteOldestPendingChangesStmt: Database.Statement;
36
+ deleteSymbolsForFileStmt: Database.Statement;
37
+ upsertSymbolStmt: Database.Statement;
38
+ searchSymbolsStmt: Database.Statement;
39
+ insertTokenSavingsStmt: Database.Statement;
40
+ summarizeTokenSavingsStmt: Database.Statement;
41
+ summarizeTokenSavingsByToolStmt: Database.Statement;
42
+ listRecentTokenSavingsStmt: Database.Statement;
43
+ getKvStmt: Database.Statement;
44
+ setKvStmt: Database.Statement;
45
+ };
46
+ export type DatabaseRuntime = {
47
+ db: Database.Database;
48
+ dbPath: string;
49
+ ftsAvailable: boolean;
50
+ ftsTableName: string;
51
+ indexFileSymbolsTx: ((filePath: string, symbols: ExtractedSymbol[]) => void) | null;
52
+ statements: PreparedDatabaseStatements;
53
+ };
54
+ export declare function openDatabaseRuntime(projectRoot: string): DatabaseRuntime;