mcp-code-context 3.6.2 → 3.7.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 (181) hide show
  1. package/CHANGELOG.md +140 -268
  2. package/INSTRUCTIONS.md +31 -12
  3. package/README.md +223 -107
  4. package/SECURITY.md +55 -21
  5. package/dist/src/core/cacheManager.d.ts +4 -5
  6. package/dist/src/core/cacheManager.js +49 -33
  7. package/dist/src/core/cacheManager.js.map +1 -1
  8. package/dist/src/core/engine.d.ts +1 -1
  9. package/dist/src/core/engine.js +3 -3
  10. package/dist/src/core/engine.js.map +1 -1
  11. package/dist/src/core/indexManager.d.ts +58 -0
  12. package/dist/src/core/indexManager.js +252 -0
  13. package/dist/src/core/indexManager.js.map +1 -0
  14. package/dist/src/core/indexManagerQueries.d.ts +14 -0
  15. package/dist/src/core/indexManagerQueries.js +95 -0
  16. package/dist/src/core/indexManagerQueries.js.map +1 -0
  17. package/dist/src/core/sessionManager.d.ts +117 -0
  18. package/dist/src/core/sessionManager.js +231 -0
  19. package/dist/src/core/sessionManager.js.map +1 -0
  20. package/dist/src/core/validator.d.ts +1 -1
  21. package/dist/src/core/validator.js +18 -10
  22. package/dist/src/core/validator.js.map +1 -1
  23. package/dist/src/index.d.ts +1 -13
  24. package/dist/src/index.js +25 -999
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/operations/astTransform.d.ts +38 -0
  27. package/dist/src/operations/astTransform.js +239 -0
  28. package/dist/src/operations/astTransform.js.map +1 -0
  29. package/dist/src/operations/compress.d.ts +5 -3
  30. package/dist/src/operations/compress.js +73 -7
  31. package/dist/src/operations/compress.js.map +1 -1
  32. package/dist/src/operations/confirmationStore.d.ts +35 -8
  33. package/dist/src/operations/confirmationStore.js +112 -14
  34. package/dist/src/operations/confirmationStore.js.map +1 -1
  35. package/dist/src/operations/impactAnalysis.d.ts +9 -0
  36. package/dist/src/operations/impactAnalysis.js +61 -0
  37. package/dist/src/operations/impactAnalysis.js.map +1 -0
  38. package/dist/src/operations/pendingStore.d.ts +51 -0
  39. package/dist/src/operations/pendingStore.js +201 -0
  40. package/dist/src/operations/pendingStore.js.map +1 -0
  41. package/dist/src/operations/pendingStoreInit.d.ts +6 -0
  42. package/dist/src/operations/pendingStoreInit.js +42 -0
  43. package/dist/src/operations/pendingStoreInit.js.map +1 -0
  44. package/dist/src/operations/read.d.ts +6 -92
  45. package/dist/src/operations/read.js +4 -445
  46. package/dist/src/operations/read.js.map +1 -1
  47. package/dist/src/operations/readCore.d.ts +33 -0
  48. package/dist/src/operations/readCore.js +142 -0
  49. package/dist/src/operations/readCore.js.map +1 -0
  50. package/dist/src/operations/rename.d.ts +13 -0
  51. package/dist/src/operations/rename.js +130 -0
  52. package/dist/src/operations/rename.js.map +1 -0
  53. package/dist/src/operations/searchOperation.d.ts +16 -0
  54. package/dist/src/operations/searchOperation.js +113 -0
  55. package/dist/src/operations/searchOperation.js.map +1 -0
  56. package/dist/src/operations/symbolQuery.d.ts +38 -0
  57. package/dist/src/operations/symbolQuery.js +194 -0
  58. package/dist/src/operations/symbolQuery.js.map +1 -0
  59. package/dist/src/operations/write.d.ts +11 -14
  60. package/dist/src/operations/write.js +6 -125
  61. package/dist/src/operations/write.js.map +1 -1
  62. package/dist/src/parsers/base.d.ts +1 -1
  63. package/dist/src/parsers/base.js +1 -1
  64. package/dist/src/parsers/csharp.d.ts +12 -0
  65. package/dist/src/parsers/csharp.js +67 -0
  66. package/dist/src/parsers/csharp.js.map +1 -0
  67. package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
  68. package/dist/src/parsers/dartTreeSitter.js +1 -1
  69. package/dist/src/parsers/go.d.ts +11 -0
  70. package/dist/src/parsers/go.js +74 -0
  71. package/dist/src/parsers/go.js.map +1 -0
  72. package/dist/src/parsers/java.d.ts +12 -0
  73. package/dist/src/parsers/java.js +62 -0
  74. package/dist/src/parsers/java.js.map +1 -0
  75. package/dist/src/parsers/kotlin.d.ts +12 -0
  76. package/dist/src/parsers/kotlin.js +75 -0
  77. package/dist/src/parsers/kotlin.js.map +1 -0
  78. package/dist/src/parsers/php.d.ts +1 -1
  79. package/dist/src/parsers/php.js +1 -1
  80. package/dist/src/parsers/python.d.ts +1 -1
  81. package/dist/src/parsers/python.js +1 -1
  82. package/dist/src/parsers/registry.d.ts +1 -1
  83. package/dist/src/parsers/registry.js +63 -2
  84. package/dist/src/parsers/registry.js.map +1 -1
  85. package/dist/src/parsers/ruby.d.ts +12 -0
  86. package/dist/src/parsers/ruby.js +73 -0
  87. package/dist/src/parsers/ruby.js.map +1 -0
  88. package/dist/src/parsers/rust.d.ts +12 -0
  89. package/dist/src/parsers/rust.js +66 -0
  90. package/dist/src/parsers/rust.js.map +1 -0
  91. package/dist/src/parsers/typescript.d.ts +1 -1
  92. package/dist/src/parsers/typescript.js +28 -38
  93. package/dist/src/parsers/typescript.js.map +1 -1
  94. package/dist/src/tools/adminHandlers.d.ts +67 -0
  95. package/dist/src/tools/adminHandlers.js +129 -0
  96. package/dist/src/tools/adminHandlers.js.map +1 -0
  97. package/dist/src/tools/context.d.ts +9 -0
  98. package/dist/src/tools/context.js +21 -0
  99. package/dist/src/tools/context.js.map +1 -0
  100. package/dist/src/tools/handlers.d.ts +4 -0
  101. package/dist/src/tools/handlers.js +5 -0
  102. package/dist/src/tools/handlers.js.map +1 -0
  103. package/dist/src/tools/pipeline.d.ts +6 -0
  104. package/dist/src/tools/pipeline.js +100 -0
  105. package/dist/src/tools/pipeline.js.map +1 -0
  106. package/dist/src/tools/readHandlers.d.ts +55 -0
  107. package/dist/src/tools/readHandlers.js +220 -0
  108. package/dist/src/tools/readHandlers.js.map +1 -0
  109. package/dist/src/tools/toolDefinitions.d.ts +1037 -0
  110. package/dist/src/tools/toolDefinitions.js +13 -0
  111. package/dist/src/tools/toolDefinitions.js.map +1 -0
  112. package/dist/src/tools/toolDefinitionsAdmin.d.ts +89 -0
  113. package/dist/src/tools/toolDefinitionsAdmin.js +99 -0
  114. package/dist/src/tools/toolDefinitionsAdmin.js.map +1 -0
  115. package/dist/src/tools/toolDefinitionsCore.d.ts +949 -0
  116. package/dist/src/tools/toolDefinitionsCore.js +267 -0
  117. package/dist/src/tools/toolDefinitionsCore.js.map +1 -0
  118. package/dist/src/tools/writeHandlers.d.ts +37 -0
  119. package/dist/src/tools/writeHandlers.js +199 -0
  120. package/dist/src/tools/writeHandlers.js.map +1 -0
  121. package/dist/src/utils/appDir.d.ts +19 -0
  122. package/dist/src/utils/appDir.js +50 -0
  123. package/dist/src/utils/appDir.js.map +1 -0
  124. package/dist/src/utils/auditLogWriter.d.ts +9 -0
  125. package/dist/src/utils/auditLogWriter.js +49 -0
  126. package/dist/src/utils/auditLogWriter.js.map +1 -0
  127. package/dist/src/utils/auditLogger.d.ts +1 -10
  128. package/dist/src/utils/auditLogger.js +14 -109
  129. package/dist/src/utils/auditLogger.js.map +1 -1
  130. package/dist/src/utils/auditQuery.d.ts +23 -0
  131. package/dist/src/utils/auditQuery.js +67 -0
  132. package/dist/src/utils/auditQuery.js.map +1 -0
  133. package/dist/src/utils/backupManager.d.ts +2 -2
  134. package/dist/src/utils/backupManager.js +29 -12
  135. package/dist/src/utils/backupManager.js.map +1 -1
  136. package/dist/src/utils/constants.d.ts +1 -1
  137. package/dist/src/utils/constants.js +8 -1
  138. package/dist/src/utils/constants.js.map +1 -1
  139. package/dist/src/utils/diff.d.ts +12 -1
  140. package/dist/src/utils/diff.js +41 -1
  141. package/dist/src/utils/diff.js.map +1 -1
  142. package/dist/src/utils/fileLock.d.ts +7 -2
  143. package/dist/src/utils/fileLock.js +14 -11
  144. package/dist/src/utils/fileLock.js.map +1 -1
  145. package/dist/src/utils/fileWalker.d.ts +1 -1
  146. package/dist/src/utils/fileWalker.js +1 -1
  147. package/dist/src/utils/fileWatcher.d.ts +1 -1
  148. package/dist/src/utils/fileWatcher.js +1 -1
  149. package/dist/src/utils/fuzzySearch.d.ts +1 -1
  150. package/dist/src/utils/fuzzySearch.js +1 -1
  151. package/dist/src/utils/logger.d.ts +1 -1
  152. package/dist/src/utils/logger.js +2 -2
  153. package/dist/src/utils/logger.js.map +1 -1
  154. package/dist/src/utils/rateLimiter.d.ts +9 -1
  155. package/dist/src/utils/rateLimiter.js +12 -1
  156. package/dist/src/utils/rateLimiter.js.map +1 -1
  157. package/dist/src/utils/regexValidator.d.ts +12 -0
  158. package/dist/src/utils/regexValidator.js +48 -0
  159. package/dist/src/utils/regexValidator.js.map +1 -0
  160. package/dist/src/utils/safeRegex.d.ts +2 -92
  161. package/dist/src/utils/safeRegex.js +41 -222
  162. package/dist/src/utils/safeRegex.js.map +1 -1
  163. package/dist/src/utils/safeRegexApi.d.ts +56 -0
  164. package/dist/src/utils/safeRegexApi.js +99 -0
  165. package/dist/src/utils/safeRegexApi.js.map +1 -0
  166. package/dist/src/utils/safeRegexPool.d.ts +7 -0
  167. package/dist/src/utils/safeRegexPool.js +102 -0
  168. package/dist/src/utils/safeRegexPool.js.map +1 -0
  169. package/dist/src/utils/searchTools.js +6 -6
  170. package/dist/src/utils/searchTools.js.map +1 -1
  171. package/dist/src/utils/streaming.d.ts +4 -3
  172. package/dist/src/utils/streaming.js +1 -1
  173. package/dist/src/utils/streaming.js.map +1 -1
  174. package/dist/src/utils/telemetry.d.ts +1 -1
  175. package/dist/src/utils/telemetry.js +1 -1
  176. package/dist/src/utils/toctou.d.ts +7 -0
  177. package/dist/src/utils/toctou.js +24 -0
  178. package/dist/src/utils/toctou.js.map +1 -0
  179. package/llms.txt +199 -31
  180. package/package.json +2 -2
  181. package/scripts/replace-version.js +0 -59
