mcp-code-context 3.9.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/CHANGELOG.md +288 -215
  2. package/INSTRUCTIONS.md +28 -11
  3. package/README.md +124 -11
  4. package/dist/src/core/engine.d.ts +1 -1
  5. package/dist/src/core/engine.js +1 -1
  6. package/dist/src/core/indexManager.d.ts +1 -1
  7. package/dist/src/core/indexManager.js +26 -26
  8. package/dist/src/core/sessionManager.d.ts +1 -1
  9. package/dist/src/core/sessionManager.js +1 -1
  10. package/dist/src/core/validator.d.ts +2 -2
  11. package/dist/src/core/validator.js +8 -2
  12. package/dist/src/core/validator.js.map +1 -1
  13. package/dist/src/index.d.ts +4 -2
  14. package/dist/src/index.js +119 -14
  15. package/dist/src/index.js.map +1 -1
  16. package/dist/src/operations/apiRoutes.d.ts +31 -0
  17. package/dist/src/operations/apiRoutes.js +170 -0
  18. package/dist/src/operations/apiRoutes.js.map +1 -0
  19. package/dist/src/operations/architectureLinter.d.ts +45 -0
  20. package/dist/src/operations/architectureLinter.js +223 -0
  21. package/dist/src/operations/architectureLinter.js.map +1 -0
  22. package/dist/src/operations/astComplexity.d.ts +38 -0
  23. package/dist/src/operations/astComplexity.js +243 -0
  24. package/dist/src/operations/astComplexity.js.map +1 -0
  25. package/dist/src/operations/astMockGenerator.d.ts +34 -0
  26. package/dist/src/operations/astMockGenerator.js +203 -0
  27. package/dist/src/operations/astMockGenerator.js.map +1 -0
  28. package/dist/src/operations/astQuery.d.ts +47 -0
  29. package/dist/src/operations/astQuery.js +169 -0
  30. package/dist/src/operations/astQuery.js.map +1 -0
  31. package/dist/src/operations/astTransform.d.ts +1 -1
  32. package/dist/src/operations/astTransform.js +11 -2
  33. package/dist/src/operations/astTransform.js.map +1 -1
  34. package/dist/src/operations/asyncBlockers.d.ts +33 -0
  35. package/dist/src/operations/asyncBlockers.js +162 -0
  36. package/dist/src/operations/asyncBlockers.js.map +1 -0
  37. package/dist/src/operations/blastRadiusReport.d.ts +43 -0
  38. package/dist/src/operations/blastRadiusReport.js +236 -0
  39. package/dist/src/operations/blastRadiusReport.js.map +1 -0
  40. package/dist/src/operations/callHierarchy.d.ts +28 -0
  41. package/dist/src/operations/callHierarchy.js +166 -0
  42. package/dist/src/operations/callHierarchy.js.map +1 -0
  43. package/dist/src/operations/circularDependencies.d.ts +28 -0
  44. package/dist/src/operations/circularDependencies.js +201 -0
  45. package/dist/src/operations/circularDependencies.js.map +1 -0
  46. package/dist/src/operations/classHierarchyFlattener.d.ts +35 -0
  47. package/dist/src/operations/classHierarchyFlattener.js +185 -0
  48. package/dist/src/operations/classHierarchyFlattener.js.map +1 -0
  49. package/dist/src/operations/compress.d.ts +2 -2
  50. package/dist/src/operations/compress.js +154 -20
  51. package/dist/src/operations/compress.js.map +1 -1
  52. package/dist/src/operations/conceptSearch.d.ts +19 -0
  53. package/dist/src/operations/conceptSearch.js +176 -0
  54. package/dist/src/operations/conceptSearch.js.map +1 -0
  55. package/dist/src/operations/confirmationStore.d.ts +1 -1
  56. package/dist/src/operations/confirmationStore.js +1 -1
  57. package/dist/src/operations/conflictPredictor.d.ts +21 -0
  58. package/dist/src/operations/conflictPredictor.js +139 -0
  59. package/dist/src/operations/conflictPredictor.js.map +1 -0
  60. package/dist/src/operations/contextCompactor.d.ts +38 -0
  61. package/dist/src/operations/contextCompactor.js +348 -0
  62. package/dist/src/operations/contextCompactor.js.map +1 -0
  63. package/dist/src/operations/cstCodemod.d.ts +34 -0
  64. package/dist/src/operations/cstCodemod.js +205 -0
  65. package/dist/src/operations/cstCodemod.js.map +1 -0
  66. package/dist/src/operations/deadSymbols.d.ts +32 -0
  67. package/dist/src/operations/deadSymbols.js +178 -0
  68. package/dist/src/operations/deadSymbols.js.map +1 -0
  69. package/dist/src/operations/envContract.d.ts +35 -0
  70. package/dist/src/operations/envContract.js +194 -0
  71. package/dist/src/operations/envContract.js.map +1 -0
  72. package/dist/src/operations/errorAudit.d.ts +36 -0
  73. package/dist/src/operations/errorAudit.js +201 -0
  74. package/dist/src/operations/errorAudit.js.map +1 -0
  75. package/dist/src/operations/importIntegrity.d.ts +48 -0
  76. package/dist/src/operations/importIntegrity.js +395 -0
  77. package/dist/src/operations/importIntegrity.js.map +1 -0
  78. package/dist/src/operations/incrementalDiff.d.ts +47 -0
  79. package/dist/src/operations/incrementalDiff.js +216 -0
  80. package/dist/src/operations/incrementalDiff.js.map +1 -0
  81. package/dist/src/operations/lexicalScope.d.ts +51 -0
  82. package/dist/src/operations/lexicalScope.js +212 -0
  83. package/dist/src/operations/lexicalScope.js.map +1 -0
  84. package/dist/src/operations/read.d.ts +21 -0
  85. package/dist/src/operations/read.js +21 -0
  86. package/dist/src/operations/read.js.map +1 -1
  87. package/dist/src/operations/readCore.js +37 -17
  88. package/dist/src/operations/readCore.js.map +1 -1
  89. package/dist/src/operations/rename.js +35 -24
  90. package/dist/src/operations/rename.js.map +1 -1
  91. package/dist/src/operations/sqlValidator.d.ts +36 -0
  92. package/dist/src/operations/sqlValidator.js +202 -0
  93. package/dist/src/operations/sqlValidator.js.map +1 -0
  94. package/dist/src/operations/symbolQuery.js +112 -23
  95. package/dist/src/operations/symbolQuery.js.map +1 -1
  96. package/dist/src/operations/taintAnalysis.d.ts +46 -0
  97. package/dist/src/operations/taintAnalysis.js +220 -0
  98. package/dist/src/operations/taintAnalysis.js.map +1 -0
  99. package/dist/src/operations/testImpact.d.ts +31 -0
  100. package/dist/src/operations/testImpact.js +179 -0
  101. package/dist/src/operations/testImpact.js.map +1 -0
  102. package/dist/src/operations/typeInference.d.ts +54 -0
  103. package/dist/src/operations/typeInference.js +565 -0
  104. package/dist/src/operations/typeInference.js.map +1 -0
  105. package/dist/src/operations/wireContract.d.ts +34 -0
  106. package/dist/src/operations/wireContract.js +185 -0
  107. package/dist/src/operations/wireContract.js.map +1 -0
  108. package/dist/src/operations/write.d.ts +2 -2
  109. package/dist/src/operations/write.js +151 -82
  110. package/dist/src/operations/write.js.map +1 -1
  111. package/dist/src/parsers/base.d.ts +9 -1
  112. package/dist/src/parsers/base.js +61 -1
  113. package/dist/src/parsers/base.js.map +1 -1
  114. package/dist/src/parsers/csharp.d.ts +1 -1
  115. package/dist/src/parsers/csharp.js +1 -1
  116. package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
  117. package/dist/src/parsers/dartTreeSitter.js +1 -1
  118. package/dist/src/parsers/go.d.ts +1 -1
  119. package/dist/src/parsers/go.js +1 -1
  120. package/dist/src/parsers/java.d.ts +1 -1
  121. package/dist/src/parsers/java.js +1 -1
  122. package/dist/src/parsers/kotlin.d.ts +1 -1
  123. package/dist/src/parsers/kotlin.js +1 -1
  124. package/dist/src/parsers/php.d.ts +1 -1
  125. package/dist/src/parsers/php.js +1 -1
  126. package/dist/src/parsers/python.d.ts +1 -1
  127. package/dist/src/parsers/python.js +1 -1
  128. package/dist/src/parsers/registry.d.ts +1 -1
  129. package/dist/src/parsers/registry.js +1 -1
  130. package/dist/src/parsers/ruby.d.ts +1 -1
  131. package/dist/src/parsers/ruby.js +1 -1
  132. package/dist/src/parsers/rust.d.ts +1 -1
  133. package/dist/src/parsers/rust.js +1 -1
  134. package/dist/src/parsers/typescript.d.ts +1 -1
  135. package/dist/src/parsers/typescript.js +1 -1
  136. package/dist/src/tools/adminHandlers.js +8 -7
  137. package/dist/src/tools/adminHandlers.js.map +1 -1
  138. package/dist/src/tools/context.d.ts +4 -0
  139. package/dist/src/tools/context.js +14 -0
  140. package/dist/src/tools/context.js.map +1 -1
  141. package/dist/src/tools/pipeline.js +27 -1
  142. package/dist/src/tools/pipeline.js.map +1 -1
  143. package/dist/src/tools/readHandlers.d.ts +150 -0
  144. package/dist/src/tools/readHandlers.js +642 -35
  145. package/dist/src/tools/readHandlers.js.map +1 -1
  146. package/dist/src/tools/toolDefinitions.d.ts +2190 -1
  147. package/dist/src/tools/toolDefinitionsAdmin.d.ts +1 -1
  148. package/dist/src/tools/toolDefinitionsAdmin.js +12 -12
  149. package/dist/src/tools/toolDefinitionsAdmin.js.map +1 -1
  150. package/dist/src/tools/toolDefinitionsCore.d.ts +2189 -0
  151. package/dist/src/tools/toolDefinitionsCore.js +422 -42
  152. package/dist/src/tools/toolDefinitionsCore.js.map +1 -1
  153. package/dist/src/tools/writeHandlers.js +31 -17
  154. package/dist/src/tools/writeHandlers.js.map +1 -1
  155. package/dist/src/utils/appDir.d.ts +1 -1
  156. package/dist/src/utils/appDir.js +1 -1
  157. package/dist/src/utils/auditLogger.d.ts +1 -1
  158. package/dist/src/utils/auditLogger.js +1 -1
  159. package/dist/src/utils/backupManager.d.ts +1 -1
  160. package/dist/src/utils/backupManager.js +1 -1
  161. package/dist/src/utils/conceptEngine.d.ts +56 -0
  162. package/dist/src/utils/conceptEngine.js +234 -0
  163. package/dist/src/utils/conceptEngine.js.map +1 -0
  164. package/dist/src/utils/constants.d.ts +1 -1
  165. package/dist/src/utils/constants.js +2 -1
  166. package/dist/src/utils/constants.js.map +1 -1
  167. package/dist/src/utils/diff.d.ts +1 -1
  168. package/dist/src/utils/diff.js +1 -1
  169. package/dist/src/utils/fileLock.d.ts +1 -1
  170. package/dist/src/utils/fileLock.js +1 -1
  171. package/dist/src/utils/fileWalker.d.ts +1 -1
  172. package/dist/src/utils/fileWalker.js +1 -1
  173. package/dist/src/utils/fileWatcher.d.ts +1 -1
  174. package/dist/src/utils/fileWatcher.js +1 -1
  175. package/dist/src/utils/fuzzySearch.d.ts +1 -1
  176. package/dist/src/utils/fuzzySearch.js +1 -1
  177. package/dist/src/utils/gemfileParser.d.ts +1 -1
  178. package/dist/src/utils/gemfileParser.js +1 -1
  179. package/dist/src/utils/logger.d.ts +1 -1
  180. package/dist/src/utils/logger.js +1 -1
  181. package/dist/src/utils/metaprogramming.d.ts +1 -1
  182. package/dist/src/utils/metaprogramming.js +1 -1
  183. package/dist/src/utils/projectRoot.d.ts +9 -0
  184. package/dist/src/utils/projectRoot.js +94 -0
  185. package/dist/src/utils/projectRoot.js.map +1 -0
  186. package/dist/src/utils/railsRoutes.d.ts +1 -1
  187. package/dist/src/utils/railsRoutes.js +1 -1
  188. package/dist/src/utils/rateLimiter.d.ts +26 -1
  189. package/dist/src/utils/rateLimiter.js +26 -1
  190. package/dist/src/utils/rateLimiter.js.map +1 -1
  191. package/dist/src/utils/streaming.d.ts +1 -1
  192. package/dist/src/utils/streaming.js +1 -1
  193. package/dist/src/utils/telemetry.d.ts +1 -1
  194. package/dist/src/utils/telemetry.js +1 -1
  195. package/dist/src/utils/virtualSchema.d.ts +31 -0
  196. package/dist/src/utils/virtualSchema.js +367 -0
  197. package/dist/src/utils/virtualSchema.js.map +1 -0
  198. package/llms.txt +24 -6
  199. package/package.json +4 -2
  200. package/skills/code-context-logo.png +0 -0
  201. package/skills/code-context-pro/SKILL.md +149 -0
  202. package/skills/code-context-pro/references/benchmarks.md +25 -0
  203. package/skills/code-context-pro/references/decision-tree.md +32 -0
  204. package/skills/code-context-pro/references/multi-ide-setup.md +104 -0
  205. package/skills/code-context-pro.zip +0 -0
  206. package/HIRE_ME.md +0 -234
  207. package/SPONSORS.md +0 -104
  208. package/vitest.config.ts +0 -37
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Tree-sitter Native S-Expression Query DSL Engine (v5.5.0)
3
+ *
4
+ * Executes native Scheme / S-Expression AST queries against source code using
5
+ * web-tree-sitter compiled to WebAssembly. Enables complex syntactic pattern matching
6
+ * (e.g. empty catch blocks, excessive parameters, nested ternaries, unhandled promises)
7
+ * with zero regex fragility and sub-millisecond execution.
8
+ */
9
+ import * as fs from "node:fs/promises";
10
+ import * as path from "node:path";
11
+ import { existsSync } from "node:fs";
12
+ import { ParserRegistry } from "../parsers/registry.js";
13
+ import { CodeContextEngine } from "../core/engine.js";
14
+ /**
15
+ * Built-in query templates for common AST anti-patterns
16
+ */
17
+ export const PREDEFINED_QUERY_TEMPLATES = {
18
+ typescript: {
19
+ "empty-catch": `(catch_clause (statement_block) @empty_catch)`,
20
+ "excessive-params": `(function_declaration parameters: (formal_parameters (required_parameter) (required_parameter) (required_parameter) (required_parameter) (required_parameter)+ @excess_param) @fn)`,
21
+ "nested-ternary": `(ternary_expression consequence: (ternary_expression) @nested_ternary)`,
22
+ "eval-call": `(call_expression function: (identifier) @fn (#eq? @fn "eval")) @eval_call`,
23
+ "todo-comment": `((comment) @todo (#match? @todo "(?i)TODO|FIXME|BUG"))`,
24
+ "console-log": `(call_expression function: (member_expression object: (identifier) @obj property: (property_identifier) @prop) (#eq? @obj "console") (#match? @prop "log|warn|error")) @console_call`,
25
+ },
26
+ python: {
27
+ "empty-except": `(except_clause (block (pass_statement) @empty_except))`,
28
+ "excessive-params": `(function_definition parameters: (parameters (identifier) (identifier) (identifier) (identifier) (identifier)+ @excess_param) @fn)`,
29
+ "eval-call": `(call function: (identifier) @fn (#eq? @fn "eval")) @eval_call`,
30
+ "todo-comment": `((comment) @todo (#match? @todo "(?i)TODO|FIXME|BUG"))`,
31
+ "print-call": `(call function: (identifier) @fn (#eq? @fn "print")) @print_call`,
32
+ }
33
+ };
34
+ /**
35
+ * Resolves query pattern from preset name or custom S-Expression
36
+ */
37
+ function resolveQueryPattern(query, langName) {
38
+ const langKey = langName.includes("python") ? "python" : "typescript";
39
+ const templates = PREDEFINED_QUERY_TEMPLATES[langKey];
40
+ if (templates && templates[query.toLowerCase()]) {
41
+ return templates[query.toLowerCase()];
42
+ }
43
+ return query;
44
+ }
45
+ /**
46
+ * Executes a Tree-sitter S-Expression query against a file
47
+ */
48
+ export async function queryCodeAst(params) {
49
+ let tree = null;
50
+ let q = null;
51
+ try {
52
+ const rawPattern = params.query || params.template;
53
+ if (!rawPattern) {
54
+ return {
55
+ success: false,
56
+ error: "Either 'query' (S-Expression) or 'template' must be provided",
57
+ };
58
+ }
59
+ const targetPath = params.filePath || "in_memory.ts";
60
+ let content = params.code ?? params.content;
61
+ if (content === undefined) {
62
+ if (params.filePath && existsSync(params.filePath)) {
63
+ content = await fs.readFile(params.filePath, "utf-8");
64
+ }
65
+ else {
66
+ return {
67
+ success: false,
68
+ error: `File does not exist: ${params.filePath || "none"}`,
69
+ };
70
+ }
71
+ }
72
+ const ext = path.extname(targetPath).toLowerCase();
73
+ const langKey = ext === ".py" ? "python" : "typescript";
74
+ const queryPattern = resolveQueryPattern(rawPattern, langKey);
75
+ // Initialize Parser Registry
76
+ let registry = params.registry;
77
+ if (!registry) {
78
+ const engine = new CodeContextEngine();
79
+ await engine.init();
80
+ registry = new ParserRegistry(engine);
81
+ await registry.init();
82
+ }
83
+ const parser = registry.getParser(ext === ".py" ? ".py" : ".ts");
84
+ if (!parser) {
85
+ return {
86
+ success: false,
87
+ error: `No Tree-sitter AST parser available for extension: ${ext}`,
88
+ };
89
+ }
90
+ const language = parser.getLanguage?.() || parser.language;
91
+ if (!language) {
92
+ return {
93
+ success: false,
94
+ error: `Failed to retrieve Language instance from parser for ${ext}`,
95
+ };
96
+ }
97
+ tree = parser.parse(content);
98
+ try {
99
+ q = language.query(queryPattern);
100
+ }
101
+ catch (queryErr) {
102
+ return {
103
+ success: false,
104
+ error: `Invalid Tree-sitter S-Expression query syntax: ${queryErr instanceof Error ? queryErr.message : String(queryErr)}`,
105
+ };
106
+ }
107
+ const rawCaptures = q.captures(tree.rootNode);
108
+ const maxMatches = params.limit ?? params.maxMatches ?? 50;
109
+ const captures = [];
110
+ const lines = content.split("\n");
111
+ for (let i = 0; i < rawCaptures.length; i++) {
112
+ if (captures.length >= maxMatches)
113
+ break;
114
+ const cap = rawCaptures[i];
115
+ const node = cap.node;
116
+ // Filter: empty-catch should only capture blocks with 0 named children
117
+ if (cap.name === "empty_catch" && node.namedChildCount > 0) {
118
+ continue;
119
+ }
120
+ const startRow = node.startPosition.row;
121
+ const endRow = node.endPosition.row;
122
+ // Extract a 3-line preview snippet around the node
123
+ const snippetLines = lines.slice(Math.max(0, startRow - 1), Math.min(lines.length, endRow + 2));
124
+ const snippet = snippetLines.join("\n");
125
+ captures.push({
126
+ captureName: cap.name,
127
+ nodeType: node.type,
128
+ text: node.text.length > 200 ? node.text.slice(0, 200) + "..." : node.text,
129
+ startLine: startRow + 1,
130
+ endLine: endRow + 1,
131
+ startColumn: node.startPosition.column,
132
+ endColumn: node.endPosition.column,
133
+ snippet,
134
+ });
135
+ }
136
+ const report = {
137
+ filePath: params.filePath,
138
+ language: langKey,
139
+ queryPattern,
140
+ matchesCount: captures.length,
141
+ captures,
142
+ };
143
+ const footer = captures.length === 0
144
+ ? `\n\n🔍 Query returned 0 matches for pattern: "${queryPattern}".`
145
+ : `\n\n🎯 Query matched ${captures.length} AST nodes.`;
146
+ return {
147
+ success: true,
148
+ content: JSON.stringify(report, null, 2) + footer,
149
+ };
150
+ }
151
+ catch (error) {
152
+ return {
153
+ success: false,
154
+ error: `query_code_ast failed: ${error instanceof Error ? error.message : String(error)}`,
155
+ };
156
+ }
157
+ finally {
158
+ // SRE Guardrail: Strict WASM Linear Memory Disposal
159
+ try {
160
+ q?.delete();
161
+ }
162
+ catch { }
163
+ try {
164
+ tree?.delete();
165
+ }
166
+ catch { }
167
+ }
168
+ }
169
+ //# sourceMappingURL=astQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astQuery.js","sourceRoot":"","sources":["../../../src/operations/astQuery.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * AST Transform - v3.9.1
2
+ * AST Transform - v7.0.0
3
3
  * Declarative AST transformations using Tree-sitter.
