@coreyuan/vector-mind 1.0.4 → 1.0.7
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.
- package/README.md +12 -21
- package/dist/index.js +395 -75
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ VectorMind 通过本地文件监听 + SQLite 关系记忆,把“需求 → 改
|
|
|
17
17
|
- **符号索引(symbols)**:实时维护类/函数/类型等符号表,用于快速 query 定位定义位置。
|
|
18
18
|
- **项目总结 & 笔记(memory_items)**:把“项目总结/关键决策/约束/待办”等上下文以结构化条目持久化到本地。
|
|
19
19
|
- **代码片段 & 文档分块索引(memory_items)**:监听文件变更,把代码/文档切成可检索的 chunk 存入本地。
|
|
20
|
-
-
|
|
20
|
+
- **上下文检索(semantic_search)**:默认使用本地 SQLite FTS 做召回(无需模型);可选开启 embeddings,用向量相似度增强语义召回。
|
|
21
21
|
- **会话恢复(brain dump)**:新会话开始时一键拉取最近需求与对应的改动意图,AI 直接接着做。
|
|
22
22
|
|
|
23
23
|
## 工作流(强烈推荐)
|
|
@@ -48,7 +48,7 @@ VectorMind 通过本地文件监听 + SQLite 关系记忆,把“需求 → 改
|
|
|
48
48
|
|
|
49
49
|
### `bootstrap_context`
|
|
50
50
|
- 入参:`{ query?: string, top_k?: number, kinds?: string[], include_content?: boolean }`
|
|
51
|
-
- 用途:返回 brain dump + pending changes;如果传入 `query
|
|
51
|
+
- 用途:返回 brain dump + pending changes;如果传入 `query`,会额外返回本地记忆库的检索结果(推荐新会话开始就用它)
|
|
52
52
|
|
|
53
53
|
### `get_pending_changes`
|
|
54
54
|
- 入参:`{}`
|
|
@@ -68,19 +68,19 @@ VectorMind 通过本地文件监听 + SQLite 关系记忆,把“需求 → 改
|
|
|
68
68
|
|
|
69
69
|
### `semantic_search`
|
|
70
70
|
- 入参:`{ query: string, top_k?: number, kinds?: string[], include_content?: boolean }`
|
|
71
|
-
-
|
|
71
|
+
- 用途:对本地记忆库进行检索(覆盖需求/意图/笔记/项目总结/代码 chunk/文档 chunk)。如启用 embeddings,会优先走向量相似度;否则使用本地 FTS/LIKE。
|
|
72
72
|
|
|
73
73
|
## 本地数据与监听
|
|
74
74
|
|
|
75
75
|
- 数据库:默认使用 MCP `roots/list` 提供的 workspace root(否则回退到 `process.cwd()`,也可用 `VECTORMIND_ROOT` 强制指定)创建 `.vectormind/vectormind.db`(默认已在 `.gitignore` 中忽略整个 `.vectormind/` 目录)
|
|
76
76
|
- 监听范围:默认监听 workspace root(同上)下文件变动(忽略 `.git/`、`node_modules/`、`dist/`、数据库文件)
|
|
77
77
|
- 符号抽取:目前为轻量正则抽取(非 AST 解析),支持常见语言如 TS/JS、Python、Go、Rust、C/C++
|
|
78
|
-
-
|
|
78
|
+
- 检索:默认使用本地 SQLite FTS(无需模型);当你设置 `VECTORMIND_EMBEDDINGS=on` 才会启用向量化(`@xenova/transformers`),并优先用向量相似度做语义召回(首次启用可能下载模型权重,向量与数据都在本地)
|
|
79
79
|
|
|
80
|
-
##
|
|
80
|
+
## 检索/向量化配置(可选)
|
|
81
81
|
|
|
82
82
|
- `VECTORMIND_ROOT=...`:强制指定“项目根目录”(当你的 MCP Client 无法提供 workspace roots 或启动目录不对时使用)
|
|
83
|
-
- `VECTORMIND_EMBEDDINGS=off
|
|
83
|
+
- `VECTORMIND_EMBEDDINGS=on|off`:是否启用向量化(默认 `off`;开启后会启动本地 embedding 模型,`semantic_search` 优先走向量相似度;关闭则走本地 FTS/LIKE,不会生成向量/启动模型)
|
|
84
84
|
- `VECTORMIND_EMBED_FILES=all|changed|none`:控制是否向量化“代码/文档 chunk”(默认 `all`;`none` 只影响 chunk,仍会向量化需求/意图/笔记/总结;`changed` 仅在 change/manual 时向量化 chunk)
|
|
85
85
|
- `VECTORMIND_EMBED_MODEL=...`:指定 embedding 模型(默认 `Xenova/all-MiniLM-L6-v2`)
|
|
86
86
|
- `VECTORMIND_EMBED_CACHE_DIR=...`:指定模型缓存目录
|
|
@@ -157,8 +157,12 @@ npx -y @coreyuan/vector-mind
|
|
|
157
157
|
|
|
158
158
|
### Codex(`config.toml`):不要固定 MCP Server 的 `cwd`(让它跟随项目)
|
|
159
159
|
|
|
160
|
-
Codex 目前不会通过 MCP `roots/list` 提供 workspace roots
|
|
161
|
-
|
|
160
|
+
Codex 目前不会通过 MCP `roots/list` 提供 workspace roots;因此要实现“每个项目一个 `<project>/.vectormind/`”,推荐两种方式:
|
|
161
|
+
|
|
162
|
+
1) **让 Codex 在你的项目目录启动**(或用 `codex -C <project>` 指定工作目录),然后 VectorMind 就会用 `process.cwd()` 作为 `project_root`。
|
|
163
|
+
2) **在每次工具调用里显式传 `project_root`**(当你的 Codex/VS Code 启动 MCP server 的工作目录不等于项目根目录时尤其有用)。
|
|
164
|
+
|
|
165
|
+
> `project_root` 可以作为 VectorMind 所有 tools 的可选参数;一旦提供,VectorMind 会切换到该项目并在 `<project_root>/.vectormind/` 下读写数据库与索引。
|
|
162
166
|
|
|
163
167
|
```toml
|
|
164
168
|
[mcp_servers.vector-mind]
|
|
@@ -172,21 +176,8 @@ args = ["-y", "@coreyuan/vector-mind"]
|
|
|
172
176
|
- `cwd = "..."`(会把 VectorMind 锁死到一个项目)
|
|
173
177
|
- `env = { VECTORMIND_ROOT = "..." }`(同样会锁死到一个项目)
|
|
174
178
|
|
|
175
|
-
你贴出来的这种配置会导致:无论你在多少个新项目里使用 Codex,VectorMind 都只会在这个写死目录里生成/更新 `.vectormind/`:
|
|
176
|
-
|
|
177
|
-
```toml
|
|
178
|
-
[mcp_servers.vector-mind]
|
|
179
|
-
type = "stdio"
|
|
180
|
-
command = "npx"
|
|
181
|
-
args = ["-y", "@coreyuan/vector-mind"]
|
|
182
|
-
cwd = "H:\\\\2024\\\\SJiuTool\\\\SJiuTool"
|
|
183
|
-
env = { VECTORMIND_ROOT = "H:\\\\2024\\\\SJiuTool\\\\SJiuTool" }
|
|
184
|
-
```
|
|
185
|
-
|
|
186
179
|
> 如果你确实要固定到单一项目(少见):那就可以设置 `cwd` 或 `VECTORMIND_ROOT`;但这会破坏“多项目隔离”。
|
|
187
180
|
|
|
188
|
-
**注意**:VectorMind 的 `project_root` 是在 MCP server 启动时确定的;如果你在同一个 Codex 进程里切换到另一个项目,需要重启 Codex(或重启编辑器)让 MCP server 重新拉起,才能绑定到新项目目录。
|
|
189
|
-
|
|
190
181
|
配置完成后,客户端会在初始化阶段拿到该服务器的 tools + instructions;AI 就能“知道它存在”,并在需要时调用,而不是盲猜。
|
|
191
182
|
|
|
192
183
|
## Skills(可选:让用户“无感”自动调用)
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
12
12
|
import { toJsonSchemaCompat } from "@modelcontextprotocol/sdk/server/zod-json-schema-compat.js";
|
|
13
13
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
14
14
|
const SERVER_NAME = "vector-mind";
|
|
15
|
-
const SERVER_VERSION = "1.0.
|
|
15
|
+
const SERVER_VERSION = "1.0.7";
|
|
16
16
|
const rootFromEnv = process.env.VECTORMIND_ROOT?.trim() ?? "";
|
|
17
17
|
const ROOTS_LIST_TIMEOUT_MS = (() => {
|
|
18
18
|
const raw = process.env.VECTORMIND_ROOTS_TIMEOUT_MS?.trim();
|
|
@@ -23,6 +23,15 @@ const ROOTS_LIST_TIMEOUT_MS = (() => {
|
|
|
23
23
|
return 750;
|
|
24
24
|
return n;
|
|
25
25
|
})();
|
|
26
|
+
const BOOTSTRAP_SEMANTIC_TIMEOUT_MS = (() => {
|
|
27
|
+
const raw = process.env.VECTORMIND_SEMANTIC_TIMEOUT_MS?.trim();
|
|
28
|
+
if (!raw)
|
|
29
|
+
return 2500;
|
|
30
|
+
const n = Number.parseInt(raw, 10);
|
|
31
|
+
if (!Number.isFinite(n) || n <= 0)
|
|
32
|
+
return 2500;
|
|
33
|
+
return n;
|
|
34
|
+
})();
|
|
26
35
|
let initialized = false;
|
|
27
36
|
let rootSource = "cwd";
|
|
28
37
|
let projectRoot = "";
|
|
@@ -52,10 +61,41 @@ let deleteSymbolsForFileStmt;
|
|
|
52
61
|
let upsertSymbolStmt;
|
|
53
62
|
let searchSymbolsStmt;
|
|
54
63
|
let indexFileSymbolsTx = null;
|
|
64
|
+
const FTS_TABLE_NAME = "memory_items_fts";
|
|
65
|
+
let ftsAvailable = false;
|
|
55
66
|
function isProbablyVscodeInstallDir(dir) {
|
|
56
67
|
const lower = dir.replace(/\\/g, "/").toLowerCase();
|
|
57
68
|
return lower.includes("/microsoft vs code");
|
|
58
69
|
}
|
|
70
|
+
function isProbablySystemDir(dir) {
|
|
71
|
+
if (process.platform !== "win32")
|
|
72
|
+
return false;
|
|
73
|
+
const candidate = path.resolve(dir);
|
|
74
|
+
const sysRootRaw = process.env.SystemRoot?.trim();
|
|
75
|
+
const sysRoot = sysRootRaw ? path.resolve(sysRootRaw) : null;
|
|
76
|
+
if (sysRoot) {
|
|
77
|
+
const rel = path.relative(sysRoot, candidate);
|
|
78
|
+
if (!!rel && !rel.startsWith("..") && !path.isAbsolute(rel))
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
const windowsFallback = path.resolve("C:\\Windows");
|
|
82
|
+
{
|
|
83
|
+
const rel = path.relative(windowsFallback, candidate);
|
|
84
|
+
if (!!rel && !rel.startsWith("..") && !path.isAbsolute(rel))
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
const programFiles = [
|
|
88
|
+
process.env["ProgramFiles"],
|
|
89
|
+
process.env["ProgramFiles(x86)"],
|
|
90
|
+
process.env["ProgramW6432"],
|
|
91
|
+
].filter(Boolean);
|
|
92
|
+
for (const pf of programFiles) {
|
|
93
|
+
const rel = path.relative(path.resolve(pf), candidate);
|
|
94
|
+
if (!!rel && !rel.startsWith("..") && !path.isAbsolute(rel))
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
59
99
|
function getVsCodeUserDirCandidate() {
|
|
60
100
|
const platform = process.platform;
|
|
61
101
|
if (platform === "win32") {
|
|
@@ -91,6 +131,24 @@ function parseFileUriToPath(uri) {
|
|
|
91
131
|
return null;
|
|
92
132
|
}
|
|
93
133
|
}
|
|
134
|
+
function resolveRootFromToolArgOrThrow(raw) {
|
|
135
|
+
if (typeof raw !== "string")
|
|
136
|
+
return null;
|
|
137
|
+
const trimmed = raw.trim();
|
|
138
|
+
if (!trimmed)
|
|
139
|
+
return null;
|
|
140
|
+
const uriPath = trimmed.startsWith("file:") ? parseFileUriToPath(trimmed) : null;
|
|
141
|
+
const abs = path.resolve(uriPath ?? trimmed);
|
|
142
|
+
try {
|
|
143
|
+
const st = fs.statSync(abs);
|
|
144
|
+
if (!st.isDirectory())
|
|
145
|
+
throw new Error("not a directory");
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
throw new Error(`[VectorMind] Invalid project_root: ${abs}. (${String(err)})`);
|
|
149
|
+
}
|
|
150
|
+
return { root: abs, source: "tool_arg" };
|
|
151
|
+
}
|
|
94
152
|
function resolveRootFromEnvOrThrow() {
|
|
95
153
|
if (!rootFromEnv)
|
|
96
154
|
return null;
|
|
@@ -483,43 +541,42 @@ function removeFileIndexes(absPath) {
|
|
|
483
541
|
console.error("[vectormind] failed to remove file chunks:", filePath, err);
|
|
484
542
|
}
|
|
485
543
|
}
|
|
486
|
-
const
|
|
544
|
+
const ProjectRootArgSchema = z.object({
|
|
545
|
+
project_root: z.string().optional(),
|
|
546
|
+
});
|
|
547
|
+
const StartRequirementArgsSchema = ProjectRootArgSchema.merge(z.object({
|
|
487
548
|
title: z.string().min(1),
|
|
488
549
|
background: z.string().optional().default(""),
|
|
489
|
-
});
|
|
490
|
-
const SyncChangeIntentArgsSchema = z
|
|
491
|
-
.object({
|
|
550
|
+
}));
|
|
551
|
+
const SyncChangeIntentArgsSchema = ProjectRootArgSchema.merge(z.object({
|
|
492
552
|
intent: z.string().min(1),
|
|
493
553
|
files: z.array(z.string().min(1)).optional(),
|
|
494
554
|
affected_files: z.array(z.string().min(1)).optional(),
|
|
495
|
-
})
|
|
496
|
-
.transform((v) => ({
|
|
497
|
-
intent: v.intent,
|
|
498
|
-
files: (v.files ?? v.affected_files ?? []).filter(Boolean),
|
|
499
555
|
}));
|
|
500
|
-
const QueryCodebaseArgsSchema = z.object({
|
|
556
|
+
const QueryCodebaseArgsSchema = ProjectRootArgSchema.merge(z.object({
|
|
501
557
|
query: z.string().min(1),
|
|
502
|
-
});
|
|
503
|
-
const UpsertProjectSummaryArgsSchema = z.object({
|
|
558
|
+
}));
|
|
559
|
+
const UpsertProjectSummaryArgsSchema = ProjectRootArgSchema.merge(z.object({
|
|
504
560
|
summary: z.string().min(1),
|
|
505
|
-
});
|
|
506
|
-
const AddNoteArgsSchema = z.object({
|
|
561
|
+
}));
|
|
562
|
+
const AddNoteArgsSchema = ProjectRootArgSchema.merge(z.object({
|
|
507
563
|
title: z.string().optional().default(""),
|
|
508
564
|
content: z.string().min(1),
|
|
509
565
|
tags: z.array(z.string().min(1)).optional(),
|
|
510
|
-
});
|
|
511
|
-
const BootstrapContextArgsSchema = z.object({
|
|
566
|
+
}));
|
|
567
|
+
const BootstrapContextArgsSchema = ProjectRootArgSchema.merge(z.object({
|
|
512
568
|
query: z.string().optional(),
|
|
513
569
|
top_k: z.number().int().min(1).max(50).optional().default(10),
|
|
514
570
|
kinds: z.array(z.string().min(1)).optional(),
|
|
515
571
|
include_content: z.boolean().optional().default(false),
|
|
516
|
-
});
|
|
517
|
-
const SemanticSearchArgsSchema = z.object({
|
|
572
|
+
}));
|
|
573
|
+
const SemanticSearchArgsSchema = ProjectRootArgSchema.merge(z.object({
|
|
518
574
|
query: z.string().min(1),
|
|
519
575
|
top_k: z.number().int().min(1).max(50).optional().default(10),
|
|
520
576
|
kinds: z.array(z.string().min(1)).optional(),
|
|
521
577
|
include_content: z.boolean().optional().default(false),
|
|
522
|
-
});
|
|
578
|
+
}));
|
|
579
|
+
const ProjectRootOnlyArgsSchema = ProjectRootArgSchema;
|
|
523
580
|
function escapeLike(pattern) {
|
|
524
581
|
return pattern.replace(/[\\\\%_]/g, (m) => `\\${m}`);
|
|
525
582
|
}
|
|
@@ -536,7 +593,7 @@ function safeJson(value) {
|
|
|
536
593
|
return null;
|
|
537
594
|
}
|
|
538
595
|
}
|
|
539
|
-
const embeddingsEnabled = !["0", "false", "off", "disabled"].includes((process.env.VECTORMIND_EMBEDDINGS ?? "
|
|
596
|
+
const embeddingsEnabled = !["0", "false", "off", "disabled"].includes((process.env.VECTORMIND_EMBEDDINGS ?? "off").toLowerCase());
|
|
540
597
|
const embedFilesMode = (process.env.VECTORMIND_EMBED_FILES ?? "all").toLowerCase();
|
|
541
598
|
const embedModelName = process.env.VECTORMIND_EMBED_MODEL ?? "Xenova/all-MiniLM-L6-v2";
|
|
542
599
|
const embedCacheDir = process.env.VECTORMIND_EMBED_CACHE_DIR ??
|
|
@@ -665,11 +722,38 @@ function dotProduct(a, b) {
|
|
|
665
722
|
s += a[i] * b[i];
|
|
666
723
|
return s;
|
|
667
724
|
}
|
|
725
|
+
function makePreviewText(content) {
|
|
726
|
+
const max = 400;
|
|
727
|
+
if (content.length <= max)
|
|
728
|
+
return content;
|
|
729
|
+
return `${content.slice(0, max)}...`;
|
|
730
|
+
}
|
|
731
|
+
function toSemanticMatch(row, score, includeContent) {
|
|
732
|
+
const preview = makePreviewText(row.content);
|
|
733
|
+
return {
|
|
734
|
+
score,
|
|
735
|
+
item: {
|
|
736
|
+
id: row.id,
|
|
737
|
+
kind: row.kind,
|
|
738
|
+
title: row.title,
|
|
739
|
+
file_path: row.file_path,
|
|
740
|
+
start_line: row.start_line,
|
|
741
|
+
end_line: row.end_line,
|
|
742
|
+
req_id: row.req_id,
|
|
743
|
+
preview,
|
|
744
|
+
content: includeContent ? row.content : undefined,
|
|
745
|
+
metadata_json: row.metadata_json,
|
|
746
|
+
updated_at: row.updated_at,
|
|
747
|
+
},
|
|
748
|
+
};
|
|
749
|
+
}
|
|
668
750
|
async function semanticSearchInternal(opts) {
|
|
669
751
|
if (!embeddingsEnabled) {
|
|
670
752
|
throw new Error("Embeddings are disabled");
|
|
671
753
|
}
|
|
672
754
|
const q = opts.query.trim();
|
|
755
|
+
if (!q)
|
|
756
|
+
return { query: "", top_k: opts.topK, mode: "embeddings", matches: [] };
|
|
673
757
|
const embedder = await getEmbedder();
|
|
674
758
|
const qVec = await embedder(q);
|
|
675
759
|
let candidateRows = [];
|
|
@@ -710,35 +794,171 @@ async function semanticSearchInternal(opts) {
|
|
|
710
794
|
const item = getMemoryItemByIdStmt.get(t.memory_id);
|
|
711
795
|
if (!item)
|
|
712
796
|
return null;
|
|
713
|
-
|
|
714
|
-
return {
|
|
715
|
-
score: t.score,
|
|
716
|
-
item: {
|
|
717
|
-
id: item.id,
|
|
718
|
-
kind: item.kind,
|
|
719
|
-
title: item.title,
|
|
720
|
-
file_path: item.file_path,
|
|
721
|
-
start_line: item.start_line,
|
|
722
|
-
end_line: item.end_line,
|
|
723
|
-
req_id: item.req_id,
|
|
724
|
-
preview,
|
|
725
|
-
content: opts.includeContent ? item.content : undefined,
|
|
726
|
-
metadata_json: item.metadata_json,
|
|
727
|
-
updated_at: item.updated_at,
|
|
728
|
-
},
|
|
729
|
-
};
|
|
797
|
+
return toSemanticMatch(item, t.score, opts.includeContent);
|
|
730
798
|
})
|
|
731
799
|
.filter(Boolean);
|
|
732
|
-
return { query: q, top_k: opts.topK, matches };
|
|
800
|
+
return { query: q, top_k: opts.topK, mode: "embeddings", matches };
|
|
801
|
+
}
|
|
802
|
+
function buildFtsMatchQuery(raw) {
|
|
803
|
+
const terms = raw
|
|
804
|
+
.trim()
|
|
805
|
+
.split(/\s+/)
|
|
806
|
+
.map((t) => t.trim())
|
|
807
|
+
.filter(Boolean)
|
|
808
|
+
.slice(0, 20);
|
|
809
|
+
if (!terms.length)
|
|
810
|
+
return '""';
|
|
811
|
+
return terms.map((t) => `"${t.replaceAll('"', '""')}"`).join(" AND ");
|
|
812
|
+
}
|
|
813
|
+
function ftsSearchInternal(opts) {
|
|
814
|
+
if (!ftsAvailable) {
|
|
815
|
+
throw new Error("FTS is unavailable");
|
|
816
|
+
}
|
|
817
|
+
const q = opts.query.trim();
|
|
818
|
+
if (!q)
|
|
819
|
+
return { query: "", top_k: opts.topK, mode: "fts", matches: [] };
|
|
820
|
+
const matchQuery = buildFtsMatchQuery(q);
|
|
821
|
+
const rows = (() => {
|
|
822
|
+
if (opts.kinds?.length) {
|
|
823
|
+
const placeholders = opts.kinds.map(() => "?").join(", ");
|
|
824
|
+
const stmt = db.prepare(`
|
|
825
|
+
SELECT
|
|
826
|
+
m.id as id,
|
|
827
|
+
m.kind as kind,
|
|
828
|
+
m.title as title,
|
|
829
|
+
m.content as content,
|
|
830
|
+
m.file_path as file_path,
|
|
831
|
+
m.start_line as start_line,
|
|
832
|
+
m.end_line as end_line,
|
|
833
|
+
m.req_id as req_id,
|
|
834
|
+
m.metadata_json as metadata_json,
|
|
835
|
+
m.updated_at as updated_at,
|
|
836
|
+
bm25(${FTS_TABLE_NAME}) as rank
|
|
837
|
+
FROM ${FTS_TABLE_NAME}
|
|
838
|
+
JOIN memory_items m ON m.id = ${FTS_TABLE_NAME}.rowid
|
|
839
|
+
WHERE ${FTS_TABLE_NAME} MATCH ?
|
|
840
|
+
AND m.kind IN (${placeholders})
|
|
841
|
+
ORDER BY rank ASC
|
|
842
|
+
LIMIT ?
|
|
843
|
+
`);
|
|
844
|
+
return stmt.all(matchQuery, ...opts.kinds, opts.topK);
|
|
845
|
+
}
|
|
846
|
+
const stmt = db.prepare(`
|
|
847
|
+
SELECT
|
|
848
|
+
m.id as id,
|
|
849
|
+
m.kind as kind,
|
|
850
|
+
m.title as title,
|
|
851
|
+
m.content as content,
|
|
852
|
+
m.file_path as file_path,
|
|
853
|
+
m.start_line as start_line,
|
|
854
|
+
m.end_line as end_line,
|
|
855
|
+
m.req_id as req_id,
|
|
856
|
+
m.metadata_json as metadata_json,
|
|
857
|
+
m.updated_at as updated_at,
|
|
858
|
+
bm25(${FTS_TABLE_NAME}) as rank
|
|
859
|
+
FROM ${FTS_TABLE_NAME}
|
|
860
|
+
JOIN memory_items m ON m.id = ${FTS_TABLE_NAME}.rowid
|
|
861
|
+
WHERE ${FTS_TABLE_NAME} MATCH ?
|
|
862
|
+
ORDER BY rank ASC
|
|
863
|
+
LIMIT ?
|
|
864
|
+
`);
|
|
865
|
+
return stmt.all(matchQuery, opts.topK);
|
|
866
|
+
})();
|
|
867
|
+
const matches = rows.map((r) => toSemanticMatch(r, -Number(r.rank), opts.includeContent));
|
|
868
|
+
return { query: q, top_k: opts.topK, mode: "fts", matches };
|
|
869
|
+
}
|
|
870
|
+
function likeSearchInternal(opts) {
|
|
871
|
+
const q = opts.query.trim();
|
|
872
|
+
if (!q)
|
|
873
|
+
return { query: "", top_k: opts.topK, mode: "like", matches: [] };
|
|
874
|
+
const escaped = escapeLike(q);
|
|
875
|
+
const like = `%${escaped}%`;
|
|
876
|
+
const rows = (() => {
|
|
877
|
+
if (opts.kinds?.length) {
|
|
878
|
+
const placeholders = opts.kinds.map(() => "?").join(", ");
|
|
879
|
+
const stmt = db.prepare(`
|
|
880
|
+
SELECT
|
|
881
|
+
id,
|
|
882
|
+
kind,
|
|
883
|
+
title,
|
|
884
|
+
content,
|
|
885
|
+
file_path,
|
|
886
|
+
start_line,
|
|
887
|
+
end_line,
|
|
888
|
+
req_id,
|
|
889
|
+
metadata_json,
|
|
890
|
+
updated_at,
|
|
891
|
+
CASE
|
|
892
|
+
WHEN title LIKE ? ESCAPE '\\' THEN 3
|
|
893
|
+
WHEN file_path LIKE ? ESCAPE '\\' THEN 2
|
|
894
|
+
ELSE 1
|
|
895
|
+
END AS score
|
|
896
|
+
FROM memory_items
|
|
897
|
+
WHERE (content LIKE ? ESCAPE '\\'
|
|
898
|
+
OR title LIKE ? ESCAPE '\\'
|
|
899
|
+
OR file_path LIKE ? ESCAPE '\\')
|
|
900
|
+
AND kind IN (${placeholders})
|
|
901
|
+
ORDER BY score DESC, updated_at DESC, id DESC
|
|
902
|
+
LIMIT ?
|
|
903
|
+
`);
|
|
904
|
+
return stmt.all(like, like, like, like, like, ...opts.kinds, opts.topK);
|
|
905
|
+
}
|
|
906
|
+
const stmt = db.prepare(`
|
|
907
|
+
SELECT
|
|
908
|
+
id,
|
|
909
|
+
kind,
|
|
910
|
+
title,
|
|
911
|
+
content,
|
|
912
|
+
file_path,
|
|
913
|
+
start_line,
|
|
914
|
+
end_line,
|
|
915
|
+
req_id,
|
|
916
|
+
metadata_json,
|
|
917
|
+
updated_at,
|
|
918
|
+
CASE
|
|
919
|
+
WHEN title LIKE ? ESCAPE '\\' THEN 3
|
|
920
|
+
WHEN file_path LIKE ? ESCAPE '\\' THEN 2
|
|
921
|
+
ELSE 1
|
|
922
|
+
END AS score
|
|
923
|
+
FROM memory_items
|
|
924
|
+
WHERE (content LIKE ? ESCAPE '\\'
|
|
925
|
+
OR title LIKE ? ESCAPE '\\'
|
|
926
|
+
OR file_path LIKE ? ESCAPE '\\')
|
|
927
|
+
ORDER BY score DESC, updated_at DESC, id DESC
|
|
928
|
+
LIMIT ?
|
|
929
|
+
`);
|
|
930
|
+
return stmt.all(like, like, like, like, like, opts.topK);
|
|
931
|
+
})();
|
|
932
|
+
const matches = rows.map((r) => toSemanticMatch(r, Number(r.score), opts.includeContent));
|
|
933
|
+
return { query: q, top_k: opts.topK, mode: "like", matches };
|
|
934
|
+
}
|
|
935
|
+
async function semanticSearchHybridInternal(opts) {
|
|
936
|
+
if (embeddingsEnabled) {
|
|
937
|
+
try {
|
|
938
|
+
return await semanticSearchInternal(opts);
|
|
939
|
+
}
|
|
940
|
+
catch (err) {
|
|
941
|
+
console.error("[vectormind] embeddings semantic_search failed; falling back:", err);
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
if (ftsAvailable) {
|
|
945
|
+
try {
|
|
946
|
+
return ftsSearchInternal(opts);
|
|
947
|
+
}
|
|
948
|
+
catch (err) {
|
|
949
|
+
console.error("[vectormind] fts semantic_search failed; falling back:", err);
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
return likeSearchInternal(opts);
|
|
733
953
|
}
|
|
734
954
|
const server = new Server({ name: SERVER_NAME, version: SERVER_VERSION }, {
|
|
735
955
|
capabilities: { tools: {} },
|
|
736
956
|
instructions: [
|
|
737
957
|
"VectorMind MCP is available in this session. Use it to avoid guessing project context.",
|
|
738
|
-
"Project root
|
|
958
|
+
"Project root resolution order: tool argument project_root (recommended for clients without roots/list), then VECTORMIND_ROOT (avoid hardcoding in global config), then MCP roots/list (best-effort; falls back quickly if unsupported), then process.cwd() (so start your MCP client in the project directory for per-project isolation).",
|
|
739
959
|
"",
|
|
740
960
|
"Required workflow:",
|
|
741
|
-
"- On every new conversation/session: call bootstrap_context({ query: <current goal> }) first (or at least get_brain_dump()) to restore context and retrieve relevant matches from the local vector
|
|
961
|
+
"- On every new conversation/session: call bootstrap_context({ query: <current goal> }) first (or at least get_brain_dump()) to restore context and retrieve relevant matches from the local memory store (vector if enabled; otherwise FTS/LIKE).",
|
|
742
962
|
"- BEFORE editing code: call start_requirement(title, background) to set the active requirement.",
|
|
743
963
|
"- AFTER editing + saving: call get_pending_changes() to see unsynced files, then call sync_change_intent(intent, files). (You can omit files to auto-link all pending changes.)",
|
|
744
964
|
"- After major milestones/decisions: call upsert_project_summary(summary) and/or add_note(...) to persist durable context locally.",
|
|
@@ -781,11 +1001,81 @@ async function resolveProjectRoot() {
|
|
|
781
1001
|
if (rootFromMcp)
|
|
782
1002
|
return { root: rootFromMcp, source: "mcp_roots" };
|
|
783
1003
|
const cwd = process.cwd();
|
|
784
|
-
if (isProbablyVscodeInstallDir(cwd)) {
|
|
1004
|
+
if (isProbablyVscodeInstallDir(cwd) || isProbablySystemDir(cwd)) {
|
|
785
1005
|
return { root: resolveSafeFallbackRootDir(), source: "fallback" };
|
|
786
1006
|
}
|
|
787
1007
|
return { root: cwd, source: "cwd" };
|
|
788
1008
|
}
|
|
1009
|
+
function initMemoryItemsFts() {
|
|
1010
|
+
ftsAvailable = false;
|
|
1011
|
+
try {
|
|
1012
|
+
const existed = db
|
|
1013
|
+
.prepare(`SELECT 1 FROM sqlite_master WHERE type='table' AND name=?`)
|
|
1014
|
+
.get(FTS_TABLE_NAME);
|
|
1015
|
+
const alreadyExists = !!existed;
|
|
1016
|
+
if (!alreadyExists) {
|
|
1017
|
+
try {
|
|
1018
|
+
db.exec(`
|
|
1019
|
+
CREATE VIRTUAL TABLE ${FTS_TABLE_NAME} USING fts5(
|
|
1020
|
+
kind,
|
|
1021
|
+
title,
|
|
1022
|
+
content,
|
|
1023
|
+
file_path,
|
|
1024
|
+
metadata_json,
|
|
1025
|
+
content='memory_items',
|
|
1026
|
+
content_rowid='id',
|
|
1027
|
+
tokenize='trigram'
|
|
1028
|
+
);
|
|
1029
|
+
`);
|
|
1030
|
+
}
|
|
1031
|
+
catch {
|
|
1032
|
+
db.exec(`
|
|
1033
|
+
CREATE VIRTUAL TABLE ${FTS_TABLE_NAME} USING fts5(
|
|
1034
|
+
kind,
|
|
1035
|
+
title,
|
|
1036
|
+
content,
|
|
1037
|
+
file_path,
|
|
1038
|
+
metadata_json,
|
|
1039
|
+
content='memory_items',
|
|
1040
|
+
content_rowid='id'
|
|
1041
|
+
);
|
|
1042
|
+
`);
|
|
1043
|
+
}
|
|
1044
|
+
try {
|
|
1045
|
+
db.exec(`INSERT INTO ${FTS_TABLE_NAME}(${FTS_TABLE_NAME}) VALUES('rebuild');`);
|
|
1046
|
+
}
|
|
1047
|
+
catch (err) {
|
|
1048
|
+
console.error("[vectormind] fts rebuild failed:", err);
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
db.exec(`
|
|
1052
|
+
CREATE TRIGGER IF NOT EXISTS vectormind_memory_items_fts_ai
|
|
1053
|
+
AFTER INSERT ON memory_items BEGIN
|
|
1054
|
+
INSERT INTO ${FTS_TABLE_NAME}(rowid, kind, title, content, file_path, metadata_json)
|
|
1055
|
+
VALUES (new.id, new.kind, new.title, new.content, new.file_path, new.metadata_json);
|
|
1056
|
+
END;
|
|
1057
|
+
|
|
1058
|
+
CREATE TRIGGER IF NOT EXISTS vectormind_memory_items_fts_ad
|
|
1059
|
+
AFTER DELETE ON memory_items BEGIN
|
|
1060
|
+
INSERT INTO ${FTS_TABLE_NAME}(${FTS_TABLE_NAME}, rowid, kind, title, content, file_path, metadata_json)
|
|
1061
|
+
VALUES ('delete', old.id, old.kind, old.title, old.content, old.file_path, old.metadata_json);
|
|
1062
|
+
END;
|
|
1063
|
+
|
|
1064
|
+
CREATE TRIGGER IF NOT EXISTS vectormind_memory_items_fts_au
|
|
1065
|
+
AFTER UPDATE ON memory_items BEGIN
|
|
1066
|
+
INSERT INTO ${FTS_TABLE_NAME}(${FTS_TABLE_NAME}, rowid, kind, title, content, file_path, metadata_json)
|
|
1067
|
+
VALUES ('delete', old.id, old.kind, old.title, old.content, old.file_path, old.metadata_json);
|
|
1068
|
+
INSERT INTO ${FTS_TABLE_NAME}(rowid, kind, title, content, file_path, metadata_json)
|
|
1069
|
+
VALUES (new.id, new.kind, new.title, new.content, new.file_path, new.metadata_json);
|
|
1070
|
+
END;
|
|
1071
|
+
`);
|
|
1072
|
+
db.prepare(`SELECT rowid FROM ${FTS_TABLE_NAME} LIMIT 1`).get();
|
|
1073
|
+
ftsAvailable = true;
|
|
1074
|
+
}
|
|
1075
|
+
catch (err) {
|
|
1076
|
+
ftsAvailable = false;
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
789
1079
|
function initDatabase() {
|
|
790
1080
|
const vmDir = path.join(projectRoot, ".vectormind");
|
|
791
1081
|
try {
|
|
@@ -916,6 +1206,7 @@ function initDatabase() {
|
|
|
916
1206
|
CREATE INDEX IF NOT EXISTS idx_pending_changes_updated_at
|
|
917
1207
|
ON pending_changes(updated_at DESC);
|
|
918
1208
|
`);
|
|
1209
|
+
initMemoryItemsFts();
|
|
919
1210
|
insertRequirementStmt = db.prepare(`INSERT INTO requirements (title, context_data, status) VALUES (?, ?, 'active')`);
|
|
920
1211
|
getActiveRequirementStmt = db.prepare(`SELECT id, title, status, context_data, created_at
|
|
921
1212
|
FROM requirements
|
|
@@ -1028,10 +1319,10 @@ function initWatcher() {
|
|
|
1028
1319
|
});
|
|
1029
1320
|
watcher.on("error", (err) => console.error("[vectormind] watcher error:", err));
|
|
1030
1321
|
}
|
|
1031
|
-
async function initializeIfNeeded() {
|
|
1322
|
+
async function initializeIfNeeded(forced) {
|
|
1032
1323
|
if (initialized)
|
|
1033
1324
|
return;
|
|
1034
|
-
const resolved = await resolveProjectRoot();
|
|
1325
|
+
const resolved = forced ?? (await resolveProjectRoot());
|
|
1035
1326
|
projectRoot = resolved.root;
|
|
1036
1327
|
rootSource = resolved.source;
|
|
1037
1328
|
try {
|
|
@@ -1061,11 +1352,11 @@ async function initializeIfNeeded() {
|
|
|
1061
1352
|
throw err;
|
|
1062
1353
|
}
|
|
1063
1354
|
}
|
|
1064
|
-
async function ensureInitialized() {
|
|
1355
|
+
async function ensureInitialized(forced) {
|
|
1065
1356
|
if (initialized)
|
|
1066
1357
|
return;
|
|
1067
1358
|
if (!initializationPromise) {
|
|
1068
|
-
initializationPromise = initializeIfNeeded().finally(() => {
|
|
1359
|
+
initializationPromise = initializeIfNeeded(forced).finally(() => {
|
|
1069
1360
|
if (initialized)
|
|
1070
1361
|
return;
|
|
1071
1362
|
initializationPromise = null;
|
|
@@ -1073,9 +1364,46 @@ async function ensureInitialized() {
|
|
|
1073
1364
|
}
|
|
1074
1365
|
await initializationPromise;
|
|
1075
1366
|
}
|
|
1367
|
+
async function switchProjectRootIfNeeded(next) {
|
|
1368
|
+
const same = projectRoot && path.resolve(projectRoot) === path.resolve(next.root) && initialized;
|
|
1369
|
+
if (same)
|
|
1370
|
+
return;
|
|
1371
|
+
try {
|
|
1372
|
+
await watcher?.close();
|
|
1373
|
+
}
|
|
1374
|
+
catch (err) {
|
|
1375
|
+
console.error("[vectormind] watcher close error:", err);
|
|
1376
|
+
}
|
|
1377
|
+
watcher = null;
|
|
1378
|
+
watcherReady = false;
|
|
1379
|
+
try {
|
|
1380
|
+
db?.close();
|
|
1381
|
+
}
|
|
1382
|
+
catch (err) {
|
|
1383
|
+
console.error("[vectormind] db close error:", err);
|
|
1384
|
+
}
|
|
1385
|
+
initialized = false;
|
|
1386
|
+
initializationPromise = null;
|
|
1387
|
+
await ensureInitialized(next);
|
|
1388
|
+
}
|
|
1389
|
+
async function ensureInitializedForArgs(rawArgs) {
|
|
1390
|
+
const fromToolArg = resolveRootFromToolArgOrThrow(rawArgs.project_root);
|
|
1391
|
+
if (fromToolArg) {
|
|
1392
|
+
await switchProjectRootIfNeeded(fromToolArg);
|
|
1393
|
+
return;
|
|
1394
|
+
}
|
|
1395
|
+
await ensureInitialized();
|
|
1396
|
+
}
|
|
1076
1397
|
server.oninitialized = () => {
|
|
1077
|
-
|
|
1398
|
+
// Do not eagerly initialize: prefer initializing on first tool call so callers can
|
|
1399
|
+
// provide `project_root` when the MCP client doesn't support roots/list.
|
|
1078
1400
|
};
|
|
1401
|
+
process.on("unhandledRejection", (reason) => {
|
|
1402
|
+
console.error("[vectormind] unhandledRejection:", reason);
|
|
1403
|
+
});
|
|
1404
|
+
process.on("uncaughtException", (err) => {
|
|
1405
|
+
console.error("[vectormind] uncaughtException:", err);
|
|
1406
|
+
});
|
|
1079
1407
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
1080
1408
|
return {
|
|
1081
1409
|
tools: [
|
|
@@ -1091,18 +1419,18 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
1091
1419
|
},
|
|
1092
1420
|
{
|
|
1093
1421
|
name: "get_brain_dump",
|
|
1094
|
-
description: "Restore recent requirements/changes/notes/summary/pending changes. Prefer bootstrap_context() at session start when you also want
|
|
1095
|
-
inputSchema:
|
|
1422
|
+
description: "Restore recent requirements/changes/notes/summary/pending changes. Prefer bootstrap_context() at session start when you also want recall from the local memory store.",
|
|
1423
|
+
inputSchema: toJsonSchemaCompat(ProjectRootOnlyArgsSchema),
|
|
1096
1424
|
},
|
|
1097
1425
|
{
|
|
1098
1426
|
name: "bootstrap_context",
|
|
1099
|
-
description: "MUST call at the start of every new chat/session. Returns brain dump + pending changes, and (if you pass query)
|
|
1427
|
+
description: "MUST call at the start of every new chat/session. Returns brain dump + pending changes, and (if you pass query) matches from the local memory store to avoid guessing.",
|
|
1100
1428
|
inputSchema: toJsonSchemaCompat(BootstrapContextArgsSchema),
|
|
1101
1429
|
},
|
|
1102
1430
|
{
|
|
1103
1431
|
name: "get_pending_changes",
|
|
1104
1432
|
description: "List files that changed locally but have not been acknowledged by sync_change_intent yet. Use this to see what needs syncing (or omit files in sync_change_intent to auto-link them).",
|
|
1105
|
-
inputSchema:
|
|
1433
|
+
inputSchema: toJsonSchemaCompat(ProjectRootOnlyArgsSchema),
|
|
1106
1434
|
},
|
|
1107
1435
|
{
|
|
1108
1436
|
name: "query_codebase",
|
|
@@ -1131,7 +1459,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
1131
1459
|
const toolName = request.params.name;
|
|
1132
1460
|
const rawArgs = (request.params.arguments ?? {});
|
|
1133
1461
|
try {
|
|
1134
|
-
await
|
|
1462
|
+
await ensureInitializedForArgs(rawArgs);
|
|
1135
1463
|
if (toolName === "start_requirement") {
|
|
1136
1464
|
const args = StartRequirementArgsSchema.parse(rawArgs);
|
|
1137
1465
|
const info = insertRequirementStmt.run(args.title, args.background || null);
|
|
@@ -1152,6 +1480,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
1152
1480
|
}
|
|
1153
1481
|
if (toolName === "sync_change_intent") {
|
|
1154
1482
|
const args = SyncChangeIntentArgsSchema.parse(rawArgs);
|
|
1483
|
+
const explicitFiles = (args.files ?? args.affected_files ?? []).filter((f) => typeof f === "string" && f.length > 0);
|
|
1155
1484
|
const active = getActiveRequirementStmt.get();
|
|
1156
1485
|
if (!active) {
|
|
1157
1486
|
return {
|
|
@@ -1171,9 +1500,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
1171
1500
|
const synced_files = [];
|
|
1172
1501
|
const insertTx = db.transaction(() => {
|
|
1173
1502
|
const targets = [];
|
|
1174
|
-
if (
|
|
1175
|
-
for (const
|
|
1176
|
-
const rawFile = String(f);
|
|
1503
|
+
if (explicitFiles.length) {
|
|
1504
|
+
for (const rawFile of explicitFiles) {
|
|
1177
1505
|
const dbFilePath = normalizeToDbPath(rawFile);
|
|
1178
1506
|
targets.push({ rawFile, dbFilePath, event: "manual", source: "args" });
|
|
1179
1507
|
}
|
|
@@ -1252,12 +1580,18 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
1252
1580
|
const recent_notes = listRecentNotesStmt.all(10);
|
|
1253
1581
|
const pending_changes = listPendingChangesStmt.all();
|
|
1254
1582
|
const q = args.query?.trim() ?? "";
|
|
1255
|
-
const semantic = q
|
|
1256
|
-
? await
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1583
|
+
const semantic = q
|
|
1584
|
+
? await Promise.race([
|
|
1585
|
+
semanticSearchHybridInternal({
|
|
1586
|
+
query: q,
|
|
1587
|
+
topK: args.top_k,
|
|
1588
|
+
kinds: args.kinds?.length ? args.kinds : null,
|
|
1589
|
+
includeContent: args.include_content,
|
|
1590
|
+
}),
|
|
1591
|
+
new Promise((resolve) => setTimeout(resolve, BOOTSTRAP_SEMANTIC_TIMEOUT_MS, null)),
|
|
1592
|
+
]).catch((err) => {
|
|
1593
|
+
console.error("[vectormind] bootstrap semantic_search failed:", err);
|
|
1594
|
+
return null;
|
|
1261
1595
|
})
|
|
1262
1596
|
: null;
|
|
1263
1597
|
return {
|
|
@@ -1380,22 +1714,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
1380
1714
|
};
|
|
1381
1715
|
}
|
|
1382
1716
|
if (toolName === "semantic_search") {
|
|
1383
|
-
if (!embeddingsEnabled) {
|
|
1384
|
-
return {
|
|
1385
|
-
isError: true,
|
|
1386
|
-
content: [
|
|
1387
|
-
{
|
|
1388
|
-
type: "text",
|
|
1389
|
-
text: JSON.stringify({
|
|
1390
|
-
ok: false,
|
|
1391
|
-
error: "Embeddings are disabled (set VECTORMIND_EMBEDDINGS=on) so semantic_search is unavailable.",
|
|
1392
|
-
}, null, 2),
|
|
1393
|
-
},
|
|
1394
|
-
],
|
|
1395
|
-
};
|
|
1396
|
-
}
|
|
1397
1717
|
const args = SemanticSearchArgsSchema.parse(rawArgs);
|
|
1398
|
-
const result = await
|
|
1718
|
+
const result = await semanticSearchHybridInternal({
|
|
1399
1719
|
query: args.query,
|
|
1400
1720
|
topK: args.top_k,
|
|
1401
1721
|
kinds: args.kinds?.length ? args.kinds : null,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|