@djolex999/vir-cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,349 @@
1
+ /**
2
+ * vir MCP server — exposes the distilled knowledge vault to MCP clients
3
+ * (Claude Code) as queryable tools over stdio.
4
+ *
5
+ * Register with Claude Code by adding to ~/.claude/claude_desktop_config.json:
6
+ *
7
+ * {
8
+ * "mcpServers": {
9
+ * "vir": {
10
+ * "command": "vir",
11
+ * "args": ["mcp"]
12
+ * }
13
+ * }
14
+ * }
15
+ *
16
+ * After restarting Claude Code, the agent can call vir_query, vir_status,
17
+ * vir_recent_notes, and vir_project_summary as tools.
18
+ *
19
+ * Transport is stdio: stdout is reserved for the MCP JSON-RPC protocol, so
20
+ * every log line goes to stderr. The SQLite DB is opened read-only — this
21
+ * server is a thin facade over the existing search/summarize modules and
22
+ * must never mutate state.
23
+ */
24
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
25
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
26
+ import { existsSync, readFileSync } from "node:fs";
27
+ import { join } from "node:path";
28
+ import { exit } from "node:process";
29
+ import { z } from "zod";
30
+ import { STATE_PATH } from "../config.js";
31
+ import { summarizeProject } from "../pipeline/summarizer.js";
32
+ import { kebab } from "../pipeline/writer.js";
33
+ import { search } from "../search/retriever.js";
34
+ import { synthesize } from "../search/synthesizer.js";
35
+ import { StateDb } from "../state/db.js";
36
+ const CATEGORIES = ["pattern", "gotcha", "decision", "tool"];
37
+ // Maps the vault subdirectory back to the canonical category, used as a
38
+ // fallback when a hit's frontmatter is missing (e.g. older notes).
39
+ const CATEGORY_DIRS = {
40
+ patterns: "pattern",
41
+ gotchas: "gotcha",
42
+ decisions: "decision",
43
+ tools: "tool",
44
+ };
45
+ function log(msg) {
46
+ process.stderr.write(`[vir-mcp] ${msg}\n`);
47
+ }
48
+ function ok(payload) {
49
+ const text = typeof payload === "string" ? payload : JSON.stringify(payload, null, 2);
50
+ return { content: [{ type: "text", text }] };
51
+ }
52
+ function fail(message) {
53
+ return {
54
+ content: [{ type: "text", text: `Error: ${message}` }],
55
+ isError: true,
56
+ };
57
+ }
58
+ // Notes carry their classification in YAML frontmatter (see pipeline/writer.ts).
59
+ // SearchHit only exposes title/content/score, so parse the frontmatter back to
60
+ // recover category/project without a second DB round-trip.
61
+ function parseFrontmatter(content) {
62
+ const m = content.match(/^---\n([\s\S]*?)\n---/);
63
+ const block = m?.[1];
64
+ if (block === undefined)
65
+ return {};
66
+ const out = {};
67
+ for (const line of block.split("\n")) {
68
+ const idx = line.indexOf(":");
69
+ if (idx === -1)
70
+ continue;
71
+ const key = line.slice(0, idx).trim();
72
+ if (key.length === 0)
73
+ continue;
74
+ let val = line.slice(idx + 1).trim();
75
+ if ((val.startsWith('"') && val.endsWith('"')) ||
76
+ (val.startsWith("'") && val.endsWith("'"))) {
77
+ val = val.slice(1, -1).replace(/\\"/g, '"');
78
+ }
79
+ out[key] = val;
80
+ }
81
+ return out;
82
+ }
83
+ function categoryFromTitle(title) {
84
+ const dir = title.split("/")[0] ?? "";
85
+ return CATEGORY_DIRS[dir] ?? "";
86
+ }
87
+ function hitMeta(hit) {
88
+ const fm = parseFrontmatter(hit.content);
89
+ const base = hit.title.split("/").pop() ?? hit.title;
90
+ return {
91
+ topic: fm.topic ?? base,
92
+ category: fm.category ?? categoryFromTitle(hit.title),
93
+ project: fm.project ?? "",
94
+ };
95
+ }
96
+ function excerpt(content) {
97
+ const body = content.replace(/^---\n[\s\S]*?\n---\n?/, "");
98
+ return body.replace(/\s+/g, " ").trim().slice(0, 200);
99
+ }
100
+ export async function runMcpServer(cfg) {
101
+ let db;
102
+ try {
103
+ db = new StateDb(STATE_PATH, { readonly: true });
104
+ }
105
+ catch (err) {
106
+ log(`could not open ${STATE_PATH} read-only: ${err.message}`);
107
+ log("run `vir run --full` first to build the knowledge database.");
108
+ exit(1);
109
+ }
110
+ const server = new McpServer({ name: "vir", version: "0.1.1" });
111
+ server.registerTool("vir_query", {
112
+ description: "Search the knowledge vault for patterns, gotchas, decisions, and " +
113
+ "tool insights from past Claude Code sessions. Use this before " +
114
+ "working on a task to consult prior learnings.",
115
+ inputSchema: {
116
+ query: z.string().describe("The question or topic to search for"),
117
+ top_k: z
118
+ .number()
119
+ .int()
120
+ .min(1)
121
+ .max(10)
122
+ .optional()
123
+ .describe("Number of notes to retrieve (default 5, max 10)"),
124
+ category: z
125
+ .enum(CATEGORIES)
126
+ .optional()
127
+ .describe("Restrict results to one category"),
128
+ project: z
129
+ .string()
130
+ .optional()
131
+ .describe("Restrict results to one project slug"),
132
+ },
133
+ }, async ({ query, top_k, category, project }) => {
134
+ try {
135
+ const topK = Math.min(Math.max(top_k ?? 5, 1), 10);
136
+ const hasFilter = Boolean(category || project);
137
+ // Over-fetch when filtering so post-filtering can still fill top_k.
138
+ const fetchK = hasFilter ? Math.min(30, topK * 5) : topK;
139
+ const projSlug = project ? kebab(project) : null;
140
+ const hits = await search(cfg, db, query, fetchK);
141
+ const selected = hits
142
+ .filter((h) => {
143
+ const meta = hitMeta(h);
144
+ if (category && meta.category !== category)
145
+ return false;
146
+ if (projSlug && kebab(meta.project) !== projSlug)
147
+ return false;
148
+ return true;
149
+ })
150
+ .slice(0, topK);
151
+ if (selected.length === 0) {
152
+ return ok({
153
+ answer: "No matching notes found in the vault.",
154
+ sources: [],
155
+ });
156
+ }
157
+ const answer = await synthesize(cfg, query, selected);
158
+ const sources = selected.map((h) => {
159
+ const meta = hitMeta(h);
160
+ return {
161
+ topic: meta.topic,
162
+ category: meta.category,
163
+ project: meta.project,
164
+ score: h.score,
165
+ file: h.title,
166
+ };
167
+ });
168
+ return ok({ answer: answer.trim(), sources });
169
+ }
170
+ catch (err) {
171
+ return fail(err.message);
172
+ }
173
+ });
174
+ server.registerTool("vir_status", {
175
+ description: "Get an overview of the user's knowledge vault: total notes, " +
176
+ "projects, categories, confidence distribution. Use this to " +
177
+ "understand what the user knows about and where gaps might exist.",
178
+ inputSchema: {},
179
+ }, async () => {
180
+ try {
181
+ const k = db.getStats();
182
+ const round2 = (n) => Math.round(n * 100) / 100;
183
+ const projects = Object.entries(k.byProject)
184
+ .sort((a, b) => b[1].total - a[1].total)
185
+ .map(([name, p]) => ({
186
+ name,
187
+ total: p.total,
188
+ patterns: p.patterns,
189
+ gotchas: p.gotchas,
190
+ decisions: p.decisions,
191
+ tools: p.tools,
192
+ avgConfidence: round2(p.avgConfidence),
193
+ lastSeen: p.lastSeen || null,
194
+ }));
195
+ const gaps = [];
196
+ for (const p of projects) {
197
+ if (p.total === 0)
198
+ continue;
199
+ if (p.gotchas === 0)
200
+ gaps.push(`${p.name}: no gotchas recorded`);
201
+ if (p.decisions === 0) {
202
+ gaps.push(`${p.name}: no architecture decisions recorded`);
203
+ }
204
+ if (p.avgConfidence < 0.65) {
205
+ gaps.push(`${p.name}: low average confidence (${p.avgConfidence.toFixed(2)})`);
206
+ }
207
+ }
208
+ return ok({
209
+ totalNotes: k.total,
210
+ avgConfidence: round2(k.avgConfidence),
211
+ confidence: { high: k.highConf, low: k.lowConf },
212
+ categories: k.byCategory,
213
+ projects,
214
+ dateRange: {
215
+ oldest: k.oldestNote || null,
216
+ newest: k.newestNote || null,
217
+ },
218
+ gaps,
219
+ });
220
+ }
221
+ catch (err) {
222
+ return fail(err.message);
223
+ }
224
+ });
225
+ server.registerTool("vir_recent_notes", {
226
+ description: "Get the most recently distilled knowledge from Claude Code " +
227
+ "sessions. Use this to see what the user has been working on lately.",
228
+ inputSchema: {
229
+ limit: z
230
+ .number()
231
+ .int()
232
+ .min(1)
233
+ .max(20)
234
+ .optional()
235
+ .describe("Max notes to return (default 10, max 20)"),
236
+ category: z.enum(CATEGORIES).optional(),
237
+ project: z.string().optional().describe("Project slug filter"),
238
+ since_days: z
239
+ .number()
240
+ .positive()
241
+ .optional()
242
+ .describe("Only notes from the last N days"),
243
+ },
244
+ }, async ({ limit, category, project, since_days }) => {
245
+ try {
246
+ const max = Math.min(Math.max(limit ?? 10, 1), 20);
247
+ const projSlug = project ? kebab(project) : null;
248
+ const cutoff = typeof since_days === "number"
249
+ ? Date.now() - since_days * 86_400_000
250
+ : null;
251
+ const notes = db
252
+ .listDistilled()
253
+ .filter((r) => {
254
+ if (category && r.category !== category)
255
+ return false;
256
+ if (projSlug && kebab(r.project) !== projSlug)
257
+ return false;
258
+ if (cutoff !== null) {
259
+ if (!r.startedAt)
260
+ return false;
261
+ const t = Date.parse(r.startedAt);
262
+ if (!Number.isFinite(t) || t < cutoff)
263
+ return false;
264
+ }
265
+ return true;
266
+ })
267
+ .sort((a, b) => {
268
+ const ta = a.startedAt ? Date.parse(a.startedAt) : 0;
269
+ const tb = b.startedAt ? Date.parse(b.startedAt) : 0;
270
+ return tb - ta;
271
+ })
272
+ .slice(0, max)
273
+ .map((r) => ({
274
+ topic: r.topic,
275
+ category: r.category,
276
+ project: r.project,
277
+ confidence: r.confidence,
278
+ date: r.startedAt,
279
+ summary: excerpt(r.content),
280
+ }));
281
+ return ok(notes);
282
+ }
283
+ catch (err) {
284
+ return fail(err.message);
285
+ }
286
+ });
287
+ server.registerTool("vir_project_summary", {
288
+ description: "Get a synthesized summary of what the user has learned about a " +
289
+ "specific project. Includes key patterns, gotchas, decisions, and " +
290
+ "tools.",
291
+ inputSchema: {
292
+ project: z.string().describe("Project slug, e.g. 'growthq'"),
293
+ },
294
+ }, async ({ project }) => {
295
+ try {
296
+ const slug = kebab(project);
297
+ const file = join(cfg.vaultPath, cfg.outputDir, "projects", `${slug}.md`);
298
+ if (existsSync(file)) {
299
+ const content = readFileSync(file, "utf8");
300
+ const fm = parseFrontmatter(content);
301
+ return ok({
302
+ project: slug,
303
+ content,
304
+ sessions_count: fm.sessions ? Number(fm.sessions) : null,
305
+ generated: fm.generated ?? null,
306
+ });
307
+ }
308
+ // Not cached — generate fresh. summarizeProject only reads the DB and
309
+ // writes a vault markdown file, so the read-only DB constraint holds.
310
+ const res = await summarizeProject(cfg, slug, db);
311
+ if (!res) {
312
+ return fail(`no distilled notes for project '${slug}'`);
313
+ }
314
+ const content = readFileSync(res.path, "utf8");
315
+ const fm = parseFrontmatter(content);
316
+ return ok({
317
+ project: slug,
318
+ content,
319
+ sessions_count: res.counts.total,
320
+ generated: fm.generated ?? new Date().toISOString(),
321
+ });
322
+ }
323
+ catch (err) {
324
+ return fail(err.message);
325
+ }
326
+ });
327
+ const transport = new StdioServerTransport();
328
+ await server.connect(transport);
329
+ log("vir MCP server ready on stdio (4 tools)");
330
+ const shutdown = async (sig) => {
331
+ log(`received ${sig}, shutting down`);
332
+ try {
333
+ await server.close();
334
+ }
335
+ catch {
336
+ // best-effort
337
+ }
338
+ try {
339
+ db.close();
340
+ }
341
+ catch {
342
+ // best-effort
343
+ }
344
+ exit(0);
345
+ };
346
+ process.on("SIGINT", () => void shutdown("SIGINT"));
347
+ process.on("SIGTERM", () => void shutdown("SIGTERM"));
348
+ }
349
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
package/dist/state/db.js CHANGED
@@ -23,7 +23,14 @@ const ADDED_COLUMNS = [
23
23
  ];
24
24
  export class StateDb {
25
25
  db;
26
- constructor(path = STATE_PATH) {
26
+ constructor(path = STATE_PATH, opts = {}) {
27
+ if (opts.readonly) {
28
+ // Read-only consumers (the `vir mcp` server) must never mutate state.
29
+ // Open read-only and skip the WAL pragma + migrations — both are writes.
30
+ // The DB must already exist; a fresh install has nothing to serve yet.
31
+ this.db = new Database(path, { readonly: true, fileMustExist: true });
32
+ return;
33
+ }
27
34
  const dir = dirname(path);
28
35
  if (!existsSync(dir))
29
36
  mkdirSync(dir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/state/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/state/db.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djolex999/vir-cli",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Distills Claude Code sessions into a compounding knowledge vault",
5
5
  "author": "Djordje Marković <djordje@growthq.rs>",
6
6
  "license": "MIT",
@@ -36,6 +36,7 @@
36
36
  "@inquirer/confirm": "^6.0.13",
37
37
  "@inquirer/input": "^5.0.13",
38
38
  "@inquirer/select": "^5.1.5",
39
+ "@modelcontextprotocol/sdk": "^1.29.0",
39
40
  "better-sqlite3": "^11.5.0",
40
41
  "chalk": "^5.3.0",
41
42
  "commander": "^12.1.0",