4
4
  * Operates on symbol positions from the AST — no fragile text matching.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * AST Transform - v3.9.1
2
+ * AST Transform - v7.0.0
3
3
  * Declarative AST transformations using Tree-sitter.
4
4
  * Operates on symbol positions from the AST — no fragile text matching.
5
5
  */
@@ -18,10 +18,11 @@ export async function astTransform(options) {
18
18
  if (!validation.valid) {
19
19
  return { success: false, error: validation.error };
20
20
  }
21
+ let tree = null;
21
22
  try {
22
23
  const content = await fs.readFile(validation.resolvedPath, "utf-8");
23
24
  const originalHash = createHash("sha256").update(content).digest("hex");
24
- const tree = parser.parse(content);
25
+ tree = parser.parse(content);
25
26
  const symbols = parser.findSymbols(tree);
26
27
  const target = symbols.find((s) => s.name === symbolName && (!className || s.className === className));
27
28
  if (!target) {
@@ -68,6 +69,14 @@ export async function astTransform(options) {
68
69
  error: error instanceof Error ? error.message : String(error),
69
70
  };
70
71
  }
72
+ finally {
73
+ try {
74
+ tree?.delete();
75
+ }
76
+ catch {
77
+ // Safe deallocation of WASM linear memory
78
+ }
79
+ }
71
80
  }
72
81
  // ── Transform implementations ──────────────────────────────────────────
73
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"astTransform.js","sourceRoot":"","sources":["../../../src/operations/astTransform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"astTransform.js","sourceRoot":"","sources":["../../../src/operations/astTransform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Async Event-Loop Blocker Detector
3
+ * v7.0.0 Enterprise AST Intelligence
4
+ */
5
+ import { ParserRegistry } from "../parsers/registry.js";
6
+ import type { ReadResult } from "./readCore.js";
7
+ export interface BlockingCallIncident {
8
+ enclosingAsyncFunction: string;
9
+ blockingApi: string;
10
+ line: number;
11
+ column: number;
12
+ snippet: string;
13
+ severity: "CRITICAL" | "HIGH";
14
+ suggestedAlternative: string;
15
+ }
16
+ export interface AsyncBlockersReport {
17
+ filePath?: string;
18
+ asyncFunctionsScanned: number;
19
+ blockingCallsFound: number;
20
+ incidents: BlockingCallIncident[];
21
+ summary: string;
22
+ }
23
+ export interface AsyncBlockersOptions {
24
+ filePath?: string;
25
+ code?: string;
26
+ content?: string;
27
+ projectRoot?: string;
28
+ registry?: ParserRegistry;
29
+ }
30
+ /**
31
+ * Detects blocking synchronous calls inside async function scopes
32
+ */
33
+ export declare function detectAsyncEventloopBlockers(params: AsyncBlockersOptions): Promise<ReadResult>;
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Async Event-Loop Blocker Detector
3
+ * v7.0.0 Enterprise AST Intelligence
4
+ */
5
+ import * as fs from "node:fs/promises";
6
+ import * as path from "node:path";
7
+ import { existsSync } from "node:fs";
8
+ import { ParserRegistry } from "../parsers/registry.js";
9
+ import { CodeContextEngine } from "../core/engine.js";
10
+ /** Known blocking APIs that stall the event loop in Node.js / Python */
11
+ const BLOCKING_APIS = {
12
+ // Python blocking calls
13
+ "time.sleep": { severity: "CRITICAL", alternative: "Use 'await asyncio.sleep()' instead." },
14
+ "requests.get": { severity: "CRITICAL", alternative: "Use 'await httpx.AsyncClient().get()' or 'aiohttp' instead." },
15
+ "requests.post": { severity: "CRITICAL", alternative: "Use 'await httpx.AsyncClient().post()' or 'aiohttp' instead." },
16
+ "subprocess.run": { severity: "HIGH", alternative: "Use 'await asyncio.create_subprocess_exec()' instead." },
17
+ "subprocess.call": { severity: "HIGH", alternative: "Use 'await asyncio.create_subprocess_exec()' instead." },
18
+ "subprocess.check_output": { severity: "HIGH", alternative: "Use 'await asyncio.create_subprocess_exec()' instead." },
19
+ // Node.js / TS blocking calls
20
+ "fs.readFileSync": { severity: "CRITICAL", alternative: "Use 'await fs.readFile()' (from 'node:fs/promises') instead." },
21
+ "fs.writeFileSync": { severity: "CRITICAL", alternative: "Use 'await fs.writeFile()' (from 'node:fs/promises') instead." },
22
+ "fs.existsSync": { severity: "HIGH", alternative: "Use 'try { await fs.access(); } catch {}' or non-blocking check." },
23
+ "execSync": { severity: "CRITICAL", alternative: "Use 'util.promisify(exec)' or async spawn instead." },
24
+ "child_process.execSync": { severity: "CRITICAL", alternative: "Use async 'exec' or 'spawn' with await instead." },
25
+ };
26
+ /**
27
+ * Traverses an async function's AST subtree to locate calls to blocking APIs
28
+ */
29
+ function findBlockingCalls(asyncFnNode, fnName, lines) {
30
+ const incidents = [];
31
+ function walk(n) {
32
+ if (n.type === "call_expression" || n.type === "call") {
33
+ const fnExpr = n.childForFieldName("function");
34
+ const callText = fnExpr?.text || "";
35
+ for (const [api, meta] of Object.entries(BLOCKING_APIS)) {
36
+ if (callText === api || callText.endsWith("." + api) || (api.includes(".") && callText.includes(api.split(".")[1]))) {
37
+ if (callText === api || callText.endsWith(api)) {
38
+ incidents.push({
39
+ enclosingAsyncFunction: fnName,
40
+ blockingApi: callText,
41
+ line: n.startPosition.row + 1,
42
+ column: n.startPosition.column,
43
+ snippet: lines[n.startPosition.row]?.trim() || callText,
44
+ severity: meta.severity,
45
+ suggestedAlternative: meta.alternative,
46
+ });
47
+ }
48
+ }
49
+ }
50
+ }
51
+ // Do not recurse into nested async functions (they will be analyzed on their own)
52
+ for (let i = 0; i < n.namedChildCount; i++) {
53
+ const child = n.namedChild(i);
54
+ if (child) {
55
+ const isNestedAsync = child.text.startsWith("async ") ||
56
+ (child.type === "arrow_function" && child.text.startsWith("async")) ||
57
+ (child.type === "function_definition" && child.text.startsWith("async "));
58
+ if (!isNestedAsync) {
59
+ walk(child);
60
+ }
61
+ }
62
+ }
63
+ }
64
+ walk(asyncFnNode);
65
+ return incidents;
66
+ }
67
+ /**
68
+ * Detects blocking synchronous calls inside async function scopes
69
+ */
70
+ export async function detectAsyncEventloopBlockers(params) {
71
+ let tree = null;
72
+ try {
73
+ const targetPath = params.filePath || "in_memory.ts";
74
+ let content = params.code ?? params.content;
75
+ if (content === undefined) {
76
+ if (params.filePath && existsSync(params.filePath)) {
77
+ content = await fs.readFile(params.filePath, "utf-8");
78
+ }
79
+ else {
80
+ return {
81
+ success: false,
82
+ error: `File does not exist: ${params.filePath || "none"}`,
83
+ };
84
+ }
85
+ }
86
+ const ext = path.extname(targetPath).toLowerCase();
87
+ let registry = params.registry;
88
+ if (!registry) {
89
+ const engine = new CodeContextEngine();
90
+ await engine.init();
91
+ registry = new ParserRegistry(engine);
92
+ await registry.init();
93
+ }
94
+ const parser = registry.getParser(ext === ".py" ? ".py" : ".ts");
95
+ if (!parser) {
96
+ return {
97
+ success: false,
98
+ error: `No parser available for extension: ${ext}`,
99
+ };
100
+ }
101
+ tree = parser.parse(content);
102
+ const lines = content.split("\n");
103
+ const asyncFunctions = [];
104
+ function locateAsyncFunctions(n) {
105
+ // TypeScript / JavaScript
106
+ if (n.type === "function_declaration" ||
107
+ n.type === "method_definition" ||
108
+ n.type === "arrow_function") {
109
+ if (n.text.startsWith("async ") || n.text.startsWith("async(") || (n.parent?.type === "variable_declarator" && n.parent.text.includes("async "))) {
110
+ const name = n.childForFieldName("name")?.text ||
111
+ (n.parent?.type === "variable_declarator" ? n.parent.childForFieldName("name")?.text : undefined) ||
112
+ "anonymous_async";
113
+ asyncFunctions.push({ node: n, name });
114
+ }
115
+ }
116
+ // Python: async def foo(): ...
117
+ else if (n.type === "function_definition" && n.text.startsWith("async def")) {
118
+ const name = n.childForFieldName("name")?.text || "anonymous_async";
119
+ asyncFunctions.push({ node: n, name });
120
+ }
121
+ for (let i = 0; i < n.namedChildCount; i++) {
122
+ const child = n.namedChild(i);
123
+ if (child)
124
+ locateAsyncFunctions(child);
125
+ }
126
+ }
127
+ locateAsyncFunctions(tree.rootNode);
128
+ const incidents = [];
129
+ for (const fn of asyncFunctions) {
130
+ const found = findBlockingCalls(fn.node, fn.name, lines);
131
+ incidents.push(...found);
132
+ }
133
+ const report = {
134
+ filePath: params.filePath,
135
+ asyncFunctionsScanned: asyncFunctions.length,
136
+ blockingCallsFound: incidents.length,
137
+ incidents,
138
+ summary: `Scanned ${asyncFunctions.length} async functions. Found ${incidents.length} event-loop blocking call incidents.`,
139
+ };
140
+ return {
141
+ success: true,
142
+ content: JSON.stringify(report, null, 2),
143
+ };
144
+ }
145
+ catch (error) {
146
+ return {
147
+ success: false,
148
+ error: `detect_async_eventloop_blockers failed: ${error instanceof Error ? error.message : String(error)}`,
149
+ };
150
+ }
151
+ finally {
152
+ if (tree) {
153
+ try {
154
+ tree.delete();
155
+ }
156
+ catch {
157
+ // ignore
158
+ }
159
+ }
160
+ }
161
+ }
162
+ //# sourceMappingURL=asyncBlockers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncBlockers.js","sourceRoot":"","sources":["../../../src/operations/asyncBlockers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Cryptographic AST Impact & Blast Radius Report Generator (v5.0.0)
3
+ *
4
+ * Compiles a deterministic Markdown audit report + SHA-256 cryptographic digest
5
+ * analyzing changed symbols across git refs or working tree, identifying impacted
6
+ * test suites via Test Impact Analysis (TIA), and verifying architectural boundaries.
7
+ */
8
+ import type { ReadResult } from "./readCore.js";
9
+ export interface ModifiedSymbolDetail {
10
+ filePath: string;
11
+ symbolName: string;
12
+ changeType: "MODIFIED" | "ADDED" | "DELETED";
13
+ callersCount: number;
14
+ }
15
+ export interface ImpactedTestSuiteDetail {
16
+ symbolName: string;
17
+ testFile: string;
18
+ executionCommand: string;
19
+ }
20
+ export interface AstImpactReportData {
21
+ baseRef: string;
22
+ targetRef: string;
23
+ sha256Digest: string;
24
+ riskLevel: "LOW" | "MEDIUM" | "HIGH";
25
+ filesModifiedCount: number;
26
+ symbolsModifiedCount: number;
27
+ impactedTestsCount: number;
28
+ architecturalCompliance: boolean;
29
+ modifiedSymbols: ModifiedSymbolDetail[];
30
+ impactedTests: ImpactedTestSuiteDetail[];
31
+ recommendedTestCommand: string;
32
+ markdownReport: string;
33
+ }
34
+ /**
35
+ * Main generateAstImpactReport operation
36
+ */
37
+ export declare function generateAstImpactReport(params: {
38
+ baseBranch?: string;
39
+ targetBranch?: string;
40
+ projectRoot: string;
41
+ includeTests?: boolean;
42
+ includeArchitecture?: boolean;
43
+ }): Promise<ReadResult>;