contextvault-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/LICENSE +21 -0
  2. package/bin/contextvault-mcp.js +2 -0
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +8 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/server.d.ts +10 -0
  8. package/dist/server.d.ts.map +1 -0
  9. package/dist/server.js +533 -0
  10. package/dist/server.js.map +1 -0
  11. package/dist/tools/bootstrap.d.ts +4 -0
  12. package/dist/tools/bootstrap.d.ts.map +1 -0
  13. package/dist/tools/bootstrap.js +108 -0
  14. package/dist/tools/bootstrap.js.map +1 -0
  15. package/dist/tools/changelog.d.ts +3 -0
  16. package/dist/tools/changelog.d.ts.map +1 -0
  17. package/dist/tools/changelog.js +31 -0
  18. package/dist/tools/changelog.js.map +1 -0
  19. package/dist/tools/decision.d.ts +4 -0
  20. package/dist/tools/decision.d.ts.map +1 -0
  21. package/dist/tools/decision.js +34 -0
  22. package/dist/tools/decision.js.map +1 -0
  23. package/dist/tools/doc.d.ts +4 -0
  24. package/dist/tools/doc.d.ts.map +1 -0
  25. package/dist/tools/doc.js +53 -0
  26. package/dist/tools/doc.js.map +1 -0
  27. package/dist/tools/error.d.ts +4 -0
  28. package/dist/tools/error.d.ts.map +1 -0
  29. package/dist/tools/error.js +34 -0
  30. package/dist/tools/error.js.map +1 -0
  31. package/dist/tools/explain.d.ts +4 -0
  32. package/dist/tools/explain.d.ts.map +1 -0
  33. package/dist/tools/explain.js +43 -0
  34. package/dist/tools/explain.js.map +1 -0
  35. package/dist/tools/handoff.d.ts +4 -0
  36. package/dist/tools/handoff.d.ts.map +1 -0
  37. package/dist/tools/handoff.js +32 -0
  38. package/dist/tools/handoff.js.map +1 -0
  39. package/dist/tools/health.d.ts +4 -0
  40. package/dist/tools/health.d.ts.map +1 -0
  41. package/dist/tools/health.js +98 -0
  42. package/dist/tools/health.js.map +1 -0
  43. package/dist/tools/help.d.ts +4 -0
  44. package/dist/tools/help.d.ts.map +1 -0
  45. package/dist/tools/help.js +53 -0
  46. package/dist/tools/help.js.map +1 -0
  47. package/dist/tools/import.d.ts +4 -0
  48. package/dist/tools/import.d.ts.map +1 -0
  49. package/dist/tools/import.js +105 -0
  50. package/dist/tools/import.js.map +1 -0
  51. package/dist/tools/init.d.ts +4 -0
  52. package/dist/tools/init.d.ts.map +1 -0
  53. package/dist/tools/init.js +35 -0
  54. package/dist/tools/init.js.map +1 -0
  55. package/dist/tools/intel.d.ts +4 -0
  56. package/dist/tools/intel.d.ts.map +1 -0
  57. package/dist/tools/intel.js +37 -0
  58. package/dist/tools/intel.js.map +1 -0
  59. package/dist/tools/link.d.ts +4 -0
  60. package/dist/tools/link.d.ts.map +1 -0
  61. package/dist/tools/link.js +71 -0
  62. package/dist/tools/link.js.map +1 -0
  63. package/dist/tools/mode.d.ts +4 -0
  64. package/dist/tools/mode.d.ts.map +1 -0
  65. package/dist/tools/mode.js +28 -0
  66. package/dist/tools/mode.js.map +1 -0
  67. package/dist/tools/new.d.ts +4 -0
  68. package/dist/tools/new.d.ts.map +1 -0
  69. package/dist/tools/new.js +28 -0
  70. package/dist/tools/new.js.map +1 -0
  71. package/dist/tools/note.d.ts +4 -0
  72. package/dist/tools/note.d.ts.map +1 -0
  73. package/dist/tools/note.js +45 -0
  74. package/dist/tools/note.js.map +1 -0
  75. package/dist/tools/plan.d.ts +4 -0
  76. package/dist/tools/plan.d.ts.map +1 -0
  77. package/dist/tools/plan.js +28 -0
  78. package/dist/tools/plan.js.map +1 -0
  79. package/dist/tools/quiz.d.ts +4 -0
  80. package/dist/tools/quiz.d.ts.map +1 -0
  81. package/dist/tools/quiz.js +41 -0
  82. package/dist/tools/quiz.js.map +1 -0
  83. package/dist/tools/read.d.ts +4 -0
  84. package/dist/tools/read.d.ts.map +1 -0
  85. package/dist/tools/read.js +17 -0
  86. package/dist/tools/read.js.map +1 -0
  87. package/dist/tools/search.d.ts +4 -0
  88. package/dist/tools/search.d.ts.map +1 -0
  89. package/dist/tools/search.js +25 -0
  90. package/dist/tools/search.js.map +1 -0
  91. package/dist/tools/share.d.ts +4 -0
  92. package/dist/tools/share.d.ts.map +1 -0
  93. package/dist/tools/share.js +41 -0
  94. package/dist/tools/share.js.map +1 -0
  95. package/dist/tools/snippet.d.ts +4 -0
  96. package/dist/tools/snippet.d.ts.map +1 -0
  97. package/dist/tools/snippet.js +30 -0
  98. package/dist/tools/snippet.js.map +1 -0
  99. package/dist/tools/status.d.ts +4 -0
  100. package/dist/tools/status.d.ts.map +1 -0
  101. package/dist/tools/status.js +17 -0
  102. package/dist/tools/status.js.map +1 -0
  103. package/dist/tools/update.d.ts +4 -0
  104. package/dist/tools/update.d.ts.map +1 -0
  105. package/dist/tools/update.js +87 -0
  106. package/dist/tools/update.js.map +1 -0
  107. package/dist/tools/upgrade.d.ts +4 -0
  108. package/dist/tools/upgrade.d.ts.map +1 -0
  109. package/dist/tools/upgrade.js +48 -0
  110. package/dist/tools/upgrade.js.map +1 -0
  111. package/dist/vault/index-manager.d.ts +22 -0
  112. package/dist/vault/index-manager.d.ts.map +1 -0
  113. package/dist/vault/index-manager.js +270 -0
  114. package/dist/vault/index-manager.js.map +1 -0
  115. package/dist/vault/manager.d.ts +43 -0
  116. package/dist/vault/manager.d.ts.map +1 -0
  117. package/dist/vault/manager.js +266 -0
  118. package/dist/vault/manager.js.map +1 -0
  119. package/dist/vault/settings.d.ts +9 -0
  120. package/dist/vault/settings.d.ts.map +1 -0
  121. package/dist/vault/settings.js +48 -0
  122. package/dist/vault/settings.js.map +1 -0
  123. package/dist/vault/types.d.ts +71 -0
  124. package/dist/vault/types.d.ts.map +1 -0
  125. package/dist/vault/types.js +12 -0
  126. package/dist/vault/types.js.map +1 -0
  127. package/package.json +62 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ahmad Zein
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import('../dist/index.js');
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import { ContextVaultServer } from './server.js';
3
+ const server = new ContextVaultServer();
4
+ server.run().catch((err) => {
5
+ console.error('ContextVault MCP Server error:', err);
6
+ process.exit(1);
7
+ });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACxC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare class ContextVaultServer {
2
+ private server;
3
+ private vault;
4
+ constructor();
5
+ private registerTools;
6
+ private registerResources;
7
+ private getInstructions;
8
+ run(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAuCA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAe;;IAqB5B,OAAO,CAAC,aAAa;IA6UrB,OAAO,CAAC,iBAAiB;IAsFzB,OAAO,CAAC,eAAe;IA0BjB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAI3B"}
package/dist/server.js ADDED
@@ -0,0 +1,533 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListResourceTemplatesRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
+ import { VaultManager } from './vault/manager.js';
5
+ // Tool handlers
6
+ import { handleInit } from './tools/init.js';
7
+ import { handleStatus } from './tools/status.js';
8
+ import { handleDoc } from './tools/doc.js';
9
+ import { handleError } from './tools/error.js';
10
+ import { handleDecision } from './tools/decision.js';
11
+ import { handleSearch } from './tools/search.js';
12
+ import { handleRead } from './tools/read.js';
13
+ import { handleHandoff } from './tools/handoff.js';
14
+ import { handlePlan } from './tools/plan.js';
15
+ import { handleBootstrap } from './tools/bootstrap.js';
16
+ import { handleSnippet } from './tools/snippet.js';
17
+ import { handleIntel } from './tools/intel.js';
18
+ import { handleUpdate } from './tools/update.js';
19
+ import { handleNew } from './tools/new.js';
20
+ import { handleMode } from './tools/mode.js';
21
+ import { handleHelp } from './tools/help.js';
22
+ import { handleHealth } from './tools/health.js';
23
+ import { handleNote } from './tools/note.js';
24
+ import { handleChangelog } from './tools/changelog.js';
25
+ import { handleLink } from './tools/link.js';
26
+ import { handleQuiz } from './tools/quiz.js';
27
+ import { handleExplain } from './tools/explain.js';
28
+ import { handleUpgrade } from './tools/upgrade.js';
29
+ import { handleShare } from './tools/share.js';
30
+ import { handleImport } from './tools/import.js';
31
+ export class ContextVaultServer {
32
+ server;
33
+ vault;
34
+ constructor() {
35
+ this.vault = new VaultManager();
36
+ this.server = new Server({
37
+ name: 'contextvault-mcp',
38
+ version: '1.0.0',
39
+ }, {
40
+ capabilities: {
41
+ tools: {},
42
+ resources: {},
43
+ },
44
+ });
45
+ this.registerTools();
46
+ this.registerResources();
47
+ }
48
+ registerTools() {
49
+ // List all 25 tools
50
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
51
+ tools: [
52
+ {
53
+ name: 'ctx_init',
54
+ description: 'Initialize ContextVault in the current project. Creates .contextvault/ directory with index and settings.',
55
+ inputSchema: {
56
+ type: 'object',
57
+ properties: {
58
+ force: { type: 'boolean', description: 'Force reinitialize even if vault exists', default: false },
59
+ },
60
+ },
61
+ },
62
+ {
63
+ name: 'ctx_status',
64
+ description: 'Show ContextVault status: document counts, paths, mode, enforcement level.',
65
+ inputSchema: { type: 'object', properties: {} },
66
+ },
67
+ {
68
+ name: 'ctx_doc',
69
+ description: 'Quick-document a learning, feature, or finding to the vault.',
70
+ inputSchema: {
71
+ type: 'object',
72
+ properties: {
73
+ topic: { type: 'string', description: 'Topic name (e.g. "Auth System", "Docker Setup")' },
74
+ content: { type: 'string', description: 'What you learned or built' },
75
+ vault: { type: 'string', enum: ['global', 'project'], description: 'Which vault to save to', default: 'project' },
76
+ },
77
+ required: ['topic', 'content'],
78
+ },
79
+ },
80
+ {
81
+ name: 'ctx_error',
82
+ description: 'Document a bug fix: error message, root cause, solution, and prevention.',
83
+ inputSchema: {
84
+ type: 'object',
85
+ properties: {
86
+ error_message: { type: 'string', description: 'The error message encountered' },
87
+ root_cause: { type: 'string', description: 'What caused the error' },
88
+ solution: { type: 'string', description: 'How the error was fixed' },
89
+ prevention: { type: 'string', description: 'How to prevent this in the future' },
90
+ },
91
+ required: ['error_message', 'root_cause', 'solution'],
92
+ },
93
+ },
94
+ {
95
+ name: 'ctx_decision',
96
+ description: 'Document an architectural or technical decision with reasoning.',
97
+ inputSchema: {
98
+ type: 'object',
99
+ properties: {
100
+ decision: { type: 'string', description: 'What was decided' },
101
+ options: { type: 'string', description: 'Options that were considered' },
102
+ reasoning: { type: 'string', description: 'Why this option was chosen' },
103
+ tradeoffs: { type: 'string', description: 'Trade-offs and downsides' },
104
+ },
105
+ required: ['decision', 'reasoning'],
106
+ },
107
+ },
108
+ {
109
+ name: 'ctx_plan',
110
+ description: 'Document an implementation plan for a multi-step task.',
111
+ inputSchema: {
112
+ type: 'object',
113
+ properties: {
114
+ goal: { type: 'string', description: 'What the plan aims to achieve' },
115
+ steps: { type: 'string', description: 'Implementation steps (markdown list)' },
116
+ status: { type: 'string', description: 'Current status', default: 'In Progress' },
117
+ },
118
+ required: ['goal', 'steps'],
119
+ },
120
+ },
121
+ {
122
+ name: 'ctx_bootstrap',
123
+ description: 'Auto-scan the codebase and generate documentation. Creates architecture and feature docs.',
124
+ inputSchema: {
125
+ type: 'object',
126
+ properties: {
127
+ interactive: { type: 'boolean', description: 'Show scan results before creating docs', default: false },
128
+ },
129
+ },
130
+ },
131
+ {
132
+ name: 'ctx_snippet',
133
+ description: 'Save a useful code snippet for future reference.',
134
+ inputSchema: {
135
+ type: 'object',
136
+ properties: {
137
+ name: { type: 'string', description: 'Snippet name' },
138
+ code: { type: 'string', description: 'The code snippet' },
139
+ language: { type: 'string', description: 'Programming language' },
140
+ use_case: { type: 'string', description: 'When to use this snippet' },
141
+ },
142
+ required: ['name', 'code'],
143
+ },
144
+ },
145
+ {
146
+ name: 'ctx_intel',
147
+ description: 'Document codebase exploration findings.',
148
+ inputSchema: {
149
+ type: 'object',
150
+ properties: {
151
+ area: { type: 'string', description: 'Area explored (e.g. "Auth module", "API layer")' },
152
+ findings: { type: 'string', description: 'What you discovered' },
153
+ },
154
+ required: ['area', 'findings'],
155
+ },
156
+ },
157
+ {
158
+ name: 'ctx_handoff',
159
+ description: 'Create a session handoff summary for the next session to continue seamlessly.',
160
+ inputSchema: {
161
+ type: 'object',
162
+ properties: {
163
+ completed: { type: 'string', description: 'What was completed this session' },
164
+ in_progress: { type: 'string', description: 'What is still in progress' },
165
+ next_steps: { type: 'string', description: 'What should be done next' },
166
+ },
167
+ required: ['completed', 'next_steps'],
168
+ },
169
+ },
170
+ {
171
+ name: 'ctx_search',
172
+ description: 'Search across vault documents by keyword.',
173
+ inputSchema: {
174
+ type: 'object',
175
+ properties: {
176
+ query: { type: 'string', description: 'Search query' },
177
+ },
178
+ required: ['query'],
179
+ },
180
+ },
181
+ {
182
+ name: 'ctx_read',
183
+ description: 'Read a vault document by ID (e.g. "P001", "G003").',
184
+ inputSchema: {
185
+ type: 'object',
186
+ properties: {
187
+ id: { type: 'string', description: 'Document ID (e.g. "P001", "G003")' },
188
+ },
189
+ required: ['id'],
190
+ },
191
+ },
192
+ {
193
+ name: 'ctx_update',
194
+ description: 'Update an existing vault document by appending or modifying a section.',
195
+ inputSchema: {
196
+ type: 'object',
197
+ properties: {
198
+ id: { type: 'string', description: 'Document ID to update' },
199
+ section: { type: 'string', description: 'Section name to update (e.g. "Current Understanding", "Key Points")' },
200
+ content: { type: 'string', description: 'New content to add/replace in the section' },
201
+ },
202
+ required: ['id', 'content'],
203
+ },
204
+ },
205
+ {
206
+ name: 'ctx_new',
207
+ description: 'Create a new vault document with custom title and content.',
208
+ inputSchema: {
209
+ type: 'object',
210
+ properties: {
211
+ title: { type: 'string', description: 'Document title' },
212
+ content: { type: 'string', description: 'Document content' },
213
+ vault: { type: 'string', enum: ['global', 'project'], description: 'Which vault', default: 'project' },
214
+ },
215
+ required: ['title', 'content'],
216
+ },
217
+ },
218
+ {
219
+ name: 'ctx_mode',
220
+ description: 'Switch vault mode or enforcement level.',
221
+ inputSchema: {
222
+ type: 'object',
223
+ properties: {
224
+ mode: { type: 'string', enum: ['local', 'global', 'full'], description: 'Vault mode' },
225
+ enforcement: { type: 'string', enum: ['light', 'balanced', 'strict'], description: 'Enforcement level' },
226
+ },
227
+ },
228
+ },
229
+ {
230
+ name: 'ctx_help',
231
+ description: 'Show all ContextVault commands and their descriptions.',
232
+ inputSchema: { type: 'object', properties: {} },
233
+ },
234
+ {
235
+ name: 'ctx_health',
236
+ description: 'Check vault health: orphaned docs, index mismatches, size limits.',
237
+ inputSchema: { type: 'object', properties: {} },
238
+ },
239
+ {
240
+ name: 'ctx_note',
241
+ description: 'Add a quick note to an existing document.',
242
+ inputSchema: {
243
+ type: 'object',
244
+ properties: {
245
+ id: { type: 'string', description: 'Document ID to add note to' },
246
+ note: { type: 'string', description: 'Note content to append' },
247
+ },
248
+ required: ['id', 'note'],
249
+ },
250
+ },
251
+ {
252
+ name: 'ctx_changelog',
253
+ description: 'Show ContextVault version history and changelog.',
254
+ inputSchema: { type: 'object', properties: {} },
255
+ },
256
+ {
257
+ name: 'ctx_link',
258
+ description: 'Link two related documents together.',
259
+ inputSchema: {
260
+ type: 'object',
261
+ properties: {
262
+ from_id: { type: 'string', description: 'Source document ID' },
263
+ to_id: { type: 'string', description: 'Target document ID' },
264
+ },
265
+ required: ['from_id', 'to_id'],
266
+ },
267
+ },
268
+ {
269
+ name: 'ctx_quiz',
270
+ description: 'Test knowledge retention from vault documents. Generates questions based on stored docs.',
271
+ inputSchema: {
272
+ type: 'object',
273
+ properties: {
274
+ topic: { type: 'string', description: 'Optional topic to quiz on' },
275
+ },
276
+ },
277
+ },
278
+ {
279
+ name: 'ctx_explain',
280
+ description: 'Explain a concept and optionally save the explanation to the vault.',
281
+ inputSchema: {
282
+ type: 'object',
283
+ properties: {
284
+ concept: { type: 'string', description: 'Concept to explain' },
285
+ save: { type: 'boolean', description: 'Save explanation to vault', default: false },
286
+ },
287
+ required: ['concept'],
288
+ },
289
+ },
290
+ {
291
+ name: 'ctx_upgrade',
292
+ description: 'Upgrade vault format to latest version. Fixes structure issues.',
293
+ inputSchema: { type: 'object', properties: {} },
294
+ },
295
+ {
296
+ name: 'ctx_share',
297
+ description: 'Export vault documents for sharing.',
298
+ inputSchema: {
299
+ type: 'object',
300
+ properties: {
301
+ ids: {
302
+ type: 'array',
303
+ items: { type: 'string' },
304
+ description: 'Document IDs to export (e.g. ["P001", "P003"])',
305
+ },
306
+ format: { type: 'string', enum: ['md', 'json'], description: 'Export format', default: 'md' },
307
+ },
308
+ required: ['ids'],
309
+ },
310
+ },
311
+ {
312
+ name: 'ctx_import',
313
+ description: 'Import documents from external source or legacy .claude/vault/ location.',
314
+ inputSchema: {
315
+ type: 'object',
316
+ properties: {
317
+ source_path: { type: 'string', description: 'Path to import from. Use "legacy" to import from .claude/vault/' },
318
+ },
319
+ required: ['source_path'],
320
+ },
321
+ },
322
+ ],
323
+ }));
324
+ // Handle tool calls
325
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
326
+ const { name, arguments: args } = request.params;
327
+ const params = (args ?? {});
328
+ let result;
329
+ try {
330
+ switch (name) {
331
+ case 'ctx_init':
332
+ result = handleInit(this.vault, params);
333
+ break;
334
+ case 'ctx_status':
335
+ result = handleStatus(this.vault);
336
+ break;
337
+ case 'ctx_doc':
338
+ result = handleDoc(this.vault, params);
339
+ break;
340
+ case 'ctx_error':
341
+ result = handleError(this.vault, params);
342
+ break;
343
+ case 'ctx_decision':
344
+ result = handleDecision(this.vault, params);
345
+ break;
346
+ case 'ctx_search':
347
+ result = handleSearch(this.vault, params);
348
+ break;
349
+ case 'ctx_read':
350
+ result = handleRead(this.vault, params);
351
+ break;
352
+ case 'ctx_handoff':
353
+ result = handleHandoff(this.vault, params);
354
+ break;
355
+ case 'ctx_plan':
356
+ result = handlePlan(this.vault, params);
357
+ break;
358
+ case 'ctx_bootstrap':
359
+ result = handleBootstrap(this.vault, params);
360
+ break;
361
+ case 'ctx_snippet':
362
+ result = handleSnippet(this.vault, params);
363
+ break;
364
+ case 'ctx_intel':
365
+ result = handleIntel(this.vault, params);
366
+ break;
367
+ case 'ctx_update':
368
+ result = handleUpdate(this.vault, params);
369
+ break;
370
+ case 'ctx_new':
371
+ result = handleNew(this.vault, params);
372
+ break;
373
+ case 'ctx_mode':
374
+ result = handleMode(this.vault, params);
375
+ break;
376
+ case 'ctx_help':
377
+ result = handleHelp(this.vault);
378
+ break;
379
+ case 'ctx_health':
380
+ result = handleHealth(this.vault);
381
+ break;
382
+ case 'ctx_note':
383
+ result = handleNote(this.vault, params);
384
+ break;
385
+ case 'ctx_changelog':
386
+ result = handleChangelog();
387
+ break;
388
+ case 'ctx_link':
389
+ result = handleLink(this.vault, params);
390
+ break;
391
+ case 'ctx_quiz':
392
+ result = handleQuiz(this.vault, params);
393
+ break;
394
+ case 'ctx_explain':
395
+ result = handleExplain(this.vault, params);
396
+ break;
397
+ case 'ctx_upgrade':
398
+ result = handleUpgrade(this.vault);
399
+ break;
400
+ case 'ctx_share':
401
+ result = handleShare(this.vault, params);
402
+ break;
403
+ case 'ctx_import':
404
+ result = handleImport(this.vault, params);
405
+ break;
406
+ default:
407
+ result = { content: [{ type: 'text', text: `Unknown tool: ${name}` }], isError: true };
408
+ }
409
+ }
410
+ catch (err) {
411
+ const msg = err instanceof Error ? err.message : String(err);
412
+ result = { content: [{ type: 'text', text: `Error: ${msg}` }], isError: true };
413
+ }
414
+ // Append enforcement reminder if needed
415
+ const reminder = this.vault.getEnforcementReminder();
416
+ if (reminder && !name.startsWith('ctx_')) {
417
+ this.vault.trackEdit();
418
+ const lastContent = result.content[result.content.length - 1];
419
+ if (lastContent && lastContent.type === 'text') {
420
+ lastContent.text += reminder;
421
+ }
422
+ }
423
+ return result;
424
+ });
425
+ }
426
+ registerResources() {
427
+ // List available resources
428
+ this.server.setRequestHandler(ListResourcesRequestSchema, async () => ({
429
+ resources: [
430
+ {
431
+ uri: 'contextvault://global/index',
432
+ name: 'Global Vault Index',
433
+ description: 'Index of all global vault documents (cross-project knowledge)',
434
+ mimeType: 'text/markdown',
435
+ },
436
+ {
437
+ uri: 'contextvault://project/index',
438
+ name: 'Project Vault Index',
439
+ description: 'Index of all project-specific vault documents',
440
+ mimeType: 'text/markdown',
441
+ },
442
+ {
443
+ uri: 'contextvault://settings',
444
+ name: 'Vault Settings',
445
+ description: 'Current vault mode, enforcement level, and limits',
446
+ mimeType: 'application/json',
447
+ },
448
+ {
449
+ uri: 'contextvault://instructions',
450
+ name: 'ContextVault Instructions',
451
+ description: 'Documentation rules and enforcement instructions for the AI assistant',
452
+ mimeType: 'text/markdown',
453
+ },
454
+ ],
455
+ }));
456
+ // Resource templates for individual docs
457
+ this.server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({
458
+ resourceTemplates: [
459
+ {
460
+ uriTemplate: 'contextvault://doc/{id}',
461
+ name: 'Vault Document',
462
+ description: 'Read a specific vault document by ID (e.g. P001, G003)',
463
+ mimeType: 'text/markdown',
464
+ },
465
+ ],
466
+ }));
467
+ // Read resource content
468
+ this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
469
+ const uri = request.params.uri;
470
+ if (uri === 'contextvault://global/index') {
471
+ const content = this.vault.globalExists()
472
+ ? this.vault.globalIndex.readRaw()
473
+ : 'Global vault not initialized. Use ctx_init to create it.';
474
+ return { contents: [{ uri, mimeType: 'text/markdown', text: content }] };
475
+ }
476
+ if (uri === 'contextvault://project/index') {
477
+ const content = this.vault.projectExists()
478
+ ? this.vault.projectIndex.readRaw()
479
+ : 'Project vault not initialized. Use ctx_init to create it.';
480
+ return { contents: [{ uri, mimeType: 'text/markdown', text: content }] };
481
+ }
482
+ if (uri === 'contextvault://settings') {
483
+ const settings = this.vault.settings.load();
484
+ return { contents: [{ uri, mimeType: 'application/json', text: JSON.stringify(settings, null, 2) }] };
485
+ }
486
+ if (uri === 'contextvault://instructions') {
487
+ const instructions = this.getInstructions();
488
+ return { contents: [{ uri, mimeType: 'text/markdown', text: instructions }] };
489
+ }
490
+ // Handle doc/{id} template
491
+ const docMatch = uri.match(/^contextvault:\/\/doc\/([GP]\d{3})$/);
492
+ if (docMatch) {
493
+ const id = docMatch[1];
494
+ const content = this.vault.readDocument(id);
495
+ if (!content) {
496
+ return { contents: [{ uri, mimeType: 'text/markdown', text: `Document ${id} not found.` }] };
497
+ }
498
+ return { contents: [{ uri, mimeType: 'text/markdown', text: content }] };
499
+ }
500
+ return { contents: [{ uri, mimeType: 'text/plain', text: `Unknown resource: ${uri}` }] };
501
+ });
502
+ }
503
+ getInstructions() {
504
+ return `# ContextVault - Documentation Rules
505
+
506
+ ## After EVERY task, document what you learned:
507
+
508
+ - Fixed a bug? → Use **ctx_error** (error_message, root_cause, solution, prevention)
509
+ - Made a decision? → Use **ctx_decision** (decision, options, reasoning, tradeoffs)
510
+ - Learned something? → Use **ctx_doc** (topic, content)
511
+ - Found useful code? → Use **ctx_snippet** (name, code, language, use_case)
512
+ - Explored codebase? → Use **ctx_intel** (area, findings)
513
+ - Ending session? → Use **ctx_handoff** (completed, in_progress, next_steps)
514
+
515
+ ## Rules:
516
+ 1. ALWAYS search before creating (use ctx_search)
517
+ 2. NEVER create duplicates - update existing docs instead (use ctx_update)
518
+ 3. Keep documents under 100 lines
519
+ 4. Keep index summaries under 15 words
520
+ 5. Route correctly: global = reusable patterns, project = this codebase only
521
+ 6. Document at meaningful milestones, not every trivial edit
522
+
523
+ ## At session start:
524
+ - Read the vault indexes (available as resources)
525
+ - Use that knowledge throughout the session
526
+ `;
527
+ }
528
+ async run() {
529
+ const transport = new StdioServerTransport();
530
+ await this.server.connect(transport);
531
+ }
532
+ }
533
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { VaultManager } from '../vault/manager.js';
2
+ import { ToolResponse } from '../vault/types.js';
3
+ export declare function handleBootstrap(vault: VaultManager, _params: Record<string, unknown>): ToolResponse;
4
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/tools/bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CA4BnG"}