@milo4jo/contextkit 0.5.6 → 0.5.8

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 CHANGED
@@ -118,6 +118,34 @@ They're storage. ContextKit adds the **intelligence layer** — scoring, budgeti
118
118
 
119
119
  ---
120
120
 
121
+ ## Performance
122
+
123
+ Benchmarks on a MacBook Pro M4 (ContextKit's own codebase: 40 files, 166 chunks):
124
+
125
+ | Operation | Time | Notes |
126
+ |-----------|------|-------|
127
+ | **Initial index** | ~14s | Includes embedding generation |
128
+ | **Incremental index** | <1s | Only changed files |
129
+ | **Query (cold)** | ~200ms | First query loads model |
130
+ | **Query (warm)** | ~50ms | Subsequent queries |
131
+ | **Query (cached)** | <5ms | Identical queries |
132
+
133
+ Scaling (tested on larger codebases):
134
+
135
+ | Codebase Size | Index Time | Query Time |
136
+ |---------------|------------|------------|
137
+ | 100 files | ~30s | ~60ms |
138
+ | 500 files | ~2min | ~80ms |
139
+ | 1000 files | ~4min | ~100ms |
140
+
141
+ **Key optimizations:**
142
+ - Incremental indexing (content hashing)
143
+ - Query caching with automatic invalidation
144
+ - Local embeddings (no API latency)
145
+ - SQLite for fast reads
146
+
147
+ ---
148
+
121
149
  ## Commands
122
150
 
123
151
  ### `contextkit init`
@@ -352,6 +380,58 @@ settings:
352
380
 
353
381
  ---
354
382
 
383
+ ## Troubleshooting
384
+
385
+ ### Quick Diagnosis
386
+
387
+ ```bash
388
+ contextkit doctor
389
+ ```
390
+
391
+ This checks your setup and shows any issues:
392
+
393
+ ```
394
+ 🩺 ContextKit Doctor
395
+
396
+ Running diagnostics...
397
+
398
+ ✓ Node.js version: v20.10.0
399
+ ✓ Configuration: 2 source(s) configured
400
+ ✓ Index database: 166 chunks, 40 files (12.5 MB)
401
+ ✓ Embeddings: 166/166 chunks (100%)
402
+ ✓ Query cache: 5 cached queries
403
+ ✓ Disk space: OK
404
+
405
+ ✓ All checks passed! ContextKit is ready to use.
406
+ ```
407
+
408
+ ### Common Issues
409
+
410
+ **"Not initialized"**
411
+ ```bash
412
+ contextkit init
413
+ contextkit source add ./src
414
+ contextkit index
415
+ ```
416
+
417
+ **"No sources configured"**
418
+ ```bash
419
+ contextkit source add ./src
420
+ ```
421
+
422
+ **"No embeddings generated"**
423
+ ```bash
424
+ contextkit index --force # Re-index with embeddings
425
+ ```
426
+
427
+ **Slow queries?**
428
+ ```bash
429
+ contextkit cache clear # Clear query cache
430
+ contextkit index --force # Rebuild index
431
+ ```
432
+
433
+ ---
434
+
355
435
  ## Technical Details
356
436
 
357
437
  ### How Selection Works
@@ -398,10 +478,12 @@ contextkit select "How does authentication work?"
398
478
  - [x] Multi-factor scoring algorithm
399
479
  - [x] Multiple output formats (markdown, XML, JSON, plain)
400
480
  - [x] **Import-aware scoring** — understands code dependencies
401
- - [ ] Function/class boundary awareness
402
- - [ ] VS Code extension
481
+ - [x] **Doctor command** — diagnose setup issues
482
+ - [ ] ~~Function/class boundary awareness~~ (done via AST chunking)
483
+ - [x] **VS Code extension** — [in development](https://github.com/milo4jo/contextkit-vscode)
403
484
  - [ ] Cursor integration
404
485
  - [ ] Neovim plugin
486
+ - [ ] Cloud sync for teams
405
487
 
406
488
  ---
407
489
 
@@ -27,4 +27,19 @@ export declare class AlreadyInitializedError extends ContextKitError {
27
27
  export declare class InvalidUsageError extends ContextKitError {
28
28
  constructor(message: string);
29
29
  }
30
+ export declare class IndexEmptyError extends ContextKitError {
31
+ constructor();
32
+ }
33
+ export declare class NoSourcesError extends ContextKitError {
34
+ constructor();
35
+ }
36
+ export declare class EmbeddingError extends ContextKitError {
37
+ constructor(detail?: string);
38
+ }
39
+ export declare class QueryError extends ContextKitError {
40
+ constructor(message: string);
41
+ }
42
+ export declare class DatabaseError extends ContextKitError {
43
+ constructor(operation: string, detail?: string);
44
+ }
30
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,UAAQ;CAM/D;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,QAAQ,CAAC,UAAU,qBAAqB;;CAQzC;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,QAAQ,CAAC,UAAU,4BAA4B;gBAEnC,IAAI,EAAE,MAAM;CAMzB;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAM9C;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAOhD;AAED,qBAAa,uBAAwB,SAAQ,eAAe;;CAI3D;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,OAAO,EAAE,MAAM;CAG5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,UAAQ;CAM/D;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,QAAQ,CAAC,UAAU,qBAAqB;;CAQzC;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,QAAQ,CAAC,UAAU,4BAA4B;gBAEnC,IAAI,EAAE,MAAM;CAMzB;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAM9C;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAOhD;AAED,qBAAa,uBAAwB,SAAQ,eAAe;;CAI3D;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,eAAgB,SAAQ,eAAe;;CAQnD;AAED,qBAAa,cAAe,SAAQ,eAAe;;CAQlD;AAED,qBAAa,cAAe,SAAQ,eAAe;gBACrC,MAAM,CAAC,EAAE,MAAM;CAM5B;AAED,qBAAa,UAAW,SAAQ,eAAe;gBACjC,OAAO,EAAE,MAAM;CAO5B;AAED,qBAAa,aAAc,SAAQ,eAAe;gBACpC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAM/C"}
@@ -48,4 +48,36 @@ export class InvalidUsageError extends ContextKitError {
48
48
  super(message, 'INVALID_USAGE');
49
49
  }
50
50
  }
51
+ export class IndexEmptyError extends ContextKitError {
52
+ constructor() {
53
+ super('Index is empty. Run `contextkit index` after adding sources.', 'INDEX_EMPTY', true // recoverable
54
+ );
55
+ }
56
+ }
57
+ export class NoSourcesError extends ContextKitError {
58
+ constructor() {
59
+ super('No sources configured. Add sources with `contextkit source add ./src`', 'NO_SOURCES', true);
60
+ }
61
+ }
62
+ export class EmbeddingError extends ContextKitError {
63
+ constructor(detail) {
64
+ const msg = detail
65
+ ? `Embedding generation failed: ${detail}`
66
+ : 'Embedding generation failed. Try `contextkit index --force` to rebuild.';
67
+ super(msg, 'EMBEDDING_ERROR', true);
68
+ }
69
+ }
70
+ export class QueryError extends ContextKitError {
71
+ constructor(message) {
72
+ super(`Query failed: ${message}. Run \`contextkit doctor\` to diagnose.`, 'QUERY_ERROR', true);
73
+ }
74
+ }
75
+ export class DatabaseError extends ContextKitError {
76
+ constructor(operation, detail) {
77
+ const msg = detail
78
+ ? `Database ${operation} failed: ${detail}`
79
+ : `Database ${operation} failed. Try removing .contextkit/index.db and re-indexing.`;
80
+ super(msg, 'DATABASE_ERROR');
81
+ }
82
+ }
51
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAS;IACb,WAAW,CAAU;IAE9B,YAAY,OAAe,EAAE,IAAY,EAAE,WAAW,GAAG,KAAK;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC7C,UAAU,GAAG,iBAAiB,CAAC;IAExC;QACE,KAAK,CACH,gFAAgF,EAChF,iBAAiB,CAClB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC7C,UAAU,GAAG,wBAAwB,CAAC;IAE/C,YAAY,IAAY;QACtB,KAAK,CACH,WAAW,IAAI,uEAAuE,EACtF,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,IAAY,EAAE,UAAmB;QAC3C,MAAM,GAAG,GAAG,UAAU;YACpB,CAAC,CAAC,SAAS,IAAI,8BAA8B,UAAU,IAAI;YAC3D,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC;QAChC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,IAAY,EAAE,YAAqB;QAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,KAAK,CACH,WAAW,IAAI,oBAAoB,IAAI,4EAA4E,IAAI,KAAK,EAC5H,eAAe,CAChB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAC1D;QACE,KAAK,CAAC,mDAAmD,EAAE,qBAAqB,CAAC,CAAC;IACpF,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAS;IACb,WAAW,CAAU;IAE9B,YAAY,OAAe,EAAE,IAAY,EAAE,WAAW,GAAG,KAAK;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC7C,UAAU,GAAG,iBAAiB,CAAC;IAExC;QACE,KAAK,CACH,gFAAgF,EAChF,iBAAiB,CAClB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC7C,UAAU,GAAG,wBAAwB,CAAC;IAE/C,YAAY,IAAY;QACtB,KAAK,CACH,WAAW,IAAI,uEAAuE,EACtF,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,IAAY,EAAE,UAAmB;QAC3C,MAAM,GAAG,GAAG,UAAU;YACpB,CAAC,CAAC,SAAS,IAAI,8BAA8B,UAAU,IAAI;YAC3D,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC;QAChC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,IAAY,EAAE,YAAqB;QAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,KAAK,CACH,WAAW,IAAI,oBAAoB,IAAI,4EAA4E,IAAI,KAAK,EAC5H,eAAe,CAChB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAC1D;QACE,KAAK,CAAC,mDAAmD,EAAE,qBAAqB,CAAC,CAAC;IACpF,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAClD;QACE,KAAK,CACH,8DAA8D,EAC9D,aAAa,EACb,IAAI,CAAC,cAAc;SACpB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,eAAe;IACjD;QACE,KAAK,CACH,uEAAuE,EACvE,YAAY,EACZ,IAAI,CACL,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,eAAe;IACjD,YAAY,MAAe;QACzB,MAAM,GAAG,GAAG,MAAM;YAChB,CAAC,CAAC,gCAAgC,MAAM,EAAE;YAC1C,CAAC,CAAC,yEAAyE,CAAC;QAC9E,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C,YAAY,OAAe;QACzB,KAAK,CACH,iBAAiB,OAAO,0CAA0C,EAClE,aAAa,EACb,IAAI,CACL,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,YAAY,SAAiB,EAAE,MAAe;QAC5C,MAAM,GAAG,GAAG,MAAM;YAChB,CAAC,CAAC,YAAY,SAAS,YAAY,MAAM,EAAE;YAC3C,CAAC,CAAC,YAAY,SAAS,6DAA6D,CAAC;QACvF,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAwCnE;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAuOxC;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAIpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAsjBnE;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CA8WxC;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAIpD"}
@@ -37,6 +37,437 @@ function getIndexStats(db) {
37
37
  totalSources: sourceCount.count,
38
38
  };
39
39
  }
40
+ function extractSymbols(content, filePath) {
41
+ const symbols = [];
42
+ const lines = content.split('\n');
43
+ const ext = filePath.split('.').pop()?.toLowerCase();
44
+ for (let i = 0; i < lines.length; i++) {
45
+ const line = lines[i];
46
+ const trimmed = line.trim();
47
+ const lineNum = i + 1;
48
+ // TypeScript/JavaScript patterns
49
+ if (ext === 'ts' || ext === 'tsx' || ext === 'js' || ext === 'jsx') {
50
+ const funcMatch = trimmed.match(/^(export\s+)?(async\s+)?function\s+(\w+)/);
51
+ if (funcMatch) {
52
+ symbols.push({
53
+ filePath,
54
+ symbolName: funcMatch[3],
55
+ symbolType: 'function',
56
+ startLine: lineNum,
57
+ endLine: findBlockEnd(lines, i),
58
+ signature: extractSignatureLine(trimmed),
59
+ });
60
+ continue;
61
+ }
62
+ const classMatch = trimmed.match(/^(export\s+)?(abstract\s+)?class\s+(\w+)/);
63
+ if (classMatch) {
64
+ symbols.push({
65
+ filePath,
66
+ symbolName: classMatch[3],
67
+ symbolType: 'class',
68
+ startLine: lineNum,
69
+ endLine: findBlockEnd(lines, i),
70
+ signature: extractSignatureLine(trimmed),
71
+ });
72
+ continue;
73
+ }
74
+ const interfaceMatch = trimmed.match(/^(export\s+)?interface\s+(\w+)/);
75
+ if (interfaceMatch) {
76
+ symbols.push({
77
+ filePath,
78
+ symbolName: interfaceMatch[2],
79
+ symbolType: 'interface',
80
+ startLine: lineNum,
81
+ endLine: findBlockEnd(lines, i),
82
+ signature: extractSignatureLine(trimmed),
83
+ });
84
+ continue;
85
+ }
86
+ const typeMatch = trimmed.match(/^(export\s+)?type\s+(\w+)/);
87
+ if (typeMatch) {
88
+ symbols.push({
89
+ filePath,
90
+ symbolName: typeMatch[2],
91
+ symbolType: 'type',
92
+ startLine: lineNum,
93
+ endLine: findTypeEnd(lines, i),
94
+ signature: trimmed,
95
+ });
96
+ continue;
97
+ }
98
+ const constMatch = trimmed.match(/^(export\s+)?(const|let|var)\s+(\w+)/);
99
+ if (constMatch) {
100
+ const isFunction = trimmed.includes('=>') || trimmed.includes('function');
101
+ symbols.push({
102
+ filePath,
103
+ symbolName: constMatch[3],
104
+ symbolType: isFunction ? 'function' : 'constant',
105
+ startLine: lineNum,
106
+ endLine: findStatementEnd(lines, i),
107
+ signature: extractSignatureLine(trimmed),
108
+ });
109
+ continue;
110
+ }
111
+ }
112
+ // Python patterns
113
+ if (ext === 'py') {
114
+ const pyFuncMatch = trimmed.match(/^(async\s+)?def\s+(\w+)/);
115
+ if (pyFuncMatch) {
116
+ symbols.push({
117
+ filePath,
118
+ symbolName: pyFuncMatch[2],
119
+ symbolType: 'function',
120
+ startLine: lineNum,
121
+ endLine: findPythonBlockEnd(lines, i),
122
+ signature: trimmed.replace(/:$/, ''),
123
+ });
124
+ continue;
125
+ }
126
+ const pyClassMatch = trimmed.match(/^class\s+(\w+)/);
127
+ if (pyClassMatch) {
128
+ symbols.push({
129
+ filePath,
130
+ symbolName: pyClassMatch[1],
131
+ symbolType: 'class',
132
+ startLine: lineNum,
133
+ endLine: findPythonBlockEnd(lines, i),
134
+ signature: trimmed.replace(/:$/, ''),
135
+ });
136
+ continue;
137
+ }
138
+ }
139
+ // Go patterns
140
+ if (ext === 'go') {
141
+ const goFuncMatch = trimmed.match(/^func\s+(\w+)/);
142
+ if (goFuncMatch) {
143
+ symbols.push({
144
+ filePath,
145
+ symbolName: goFuncMatch[1],
146
+ symbolType: 'function',
147
+ startLine: lineNum,
148
+ endLine: findBlockEnd(lines, i),
149
+ signature: trimmed.replace(/\s*\{$/, ''),
150
+ });
151
+ continue;
152
+ }
153
+ const goMethodMatch = trimmed.match(/^func\s+\([^)]+\)\s+(\w+)/);
154
+ if (goMethodMatch) {
155
+ symbols.push({
156
+ filePath,
157
+ symbolName: goMethodMatch[1],
158
+ symbolType: 'method',
159
+ startLine: lineNum,
160
+ endLine: findBlockEnd(lines, i),
161
+ signature: trimmed.replace(/\s*\{$/, ''),
162
+ });
163
+ continue;
164
+ }
165
+ }
166
+ // Rust patterns
167
+ if (ext === 'rs') {
168
+ const rustFuncMatch = trimmed.match(/^(pub\s+)?(async\s+)?fn\s+(\w+)/);
169
+ if (rustFuncMatch) {
170
+ symbols.push({
171
+ filePath,
172
+ symbolName: rustFuncMatch[3],
173
+ symbolType: 'function',
174
+ startLine: lineNum,
175
+ endLine: findBlockEnd(lines, i),
176
+ signature: trimmed.replace(/\s*\{$/, ''),
177
+ });
178
+ continue;
179
+ }
180
+ }
181
+ }
182
+ return symbols;
183
+ }
184
+ function findBlockEnd(lines, startIdx) {
185
+ let braceCount = 0;
186
+ let started = false;
187
+ for (let i = startIdx; i < lines.length; i++) {
188
+ const line = lines[i];
189
+ for (const char of line) {
190
+ if (char === '{') {
191
+ braceCount++;
192
+ started = true;
193
+ }
194
+ else if (char === '}') {
195
+ braceCount--;
196
+ if (started && braceCount === 0) {
197
+ return i + 1;
198
+ }
199
+ }
200
+ }
201
+ }
202
+ return lines.length;
203
+ }
204
+ function findPythonBlockEnd(lines, startIdx) {
205
+ const startLine = lines[startIdx];
206
+ const startIndent = startLine.length - startLine.trimStart().length;
207
+ for (let i = startIdx + 1; i < lines.length; i++) {
208
+ const line = lines[i];
209
+ const trimmed = line.trim();
210
+ if (!trimmed)
211
+ continue;
212
+ const indent = line.length - line.trimStart().length;
213
+ if (indent <= startIndent) {
214
+ return i;
215
+ }
216
+ }
217
+ return lines.length;
218
+ }
219
+ function findTypeEnd(lines, startIdx) {
220
+ for (let i = startIdx; i < lines.length; i++) {
221
+ if (lines[i].includes(';')) {
222
+ return i + 1;
223
+ }
224
+ }
225
+ return startIdx + 1;
226
+ }
227
+ function findStatementEnd(lines, startIdx) {
228
+ const startLine = lines[startIdx];
229
+ if (startLine.trim().endsWith(';')) {
230
+ return startIdx + 1;
231
+ }
232
+ if (startLine.includes('=>') || startLine.includes('{')) {
233
+ return findBlockEnd(lines, startIdx);
234
+ }
235
+ for (let i = startIdx; i < Math.min(startIdx + 20, lines.length); i++) {
236
+ if (lines[i].trim().endsWith(';')) {
237
+ return i + 1;
238
+ }
239
+ }
240
+ return startIdx + 1;
241
+ }
242
+ function extractSignatureLine(line) {
243
+ const braceIdx = line.indexOf('{');
244
+ if (braceIdx > 0) {
245
+ return line.substring(0, braceIdx).trim();
246
+ }
247
+ return line.trim();
248
+ }
249
+ function searchSymbols(db, query, options) {
250
+ const { exact = false, limit = 20, sources } = options;
251
+ let sql = 'SELECT DISTINCT file_path, content FROM chunks';
252
+ const params = [];
253
+ if (sources && sources.length > 0) {
254
+ sql += ' WHERE source_id IN (' + sources.map(() => '?').join(',') + ')';
255
+ params.push(...sources);
256
+ }
257
+ const rows = db.prepare(sql).all(...params);
258
+ const allSymbols = [];
259
+ const queryLower = query.toLowerCase();
260
+ for (const row of rows) {
261
+ const symbols = extractSymbols(row.content, row.file_path);
262
+ for (const sym of symbols) {
263
+ const nameLower = sym.symbolName.toLowerCase();
264
+ if (exact) {
265
+ if (nameLower === queryLower) {
266
+ allSymbols.push(sym);
267
+ }
268
+ }
269
+ else {
270
+ const isExactMatch = nameLower === queryLower;
271
+ const containsQuery = nameLower.includes(queryLower);
272
+ const isSignificantName = sym.symbolName.length >= 3;
273
+ if (isExactMatch || (containsQuery && isSignificantName)) {
274
+ allSymbols.push(sym);
275
+ }
276
+ }
277
+ }
278
+ }
279
+ allSymbols.sort((a, b) => {
280
+ const aExact = a.symbolName.toLowerCase() === queryLower;
281
+ const bExact = b.symbolName.toLowerCase() === queryLower;
282
+ if (aExact && !bExact)
283
+ return -1;
284
+ if (!aExact && bExact)
285
+ return 1;
286
+ return a.symbolName.length - b.symbolName.length;
287
+ });
288
+ return allSymbols.slice(0, limit);
289
+ }
290
+ function getTypeIcon(type) {
291
+ switch (type) {
292
+ case 'function': return '𝑓';
293
+ case 'class': return '◆';
294
+ case 'method': return '◇';
295
+ case 'interface': return '◈';
296
+ case 'type': return '⊤';
297
+ case 'constant': return '●';
298
+ case 'variable': return '○';
299
+ default: return '•';
300
+ }
301
+ }
302
+ function formatSymbolsForMcp(symbols) {
303
+ if (symbols.length === 0) {
304
+ return 'No symbols found.';
305
+ }
306
+ const lines = [];
307
+ const byFile = new Map();
308
+ for (const sym of symbols) {
309
+ const existing = byFile.get(sym.filePath) || [];
310
+ existing.push(sym);
311
+ byFile.set(sym.filePath, existing);
312
+ }
313
+ for (const [filePath, fileSymbols] of byFile) {
314
+ lines.push(`📄 ${filePath}`);
315
+ for (const sym of fileSymbols) {
316
+ const typeIcon = getTypeIcon(sym.symbolType);
317
+ lines.push(` ${typeIcon} ${sym.symbolName} (line ${sym.startLine})`);
318
+ lines.push(` ${sym.signature}`);
319
+ }
320
+ lines.push('');
321
+ }
322
+ lines.push(`Found ${symbols.length} symbol(s)`);
323
+ return lines.join('\n');
324
+ }
325
+ function extractFunctionDefs(content, filePath) {
326
+ const functions = new Map();
327
+ const lines = content.split('\n');
328
+ const ext = filePath.split('.').pop()?.toLowerCase();
329
+ for (let i = 0; i < lines.length; i++) {
330
+ const line = lines[i];
331
+ const trimmed = line.trim();
332
+ if (ext === 'ts' || ext === 'tsx' || ext === 'js' || ext === 'jsx') {
333
+ const funcMatch = trimmed.match(/^(export\s+)?(async\s+)?function\s+(\w+)/);
334
+ if (funcMatch) {
335
+ functions.set(funcMatch[3], { startLine: i + 1, endLine: findBlockEnd(lines, i) });
336
+ continue;
337
+ }
338
+ const arrowMatch = trimmed.match(/^(export\s+)?(const|let|var)\s+(\w+)\s*=\s*(async\s+)?\(/);
339
+ if (arrowMatch) {
340
+ functions.set(arrowMatch[3], { startLine: i + 1, endLine: findBlockEnd(lines, i) });
341
+ continue;
342
+ }
343
+ }
344
+ if (ext === 'py') {
345
+ const defMatch = trimmed.match(/^(async\s+)?def\s+(\w+)/);
346
+ if (defMatch) {
347
+ functions.set(defMatch[2], { startLine: i + 1, endLine: findPythonBlockEnd(lines, i) });
348
+ continue;
349
+ }
350
+ }
351
+ if (ext === 'go') {
352
+ const funcMatch = trimmed.match(/^func\s+(?:\([^)]+\)\s+)?(\w+)/);
353
+ if (funcMatch) {
354
+ functions.set(funcMatch[1], { startLine: i + 1, endLine: findBlockEnd(lines, i) });
355
+ continue;
356
+ }
357
+ }
358
+ if (ext === 'rs') {
359
+ const fnMatch = trimmed.match(/^(pub\s+)?(async\s+)?fn\s+(\w+)/);
360
+ if (fnMatch) {
361
+ functions.set(fnMatch[3], { startLine: i + 1, endLine: findBlockEnd(lines, i) });
362
+ continue;
363
+ }
364
+ }
365
+ }
366
+ return functions;
367
+ }
368
+ function findFunctionCalls(content, startLine, endLine, knownFunctions) {
369
+ const calls = [];
370
+ const lines = content.split('\n');
371
+ const callPattern = /\b(\w+)\s*\(/g;
372
+ const keywords = new Set(['if', 'else', 'while', 'for', 'switch', 'catch', 'return', 'throw', 'new', 'typeof', 'import', 'export', 'const', 'let', 'var', 'function', 'class', 'interface', 'type', 'async', 'await', 'try', 'finally']);
373
+ for (let i = startLine - 1; i < Math.min(endLine, lines.length); i++) {
374
+ const line = lines[i];
375
+ const trimmed = line.trim();
376
+ if (trimmed.startsWith('//') || trimmed.startsWith('#') || trimmed.startsWith('*')) {
377
+ continue;
378
+ }
379
+ let match;
380
+ while ((match = callPattern.exec(line)) !== null) {
381
+ const name = match[1];
382
+ if (!keywords.has(name) && (knownFunctions.has(name) || name[0] === name[0].toLowerCase())) {
383
+ calls.push({ name, line: i + 1 });
384
+ }
385
+ }
386
+ }
387
+ return calls;
388
+ }
389
+ function buildCallGraph(db, targetName, sources) {
390
+ let sql = 'SELECT file_path, content FROM chunks';
391
+ const params = [];
392
+ if (sources && sources.length > 0) {
393
+ sql += ' WHERE source_id IN (' + sources.map(() => '?').join(',') + ')';
394
+ params.push(...sources);
395
+ }
396
+ const rows = db.prepare(sql).all(...params);
397
+ const functionsByFile = new Map();
398
+ const allFunctions = new Set();
399
+ for (const row of rows) {
400
+ const funcs = extractFunctionDefs(row.content, row.file_path);
401
+ if (funcs.size > 0) {
402
+ functionsByFile.set(row.file_path, funcs);
403
+ for (const name of funcs.keys()) {
404
+ allFunctions.add(name);
405
+ }
406
+ }
407
+ }
408
+ const callers = [];
409
+ const callees = [];
410
+ for (const row of rows) {
411
+ const fileFuncs = functionsByFile.get(row.file_path);
412
+ if (!fileFuncs)
413
+ continue;
414
+ for (const [funcName, { startLine, endLine }] of fileFuncs) {
415
+ const calls = findFunctionCalls(row.content, startLine, endLine, allFunctions);
416
+ for (const call of calls) {
417
+ if (call.name === targetName && funcName !== targetName) {
418
+ callers.push({ file: row.file_path, function: funcName, line: call.line });
419
+ }
420
+ }
421
+ }
422
+ const targetFunc = fileFuncs.get(targetName);
423
+ if (targetFunc) {
424
+ const calls = findFunctionCalls(row.content, targetFunc.startLine, targetFunc.endLine, allFunctions);
425
+ for (const call of calls) {
426
+ if (call.name !== targetName) {
427
+ let definedIn = '(external)';
428
+ for (const [file, funcs] of functionsByFile) {
429
+ if (funcs.has(call.name)) {
430
+ definedIn = file;
431
+ break;
432
+ }
433
+ }
434
+ callees.push({ file: definedIn, function: call.name });
435
+ }
436
+ }
437
+ }
438
+ }
439
+ const uniqueCallers = Array.from(new Map(callers.map(c => [`${c.file}:${c.function}`, c])).values());
440
+ const uniqueCallees = Array.from(new Map(callees.map(c => [`${c.file}:${c.function}`, c])).values());
441
+ return { target: targetName, callers: uniqueCallers, callees: uniqueCallees };
442
+ }
443
+ function formatCallGraphForMcp(result) {
444
+ const lines = [];
445
+ lines.push(`🎯 Call graph for: ${result.target}`);
446
+ lines.push('');
447
+ lines.push(`📥 Callers (${result.callers.length}):`);
448
+ if (result.callers.length === 0) {
449
+ lines.push(' (none found)');
450
+ }
451
+ else {
452
+ for (const caller of result.callers) {
453
+ lines.push(` ← ${caller.function} (${caller.file}:${caller.line})`);
454
+ }
455
+ }
456
+ lines.push('');
457
+ lines.push(`📤 Calls (${result.callees.length}):`);
458
+ if (result.callees.length === 0) {
459
+ lines.push(' (none found)');
460
+ }
461
+ else {
462
+ for (const callee of result.callees) {
463
+ lines.push(` → ${callee.function} (${callee.file})`);
464
+ }
465
+ }
466
+ return lines.join('\n');
467
+ }
468
+ // ============================================================================
469
+ // MCP Server
470
+ // ============================================================================
40
471
  /**
41
472
  * Create and configure the MCP server
42
473
  */
@@ -67,6 +498,11 @@ export function createMcpServer() {
67
498
  type: "number",
68
499
  description: "Maximum tokens to return (default: 8000)",
69
500
  },
501
+ mode: {
502
+ type: "string",
503
+ enum: ["full", "map"],
504
+ description: "Selection mode: 'full' for complete code (default), 'map' for signatures only (uses fewer tokens)",
505
+ },
70
506
  sources: {
71
507
  type: "string",
72
508
  description: "Comma-separated list of sources to filter (optional)",
@@ -75,6 +511,42 @@ export function createMcpServer() {
75
511
  required: ["query"],
76
512
  },
77
513
  },
514
+ {
515
+ name: "contextkit_symbol",
516
+ description: "Search for code symbols (functions, classes, interfaces, types) by name. Faster than semantic search when you know the symbol name.",
517
+ inputSchema: {
518
+ type: "object",
519
+ properties: {
520
+ name: {
521
+ type: "string",
522
+ description: "Symbol name to search for (e.g., 'handleAuth', 'UserService')",
523
+ },
524
+ exact: {
525
+ type: "boolean",
526
+ description: "Require exact match (default: false, uses fuzzy matching)",
527
+ },
528
+ limit: {
529
+ type: "number",
530
+ description: "Maximum number of results (default: 20)",
531
+ },
532
+ },
533
+ required: ["name"],
534
+ },
535
+ },
536
+ {
537
+ name: "contextkit_graph",
538
+ description: "Show call graph for a function: what functions call it (callers) and what it calls (callees). Useful for understanding code flow and dependencies.",
539
+ inputSchema: {
540
+ type: "object",
541
+ properties: {
542
+ function: {
543
+ type: "string",
544
+ description: "Function name to analyze",
545
+ },
546
+ },
547
+ required: ["function"],
548
+ },
549
+ },
78
550
  {
79
551
  name: "contextkit_index",
80
552
  description: "Index or re-index the codebase. Run this after making changes to ensure context is up to date.",
@@ -113,6 +585,7 @@ export function createMcpServer() {
113
585
  }
114
586
  const query = args?.query || "";
115
587
  const budget = args?.budget || 8000;
588
+ const mode = args?.mode || 'full';
116
589
  const sourcesStr = args?.sources;
117
590
  const sources = sourcesStr
118
591
  ? sourcesStr.split(",").map((s) => s.trim())
@@ -129,6 +602,7 @@ export function createMcpServer() {
129
602
  query,
130
603
  budget,
131
604
  sources,
605
+ mode,
132
606
  };
133
607
  const result = await selectContext(db, options);
134
608
  if (result.isEmpty) {
@@ -151,7 +625,6 @@ export function createMcpServer() {
151
625
  ],
152
626
  };
153
627
  }
154
- // Return formatted output
155
628
  return {
156
629
  content: [{ type: "text", text: result.output.text }],
157
630
  };
@@ -160,6 +633,80 @@ export function createMcpServer() {
160
633
  db.close();
161
634
  }
162
635
  }
636
+ case "contextkit_symbol": {
637
+ if (!isInitialized()) {
638
+ return {
639
+ content: [
640
+ {
641
+ type: "text",
642
+ text: "ContextKit not initialized. Run `contextkit init` first.",
643
+ },
644
+ ],
645
+ isError: true,
646
+ };
647
+ }
648
+ const symbolName = args?.name || "";
649
+ const exact = args?.exact || false;
650
+ const limit = args?.limit || 20;
651
+ if (!symbolName) {
652
+ return {
653
+ content: [{ type: "text", text: "Error: name is required" }],
654
+ isError: true,
655
+ };
656
+ }
657
+ const db = openDatabase();
658
+ try {
659
+ const symbols = searchSymbols(db, symbolName, { exact, limit });
660
+ const output = formatSymbolsForMcp(symbols);
661
+ return {
662
+ content: [{ type: "text", text: output }],
663
+ };
664
+ }
665
+ finally {
666
+ db.close();
667
+ }
668
+ }
669
+ case "contextkit_graph": {
670
+ if (!isInitialized()) {
671
+ return {
672
+ content: [
673
+ {
674
+ type: "text",
675
+ text: "ContextKit not initialized. Run `contextkit init` first.",
676
+ },
677
+ ],
678
+ isError: true,
679
+ };
680
+ }
681
+ const functionName = args?.function || "";
682
+ if (!functionName) {
683
+ return {
684
+ content: [{ type: "text", text: "Error: function name is required" }],
685
+ isError: true,
686
+ };
687
+ }
688
+ const db = openDatabase();
689
+ try {
690
+ const result = buildCallGraph(db, functionName);
691
+ if (result.callers.length === 0 && result.callees.length === 0) {
692
+ return {
693
+ content: [
694
+ {
695
+ type: "text",
696
+ text: `No call relationships found for "${functionName}". Make sure the function exists and the codebase is indexed.`,
697
+ },
698
+ ],
699
+ };
700
+ }
701
+ const output = formatCallGraphForMcp(result);
702
+ return {
703
+ content: [{ type: "text", text: output }],
704
+ };
705
+ }
706
+ finally {
707
+ db.close();
708
+ }
709
+ }
163
710
  case "contextkit_index": {
164
711
  if (!isInitialized()) {
165
712
  return {
@@ -210,9 +757,16 @@ export function createMcpServer() {
210
757
  const statusText = [
211
758
  "ContextKit Status",
212
759
  "=================",
760
+ `Version: ${VERSION}`,
213
761
  `Sources configured: ${config.sources.length}`,
214
762
  `Chunks indexed: ${stats.totalChunks}`,
215
763
  "",
764
+ "Available tools:",
765
+ " • contextkit_select - Semantic context search",
766
+ " • contextkit_symbol - Symbol name search",
767
+ " • contextkit_graph - Function call graph",
768
+ " • contextkit_index - Re-index codebase",
769
+ "",
216
770
  "Sources:",
217
771
  ...config.sources.map((s) => ` - ${s.id}: ${s.path}`),
218
772
  ].join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAsB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,gCAAgC;AAChC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3F,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAE5B;;GAEG;AACH,SAAS,aAAa,CAAC,EAAqB;IAI1C,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CAAC,sCAAsC,CAAC;SAC/C,GAAG,EAAuB,CAAC;IAC9B,MAAM,WAAW,GAAG,EAAE;SACnB,OAAO,CAAC,uDAAuD,CAAC;SAChE,GAAG,EAAuB,CAAC;IAE9B,OAAO;QACL,WAAW,EAAE,UAAU,CAAC,KAAK;QAC7B,YAAY,EAAE,WAAW,CAAC,KAAK;KAChC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,mBAAmB;oBACzB,WAAW,EACT,kIAAkI;oBACpI,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,mEAAmE;6BACtE;4BACD,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,0CAA0C;6BACxD;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,sDAAsD;6BACzD;yBACF;wBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACpB;iBACF;gBACD;oBACE,IAAI,EAAE,kBAAkB;oBACxB,WAAW,EACT,gGAAgG;oBAClG,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;qBACf;iBACF;gBACD;oBACE,IAAI,EAAE,mBAAmB;oBACzB,WAAW,EACT,gGAAgG;oBAClG,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;qBACf;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBACzB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;wBACrB,OAAO;4BACL,OAAO,EAAE;gCACP;oCACE,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,0DAA0D;iCACjE;6BACF;4BACD,OAAO,EAAE,IAAI;yBACd,CAAC;oBACJ,CAAC;oBAED,MAAM,KAAK,GAAI,IAAI,EAAE,KAAgB,IAAI,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAI,IAAI,EAAE,MAAiB,IAAI,IAAI,CAAC;oBAChD,MAAM,UAAU,GAAG,IAAI,EAAE,OAA6B,CAAC;oBACvD,MAAM,OAAO,GAAG,UAAU;wBACxB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC5C,CAAC,CAAC,SAAS,CAAC;oBAEd,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;4BAC7D,OAAO,EAAE,IAAI;yBACd,CAAC;oBACJ,CAAC;oBAED,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;oBAE1B,IAAI,CAAC;wBACH,MAAM,OAAO,GAAkB;4BAC7B,KAAK;4BACL,MAAM;4BACN,OAAO;yBACR,CAAC;wBAEF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;wBAEhD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;4BACnB,OAAO;gCACL,OAAO,EAAE;oCACP;wCACE,IAAI,EAAE,MAAM;wCACZ,IAAI,EAAE,mDAAmD;qCAC1D;iCACF;6BACF,CAAC;wBACJ,CAAC;wBAED,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC3C,OAAO;gCACL,OAAO,EAAE;oCACP;wCACE,IAAI,EAAE,MAAM;wCACZ,IAAI,EAAE,yCAAyC,KAAK,GAAG;qCACxD;iCACF;6BACF,CAAC;wBACJ,CAAC;wBAED,0BAA0B;wBAC1B,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;yBACtD,CAAC;oBACJ,CAAC;4BAAS,CAAC;wBACT,EAAE,CAAC,KAAK,EAAE,CAAC;oBACb,CAAC;gBACH,CAAC;gBAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;wBACrB,OAAO;4BACL,OAAO,EAAE;gCACP;oCACE,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,0DAA0D;iCACjE;6BACF;4BACD,OAAO,EAAE,IAAI;yBACd,CAAC;oBACJ,CAAC;oBAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;oBAC5B,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;oBAE1B,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAC9B,MAAM,CAAC,OAAO,EACd,OAAO,CAAC,GAAG,EAAE,EACb,EAAE,EACF;4BACE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;4BACrC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;yBAC5C,CACF,CAAC;wBAEF,OAAO;4BACL,OAAO,EAAE;gCACP;oCACE,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,WAAW,KAAK,CAAC,MAAM,gBAAgB,KAAK,CAAC,KAAK,SAAS;iCAClE;6BACF;yBACF,CAAC;oBACJ,CAAC;4BAAS,CAAC;wBACT,EAAE,CAAC,KAAK,EAAE,CAAC;oBACb,CAAC;gBACH,CAAC;gBAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBACzB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;wBACrB,OAAO;4BACL,OAAO,EAAE;gCACP;oCACE,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,kDAAkD;iCACzD;6BACF;yBACF,CAAC;oBACJ,CAAC;oBAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;oBAC5B,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;oBAE1B,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;wBAEhC,MAAM,UAAU,GAAG;4BACjB,mBAAmB;4BACnB,mBAAmB;4BACnB,uBAAuB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;4BAC9C,mBAAmB,KAAK,CAAC,WAAW,EAAE;4BACtC,EAAE;4BACF,UAAU;4BACV,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;yBACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAEb,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;yBAC9C,CAAC;oBACJ,CAAC;4BAAS,CAAC;wBACT,EAAE,CAAC,KAAK,EAAE,CAAC;oBACb,CAAC;gBACH,CAAC;gBAED;oBACE,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;wBAC1D,OAAO,EAAE,IAAI;qBACd,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milo4jo/contextkit",
3
- "version": "0.5.6",
3
+ "version": "0.5.8",
4
4
  "description": "Intelligent context selection for LLM applications",
5
5
  "author": "Milo <milo4jo@outlook.de>",
6
6
  "license": "MIT",