mcp-code-context 3.7.1 → 3.8.1

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 (87) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/INSTRUCTIONS.md +3 -3
  3. package/README.md +20 -9
  4. package/SECURITY.md +10 -10
  5. package/dist/src/core/engine.d.ts +1 -1
  6. package/dist/src/core/engine.js +1 -1
  7. package/dist/src/core/indexManager.d.ts +1 -1
  8. package/dist/src/core/indexManager.js +1 -1
  9. package/dist/src/core/sessionManager.d.ts +1 -1
  10. package/dist/src/core/sessionManager.js +1 -1
  11. package/dist/src/core/validator.d.ts +1 -1
  12. package/dist/src/core/validator.js +1 -1
  13. package/dist/src/index.d.ts +1 -1
  14. package/dist/src/index.js +2 -2
  15. package/dist/src/operations/astTransform.d.ts +1 -1
  16. package/dist/src/operations/astTransform.js +1 -1
  17. package/dist/src/operations/compress.d.ts +1 -1
  18. package/dist/src/operations/compress.js +46 -16
  19. package/dist/src/operations/compress.js.map +1 -1
  20. package/dist/src/operations/confirmationStore.d.ts +1 -1
  21. package/dist/src/operations/confirmationStore.js +1 -1
  22. package/dist/src/operations/impactAnalysis.js +46 -0
  23. package/dist/src/operations/impactAnalysis.js.map +1 -1
  24. package/dist/src/operations/write.d.ts +1 -1
  25. package/dist/src/operations/write.js +3 -3
  26. package/dist/src/operations/write.js.map +1 -1
  27. package/dist/src/parsers/base.d.ts +14 -1
  28. package/dist/src/parsers/base.js +20 -1
  29. package/dist/src/parsers/base.js.map +1 -1
  30. package/dist/src/parsers/csharp.d.ts +1 -1
  31. package/dist/src/parsers/csharp.js +1 -1
  32. package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
  33. package/dist/src/parsers/dartTreeSitter.js +1 -1
  34. package/dist/src/parsers/go.d.ts +1 -1
  35. package/dist/src/parsers/go.js +1 -1
  36. package/dist/src/parsers/java.d.ts +1 -1
  37. package/dist/src/parsers/java.js +1 -1
  38. package/dist/src/parsers/kotlin.d.ts +1 -1
  39. package/dist/src/parsers/kotlin.js +1 -1
  40. package/dist/src/parsers/php.d.ts +1 -1
  41. package/dist/src/parsers/php.js +1 -1
  42. package/dist/src/parsers/python.d.ts +12 -1
  43. package/dist/src/parsers/python.js +26 -1
  44. package/dist/src/parsers/python.js.map +1 -1
  45. package/dist/src/parsers/registry.d.ts +1 -1
  46. package/dist/src/parsers/registry.js +1 -1
  47. package/dist/src/parsers/ruby.d.ts +20 -1
  48. package/dist/src/parsers/ruby.js +43 -3
  49. package/dist/src/parsers/ruby.js.map +1 -1
  50. package/dist/src/parsers/rust.d.ts +1 -1
  51. package/dist/src/parsers/rust.js +1 -1
  52. package/dist/src/parsers/typescript.d.ts +1 -1
  53. package/dist/src/parsers/typescript.js +1 -1
  54. package/dist/src/tools/readHandlers.js +26 -0
  55. package/dist/src/tools/readHandlers.js.map +1 -1
  56. package/dist/src/tools/toolDefinitionsCore.js +2 -2
  57. package/dist/src/utils/appDir.d.ts +1 -1
  58. package/dist/src/utils/appDir.js +1 -1
  59. package/dist/src/utils/auditLogger.d.ts +1 -1
  60. package/dist/src/utils/auditLogger.js +1 -1
  61. package/dist/src/utils/backupManager.d.ts +1 -1
  62. package/dist/src/utils/backupManager.js +1 -1
  63. package/dist/src/utils/constants.d.ts +1 -1
  64. package/dist/src/utils/constants.js +1 -1
  65. package/dist/src/utils/diff.d.ts +2 -2
  66. package/dist/src/utils/diff.js +2 -2
  67. package/dist/src/utils/fileLock.d.ts +1 -1
  68. package/dist/src/utils/fileLock.js +1 -1
  69. package/dist/src/utils/fileWalker.d.ts +1 -1
  70. package/dist/src/utils/fileWalker.js +1 -1
  71. package/dist/src/utils/fileWatcher.d.ts +1 -1
  72. package/dist/src/utils/fileWatcher.js +1 -1
  73. package/dist/src/utils/fuzzySearch.d.ts +1 -1
  74. package/dist/src/utils/fuzzySearch.js +1 -1
  75. package/dist/src/utils/logger.d.ts +1 -1
  76. package/dist/src/utils/logger.js +1 -1
  77. package/dist/src/utils/railsSchema.d.ts +10 -0
  78. package/dist/src/utils/railsSchema.js +104 -0
  79. package/dist/src/utils/railsSchema.js.map +1 -0
  80. package/dist/src/utils/rateLimiter.d.ts +1 -1
  81. package/dist/src/utils/rateLimiter.js +1 -1
  82. package/dist/src/utils/streaming.d.ts +1 -1
  83. package/dist/src/utils/streaming.js +1 -1
  84. package/dist/src/utils/telemetry.d.ts +1 -1
  85. package/dist/src/utils/telemetry.js +1 -1
  86. package/llms.txt +11 -9
  87. package/package.json +6 -3
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Base Parser - v3.7.1
2
+ * Base Parser - v3.8.1
3
3
  * Abstract base for all language parsers