@@ -6,11 +6,11 @@ import { spawn } from 'child_process';
6
6
  import { createInterface } from 'readline';
7
7
  import { logger } from './logger.js';
8
8
  const SEARCH_TOOLS = [
9
- { name: 'rg', args: (pattern, dir) => ['--json', pattern, dir] },
10
- { name: 'ugrep', args: (pattern, dir) => ['--json', pattern, dir] },
11
- { name: 'ag', args: (pattern, dir) => ['--json', pattern, dir] },
9
+ { name: 'rg', args: (pattern, dir) => ['--json', '--', pattern, dir] },
10
+ { name: 'ugrep', args: (pattern, dir) => ['--json', '--', pattern, dir] },
11
+ { name: 'ag', args: (pattern, dir) => ['--json', '--', pattern, dir] },
12
12
  { name: 'findstr', args: (pattern, dir) => ['/S', '/N', pattern, `${dir}\\*`] },
13
- { name: 'grep', args: (pattern, dir) => ['-rn', pattern, dir] },
13
+ { name: 'grep', args: (pattern, dir) => ['-rn', '--', pattern, dir] },
14
14
  ];
15
15
  async function detectTool() {
16
16
  for (const tool of SEARCH_TOOLS) {
@@ -26,7 +26,7 @@ async function detectTool() {
26
26
  }
27
27
  }
28
28
  catch {
29
- continue;
29
+ continue; // Binary not installed — try next search tool
30
30
  }
31
31
  }
