mcp-code-context 3.9.2 → 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 (198) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/INSTRUCTIONS.md +15 -4
  3. package/README.md +109 -5
  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 +1 -1
  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 +1 -1
  11. package/dist/src/core/validator.js +1 -1
  12. package/dist/src/index.d.ts +4 -2
  13. package/dist/src/index.js +119 -14
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/operations/apiRoutes.d.ts +31 -0
  16. package/dist/src/operations/apiRoutes.js +170 -0
  17. package/dist/src/operations/apiRoutes.js.map +1 -0
  18. package/dist/src/operations/architectureLinter.d.ts +45 -0
  19. package/dist/src/operations/architectureLinter.js +223 -0
  20. package/dist/src/operations/architectureLinter.js.map +1 -0
  21. package/dist/src/operations/astComplexity.d.ts +38 -0
  22. package/dist/src/operations/astComplexity.js +243 -0
  23. package/dist/src/operations/astComplexity.js.map +1 -0
  24. package/dist/src/operations/astMockGenerator.d.ts +34 -0
  25. package/dist/src/operations/astMockGenerator.js +203 -0
  26. package/dist/src/operations/astMockGenerator.js.map +1 -0
  27. package/dist/src/operations/astQuery.d.ts +47 -0
  28. package/dist/src/operations/astQuery.js +169 -0
  29. package/dist/src/operations/astQuery.js.map +1 -0
  30. package/dist/src/operations/astTransform.d.ts +1 -1
  31. package/dist/src/operations/astTransform.js +11 -2
  32. package/dist/src/operations/astTransform.js.map +1 -1
  33. package/dist/src/operations/asyncBlockers.d.ts +33 -0
  34. package/dist/src/operations/asyncBlockers.js +162 -0
  35. package/dist/src/operations/asyncBlockers.js.map +1 -0
  36. package/dist/src/operations/blastRadiusReport.d.ts +43 -0
  37. package/dist/src/operations/blastRadiusReport.js +236 -0
  38. package/dist/src/operations/blastRadiusReport.js.map +1 -0
  39. package/dist/src/operations/callHierarchy.d.ts +28 -0
  40. package/dist/src/operations/callHierarchy.js +166 -0
  41. package/dist/src/operations/callHierarchy.js.map +1 -0
  42. package/dist/src/operations/circularDependencies.d.ts +28 -0
  43. package/dist/src/operations/circularDependencies.js +201 -0
  44. package/dist/src/operations/circularDependencies.js.map +1 -0
  45. package/dist/src/operations/classHierarchyFlattener.d.ts +35 -0
  46. package/dist/src/operations/classHierarchyFlattener.js +185 -0
  47. package/dist/src/operations/classHierarchyFlattener.js.map +1 -0
  48. package/dist/src/operations/compress.d.ts +2 -2
  49. package/dist/src/operations/compress.js +154 -20
  50. package/dist/src/operations/compress.js.map +1 -1
  51. package/dist/src/operations/conceptSearch.d.ts +19 -0
  52. package/dist/src/operations/conceptSearch.js +176 -0
  53. package/dist/src/operations/conceptSearch.js.map +1 -0
  54. package/dist/src/operations/confirmationStore.d.ts +1 -1
  55. package/dist/src/operations/confirmationStore.js +1 -1
  56. package/dist/src/operations/conflictPredictor.d.ts +21 -0
  57. package/dist/src/operations/conflictPredictor.js +139 -0
  58. package/dist/src/operations/conflictPredictor.js.map +1 -0
  59. package/dist/src/operations/contextCompactor.d.ts +38 -0
  60. package/dist/src/operations/contextCompactor.js +348 -0
  61. package/dist/src/operations/contextCompactor.js.map +1 -0
  62. package/dist/src/operations/cstCodemod.d.ts +34 -0
  63. package/dist/src/operations/cstCodemod.js +205 -0
  64. package/dist/src/operations/cstCodemod.js.map +1 -0
  65. package/dist/src/operations/deadSymbols.d.ts +32 -0
  66. package/dist/src/operations/deadSymbols.js +178 -0
  67. package/dist/src/operations/deadSymbols.js.map +1 -0
  68. package/dist/src/operations/envContract.d.ts +35 -0
  69. package/dist/src/operations/envContract.js +194 -0
  70. package/dist/src/operations/envContract.js.map +1 -0
  71. package/dist/src/operations/errorAudit.d.ts +36 -0
  72. package/dist/src/operations/errorAudit.js +201 -0
  73. package/dist/src/operations/errorAudit.js.map +1 -0
  74. package/dist/src/operations/importIntegrity.d.ts +48 -0
  75. package/dist/src/operations/importIntegrity.js +395 -0
  76. package/dist/src/operations/importIntegrity.js.map +1 -0
  77. package/dist/src/operations/incrementalDiff.d.ts +47 -0
  78. package/dist/src/operations/incrementalDiff.js +216 -0
  79. package/dist/src/operations/incrementalDiff.js.map +1 -0
  80. package/dist/src/operations/lexicalScope.d.ts +51 -0
  81. package/dist/src/operations/lexicalScope.js +212 -0
  82. package/dist/src/operations/lexicalScope.js.map +1 -0
  83. package/dist/src/operations/read.d.ts +21 -0
  84. package/dist/src/operations/read.js +21 -0
  85. package/dist/src/operations/read.js.map +1 -1
  86. package/dist/src/operations/readCore.js +37 -17
  87. package/dist/src/operations/readCore.js.map +1 -1
  88. package/dist/src/operations/rename.js +35 -24
  89. package/dist/src/operations/rename.js.map +1 -1
  90. package/dist/src/operations/sqlValidator.d.ts +36 -0
  91. package/dist/src/operations/sqlValidator.js +202 -0
  92. package/dist/src/operations/sqlValidator.js.map +1 -0
  93. package/dist/src/operations/symbolQuery.js +112 -23
  94. package/dist/src/operations/symbolQuery.js.map +1 -1
  95. package/dist/src/operations/taintAnalysis.d.ts +46 -0
  96. package/dist/src/operations/taintAnalysis.js +220 -0
  97. package/dist/src/operations/taintAnalysis.js.map +1 -0
  98. package/dist/src/operations/testImpact.d.ts +31 -0
  99. package/dist/src/operations/testImpact.js +179 -0
  100. package/dist/src/operations/testImpact.js.map +1 -0
  101. package/dist/src/operations/typeInference.d.ts +54 -0
  102. package/dist/src/operations/typeInference.js +565 -0
  103. package/dist/src/operations/typeInference.js.map +1 -0
  104. package/dist/src/operations/wireContract.d.ts +34 -0
  105. package/dist/src/operations/wireContract.js +185 -0
  106. package/dist/src/operations/wireContract.js.map +1 -0
  107. package/dist/src/operations/write.d.ts +2 -2
  108. package/dist/src/operations/write.js +151 -82
  109. package/dist/src/operations/write.js.map +1 -1
  110. package/dist/src/parsers/base.d.ts +9 -1
  111. package/dist/src/parsers/base.js +61 -1
  112. package/dist/src/parsers/base.js.map +1 -1
  113. package/dist/src/parsers/csharp.d.ts +1 -1
  114. package/dist/src/parsers/csharp.js +1 -1
  115. package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
  116. package/dist/src/parsers/dartTreeSitter.js +1 -1
  117. package/dist/src/parsers/go.d.ts +1 -1
  118. package/dist/src/parsers/go.js +1 -1
  119. package/dist/src/parsers/java.d.ts +1 -1
  120. package/dist/src/parsers/java.js +1 -1
  121. package/dist/src/parsers/kotlin.d.ts +1 -1
  122. package/dist/src/parsers/kotlin.js +1 -1
  123. package/dist/src/parsers/php.d.ts +1 -1
  124. package/dist/src/parsers/php.js +1 -1
  125. package/dist/src/parsers/python.d.ts +1 -1
  126. package/dist/src/parsers/python.js +1 -1
  127. package/dist/src/parsers/registry.d.ts +1 -1
  128. package/dist/src/parsers/registry.js +1 -1
  129. package/dist/src/parsers/ruby.d.ts +1 -1
  130. package/dist/src/parsers/ruby.js +1 -1
  131. package/dist/src/parsers/rust.d.ts +1 -1
  132. package/dist/src/parsers/rust.js +1 -1
  133. package/dist/src/parsers/typescript.d.ts +1 -1
  134. package/dist/src/parsers/typescript.js +1 -1
  135. package/dist/src/tools/context.d.ts +4 -0
  136. package/dist/src/tools/context.js +14 -0
  137. package/dist/src/tools/context.js.map +1 -1
  138. package/dist/src/tools/pipeline.js +26 -0
  139. package/dist/src/tools/pipeline.js.map +1 -1
  140. package/dist/src/tools/readHandlers.d.ts +150 -0
  141. package/dist/src/tools/readHandlers.js +622 -17
  142. package/dist/src/tools/readHandlers.js.map +1 -1
  143. package/dist/src/tools/toolDefinitions.d.ts +2184 -0
  144. package/dist/src/tools/toolDefinitionsCore.d.ts +2184 -0
  145. package/dist/src/tools/toolDefinitionsCore.js +381 -1
  146. package/dist/src/tools/toolDefinitionsCore.js.map +1 -1
  147. package/dist/src/tools/writeHandlers.js +3 -1
  148. package/dist/src/tools/writeHandlers.js.map +1 -1
  149. package/dist/src/utils/appDir.d.ts +1 -1
  150. package/dist/src/utils/appDir.js +1 -1
  151. package/dist/src/utils/auditLogger.d.ts +1 -1
  152. package/dist/src/utils/auditLogger.js +1 -1
  153. package/dist/src/utils/backupManager.d.ts +1 -1
  154. package/dist/src/utils/backupManager.js +1 -1
  155. package/dist/src/utils/conceptEngine.d.ts +56 -0
  156. package/dist/src/utils/conceptEngine.js +234 -0
  157. package/dist/src/utils/conceptEngine.js.map +1 -0
  158. package/dist/src/utils/constants.d.ts +1 -1
  159. package/dist/src/utils/constants.js +2 -1
  160. package/dist/src/utils/constants.js.map +1 -1
  161. package/dist/src/utils/diff.d.ts +1 -1
  162. package/dist/src/utils/diff.js +1 -1
  163. package/dist/src/utils/fileLock.d.ts +1 -1
  164. package/dist/src/utils/fileLock.js +1 -1
  165. package/dist/src/utils/fileWalker.d.ts +1 -1
  166. package/dist/src/utils/fileWalker.js +1 -1
  167. package/dist/src/utils/fileWatcher.d.ts +1 -1
  168. package/dist/src/utils/fileWatcher.js +1 -1
  169. package/dist/src/utils/fuzzySearch.d.ts +1 -1
  170. package/dist/src/utils/fuzzySearch.js +1 -1
  171. package/dist/src/utils/gemfileParser.d.ts +1 -1
  172. package/dist/src/utils/gemfileParser.js +1 -1
  173. package/dist/src/utils/logger.d.ts +1 -1
  174. package/dist/src/utils/logger.js +1 -1
  175. package/dist/src/utils/metaprogramming.d.ts +1 -1
  176. package/dist/src/utils/metaprogramming.js +1 -1
  177. package/dist/src/utils/railsRoutes.d.ts +1 -1
  178. package/dist/src/utils/railsRoutes.js +1 -1
  179. package/dist/src/utils/rateLimiter.d.ts +26 -1
  180. package/dist/src/utils/rateLimiter.js +26 -1
  181. package/dist/src/utils/rateLimiter.js.map +1 -1
  182. package/dist/src/utils/streaming.d.ts +1 -1
  183. package/dist/src/utils/streaming.js +1 -1
  184. package/dist/src/utils/telemetry.d.ts +1 -1
  185. package/dist/src/utils/telemetry.js +1 -1
  186. package/dist/src/utils/virtualSchema.d.ts +31 -0
  187. package/dist/src/utils/virtualSchema.js +367 -0
  188. package/dist/src/utils/virtualSchema.js.map +1 -0
  189. package/llms.txt +13 -3
  190. package/package.json +4 -2
  191. package/skills/code-context-logo.png +0 -0
  192. package/skills/code-context-pro/SKILL.md +149 -0
  193. package/skills/code-context-pro/references/benchmarks.md +25 -0
  194. package/skills/code-context-pro/references/decision-tree.md +32 -0
  195. package/skills/code-context-pro/references/multi-ide-setup.md +104 -0
  196. package/skills/code-context-pro.zip +0 -0
  197. package/HIRE_ME.md +0 -234
  198. package/SPONSORS.md +0 -104
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorAudit.js","sourceRoot":"","sources":["../../../src/operations/errorAudit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Import Integrity Verifier Operation
3
+ *
4
+ * Verifies that all external packages, relative modules, and imported symbols
5
+ * exist physically in the codebase or environment.
6
+ * Prevents build-breaking import hallucinations and phantom dependencies.
7
+ */
8
+ import { ParserRegistry } from "../parsers/registry.js";
9
+ import type { ReadResult } from "./readCore.js";
10
+ export interface ImportIssue {
11
+ importSource: string;
12
+ symbolName?: string;
13
+ line?: number;
14
+ type: "UNRESOLVED_PACKAGE" | "UNRESOLVED_PATH" | "MISSING_EXPORT";
15
+ message: string;
16
+ suggestion?: string;
17
+ }
18
+ export interface ResolvedImport {
19
+ importSource: string;
20
+ type: "builtin" | "external_package" | "local_file";
21
+ resolvedPath?: string;
22
+ symbols: string[];
23
+ }
24
+ export interface ImportIntegrityReport {
25
+ filePath: string;
26
+ valid: boolean;
27
+ totalImportsChecked: number;
28
+ issueCount: number;
29
+ issues: ImportIssue[];
30
+ resolvedImports: ResolvedImport[];
31
+ }
32
+ export interface RawImport {
33
+ source: string;
34
+ symbols: string[];
35
+ isDefault: boolean;
36
+ isNamespace: boolean;
37
+ line: number;
38
+ }
39
+ /**
40
+ * Parses raw import declarations from file content using regex and AST conventions
41
+ */
42
+ export declare function extractImportStatements(content: string, ext: string): RawImport[];
43
+ export declare function verifyImportIntegrity(params: {
44
+ filePath: string;
45
+ projectRoot: string;
46
+ content?: string;
47
+ registry?: ParserRegistry;
48
+ }): Promise<ReadResult>;
@@ -0,0 +1,395 @@
1
+ /**
2
+ * Import Integrity Verifier Operation
3
+ *
4
+ * Verifies that all external packages, relative modules, and imported symbols
5
+ * exist physically in the codebase or environment.
6
+ * Prevents build-breaking import hallucinations and phantom dependencies.
7
+ */
8
+ import * as fs from "node:fs/promises";
9
+ import * as path from "node:path";
10
+ import { existsSync } from "node:fs";
11
+ import { ParserRegistry } from "../parsers/registry.js";
12
+ import { CodeContextEngine } from "../core/engine.js";
13
+ const NODE_BUILTINS = new Set([
14
+ "assert", "async_hooks", "buffer", "child_process", "cluster", "console",
15
+ "constants", "crypto", "dgram", "diagnostics_channel", "dns", "domain",
16
+ "events", "fs", "fs/promises", "http", "http2", "https", "inspector",
17
+ "module", "net", "os", "path", "path/posix", "path/win32", "perf_hooks",
18
+ "process", "punycode", "querystring", "readline", "repl", "stream",
19
+ "stream/promises", "stream/consumers", "stream/web", "string_decoder",
20
+ "test", "timers", "timers/promises", "tls", "trace_events", "tty", "url",
21
+ "util", "util/types", "v8", "vm", "wasi", "worker_threads", "zlib"
22
+ ]);
23
+ const PYTHON_BUILTINS = new Set([
24
+ "os", "sys", "time", "datetime", "json", "re", "math", "random", "logging",
25
+ "typing", "collections", "itertools", "functools", "pathlib", "subprocess",
26
+ "threading", "asyncio", "urllib", "http", "dataclasses", "enum", "abc", "io",
27
+ "hashlib", "copy", "shutil", "tempfile", "glob", "pickle", "csv", "sqlite3",
28
+ "unittest", "pytest", "argparse", "inspect", "contextlib", "uuid", "base64"
29
+ ]);
30
+ /**
31
+ * Parses raw import declarations from file content using regex and AST conventions
32
+ */
33
+ export function extractImportStatements(content, ext) {
34
+ const imports = [];
35
+ const lines = content.split("\n");
36
+ if (ext === ".ts" || ext === ".tsx" || ext === ".js" || ext === ".jsx" || ext === ".mjs" || ext === ".cjs") {
37
+ for (let i = 0; i < lines.length; i++) {
38
+ const line = lines[i].trim();
39
+ if (!line || line.startsWith("//") || line.startsWith("/*"))
40
+ continue;
41
+ // 1. import { a, b as c } from 'source'
42
+ const namedMatch = line.match(/^import\s+(?:type\s+)?\{([^}]+)\}\s+from\s+['"]([^'"]+)['"]/);
43
+ if (namedMatch) {
44
+ const rawSymbols = namedMatch[1].split(",").map(s => {
45
+ const parts = s.trim().split(/\s+as\s+/);
46
+ return parts[0].trim().replace(/^type\s+/, "");
47
+ }).filter(Boolean);
48
+ imports.push({
49
+ source: namedMatch[2].trim(),
50
+ symbols: rawSymbols,
51
+ isDefault: false,
52
+ isNamespace: false,
53
+ line: i + 1,
54
+ });
55
+ continue;
56
+ }
57
+ // 2. import * as foo from 'source'
58
+ const nsMatch = line.match(/^import\s+\*\s+as\s+([a-zA-Z0-9_$]+)\s+from\s+['"]([^'"]+)['"]/);
59
+ if (nsMatch) {
60
+ imports.push({
61
+ source: nsMatch[2].trim(),
62
+ symbols: [nsMatch[1].trim()],
63
+ isDefault: false,
64
+ isNamespace: true,
65
+ line: i + 1,
66
+ });
67
+ continue;
68
+ }
69
+ // 3. import defaultExport from 'source'
70
+ const defaultMatch = line.match(/^import\s+([a-zA-Z0-9_$]+)\s+from\s+['"]([^'"]+)['"]/);
71
+ if (defaultMatch) {
72
+ imports.push({
73
+ source: defaultMatch[2].trim(),
74
+ symbols: [defaultMatch[1].trim()],
75
+ isDefault: true,
76
+ isNamespace: false,
77
+ line: i + 1,
78
+ });
79
+ continue;
80
+ }
81
+ // 4. import 'source' (side-effect import)
82
+ const sideMatch = line.match(/^import\s+['"]([^'"]+)['"]/);
83
+ if (sideMatch) {
84
+ imports.push({
85
+ source: sideMatch[1].trim(),
86
+ symbols: [],
87
+ isDefault: false,
88
+ isNamespace: false,
89
+ line: i + 1,
90
+ });
91
+ continue;
92
+ }
93
+ // 5. const { a, b } = require('source')
94
+ const reqNamed = line.match(/(?:const|let|var)\s+\{([^}]+)\}\s*=\s*require\s*\(\s*['"]([^'"]+)['"]\s*\)/);
95
+ if (reqNamed) {
96
+ const rawSymbols = reqNamed[1].split(",").map(s => s.trim().split(":")[0].trim()).filter(Boolean);
97
+ imports.push({
98
+ source: reqNamed[2].trim(),
99
+ symbols: rawSymbols,
100
+ isDefault: false,
101
+ isNamespace: false,
102
+ line: i + 1,
103
+ });
104
+ continue;
105
+ }
106
+ // 6. const foo = require('source')
107
+ const reqDefault = line.match(/(?:const|let|var)\s+([a-zA-Z0-9_$]+)\s*=\s*require\s*\(\s*['"]([^'"]+)['"]\s*\)/);
108
+ if (reqDefault) {
109
+ imports.push({
110
+ source: reqDefault[2].trim(),
111
+ symbols: [reqDefault[1].trim()],
112
+ isDefault: true,
113
+ isNamespace: false,
114
+ line: i + 1,
115
+ });
116
+ continue;
117
+ }
118
+ }
119
+ }
120
+ else if (ext === ".py") {
121
+ for (let i = 0; i < lines.length; i++) {
122
+ const line = lines[i].trim();
123
+ if (!line || line.startsWith("#"))
124
+ continue;
125
+ // from module import a, b
126
+ const pyFrom = line.match(/^from\s+([a-zA-Z0-9_.]+)\s+import\s+(.+)/);
127
+ if (pyFrom) {
128
+ const rawSymbols = pyFrom[2].split(",").map(s => s.trim().split(/\s+as\s+/)[0].trim()).filter(Boolean);
129
+ imports.push({
130
+ source: pyFrom[1].trim(),
131
+ symbols: rawSymbols,
132
+ isDefault: false,
133
+ isNamespace: false,
134
+ line: i + 1,
135
+ });
136
+ continue;
137
+ }
138
+ // import module
139
+ const pyImp = line.match(/^import\s+([a-zA-Z0-9_.]+)/);
140
+ if (pyImp) {
141
+ imports.push({
142
+ source: pyImp[1].trim(),
143
+ symbols: [],
144
+ isDefault: true,
145
+ isNamespace: false,
146
+ line: i + 1,
147
+ });
148
+ continue;
149
+ }
150
+ }
151
+ }
152
+ return imports;
153
+ }
154
+ /**
155
+ * Loads declared packages from package.json in project root
156
+ */
157
+ async function loadManifestDependencies(projectRoot) {
158
+ const declared = new Set();
159
+ const pkgPath = path.join(projectRoot, "package.json");
160
+ if (!existsSync(pkgPath))
161
+ return declared;
162
+ try {
163
+ const raw = await fs.readFile(pkgPath, "utf-8");
164
+ const json = JSON.parse(raw);
165
+ const sections = ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"];
166
+ for (const sec of sections) {
167
+ if (json[sec] && typeof json[sec] === "object") {
168
+ for (const pkg of Object.keys(json[sec])) {
169
+ declared.add(pkg);
170
+ }
171
+ }
172
+ }
173
+ }
174
+ catch {
175
+ // Ignore json parse failures
176
+ }
177
+ return declared;
178
+ }
179
+ /**
180
+ * Resolves local relative import path against filesystem candidates
181
+ */
182
+ function resolveLocalPath(fileDir, importSource, projectRoot) {
183
+ let targetBase;
184
+ if (importSource.startsWith("@/") || importSource.startsWith("~/")) {
185
+ targetBase = path.join(projectRoot, importSource.slice(2));
186
+ }
187
+ else {
188
+ targetBase = path.resolve(fileDir, importSource);
189
+ }
190
+ // Strip .js / .jsx if present for TS NodeNext ESM resolution
191
+ const noExt = targetBase.replace(/\.(js|jsx|mjs|cjs)$/, "");
192
+ // Candidate extensions
193
+ const candidates = [
194
+ targetBase,
195
+ `${noExt}.ts`,
196
+ `${noExt}.tsx`,
197
+ `${noExt}.d.ts`,
198
+ `${targetBase}.ts`,
199
+ `${targetBase}.tsx`,
200
+ `${targetBase}.d.ts`,
201
+ `${targetBase}.js`,
202
+ `${targetBase}.jsx`,
203
+ `${targetBase}.mjs`,
204
+ `${targetBase}.cjs`,
205
+ `${targetBase}.py`,
206
+ path.join(targetBase, "index.ts"),
207
+ path.join(targetBase, "index.tsx"),
208
+ path.join(targetBase, "index.js"),
209
+ path.join(targetBase, "index.jsx"),
210
+ path.join(targetBase, "__init__.py"),
211
+ path.join(noExt, "index.ts"),
212
+ path.join(noExt, "index.tsx"),
213
+ ];
214
+ for (const cand of candidates) {
215
+ if (existsSync(cand)) {
216
+ return cand;
217
+ }
218
+ }
219
+ return null;
220
+ }
221
+ /**
222
+ * Extract exported symbols from target module using AST
223
+ */
224
+ async function getExportedSymbols(targetPath, registry) {
225
+ const exported = new Set();
226
+ const ext = path.extname(targetPath);
227
+ const parser = registry.getParser(ext);
228
+ if (!parser)
229
+ return exported;
230
+ let content;
231
+ try {
232
+ content = await fs.readFile(targetPath, "utf-8");
233
+ }
234
+ catch {
235
+ return exported;
236
+ }
237
+ let tree;
238
+ try {
239
+ tree = parser.parse(content);
240
+ const symbols = parser.findSymbols(tree);
241
+ for (const sym of symbols) {
242
+ exported.add(sym.name);
243
+ }
244
+ // Secondary regex scan for TS/JS export keywords: export const foo, export function bar, export type/interface
245
+ const exportRegex = /export\s+(?:default\s+)?(?:async\s+)?(?:function|class|const|let|var|type|interface|enum)\s+([a-zA-Z0-9_$]+)/g;
246
+ let m;
247
+ while ((m = exportRegex.exec(content)) !== null) {
248
+ if (m[1])
249
+ exported.add(m[1]);
250
+ }
251
+ // export { a, b }
252
+ const exportBlockRegex = /export\s+\{([^}]+)\}/g;
253
+ while ((m = exportBlockRegex.exec(content)) !== null) {
254
+ if (m[1]) {
255
+ const items = m[1].split(",").map(i => i.trim().split(/\s+as\s+/)[0].trim());
256
+ for (const item of items) {
257
+ if (item)
258
+ exported.add(item);
259
+ }
260
+ }
261
+ }
262
+ }
263
+ catch {
264
+ // Parser fallback
265
+ }
266
+ finally {
267
+ try {
268
+ tree?.delete();
269
+ }
270
+ catch {
271
+ // Safe deallocation of WASM linear memory
272
+ }
273
+ }
274
+ return exported;
275
+ }
276
+ export async function verifyImportIntegrity(params) {
277
+ try {
278
+ const ext = path.extname(params.filePath);
279
+ let content = params.content;
280
+ if (!content) {
281
+ if (!existsSync(params.filePath)) {
282
+ return {
283
+ success: false,
284
+ error: `File does not exist: ${params.filePath}`,
285
+ };
286
+ }
287
+ content = await fs.readFile(params.filePath, "utf-8");
288
+ }
289
+ let registry = params.registry;
290
+ if (!registry) {
291
+ const engine = new CodeContextEngine();
292
+ await engine.init();
293
+ registry = new ParserRegistry(engine);
294
+ await registry.init();
295
+ }
296
+ const declaredDeps = await loadManifestDependencies(params.projectRoot);
297
+ const imports = extractImportStatements(content, ext);
298
+ const fileDir = path.dirname(params.filePath);
299
+ const issues = [];
300
+ const resolvedImports = [];
301
+ for (const imp of imports) {
302
+ const cleanSource = imp.source.startsWith("node:") ? imp.source.slice(5) : imp.source;
303
+ // 1. Built-in language module check
304
+ if (imp.source.startsWith("node:") || NODE_BUILTINS.has(cleanSource) || (ext === ".py" && PYTHON_BUILTINS.has(imp.source))) {
305
+ resolvedImports.push({
306
+ importSource: imp.source,
307
+ type: "builtin",
308
+ symbols: imp.symbols,
309
+ });
310
+ continue;
311
+ }
312
+ // 2. Relative or aliased local path check
313
+ if (imp.source.startsWith(".") || imp.source.startsWith("/") || imp.source.startsWith("@/") || imp.source.startsWith("~/")) {
314
+ const resolvedPath = resolveLocalPath(fileDir, imp.source, params.projectRoot);
315
+ if (!resolvedPath) {
316
+ issues.push({
317
+ importSource: imp.source,
318
+ line: imp.line,
319
+ type: "UNRESOLVED_PATH",
320
+ message: `Cannot resolve local module '${imp.source}' from '${path.relative(params.projectRoot, params.filePath)}'`,
321
+ suggestion: `Verify that target file exists or check path typo. Looked for candidates in: ${fileDir}`,
322
+ });
323
+ continue;
324
+ }
325
+ // Check named exports if not default or namespace import
326
+ if (!imp.isDefault && !imp.isNamespace && imp.symbols.length > 0) {
327
+ const availableExports = await getExportedSymbols(resolvedPath, registry);
328
+ for (const sym of imp.symbols) {
329
+ if (!availableExports.has(sym)) {
330
+ issues.push({
331
+ importSource: imp.source,
332
+ symbolName: sym,
333
+ line: imp.line,
334
+ type: "MISSING_EXPORT",
335
+ message: `Symbol '${sym}' is not exported by module '${imp.source}'`,
336
+ suggestion: `Available exports in '${path.basename(resolvedPath)}': [${Array.from(availableExports).slice(0, 10).join(", ")}]`,
337
+ });
338
+ }
339
+ }
340
+ }
341
+ resolvedImports.push({
342
+ importSource: imp.source,
343
+ type: "local_file",
344
+ resolvedPath: path.relative(params.projectRoot, resolvedPath).replace(/\\/g, "/"),
345
+ symbols: imp.symbols,
346
+ });
347
+ continue;
348
+ }
349
+ // 3. External npm/pip package check
350
+ const rootPkg = imp.source.startsWith("@")
351
+ ? imp.source.split("/").slice(0, 2).join("/")
352
+ : imp.source.split("/")[0];
353
+ const existsInNodeModules = existsSync(path.join(params.projectRoot, "node_modules", rootPkg));
354
+ const isDeclaredInManifest = declaredDeps.has(rootPkg);
355
+ if (!isDeclaredInManifest && !existsInNodeModules) {
356
+ issues.push({
357
+ importSource: imp.source,
358
+ line: imp.line,
359
+ type: "UNRESOLVED_PACKAGE",
360
+ message: `Package '${rootPkg}' is neither declared in package.json nor installed in node_modules`,
361
+ suggestion: `Run 'npm install ${rootPkg}' or verify if this external package was hallucinated by the agent.`,
362
+ });
363
+ }
364
+ else {
365
+ resolvedImports.push({
366
+ importSource: imp.source,
367
+ type: "external_package",
368
+ symbols: imp.symbols,
369
+ });
370
+ }
371
+ }
372
+ const report = {
373
+ filePath: path.relative(params.projectRoot, params.filePath).replace(/\\/g, "/"),
374
+ valid: issues.length === 0,
375
+ totalImportsChecked: imports.length,
376
+ issueCount: issues.length,
377
+ issues,
378
+ resolvedImports,
379
+ };
380
+ const footer = issues.length === 0
381
+ ? `\n\n✅ Import Integrity Verified: All ${imports.length} imports and symbols resolved cleanly.`
382
+ : `\n\n⚠️ Import Integrity Violation: Found ${issues.length} unresolved imports or missing symbols.`;
383
+ return {
384
+ success: true,
385
+ content: JSON.stringify(report, null, 2) + footer,
386
+ };
387
+ }
388
+ catch (error) {
389
+ return {
390
+ success: false,
391
+ error: `verify_import_integrity failed: ${error.message || String(error)}`,
392
+ };
393
+ }
394
+ }
395
+ //# sourceMappingURL=importIntegrity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importIntegrity.js","sourceRoot":"","sources":["../../../src/operations/importIntegrity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * WASM Incremental AST Re-Parsing & Subtree Diff Engine (v5.5.0)
3
+ *
4
+ * Computes sub-millisecond AST re-parsing deltas between old and new code using
5
+ * Tree-sitter's tree.edit() and incremental re-parsing. Identifies exact affected
6
+ * AST nodes, enclosing declarations, and validates syntax error integrity (hasError)
7
+ * in O(log N) time without re-parsing unaffected subtrees.
8
+ */
9
+ import { ParserRegistry } from "../parsers/registry.js";
10
+ import type { ReadResult } from "./readCore.js";
11
+ export interface AffectedAstNode {
12
+ type: string;
13
+ symbolName?: string;
14
+ enclosingScope?: string;
15
+ startLine: number;
16
+ endLine: number;
17
+ startColumn: number;
18
+ endColumn: number;
19
+ snippet: string;
20
+ }
21
+ export interface IncrementalAstDiffReport {
22
+ filePath?: string;
23
+ reparseDurationMs: number;
24
+ isSyntaxValid: boolean;
25
+ hasErrors: boolean;
26
+ errorNodesCount: number;
27
+ deltaByteRange: {
28
+ startIndex: number;
29
+ oldEndIndex: number;
30
+ newEndIndex: number;
31
+ };
32
+ affectedNode: AffectedAstNode;
33
+ summary: string;
34
+ }
35
+ export interface IncrementalAstDiffOptions {
36
+ filePath?: string;
37
+ newContent?: string;
38
+ oldContent?: string;
39
+ newCode?: string;
40
+ oldCode?: string;
41
+ projectRoot?: string;
42
+ registry?: ParserRegistry;
43
+ }
44
+ /**
45
+ * Main incrementalAstDiff operation
46
+ */
47
+ export declare function incrementalAstDiff(params: IncrementalAstDiffOptions): Promise<ReadResult>;