@milo4jo/contextkit 0.5.0 → 0.5.6

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 (59) hide show
  1. package/README.md +59 -1
  2. package/dist/commands/cache.d.ts +3 -0
  3. package/dist/commands/cache.d.ts.map +1 -0
  4. package/dist/commands/cache.js +50 -0
  5. package/dist/commands/cache.js.map +1 -0
  6. package/dist/commands/doctor.d.ts +3 -0
  7. package/dist/commands/doctor.d.ts.map +1 -0
  8. package/dist/commands/doctor.js +254 -0
  9. package/dist/commands/doctor.js.map +1 -0
  10. package/dist/commands/graph.d.ts +10 -0
  11. package/dist/commands/graph.d.ts.map +1 -0
  12. package/dist/commands/graph.js +289 -0
  13. package/dist/commands/graph.js.map +1 -0
  14. package/dist/commands/select.d.ts.map +1 -1
  15. package/dist/commands/select.js +11 -0
  16. package/dist/commands/select.js.map +1 -1
  17. package/dist/commands/symbol.d.ts +9 -0
  18. package/dist/commands/symbol.d.ts.map +1 -0
  19. package/dist/commands/symbol.js +420 -0
  20. package/dist/commands/symbol.js.map +1 -0
  21. package/dist/db/index.d.ts +48 -0
  22. package/dist/db/index.d.ts.map +1 -1
  23. package/dist/db/index.js +99 -0
  24. package/dist/db/index.js.map +1 -1
  25. package/dist/index.js +12 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/indexer/chunker.d.ts +25 -3
  28. package/dist/indexer/chunker.d.ts.map +1 -1
  29. package/dist/indexer/chunker.js +344 -4
  30. package/dist/indexer/chunker.js.map +1 -1
  31. package/dist/indexer/index.d.ts.map +1 -1
  32. package/dist/indexer/index.js +3 -2
  33. package/dist/indexer/index.js.map +1 -1
  34. package/dist/mcp-server.js +0 -0
  35. package/dist/parsers/index.d.ts +65 -0
  36. package/dist/parsers/index.d.ts.map +1 -0
  37. package/dist/parsers/index.js +130 -0
  38. package/dist/parsers/index.js.map +1 -0
  39. package/dist/parsers/markdown.d.ts +29 -0
  40. package/dist/parsers/markdown.d.ts.map +1 -0
  41. package/dist/parsers/markdown.js +142 -0
  42. package/dist/parsers/markdown.js.map +1 -0
  43. package/dist/parsers/tree-sitter.d.ts +32 -0
  44. package/dist/parsers/tree-sitter.d.ts.map +1 -0
  45. package/dist/parsers/tree-sitter.js +356 -0
  46. package/dist/parsers/tree-sitter.js.map +1 -0
  47. package/dist/parsers/typescript.d.ts +43 -0
  48. package/dist/parsers/typescript.d.ts.map +1 -0
  49. package/dist/parsers/typescript.js +306 -0
  50. package/dist/parsers/typescript.js.map +1 -0
  51. package/dist/selector/formatter.d.ts +4 -1
  52. package/dist/selector/formatter.d.ts.map +1 -1
  53. package/dist/selector/formatter.js +214 -6
  54. package/dist/selector/formatter.js.map +1 -1
  55. package/dist/selector/index.d.ts +8 -0
  56. package/dist/selector/index.d.ts.map +1 -1
  57. package/dist/selector/index.js +37 -2
  58. package/dist/selector/index.js.map +1 -1
  59. package/package.json +6 -1
@@ -9,6 +9,8 @@
9
9
  */
10
10
  import Database from 'better-sqlite3';
11
11
  import { type FormattedOutput, type OutputFormat } from './formatter.js';
12
+ /** Selection mode */
13
+ export type SelectMode = 'full' | 'map';
12
14
  /** Selection options */