4
4
  * IMPROVEMENT: replaceSymbol moved here using AST indices (eliminates indexOf fragility)
5
+ * v3.8.1: getInsideStartIndex/getInsideEndIndex overridable for brace-less languages
5
6
  */
6
7
  import { Parser, Tree, Language } from "web-tree-sitter";
7
8
  export interface ParseResult {
@@ -25,6 +26,18 @@ export declare abstract class BaseParser {
25
26
  init(parser: Parser, language: Language): Promise<void>;
26
27
  parse(content: string, oldTree?: Tree): Tree;
27
28
  abstract extractSymbol(tree: Tree, symbolName: string, className?: string): string | null;
29
+ /**
30
+ * Returns the index inside a symbol's body for inside_start insertion.
31
+ * Default: searches for `{` after symbol start (JS/TS/PHP/Java/Go/C#/Rust/Kotlin).
32
+ * Override in parsers for brace-less languages (Ruby, Python).
33
+ */
34
+ getInsideStartIndex(content: string, symbolInfo: SymbolInfo): number;
35
+ /**
36
+ * Returns the index inside a symbol's body for inside_end insertion.
37
+ * Default: searches for last `}` before symbol end (JS/TS/PHP/Java/Go/C#/Rust/Kotlin).
38
+ * Override in parsers for brace-less languages (Ruby, Python).
39
+ */
40
+ getInsideEndIndex(content: string, symbolInfo: SymbolInfo): number;
28
41
  /**
29
42
  * Replace a symbol using AST startIndex/endIndex (no indexOf fragility)
30
43
  * Concrete implementation — subclasses inherit this.
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Base Parser - v3.7.1
2
+ * Base Parser - v3.8.1
3
3
  * Abstract base for all language parsers
4
4
  * IMPROVEMENT: replaceSymbol moved here using AST indices (eliminates indexOf fragility)
5
+ * v3.8.1: getInsideStartIndex/getInsideEndIndex overridable for brace-less languages
5
6
  */
6
7
  export class BaseParser {
7
8
  parser;
@@ -21,6 +22,24 @@ export class BaseParser {
21
22
  throw new Error(`${this.languageName} parsing failed`);
22
23
  return tree;
23
24
  }
25
+ /**
26
+ * Returns the index inside a symbol's body for inside_start insertion.
27
+ * Default: searches for `{` after symbol start (JS/TS/PHP/Java/Go/C#/Rust/Kotlin).
28
+ * Override in parsers for brace-less languages (Ruby, Python).
29
+ */
30
+ getInsideStartIndex(content, symbolInfo) {
31
+ const idx = content.indexOf("{", symbolInfo.startIndex);
32
+ return idx !== -1 ? idx + 1 : symbolInfo.startIndex + 1;
33
+ }
34
+ /**
35
+ * Returns the index inside a symbol's body for inside_end insertion.
36
+ * Default: searches for last `}` before symbol end (JS/TS/PHP/Java/Go/C#/Rust/Kotlin).
37
+ * Override in parsers for brace-less languages (Ruby, Python).
38
+ */
39
+ getInsideEndIndex(content, symbolInfo) {
40
+ const idx = content.lastIndexOf("}", symbolInfo.endIndex);
41
+ return idx !== -1 ? idx : symbolInfo.endIndex - 1;
42
+ }
24
43
  /**
25
44
  * Replace a symbol using AST startIndex/endIndex (no indexOf fragility)
26
45
  * Concrete implementation — subclasses inherit this.
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/parsers/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH,MAAM,OAAgB,UAAU;IACpB,MAAM,CAAU;IAChB,QAAQ,CAAY;IACpB,YAAY,CAAS;IAE/B,YAAY,YAAoB;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,QAAkB;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAc;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,iBAAiB,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAQD;;;OAGG;IACH,aAAa,CACX,OAAe,EACf,IAAU,EACV,UAAkB,EAClB,UAAkB,EAClB,SAAkB;QAElB,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CACnE,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,mEAAmE;QACnE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;YAC5C,UAAU;YACV,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAID,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/parsers/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,MAAM,OAAgB,UAAU;IACpB,MAAM,CAAU;IAChB,QAAQ,CAAY;IACpB,YAAY,CAAS;IAE/B,YAAY,YAAoB;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,QAAkB;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAc;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,iBAAiB,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAQD;;;;OAIG;IACH,mBAAmB,CAAC,OAAe,EAAE,UAAsB;QACzD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QACxD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,OAAe,EAAE,UAAsB;QACvD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,aAAa,CACX,OAAe,EACf,IAAU,EACV,UAAkB,EAClB,UAAkB,EAClB,SAAkB;QAElB,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CACnE,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,mEAAmE;QACnE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;YAC5C,UAAU;YACV,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAID,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * C# Parser - v3.7.1
2
+ * C# Parser - v3.8.1
3
3
  * Tree-sitter based C# parser
4
4
  */
5
5
  import { Tree } from "web-tree-sitter";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * C# Parser - v3.7.1
2
+ * C# Parser - v3.8.1
3
3
  * Tree-sitter based C# parser
4
4
  */
5
5
  import { BaseParser } from "./base.js";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Dart Tree-sitter Parser - v3.7.1
2
+ * Dart Tree-sitter Parser - v3.8.1
3
3
  * 100% AST accuracy via WASM
4
4
  * CLEANUP: replaceSymbol removed (inherited from BaseParser)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Dart Tree-sitter Parser - v3.7.1
2
+ * Dart Tree-sitter Parser - v3.8.1
3
3
  * 100% AST accuracy via WASM
4
4
  * CLEANUP: replaceSymbol removed (inherited from BaseParser)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Go Parser - v3.7.1
2
+ * Go Parser - v3.8.1
3
3
  * Tree-sitter based Go parser
4
4
  */
5
5
  import { Tree } from "web-tree-sitter";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Go Parser - v3.7.1
2
+ * Go Parser - v3.8.1
3
3
  * Tree-sitter based Go parser
4
4
  */
5
5
  import { BaseParser } from "./base.js";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Java Parser - v3.7.1
2
+ * Java Parser - v3.8.1
3
3
  * Tree-sitter based Java parser
4
4
  */
5
5
  import { Tree } from "web-tree-sitter";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Java Parser - v3.7.1
2
+ * Java Parser - v3.8.1
3
3
  * Tree-sitter based Java parser
4
4
  */
5
5
  import { BaseParser } from "./base.js";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Kotlin Parser - v3.7.1
2
+ * Kotlin Parser - v3.8.1
3
3
  * Tree-sitter based Kotlin parser
4
4
  */
5
5
  import { Tree } from "web-tree-sitter";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Kotlin Parser - v3.7.1
2
+ * Kotlin Parser - v3.8.1
3
3
  * Tree-sitter based Kotlin parser
4
4
  */
5
5
  import { BaseParser } from "./base.js";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * PHP Parser - v3.7.1
2
+ * PHP Parser - v3.8.1
3
3
  * CLEANUP: replaceSymbol removed (inherited from BaseParser)
4
4
  */
5
5
  import { Tree } from "web-tree-sitter";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * PHP Parser - v3.7.1
2
+ * PHP Parser - v3.8.1
3
3
  * CLEANUP: replaceSymbol removed (inherited from BaseParser)
4
4
  */
5
5
  import { BaseParser } from "./base.js";
@@ -1,11 +1,22 @@
1
1
  /**
2
- * Python Parser - v3.7.1
2
+ * Python Parser - v3.8.1
3
3
  * CLEANUP: replaceSymbol removed (inherited from BaseParser)
4
+ * v3.8.1: override getInsideStartIndex/getInsideEndIndex for indentation-based syntax
4
5
  */
5
6
  import { Tree } from "web-tree-sitter";
6
7
  import { BaseParser, SymbolInfo } from "./base.js";
7
8
  export declare class PythonParser extends BaseParser {
8
9
  constructor();
10
+ /**
11
+ * For Python's indentation-based blocks, inside_start = first byte after the `:` + newline
12
+ * that opens the block body (e.g. after `def foo():\n`).
13
+ */
14
+ getInsideStartIndex(content: string, symbolInfo: SymbolInfo): number;
15
+ /**
16
+ * For Python's indentation-based blocks, inside_end = last byte of the last statement
17
+ * in the body — i.e. just before the symbol's endIndex, excluding trailing newlines.
18
+ */
19
+ getInsideEndIndex(content: string, symbolInfo: SymbolInfo): number;
9
20
  extractSymbol(tree: Tree, symbolName: string, className?: string): string | null;
10
21
  findSymbols(tree: Tree): SymbolInfo[];
11
22
  private findParentClass;
@@ -1,12 +1,37 @@
1
1
  /**
2
- * Python Parser - v3.7.1
2
+ * Python Parser - v3.8.1
3
3
  * CLEANUP: replaceSymbol removed (inherited from BaseParser)
4
+ * v3.8.1: override getInsideStartIndex/getInsideEndIndex for indentation-based syntax
4
5
  */
5
6
  import { BaseParser } from "./base.js";
6
7
  export class PythonParser extends BaseParser {
7
8
  constructor() {
8
9
  super("python");
9
10
  }
11
+ /**
12
+ * For Python's indentation-based blocks, inside_start = first byte after the `:` + newline
13
+ * that opens the block body (e.g. after `def foo():\n`).
14
+ */
15
+ getInsideStartIndex(content, symbolInfo) {
16
+ // Find the colon that opens the block
17
+ const colon = content.indexOf(":", symbolInfo.startIndex);
18
+ if (colon === -1)
19
+ return symbolInfo.startIndex + 1;
20
+ const newline = content.indexOf("\n", colon);
21
+ return newline !== -1 ? newline + 1 : colon + 1;
22
+ }
23
+ /**
24
+ * For Python's indentation-based blocks, inside_end = last byte of the last statement
25
+ * in the body — i.e. just before the symbol's endIndex, excluding trailing newlines.
26
+ */
27
+ getInsideEndIndex(content, symbolInfo) {
28
+ // Walk back from endIndex past any trailing whitespace/newlines
29
+ let idx = symbolInfo.endIndex - 1;
30
+ while (idx > symbolInfo.startIndex && (content[idx] === "\n" || content[idx] === "\r" || content[idx] === " " || content[idx] === "\t")) {
31
+ idx--;
32
+ }
33
+ return idx + 1;
34
+ }
10
35
  extractSymbol(tree, symbolName, className) {
11
36
  const cursor = tree.walk();
12
37
  const search = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/parsers/python.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/parsers/python.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Parser Registry - v3.7.1
2
+ * Parser Registry - v3.8.1
3
3
  * Manages all language parsers
4
4
  */
5
5
  import { BaseParser } from "./base.js";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Parser Registry - v3.7.1
2
+ * Parser Registry - v3.8.1
3
3
  * Manages all language parsers
4
4
  */
5
5
  import { TypeScriptParser } from "./typescript.js";
@@ -1,12 +1,31 @@
1
1
  /**
2
- * Ruby Parser - v3.7.1
2
+ * Ruby Parser - v3.8.1
3
3
  * Tree-sitter based Ruby parser
4
+ * v3.8.1: override getInsideStartIndex/getInsideEndIndex for end-based syntax
4
5
  */
5
6
  import { Tree } from "web-tree-sitter";
6
7
  import { BaseParser, SymbolInfo } from "./base.js";
7
8
  export declare class RubyParser extends BaseParser {
8
9
  constructor();
10
+ /**
11
+ * Extract a symbol from source content using AST byte offsets.
12
+ * NOTE: uses content directly (not tree.rootNode.text) because web-tree-sitter
13
+ * may strip leading whitespace/newlines from rootNode.text on Windows/WASM,
14
+ * causing off-by-one drift against the original byte offsets.
15
+ */
9
16
  extractSymbol(tree: Tree, symbolName: string, className?: string): string | null;
17
+ search(tree: Tree, pattern: string): SymbolInfo[];
18
+ /**
19
+ * For Ruby's `end`-based blocks, inside_start = first byte after the header line.
20
+ * The header line is the first line of the node (e.g. "def full_name\n" or "class User < ApplicationRecord\n").
21
+ * We find the newline that terminates the first line of the symbol and insert after it.
22
+ */
23
+ getInsideStartIndex(content: string, symbolInfo: SymbolInfo): number;
24
+ /**
25
+ * For Ruby's `end`-based blocks, inside_end = the byte index of the `end` keyword itself.
26
+ * We search backwards from the symbol's endIndex for the last "end" token on its own line.
27
+ */
28
+ getInsideEndIndex(content: string, symbolInfo: SymbolInfo): number;
10
29
  findSymbols(tree: Tree): SymbolInfo[];
11
30
  private findParentClass;
12
31
  }
@@ -1,17 +1,57 @@
1
1
  /**
2
- * Ruby Parser - v3.7.1
2
+ * Ruby Parser - v3.8.1
3
3
  * Tree-sitter based Ruby parser
4
+ * v3.8.1: override getInsideStartIndex/getInsideEndIndex for end-based syntax
4
5
  */
5
6
  import { BaseParser } from "./base.js";
6
7
  export class RubyParser extends BaseParser {
7
8
  constructor() {
8
9
  super("ruby");
9
10
  }
11
+ /**
12
+ * Extract a symbol from source content using AST byte offsets.
13
+ * NOTE: uses content directly (not tree.rootNode.text) because web-tree-sitter
14
+ * may strip leading whitespace/newlines from rootNode.text on Windows/WASM,
15
+ * causing off-by-one drift against the original byte offsets.
16
+ */
10
17
  extractSymbol(tree, symbolName, className) {
11
- const src = tree.rootNode.text;
12
18
  const symbols = this.findSymbols(tree);
13
19
  const target = symbols.find(s => s.name === symbolName && (!className || s.className === className));
14
- return target ? src.substring(target.startIndex, target.endIndex) : null;
20
+ if (!target)
21
+ return null;
22
+ // Reconstruct the original source from tree nodes — use the full text of the
23
+ // root node's parent walk so we always have the unparsed original.
24
+ // The safest approach: use tree.rootNode.text but correct the start offset.
25
+ const src = tree.rootNode.text;
26
+ const rootStart = tree.rootNode.startIndex;
27
+ return src.substring(target.startIndex - rootStart, target.endIndex - rootStart);
28
+ }
29
+ search(tree, pattern) {
30
+ return this.findSymbols(tree).filter(s => s.name.toLowerCase().includes(pattern.toLowerCase()));
31
+ }
32
+ /**
33
+ * For Ruby's `end`-based blocks, inside_start = first byte after the header line.
34
+ * The header line is the first line of the node (e.g. "def full_name\n" or "class User < ApplicationRecord\n").
35
+ * We find the newline that terminates the first line of the symbol and insert after it.
36
+ */
37
+ getInsideStartIndex(content, symbolInfo) {
38
+ // Find the newline that ends the opening line (def/class header)
39
+ const firstNewline = content.indexOf("\n", symbolInfo.startIndex);
40
+ return firstNewline !== -1 ? firstNewline + 1 : symbolInfo.startIndex + 1;
41
+ }
42
+ /**
43
+ * For Ruby's `end`-based blocks, inside_end = the byte index of the `end` keyword itself.
44
+ * We search backwards from the symbol's endIndex for the last "end" token on its own line.
45
+ */
46
+ getInsideEndIndex(content, symbolInfo) {
47
+ // Walk backwards from the node end to find the `end` keyword line
48
+ const slice = content.substring(0, symbolInfo.endIndex);
49
+ const endMatch = slice.match(/\bend\b\s*$/);
50
+ if (endMatch && endMatch.index !== undefined) {
51
+ return endMatch.index;
52
+ }
53
+ // Fallback: insert just before the last character of the symbol
54
+ return symbolInfo.endIndex - 1;
15
55
  }
16
56
  findSymbols(tree) {
17
57
  const symbols = [];
@@ -1 +1 @@
1
- {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/parsers/ruby.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/parsers/ruby.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAc,MAAM,WAAW,CAAC;AAEnD,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxC;QACE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAU,EAAE,UAAkB,EAAE,SAAkB;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CACnE,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,6EAA6E;QAC7E,mEAAmE;QACnE,4EAA4E;QAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC3C,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAe;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACvC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACrD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,OAAe,EAAE,UAAsB;QACzD,iEAAiE;QACjE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QAClE,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,OAAe,EAAE,UAAsB;QACvD,kEAAkE;QAClE,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,CAAC;QACD,gEAAgE;QAChE,OAAO,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,IAAU;QACpB,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAErF,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;YAEhC,yBAAyB;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAChD,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;wBACxC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;qBACrC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAChD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;wBACxC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACpC,SAAS,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI;qBACxD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5B,GAAG,CAAC;oBAAC,KAAK,EAAE,CAAC;gBAAC,CAAC,QAAQ,MAAM,CAAC,eAAe,EAAE,EAAE;gBACjD,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,EAAE,CAAC;QACR,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,IAAU;QAChC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC;YAC1E,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rust Parser - v3.7.1
2
+ * Rust Parser - v3.8.1
3
3
  * Tree-sitter based Rust parser
4
4
  */
5
5
  import { Tree } from "web-tree-sitter";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rust Parser - v3.7.1
2
+ * Rust Parser - v3.8.1
3
3
  * Tree-sitter based Rust parser
4
4
  */
5
5
  import { BaseParser } from "./base.js";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * TypeScript Parser - v3.7.1
2
+ * TypeScript Parser - v3.8.1
3
3
  * Tree-sitter based TS/JS parser
4
4
  * CLEANUP: replaceSymbol removed (inherited from BaseParser)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * TypeScript Parser - v3.7.1
2
+ * TypeScript Parser - v3.8.1
3
3
  * Tree-sitter based TS/JS parser
4
4
  * CLEANUP: replaceSymbol removed (inherited from BaseParser)
5
5
  */
@@ -7,6 +7,7 @@ import { compressRepository } from "../operations/compress.js";
7
7
  import { streamFile } from "../utils/streaming.js";
8
8
  import { assertNoPendingWriteConflict } from "../utils/toctou.js";
9
9
  import { getSession, getCacheManager, getRegistry } from "./context.js";
10
+ import { loadRailsSchema, modelToTable, formatSchemaAnnotation } from "../utils/railsSchema.js";
10
11
  export async function handleGetSemanticRepoMap(args) {
11
12
  if (!args.directoryPath || !args.projectRoot) {
12
13
  throw new Error("directoryPath and projectRoot are required (e.g. projectRoot: C:\\code\\mcp-code-context)");
@@ -72,6 +73,31 @@ export async function handleReadFileSurgical(args) {
72
73
  content = await fs.readFile(validation.resolvedPath, "utf-8");
73
74
  }
74
75
  }
76
+ // ActiveRecord Virtual Schema injection
77
+ if (path.extname(filePath) === ".rb") {
78
+ // When extracting a symbol, `content` is only the method body — no class declaration.
79
+ // We need the full file to detect AR inheritance, but guard with stat first to
80
+ // avoid allocating >5MB files without the streaming guard.
81
+ let sourceForDetection = content;
82
+ if (symbolName) {
83
+ const fileStat = await fs.stat(validation.resolvedPath);
84
+ if (fileStat.size <= 5 * 1024 * 1024) {
85
+ sourceForDetection = await fs.readFile(validation.resolvedPath, "utf-8");
86
+ }
87
+ // Files >5MB: skip schema injection for symbol extracts — not worth the memory cost
88
+ }
89
+ const arMatch = sourceForDetection.match(/class\s+(\w+)\s*<\s*(?:ApplicationRecord|ActiveRecord::Base)/);
90
+ if (arMatch) {
91
+ const schema = await loadRailsSchema(projectRoot);
92
+ if (schema) {
93
+ const tableName = modelToTable(arMatch[1]);
94
+ const columns = schema[tableName];
95
+ if (columns && Object.keys(columns).length > 0) {
96
+ content = formatSchemaAnnotation(tableName, columns) + "\n" + content;
97
+ }
98
+ }
99
+ }
100
+ }
75
101
  return { content: [{ type: "text", text: content }] };
76
102
  }
77
103
  export async function handleAnalyzeImpact(args) {
@@ -1 +1 @@
1
- {"version":3,"file":"readHandlers.js","sourceRoot":"","sources":["../../../src/tools/readHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readHandlers.js","sourceRoot":"","sources":["../../../src/tools/readHandlers.ts"],"names":[],"mappings":"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"}
@@ -158,7 +158,7 @@ export const CORE_TOOLS = [
158
158
  required: ["filePath", "projectRoot", "oldName", "newName"],
159
159
  },
160
160
  },
161
- // ── AST Transform (v3.7.1) ──────────────────────────────────────────────
161
+ // ── AST Transform (v3.8.1) ──────────────────────────────────────────────
162
162
  {
163
163
  name: "ast_transform",
164
164
  description: "Apply a declarative AST transformation to a symbol. Supports: add_parameter, wrap_with_try_catch, add_decorator, change_return_type, extract_variable. Uses two-phase write (Phase 1: preview diff, Phase 2: confirm with token).",
@@ -195,7 +195,7 @@ export const CORE_TOOLS = [
195
195
  required: ["filePath", "projectRoot", "symbolName", "transform"],
196
196
  },
197
197
  },
198
- // ── NEW TOOLS v3.7.1 ──────────────────────────────────────────────────────ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
198
+ // ── NEW TOOLS v3.8.1 ──────────────────────────────────────────────────────ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
199
199
  {
200
200
  name: "search_symbols",
201
201
  description: "Search symbols by name across the repo using AST (not text search). Finds classes, functions, methods by approximate name.",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * App Directory - v3.7.1
2
+ * App Directory - v3.8.1
3
3
  * Centralizes ~/.mcp-code-context/ path resolution across all OS.
4
4
  * Fallback to os.tmpdir() in environments without HOME (CI, Docker).
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * App Directory - v3.7.1
2
+ * App Directory - v3.8.1
3
3
  * Centralizes ~/.mcp-code-context/ path resolution across all OS.
4
4
  * Fallback to os.tmpdir() in environments without HOME (CI, Docker).
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Audit Logger - v3.7.1
2
+ * Audit Logger - v3.8.1
3
3
  * Comprehensive audit trail for all operations
4
4
  */
5
5
  export interface AuditEntry {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Audit Logger - v3.7.1
2
+ * Audit Logger - v3.8.1
3
3
  * Comprehensive audit trail for all operations
4
4
  */
5
5
  import * as fs from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Backup Manager - v3.7.1
2
+ * Backup Manager - v3.8.1
3
3
  * Handles rolling backups in ~/.mcp-code-context/backups/
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Backup Manager - v3.7.1
2
+ * Backup Manager - v3.8.1
3
3
  * Handles rolling backups in ~/.mcp-code-context/backups/
4
4
  */
5
5
  import * as fs from "node:fs/promises";
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Constants - Centralized configuration
3
- * v3.7.1
3
+ * v3.8.1
4
4
  */
5
5
  export declare const EXCLUDE_DIRS: string[];
6
6
  export declare const SUPPORTED_EXTENSIONS: string[];
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Constants - Centralized configuration
3
- * v3.7.1
3
+ * v3.8.1
4
4
  */
5
5
  // Directory exclusions
6
6
  export const EXCLUDE_DIRS = [
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Diff Utilities - v3.7.1
2
+ * Diff Utilities - v3.8.1
3
3
  * Uses diff-match-patch for efficient diffing
4
4
  */
5
5
  export interface DiffLine {
@@ -10,7 +10,7 @@ export interface DiffLine {
10
10
  /**
11
11
  * Generates an early fallback diff for large files with many changes.
12
12
  * Avoids O(n+d²) degradation from Myers algorithm.
13
- * FIX-07: Added in v3.7.1.
13
+ * FIX-07: Added in v3.8.1.
14
14
  *
15
15
  * @param oldText - Original file content
16
16
  * @param newText - Modified file content
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Diff Utilities - v3.7.1
2
+ * Diff Utilities - v3.8.1
3
3
  * Uses diff-match-patch for efficient diffing
4
4
  */
5
5
  import DiffMatchPatch from 'diff-match-patch';
@@ -22,7 +22,7 @@ function estimateChangeRatio(oldText, newText) {
22
22
  /**
23
23
  * Generates an early fallback diff for large files with many changes.
24
24
  * Avoids O(n+d²) degradation from Myers algorithm.
25
- * FIX-07: Added in v3.7.1.
25
+ * FIX-07: Added in v3.8.1.
26
26
  *
27
27
  * @param oldText - Original file content
28
28
  * @param newText - Modified file content