32
32
  return null;
@@ -72,7 +72,7 @@ export async function searchWithNativeTool(pattern, dir, maxResults = 10, timeou
72
72
  }
73
73
  }
74
74
  catch {
75
- continue;
75
+ continue; // Non-match JSON line from search tool output (summary, begin/end markers)
76
76
  }
77
77
  }
78
78
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"searchTools.js","sourceRoot":"","sources":["../../../src/utils/searchTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"searchTools.js","sourceRoot":"","sources":["../../../src/utils/searchTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC,MAAM,YAAY,GAAG;IACnB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE;IACtF,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE;IACzF,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE;IACtF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE;IAC/F,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE;CACtF,CAAC;AAEF,KAAK,UAAU,UAAU;IACvB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBACrD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,8CAA8C;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,GAAW,EACX,aAAqB,EAAE,EACvB,YAAoB,KAAK;IAEzB,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,mDAAmD;IACnD,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAA2D,EAAE,CAAC;IAC3E,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;QAC9B,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC,EAAE,SAAS,CAAC,CAAC;IAEd,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,IAAI,QAAQ;YAAE,MAAM;QAEpB,sEAAsE;QACtE,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM;QACR,CAAC;QAED,+DAA+D;QAC/D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;wBACzB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;wBAC3B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;qBACrC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,CAAC,2EAA2E;YACvF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACd,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC5B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAExE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  /**
2
- * File Streaming - v3.6.2
2
+ * File Streaming - v3.7.0
3
3
  * Stream large files in chunks to avoid memory exhaustion
4
4
  */
5
+ import type { BaseParser, SymbolInfo } from "../parsers/base.js";
5
6
  export interface StreamOptions {
6
7
  chunkSize?: number;
7
8
  maxSize?: number;
@@ -28,9 +29,9 @@ export declare function streamLines(filePath: string, callback: (line: string, l
28
29
  /**
29
30
  * Stream and parse large file with AST (chunked)
30
31
  */
31
- export declare function streamParseFile(filePath: string, parser: any, options?: StreamOptions): Promise<{
32
+ export declare function streamParseFile(filePath: string, parser: BaseParser, options?: StreamOptions): Promise<{
32
33
  success: boolean;
33
- symbols?: any[];
34
+ symbols?: SymbolInfo[];
34
35
  error?: string;
35
36
  }>;
36
37
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * File Streaming - v3.6.2
2
+ * File Streaming - v3.7.0
3
3
  * Stream large files in chunks to avoid memory exhaustion
4
4
  */
5
5
  import * as fs from "node:fs";
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../../src/utils/streaming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../../src/utils/streaming.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Telemetry - v3.6.2
2
+ * Telemetry - v3.7.0
3
3
  * Metrics collection and monitoring
4
4
  */
5
5
  export interface Metric {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Telemetry - v3.6.2
2
+ * Telemetry - v3.7.0
3
3
  * Metrics collection and monitoring
4
4
  */
5
5
  export class TelemetryCollector {
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TOCTOU helpers — verify file integrity between Phase 1 and Phase 2
3
+ */
4
+ import { SecurityValidator } from "../core/validator.js";
5
+ import type { ConfirmationStore } from "../operations/confirmationStore.js";
6
+ export declare function verifyFileUnchanged(validator: SecurityValidator, filePath: string, expectedHash: string | undefined): Promise<string>;
7
+ export declare function assertNoPendingWriteConflict(confirmationStore: ConfirmationStore, filePath: string): void;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * TOCTOU helpers — verify file integrity between Phase 1 and Phase 2
3
+ */
4
+ import * as fs from "node:fs/promises";
5
+ import * as crypto from "node:crypto";
6
+ export async function verifyFileUnchanged(validator, filePath, expectedHash) {
7
+ const validation = await validator.validateFilePath(filePath);
8
+ if (!validation.valid)
9
+ throw new Error(validation.error);
10
+ if (expectedHash) {
11
+ const currentContent = await fs.readFile(validation.resolvedPath, "utf-8");
12
+ const currentHash = crypto.createHash("sha256").update(currentContent).digest("hex");
13
+ if (currentHash !== expectedHash) {
14
+ throw new Error(`File "${filePath}" was modified by another process after Phase 1. Please repeat the operation to prevent data loss.`);
15
+ }
16
+ }
17
+ return validation.resolvedPath;
18
+ }
19
+ export function assertNoPendingWriteConflict(confirmationStore, filePath) {
20
+ if (confirmationStore.hasConflictingPending(filePath)) {
21
+ throw new Error(`A pending write exists for "${filePath}". Complete or cancel Phase 2 before reading to avoid stale content.`);
22
+ }
23
+ }
24
+ //# sourceMappingURL=toctou.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toctou.js","sourceRoot":"","sources":["../../../src/utils/toctou.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAItC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAA4B,EAC5B,QAAgB,EAChB,YAAgC;IAEhC,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEzD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAa,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,SAAS,QAAQ,oGAAoG,CACtH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC,YAAa,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,iBAAoC,EACpC,QAAgB;IAEhB,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,sEAAsE,CAC9G,CAAC;IACJ,CAAC;AACH,CAAC"}
package/llms.txt CHANGED
@@ -1,23 +1,28 @@
1
- # mcp-code-context v3.6.2
1
+ # mcp-code-context v3.7.0
2
2
 
3
- > A Model Context Protocol (MCP) server with **Tree-sitter WASM parsers** for 100% AST accuracy. Zero native dependencies. Production-ready with middleware pipeline.
3
+ > A Model Context Protocol (MCP) server with **Tree-sitter WASM parsers** for 100% AST accuracy. Zero native dependencies. Production-ready with middleware pipeline, session-scoped state, and crash recovery.
4
4
 
5
- ## What's New in v3.6.2
5
+ ## What's New in v3.7.0
6
6
 
7
- 🔒 **Production Hardening**:
8
- - ✅ Two-phase write workflow (dry-run + confirmation token)
9
- - ✅ Middleware pipeline: Rate limiting → File locking → Execution → Audit logging → Telemetry
10
- - ✅ All 13 handlers require `projectRoot` with SecurityValidator
11
- - ✅ Safe regex with timeout enforcement (ReDoS protection)
12
- - ✅ LCS diff OOM guard (MAX_DIFF_LINES = 5000)
13
- - ✅ Atomic writes (write-to-tmp + rename)
14
- - ✅ Critical bug fix: `extractSymbol` API mismatch resolved
7
+ 🚀 **CRITICAL FIXES - Production Readiness Release**:
8
+ - ✅ **Session-scoped state**: Each MCP client gets isolated locks, confirmation store, rate limiter (no state leakage)
9
+ - ✅ **Crash recovery**: SQLite-backed pending operations store - survive restarts
10
+ - ✅ **Expanded ReDoS protection**: 15+ patterns (was 6) - better security
11
+ - ✅ **Auto-persist before eviction**: CacheManager now persists before LRU eviction
12
+ - ✅ **Higher file limits**: MAX_FILES_REPO_MAP = 2000 (was 500)
13
+ - ✅ **Multi-client tests**: New integration tests for concurrent MCP clients
15
14
 
16
- 🚀 **Architecture**: 100% WASM portable
17
- - ✅ web-tree-sitter@0.25.1 (WASM)
18
- - ✅ Zero native dependencies (no Visual Studio, node-gyp, Python)
19
- - ✅ Windows/Mac/Linux without compilation
20
- - ✅ TypeScript/JavaScript/Python/PHP/Dart all use WASM parsers
15
+ ## What's New in v3.7.0 (Previously Added)
16
+
17
+ - ✅ 4 new tools: `search_symbols`, `explain_symbol`, `batch_read`, `get_rate_limit_status`
18
+ - ✅ `diffFormat` parameter on all write tools (`unified`, `compact`, `summary`, `none`)
19
+ - ✅ Phase 2 no longer requires `newContent`/`code` — server stores content from Phase 1
20
+ - ✅ `aroundPattern` now includes match line number in output
21
+ - ✅ `get_server_stats` includes rate limiter token balance and operation costs
22
+ - ✅ `get_cache_stats` includes hit rate percentage
23
+ - ✅ `get_file_watcher_status` includes list of watched paths
24
+ - ✅ `read_file_lines` clamps `endLine` to file length instead of erroring
25
+ - ✅ CVE fix: `@modelcontextprotocol/sdk` updated from 1.12.0 to 1.29.0
21
26
 
22
27
  ## What This Tool Does
23
28
 
@@ -142,15 +147,17 @@ This MCP server solves two problems:
142
147
  - `steps` (optional): Number of versions to go back (1-5, default: 1).
143
148
  **What it does:** Reverts the file to the state it was in before the last 1-5 modifications.
144
149
 
145
- ### Write Tools (v3.6.2 Two-Phase Workflow)
150
+ ### Write Tools (v3.7.0 Two-Phase Workflow)
146
151
 
147
152
  All write tools follow a **Two-Phase Workflow**:
148
153
  1. **Phase 1 (Preview)**: Call without a token to get a unified `diff` and a `confirmationToken`.
149
154
  2. **Phase 2 (Apply)**: Call with `confirmationToken` and `confirm: true` to apply the changes.
150
155
 
151
- **Important Notes (v3.6.2):**
156
+ **Important Notes (v3.7.0):**
152
157
  - ✅ **Windows CRLF Support**: Fully resolved. All operations work correctly on Windows files with CRLF line endings.
153
158
  - ✅ **Parameter Brace Handling**: Methods with braces in parameters (e.g., `{int? cart}`) are now handled correctly.
159
+ - ✅ **Session-scoped state**: Each MCP client gets isolated state (locks, confirmation store, rate limiter).
160
+ - ✅ **Crash recovery**: Pending operations survive server restarts via SQLite.
154
161
 
155
162
  #### 7. `write_file_surgical`
156
163
  **Purpose:** Replace the full source code of a named symbol in a file.
@@ -227,30 +234,163 @@ All write tools follow a **Two-Phase Workflow**:
227
234
 
228
235
  **Best used when:** Cleaning up deprecated functions or unused code.
229
236
 
230
- ## Recommended Workflow
237
+ ## New Tools (v3.7.0)
231
238
 
232
- 1. **Start with `get_semantic_repo_map`** to understand the project structure.
233
- 2. **Use `read_file_surgical`** with a symbol name. Use suggestions if the symbol is missing.
234
- 3. **Before modifying, run `analyze_impact`** to know the blast radius.
235
- 4. **Phase 1: Preview Edit** → Call write tools to get a `diff` and `confirmationToken`.
236
- 5. **Phase 2: Apply Edit** → Verify the diff, then call with the token and `confirm: true`.
237
- 6. **Recovery** → Use `rollback_file` if needed.
239
+ #### 11. `get_session_stats`
240
+ **Purpose:** Get statistics for the current MCP client session.
241
+
242
+ **Input:** None.
243
+
244
+ **Returns:**
245
+ - `pendingOperations`: Count of pending operations for this session
246
+ - `locksHeld`: Number of file locks currently held
247
+ - `rateLimiterTokens`: Current token balance for this session
248
+
249
+ **Best used when:** Diagnosing session-specific issues or understanding your client's resource usage.
250
+
251
+ #### 12. `clear_session_cache`
252
+ **Purpose:** Clear the cache for the current MCP client session only.
253
+
254
+ **Input:** None.
255
+
256
+ **Returns:** `cacheEntriesCleared` - Number of cache entries removed.
257
+
258
+ **Best used when:** You want to reset your client's cache without affecting other MCP clients.
259
+
260
+ #### 13. `list_pending_operations`
261
+ **Purpose:** List all pending operations (for recovery after crash).
262
+
263
+ **Input:** None.
264
+
265
+ **Returns:** Array of pending operations with tokens, file paths, and timestamps.
266
+
267
+ **Best used when:** Recovering work after a server crash.
238
268
 
239
- ### Additional Tools (v3.6.2)
269
+ ## Previously Added Tools (v3.7.0)
240
270
 
241
- #### 11. `parse_file`
271
+ #### 14. `parse_file`
242
272
  **Purpose:** Parse a file using Tree-sitter and extract all symbols.
243
273
  **Input:** `filePath` (required), `projectRoot` (required).
244
- **Returns:** JSON array of all symbols with type and name.
274
+ **Returns:** JSON array of all symbols with type, name, `startLine`, and `endLine`.
245
275
 
246
- #### 12. `clean_backups`
276
+ #### 15. `clean_backups`
247
277
  **Purpose:** Remove all backup files for a project.
248
278
  **Input:** `projectRoot` (required).
249
279
 
250
- #### 13. `get_server_stats`
280
+ #### 16. `get_server_stats`
251
281
  **Purpose:** Get server telemetry, audit statistics, and health metrics.
252
282
  **Input:** None.
253
- **Returns:** Pending confirmations count and operational metrics.
283
+ **Returns:** Pending confirmations, rate limiter token balance, operation costs, and operational metrics.
284
+
285
+ #### 17. `search_symbols`
286
+ **Purpose:** Search symbols by name across the repo using AST (not text search).
287
+ **Input:** `rootDir` (required), `projectRoot` (required), `query` (required), `types` (optional), `fuzzy` (optional), `fileExtensions` (optional), `maxResults` (optional).
288
+ **Returns:** Matching symbols with file path, line numbers, and type.
289
+
290
+ #### 18. `explain_symbol`
291
+ **Purpose:** Get signature, location, and callers of a symbol in one call.
292
+ **Input:** `filePath` (required), `projectRoot` (required), `symbolName` (required), `className` (optional), `rootDir` (optional).
293
+ **Returns:** Symbol definition + list of files that call it. Replaces `read_file_surgical` + `analyze_impact` in one round-trip.
294
+
295
+ #### 19. `batch_read`
296
+ **Purpose:** Read N symbols from N files in a single call.
297
+ **Input:** `reads` (required): array of `{filePath, symbolName, className?}`. `projectRoot` (required).
298
+ **Returns:** All requested symbols in one response. Eliminates N round-trips.
299
+
300
+ #### 20. `get_rate_limit_status`
301
+ **Purpose:** Get current token balance and operation costs.
302
+ **Input:** None.
303
+ **Returns:** `tokensAvailable`, `maxTokens`, `refillRate`, and `canAfford` map per operation. Lets autonomous agents plan their budget.
304
+
305
+ ## Recommended Workflow
306
+
307
+ 1. **Start with `get_semantic_repo_map`** to understand the project structure.
308
+ 2. **Use `read_file_surgical`** with a symbol name. Use suggestions if the symbol is missing.
309
+ 3. **Before modifying, run `analyze_impact`** to know the blast radius.
310
+ 4. **Phase 1: Preview Edit** → Call write tools to get a `diff` and `confirmationToken`.
311
+ 5. **Phase 2: Apply Edit** → Verify the diff, then call with the token and `confirm: true`.
312
+ 6. **Recovery** → Use `rollback_file` if needed.
313
+
314
+ ## Session State Configuration (v3.7.0+)
315
+
316
+ ### Critical: Session-Scoped State
317
+
318
+ The server now uses **session-scoped state** for each MCP client connection. This means:
319
+
320
+ 1. **No state leakage**: Each agent (Amazon Q, Kiro, Cursor, etc.) gets isolated locks, confirmation store, and rate limiter.
321
+ 2. **Crash recovery**: Pending operations survive server restarts via SQLite.
322
+ 3. **Session tools**: Use `get_session_stats`, `clear_session_cache`, and `list_pending_operations` for session-aware operations.
323
+
324
+ ### IDE-Specific Configuration
325
+
326
+ Each IDE/agent has a specific location for MCP configuration:
327
+
328
+ #### Amazon Q
329
+ Add to `.amazonq/rules/1-mcp-code-context-instructions.md`:
330
+ ```json
331
+ {
332
+ "mcpServers": {
333
+ "mcp-code-context": {
334
+ "command": "npx",
335
+ "args": ["-y", "mcp-code-context"]
336
+ }
337
+ }
338
+ }
339
+ ```
340
+
341
+ #### Kiro
342
+ Add to `.kiro/settings/mcp.json`:
343
+ ```json
344
+ {
345
+ "mcpServers": {
346
+ "mcp-code-context": {
347
+ "command": "npx",
348
+ "args": ["-y", "mcp-code-context"]
349
+ }
350
+ }
351
+ }
352
+ ```
353
+
354
+ #### Cursor
355
+ Add to `.cursor/mcp.json`:
356
+ ```json
357
+ {
358
+ "mcpServers": {
359
+ "mcp-code-context": {
360
+ "command": "npx",
361
+ "args": ["-y", "mcp-code-context"]
362
+ }
363
+ }
364
+ }
365
+ ```
366
+
367
+ #### Windsurf
368
+ Add to Windsurf MCP settings:
369
+ ```json
370
+ {
371
+ "mcpServers": {
372
+ "mcp-code-context": {
373
+ "command": "npx",
374
+ "args": ["-y", "mcp-code-context"]
375
+ }
376
+ }
377
+ }
378
+ ```
379
+
380
+ #### Antigravity
381
+ Add to `.antigravity/mcp.json`:
382
+ ```json
383
+ {
384
+ "mcpServers": {
385
+ "mcp-code-context": {
386
+ "command": "npx",
387
+ "args": ["-y", "mcp-code-context"]
388
+ }
389
+ }
390
+ }
391
+ ```
392
+
393
+ No additional configuration is needed beyond adding the MCP server definition. Session isolation is automatic.
254
394
 
255
395
  ## Technical Details
256
396
 
@@ -261,4 +401,32 @@ All write tools follow a **Two-Phase Workflow**:
261
401
  - **Supported languages:** TypeScript, JavaScript (all variants), PHP, Dart, Python
262
402
  - **Security:** projectRoot boundary, safe regex, rate limiting, file locking, audit logging, telemetry
263
403
  - **Write safety:** Two-phase confirmation (dry-run + token), atomic writes, syntax validation
404
+ - **State management:** Session-scoped (per-MCP-client) with SQLite persistence for pending operations
405
+ - **Cache:** sql.js@1.14.1 (WASM SQLite, zero native deps)
264
406
  - **Portability:** 100% WASM - no native dependencies, works on all platforms
407
+ - **Tests:** 82 passing (unit + integration + performance + stress)
408
+
409
+ ## Support This Project
410
+
411
+ ### PayPal
412
+ [paypal.me/achatainga](https://paypal.me/achatainga)
413
+
414
+ ### Ko-fi
415
+ [ko-fi.com/achatainga](https://ko-fi.com/achatainga)
416
+
417
+ ### Binance (USDT)
418
+ - **TRC20/ERC20**: `0xa68d53f7853ce0175eb96aaad4a30c068ca96444`
419
+ - **Binance Pay ID**: `367669339`
420
+
421
+ ### Hire Me
422
+ - 💼 **Available for**: Freelance contracts
423
+ - 🌐 **Location**: Caracas, Venezuela (Remote)
424
+ - 💻 **Skills**: TypeScript, Node.js, MCP, AI/LLM integrations
425
+ - 💵 **Rate**: $50-75/hour
426
+ - 📧 **Contact**: a.chataing.a@gmail.com
427
+
428
+ ---
429
+
430
+ **Version**: 3.7.0
431
+ **Last Updated**: June 8, 2026
432
+ **Status**: Production-ready with session-scoped state and crash recovery
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-code-context",
3
- "version": "3.6.2",
3
+ "version": "3.7.0",
4
4
  "description": "Powerful MCP server with Tree-sitter WASM parsers for 100% AST accuracy. Zero native dependencies. Production-ready with persistent caching, structured logging, file watching, fuzzy search, rate limiting, file locking, and ReDoS protection. Supports TypeScript, JavaScript, PHP, Dart, and Python.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "scripts": {
11
11
  "build": "tsc",
12
- "test": "npm run build && npm run build:tests && node dist-tests/tests/test-security.js && node dist-tests/tests/test-file-lock.js && node dist-tests/tests/test-rate-limiter.js && node dist-tests/tests/test-v3.4.js && node dist-tests/tests/test-backup-manager.js && node dist-tests/tests/test-wasm-parsers.js",
12
+ "test": "npm run build && npm run build:tests && node dist-tests/tests/test-security.js && node dist-tests/tests/test-file-lock.js && node dist-tests/tests/test-rate-limiter.js && node dist-tests/tests/test-v3.4.js && node dist-tests/tests/test-backup-manager.js && node dist-tests/tests/test-index-manager.js && node dist-tests/tests/test-wasm-parsers.js",
13
13
  "test:ui": "vitest --ui",
14
14
  "test:run": "vitest run",
15
15
  "test:coverage": "vitest run --coverage",
@@ -1,59 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
-
4
- /**
5
- * Universal Version Replacer - v1.0.0
6
- * Usage: node scripts/replace-version.js <oldVersion> <newVersion>
7
- */
8
-
9
- const [,, oldVersion, newVersion] = process.argv;
10
-
11
- if (!oldVersion || !newVersion) {
12
- console.error('Usage: node scripts/replace-version.js <oldVersion> <newVersion>');
13
- console.error('Example: node scripts/replace-version.js 3.4.0 3.4.1');
14
- process.exit(1);
15
- }
16
-
17
- const root = process.cwd();
18
- const oldRegex = new RegExp(oldVersion.replace(/\./g, '\\.'), 'g');
19
-
20
- console.log(`🚀 Starting global replace: ${oldVersion} -> ${newVersion}`);
21
-
22
- function walk(dir) {
23
- const files = fs.readdirSync(dir);
24
- for (const file of files) {
25
- const fullPath = path.join(dir, file);
26
-
27
- // Safety boundaries
28
- if (fullPath.includes('.git') ||
29
- fullPath.includes('node_modules') ||
30
- fullPath.includes('scripts') ||
31
- file === 'stderr.txt' ||
32
- file === 'stdout.txt') continue;
33
-
34
- const stat = fs.statSync(fullPath);
35
- if (stat.isDirectory()) {
36
- walk(fullPath);
37
- } else {
38
- // Process only relevant text files
39
- const ext = path.extname(file).toLowerCase();
40
- const textExtensions = ['.ts', '.js', '.json', '.md', '.txt', '.d.ts', '.map'];
41
-
42
- if (textExtensions.includes(ext) || file.endsWith('.d.ts')) {
43
- try {
44
- const content = fs.readFileSync(fullPath, 'utf8');
45
- if (content.includes(oldVersion)) {
46
- const updated = content.replace(oldRegex, newVersion);
47
- fs.writeFileSync(fullPath, updated, 'utf8');
48
- console.log(`✅ Updated: ${fullPath}`);
49
- }
50
- } catch (err) {
51
- console.warn(`⚠️ Skipped ${fullPath}: ${err.message}`);
52
- }
53
- }
54
- }
55
- }
56
- }
57
-
58
- walk(root);
59
- console.log('✨ Version update complete.');