13
15
  export interface SelectOptions {
14
16
  /** Query to find context for */
@@ -21,10 +23,14 @@ export interface SelectOptions {
21
23
  explain?: boolean;
22
24
  /** Output format */
23
25
  format?: OutputFormat;
26
+ /** Selection mode: full (code) or map (signatures only) */
27
+ mode?: SelectMode;
24
28
  /** Include imported files in selection */
25
29
  includeImports?: boolean;
26
30
  /** Base path for resolving imports */
27
31
  basePath?: string;
32
+ /** Skip cache lookup */
33
+ noCache?: boolean;
28
34
  }
29
35
  /** Selection result */
30
36
  export interface SelectResult {
@@ -32,6 +38,8 @@ export interface SelectResult {
32
38
  output: FormattedOutput;
33
39
  /** Whether index is empty */
34
40
  isEmpty: boolean;
41
+ /** Whether result came from cache */
42
+ fromCache: boolean;
35
43
  }
36
44
  /**
37
45
  * Select optimal context for a query
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGzF,wBAAwB;AACxB,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA+FvB;AAwCD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9G,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AASzF,qBAAqB;AACrB,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAExC,wBAAwB;AACxB,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAsIvB;AAwCD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9G,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -12,11 +12,14 @@ import { rankChunks, buildImportGraph, getRelatedImports } from './scoring.js';
12
12
  import { fitToBudget, mergeAdjacentChunks } from './budget.js';
13
13
  import { formatInFormat } from './formatter.js';
14
14
  import { parseImportsWithResolution, isJsTsFile } from '../retrieval/imports.js';
15
+ import { generateCacheKey, computeIndexVersion, getCachedResult, setCachedResult, } from '../db/index.js';
15
16
  /**
16
17
  * Select optimal context for a query
17
18
  */
18
19
  export async function selectContext(db, options) {
19
20
  const startTime = Date.now();
21
+ const format = options.format || 'markdown';
22
+ const mode = options.mode || 'full';
20
23
  // Check if index has any chunks
21
24
  const countResult = db.prepare('SELECT COUNT(*) as count FROM chunks').get();
22
25
  if (countResult.count === 0) {
@@ -37,8 +40,36 @@ export async function selectContext(db, options) {
37
40
  },
38
41
  },
39
42
  isEmpty: true,
43
+ fromCache: false,
40
44
  };
41
45
  }
46
+ // Check cache (skip if --explain is used or --no-cache is set)
47
+ const useCache = !options.explain && !options.noCache;
48
+ let cacheKey;
49
+ let indexVersion;
50
+ if (useCache) {
51
+ cacheKey = generateCacheKey({
52
+ query: options.query,
53
+ budget: options.budget,
54
+ sources: options.sources,
55
+ format,
56
+ mode,
57
+ includeImports: options.includeImports,
58
+ });
59
+ indexVersion = computeIndexVersion(db);
60
+ const cachedResult = getCachedResult(db, cacheKey, indexVersion);
61
+ if (cachedResult) {
62
+ const data = JSON.parse(cachedResult);
63
+ return {
64
+ output: {
65
+ text: format === 'json' ? JSON.stringify(data, null, 2) : data.context,
66
+ data,
67
+ },
68
+ isEmpty: false,
69
+ fromCache: true,
70
+ };
71
+ }
72
+ }
42
73
  // Step 1: Search for similar chunks
43
74
  const searchOpts = {
44
75
  limit: 50,
@@ -83,11 +114,15 @@ export async function selectContext(db, options) {
83
114
  };
84
115
  // Step 7: Format output
85
116
  const timeMs = Date.now() - startTime;
86
- const format = options.format || 'markdown';
87
- const output = formatInFormat(format, options.query, mergedResult, similarChunks.length, timeMs, options.explain);
117
+ const output = formatInFormat(format, options.query, mergedResult, similarChunks.length, timeMs, options.explain, mode);
118
+ // Step 8: Store in cache (if caching is enabled)
119
+ if (useCache && cacheKey && indexVersion) {
120
+ setCachedResult(db, cacheKey, JSON.stringify(output.data), indexVersion);
121
+ }
88
122
  return {
89
123
  output,
90
124
  isEmpty: false,
125
+ fromCache: false,
91
126
  };
92
127
  }
93
128
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,cAAc,EAA2C,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA4BjF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAqB,EACrB,OAAsB;IAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,gCAAgC;IAChC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAuB,CAAC;IAClG,IAAI,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE;oBACJ,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,OAAO,EAAE,EAAE;oBACX,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE;wBACL,WAAW,EAAE,CAAC;wBACd,gBAAgB,EAAE,CAAC;wBACnB,cAAc,EAAE,CAAC;wBACjB,aAAa,EAAE,CAAC;wBAChB,MAAM,EAAE,CAAC;qBACV;iBACF;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAkB;QAChC,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEzE,uCAAuC;IACvC,IAAI,WAAoC,CAAC;IACzC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,WAAW,GAAG,0BAA0B,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,+DAA+D;IAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAE/E,wBAAwB;IACxB,IAAI,YAAY,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7D,+CAA+C;IAC/C,IAAI,OAAO,CAAC,cAAc,IAAI,WAAW,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEnE,8DAA8D;QAC9D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CACzE,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,qDAAqD;YACrD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YAChF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC;YAElE,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;gBAClE,YAAY,GAAG;oBACb,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;oBACzD,WAAW,EAAE,YAAY,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW;oBACjE,QAAQ,EAAE,YAAY,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ;iBACzD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG;QACnB,GAAG,YAAY;QACf,MAAM,EAAE,YAAY;KACrB,CAAC;IAEF,wBAAwB;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IAC5C,MAAM,MAAM,GAAG,cAAc,CAC3B,MAAM,EACN,OAAO,CAAC,KAAK,EACb,YAAY,EACZ,aAAa,CAAC,MAAM,EACpB,MAAM,EACN,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,OAAO;QACL,MAAM;QACN,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,EAAqB,EACrB,QAAgB;IAEhB,yCAAyC;IACzC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIvB,CAAC,CAAC,GAAG,EAAmD,CAAC;IAE1D,yCAAyC;IACzC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACvD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;IAElD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,0BAA0B,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjF,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC;AAMD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,cAAc,EAA2C,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAqCxB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAqB,EACrB,OAAsB;IAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IAEpC,gCAAgC;IAChC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAuB,CAAC;IAClG,IAAI,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE;oBACJ,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,OAAO,EAAE,EAAE;oBACX,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE;wBACL,WAAW,EAAE,CAAC;wBACd,gBAAgB,EAAE,CAAC;wBACnB,cAAc,EAAE,CAAC;wBACjB,aAAa,EAAE,CAAC;wBAChB,MAAM,EAAE,CAAC;qBACV;iBACF;aACF;YACD,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACtD,IAAI,QAA4B,CAAC;IACjC,IAAI,YAAgC,CAAC;IAErC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,GAAG,gBAAgB,CAAC;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM;YACN,IAAI;YACJ,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;QACH,YAAY,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACjE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACtC,OAAO;gBACL,MAAM,EAAE;oBACN,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;oBACtE,IAAI;iBACL;gBACD,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAkB;QAChC,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEzE,uCAAuC;IACvC,IAAI,WAAoC,CAAC;IACzC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,WAAW,GAAG,0BAA0B,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,+DAA+D;IAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAE/E,wBAAwB;IACxB,IAAI,YAAY,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7D,+CAA+C;IAC/C,IAAI,OAAO,CAAC,cAAc,IAAI,WAAW,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEnE,8DAA8D;QAC9D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CACzE,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,qDAAqD;YACrD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YAChF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC;YAElE,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;gBAClE,YAAY,GAAG;oBACb,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;oBACzD,WAAW,EAAE,YAAY,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW;oBACjE,QAAQ,EAAE,YAAY,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ;iBACzD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG;QACnB,GAAG,YAAY;QACf,MAAM,EAAE,YAAY;KACrB,CAAC;IAEF,wBAAwB;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACtC,MAAM,MAAM,GAAG,cAAc,CAC3B,MAAM,EACN,OAAO,CAAC,KAAK,EACb,YAAY,EACZ,aAAa,CAAC,MAAM,EACpB,MAAM,EACN,OAAO,CAAC,OAAO,EACf,IAAI,CACL,CAAC;IAEF,iDAAiD;IACjD,IAAI,QAAQ,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;QACzC,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO;QACL,MAAM;QACN,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,EAAqB,EACrB,QAAgB;IAEhB,yCAAyC;IACzC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIvB,CAAC,CAAC,GAAG,EAAmD,CAAC;IAE1D,yCAAyC;IACzC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACvD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;IAElD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,0BAA0B,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjF,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC;AAMD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milo4jo/contextkit",
3
- "version": "0.5.0",
3
+ "version": "0.5.6",
4
4
  "description": "Intelligent context selection for LLM applications",
5
5
  "author": "Milo <milo4jo@outlook.de>",
6
6
  "license": "MIT",
@@ -29,6 +29,7 @@
29
29
  "dependencies": {
30
30
  "@modelcontextprotocol/sdk": "^1.26.0",
31
31
  "@xenova/transformers": "^2.17.2",
32
+ "acorn": "^8.15.0",
32
33
  "better-sqlite3": "^11.7.0",
33
34
  "chalk": "^5.3.0",
34
35
  "chokidar": "^5.0.0",
@@ -36,6 +37,10 @@
36
37
  "commander": "^12.1.0",
37
38
  "fast-glob": "^3.3.2",
38
39
  "js-tiktoken": "^1.0.15",
40
+ "tree-sitter-go": "^0.25.0",
41
+ "tree-sitter-python": "^0.25.0",
42
+ "tree-sitter-rust": "^0.24.0",
43
+ "web-tree-sitter": "^0.26.5",
39
44
  "yaml": "^2.6.1"
40
45
  },
41
46
  "devDependencies": {