codesift-mcp 0.15.3 → 0.15.5

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 (176) hide show
  1. package/dist/cli/help.js +1 -1
  2. package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -1
  3. package/dist/cli/hooks/pre-tool-use.js +8 -5
  4. package/dist/cli/hooks/pre-tool-use.js.map +1 -1
  5. package/dist/cli/hooks/shared.d.ts +1 -1
  6. package/dist/cli/hooks/shared.d.ts.map +1 -1
  7. package/dist/cli/hooks/shared.js +30 -2
  8. package/dist/cli/hooks/shared.js.map +1 -1
  9. package/dist/cli/service.d.ts +11 -0
  10. package/dist/cli/service.d.ts.map +1 -1
  11. package/dist/cli/service.js +17 -1
  12. package/dist/cli/service.js.map +1 -1
  13. package/dist/formatters-core.d.ts +1 -0
  14. package/dist/formatters-core.d.ts.map +1 -1
  15. package/dist/formatters-core.js +10 -1
  16. package/dist/formatters-core.js.map +1 -1
  17. package/dist/instructions.d.ts +17 -0
  18. package/dist/instructions.d.ts.map +1 -1
  19. package/dist/instructions.js +35 -0
  20. package/dist/instructions.js.map +1 -1
  21. package/dist/parser/parse-cache.d.ts.map +1 -1
  22. package/dist/parser/parse-cache.js +36 -1
  23. package/dist/parser/parse-cache.js.map +1 -1
  24. package/dist/register-tool-groups/analysis.d.ts.map +1 -1
  25. package/dist/register-tool-groups/analysis.js +10 -1
  26. package/dist/register-tool-groups/analysis.js.map +1 -1
  27. package/dist/register-tool-groups/core/index.d.ts.map +1 -1
  28. package/dist/register-tool-groups/core/index.js +26 -3
  29. package/dist/register-tool-groups/core/index.js.map +1 -1
  30. package/dist/register-tool-groups/core/meta.d.ts.map +1 -1
  31. package/dist/register-tool-groups/core/meta.js +23 -1
  32. package/dist/register-tool-groups/core/meta.js.map +1 -1
  33. package/dist/register-tool-groups/core/search.d.ts +15 -0
  34. package/dist/register-tool-groups/core/search.d.ts.map +1 -1
  35. package/dist/register-tool-groups/core/search.js +60 -2
  36. package/dist/register-tool-groups/core/search.js.map +1 -1
  37. package/dist/register-tool-groups/core/symbols.d.ts.map +1 -1
  38. package/dist/register-tool-groups/core/symbols.js +13 -2
  39. package/dist/register-tool-groups/core/symbols.js.map +1 -1
  40. package/dist/register-tools/discovery.d.ts +22 -5
  41. package/dist/register-tools/discovery.d.ts.map +1 -1
  42. package/dist/register-tools/discovery.js +95 -9
  43. package/dist/register-tools/discovery.js.map +1 -1
  44. package/dist/register-tools/runtime.d.ts +8 -0
  45. package/dist/register-tools/runtime.d.ts.map +1 -1
  46. package/dist/register-tools/runtime.js +10 -0
  47. package/dist/register-tools/runtime.js.map +1 -1
  48. package/dist/register-tools.d.ts +1 -1
  49. package/dist/register-tools.d.ts.map +1 -1
  50. package/dist/register-tools.js +13 -6
  51. package/dist/register-tools.js.map +1 -1
  52. package/dist/server-helpers/repo-resolution.d.ts.map +1 -1
  53. package/dist/server-helpers/repo-resolution.js +23 -3
  54. package/dist/server-helpers/repo-resolution.js.map +1 -1
  55. package/dist/server-helpers/response-hints.d.ts +1 -4
  56. package/dist/server-helpers/response-hints.d.ts.map +1 -1
  57. package/dist/server-helpers/response-hints.js +44 -1
  58. package/dist/server-helpers/response-hints.js.map +1 -1
  59. package/dist/server-helpers.d.ts.map +1 -1
  60. package/dist/server-helpers.js +20 -0
  61. package/dist/server-helpers.js.map +1 -1
  62. package/dist/server.d.ts +1 -0
  63. package/dist/server.d.ts.map +1 -1
  64. package/dist/server.js +37 -2
  65. package/dist/server.js.map +1 -1
  66. package/dist/storage/registry.d.ts +14 -0
  67. package/dist/storage/registry.d.ts.map +1 -1
  68. package/dist/storage/registry.js +33 -6
  69. package/dist/storage/registry.js.map +1 -1
  70. package/dist/storage/usage-tracker.d.ts.map +1 -1
  71. package/dist/storage/usage-tracker.js +54 -2
  72. package/dist/storage/usage-tracker.js.map +1 -1
  73. package/dist/tools/diff-tools.d.ts.map +1 -1
  74. package/dist/tools/diff-tools.js +3 -0
  75. package/dist/tools/diff-tools.js.map +1 -1
  76. package/dist/tools/git-tree-guard.d.ts +23 -0
  77. package/dist/tools/git-tree-guard.d.ts.map +1 -0
  78. package/dist/tools/git-tree-guard.js +33 -0
  79. package/dist/tools/git-tree-guard.js.map +1 -0
  80. package/dist/tools/impact-tools.d.ts.map +1 -1
  81. package/dist/tools/impact-tools.js +2 -0
  82. package/dist/tools/impact-tools.js.map +1 -1
  83. package/dist/tools/index-tools/file-indexer.d.ts +2 -0
  84. package/dist/tools/index-tools/file-indexer.d.ts.map +1 -1
  85. package/dist/tools/index-tools/file-indexer.js +30 -3
  86. package/dist/tools/index-tools/file-indexer.js.map +1 -1
  87. package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
  88. package/dist/tools/index-tools/folder-indexer.js +54 -2
  89. package/dist/tools/index-tools/folder-indexer.js.map +1 -1
  90. package/dist/tools/index-tools/parse.d.ts +9 -0
  91. package/dist/tools/index-tools/parse.d.ts.map +1 -1
  92. package/dist/tools/index-tools/parse.js +9 -2
  93. package/dist/tools/index-tools/parse.js.map +1 -1
  94. package/dist/tools/index-tools/state.d.ts +26 -0
  95. package/dist/tools/index-tools/state.d.ts.map +1 -1
  96. package/dist/tools/index-tools/state.js +46 -0
  97. package/dist/tools/index-tools/state.js.map +1 -1
  98. package/dist/tools/index-tools/worktree-seed.d.ts +3 -0
  99. package/dist/tools/index-tools/worktree-seed.d.ts.map +1 -1
  100. package/dist/tools/index-tools/worktree-seed.js +11 -3
  101. package/dist/tools/index-tools/worktree-seed.js.map +1 -1
  102. package/dist/tools/nest-guard-tools.d.ts +8 -0
  103. package/dist/tools/nest-guard-tools.d.ts.map +1 -1
  104. package/dist/tools/nest-guard-tools.js +7 -1
  105. package/dist/tools/nest-guard-tools.js.map +1 -1
  106. package/dist/tools/nest-pipeline-tools.d.ts.map +1 -1
  107. package/dist/tools/nest-pipeline-tools.js +5 -1
  108. package/dist/tools/nest-pipeline-tools.js.map +1 -1
  109. package/dist/tools/outline-tools.d.ts +4 -1
  110. package/dist/tools/outline-tools.d.ts.map +1 -1
  111. package/dist/tools/outline-tools.js +41 -4
  112. package/dist/tools/outline-tools.js.map +1 -1
  113. package/dist/tools/review-diff/constants.d.ts +9 -0
  114. package/dist/tools/review-diff/constants.d.ts.map +1 -1
  115. package/dist/tools/review-diff/constants.js +9 -0
  116. package/dist/tools/review-diff/constants.js.map +1 -1
  117. package/dist/tools/review-diff/orchestrator.d.ts.map +1 -1
  118. package/dist/tools/review-diff/orchestrator.js +35 -2
  119. package/dist/tools/review-diff/orchestrator.js.map +1 -1
  120. package/dist/tools/review-diff/types.d.ts +5 -0
  121. package/dist/tools/review-diff/types.d.ts.map +1 -1
  122. package/dist/tools/route-tools/file-sources.d.ts.map +1 -1
  123. package/dist/tools/route-tools/file-sources.js +8 -1
  124. package/dist/tools/route-tools/file-sources.js.map +1 -1
  125. package/dist/tools/route-tools/hono.d.ts.map +1 -1
  126. package/dist/tools/route-tools/hono.js +18 -4
  127. package/dist/tools/route-tools/hono.js.map +1 -1
  128. package/dist/tools/route-tools/laravel.js +1 -1
  129. package/dist/tools/route-tools/laravel.js.map +1 -1
  130. package/dist/tools/route-tools/mermaid-call-chain.d.ts.map +1 -1
  131. package/dist/tools/route-tools/mermaid-call-chain.js +9 -1
  132. package/dist/tools/route-tools/mermaid-call-chain.js.map +1 -1
  133. package/dist/tools/route-tools/nest.js +2 -2
  134. package/dist/tools/route-tools/nest.js.map +1 -1
  135. package/dist/tools/route-tools/next-trace.d.ts.map +1 -1
  136. package/dist/tools/route-tools/next-trace.js +16 -1
  137. package/dist/tools/route-tools/next-trace.js.map +1 -1
  138. package/dist/tools/route-tools/next.d.ts.map +1 -1
  139. package/dist/tools/route-tools/next.js +10 -3
  140. package/dist/tools/route-tools/next.js.map +1 -1
  141. package/dist/tools/route-tools/route-mermaid.d.ts.map +1 -1
  142. package/dist/tools/route-tools/route-mermaid.js +7 -1
  143. package/dist/tools/route-tools/route-mermaid.js.map +1 -1
  144. package/dist/tools/route-tools/spring-kotlin.d.ts.map +1 -1
  145. package/dist/tools/route-tools/spring-kotlin.js +4 -1
  146. package/dist/tools/route-tools/spring-kotlin.js.map +1 -1
  147. package/dist/tools/route-tools/trace-route.d.ts.map +1 -1
  148. package/dist/tools/route-tools/trace-route.js +12 -4
  149. package/dist/tools/route-tools/trace-route.js.map +1 -1
  150. package/dist/tools/route-tools/yii2.d.ts.map +1 -1
  151. package/dist/tools/route-tools/yii2.js +14 -9
  152. package/dist/tools/route-tools/yii2.js.map +1 -1
  153. package/dist/tools/secret-tools.d.ts +7 -0
  154. package/dist/tools/secret-tools.d.ts.map +1 -1
  155. package/dist/tools/secret-tools.js +56 -2
  156. package/dist/tools/secret-tools.js.map +1 -1
  157. package/dist/tools/symbol-reference-tools.d.ts +17 -0
  158. package/dist/tools/symbol-reference-tools.d.ts.map +1 -1
  159. package/dist/tools/symbol-reference-tools.js +19 -0
  160. package/dist/tools/symbol-reference-tools.js.map +1 -1
  161. package/dist/tools/test-impact-tools.d.ts +3 -0
  162. package/dist/tools/test-impact-tools.d.ts.map +1 -1
  163. package/dist/tools/test-impact-tools.js +25 -3
  164. package/dist/tools/test-impact-tools.js.map +1 -1
  165. package/dist/utils/import-graph/python-php-edge-collectors.d.ts +9 -1
  166. package/dist/utils/import-graph/python-php-edge-collectors.d.ts.map +1 -1
  167. package/dist/utils/import-graph/python-php-edge-collectors.js +22 -5
  168. package/dist/utils/import-graph/python-php-edge-collectors.js.map +1 -1
  169. package/dist/utils/import-graph/source-edge-collector.d.ts.map +1 -1
  170. package/dist/utils/import-graph/source-edge-collector.js +7 -2
  171. package/dist/utils/import-graph/source-edge-collector.js.map +1 -1
  172. package/dist/utils/python-imports.d.ts +20 -0
  173. package/dist/utils/python-imports.d.ts.map +1 -1
  174. package/dist/utils/python-imports.js +52 -0
  175. package/dist/utils/python-imports.js.map +1 -1
  176. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { getCachedParse, setCachedParse } from "../../parser/parse-cache.js";
2
2
  import { getParser } from "../../parser/parser-manager.js";
3
3
  import { resolvePhpNamespace } from "../../tools/php-tools.js";
4
- import { extractPythonImports } from "../python-imports.js";
4
+ import { extractPythonImports, extractPythonImportsByRegex } from "../python-imports.js";
5
5
  import { resolvePythonImport } from "../python-import-resolver.js";
6
6
  import { extractPhpUseStatements } from "./language-imports.js";
7
7
  export async function collectPhpEdges(index, filePath, source, normalizedPaths, addEdge) {
@@ -24,18 +24,22 @@ export async function collectPhpEdges(index, filePath, source, normalizedPaths,
24
24
  }
25
25
  }
26
26
  }
27
+ /**
28
+ * Returns whether the AST path handled the file. On `false` the caller runs the regex fallback —
29
+ * previously there was none, so a parser failure deleted every import edge in the file silently.
30
+ */
27
31
  export async function collectPythonEdges(filePath, source, context, addEdge) {
28
32
  if (context.disabled || !filePath.endsWith(".py"))
29
- return;
33
+ return { astHandled: true };
30
34
  try {
31
35
  const parser = await getParser("python");
32
36
  if (!parser)
33
- return;
37
+ return { astHandled: false };
34
38
  let tree = getCachedParse("python", source);
35
39
  if (!tree) {
36
40
  tree = parser.parse(source);
37
41
  if (!tree)
38
- return;
42
+ return { astHandled: false };
39
43
  setCachedParse("python", source, tree);
40
44
  }
41
45
  for (const imported of extractPythonImports(tree)) {
@@ -47,10 +51,23 @@ export async function collectPythonEdges(filePath, source, context, addEdge) {
47
51
  });
48
52
  }
49
53
  }
54
+ return { astHandled: true };
50
55
  }
51
56
  catch (error) {
52
57
  const message = error instanceof Error ? error.message : String(error);
53
- console.warn(`[import-graph] python extraction failed for ${filePath}: ${message}`);
58
+ console.warn(`[import-graph] python extraction failed for ${filePath}: ${message} — falling back to regex`);
59
+ return { astHandled: false };
60
+ }
61
+ }
62
+ /** Regex-derived Python edges, resolved through the SAME resolver the AST path uses. */
63
+ export function collectPythonRegexEdges(filePath, source, context, addEdge) {
64
+ if (context.disabled || !filePath.endsWith(".py"))
65
+ return;
66
+ for (const imported of extractPythonImportsByRegex(source)) {
67
+ const targetFile = resolvePythonImport({ module: imported.module, level: imported.level }, filePath, context.indexedFiles, context.srcLayout);
68
+ if (targetFile) {
69
+ addEdge(filePath, targetFile, { type_only: imported.is_type_only, star_import: imported.is_star });
70
+ }
54
71
  }
55
72
  }
56
73
  //# sourceMappingURL=python-php-edge-collectors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"python-php-edge-collectors.js","sourceRoot":"","sources":["../../../src/utils/import-graph/python-php-edge-collectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python-php-edge-collectors.js","sourceRoot":"","sources":["../../../src/utils/import-graph/python-php-edge-collectors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"source-edge-collector.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/source-edge-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAElF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;CACxB;AAwCD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAef"}
1
+ {"version":3,"file":"source-edge-collector.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/source-edge-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAElF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;CACxB;AAwCD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -1,6 +1,6 @@
1
1
  import { extractKotlinImports, resolveKotlinImport } from "./language-imports.js";
2
2
  import { resolveImportPath } from "./path-map.js";
3
- import { collectPhpEdges, collectPythonEdges } from "./python-php-edge-collectors.js";
3
+ import { collectPhpEdges, collectPythonEdges, collectPythonRegexEdges } from "./python-php-edge-collectors.js";
4
4
  import { extractBareImports, extractImports } from "./source-imports.js";
5
5
  import { collectTypeScriptEdges } from "./typescript-edge-collector.js";
6
6
  import { NULL_RESOLVER } from "./workspace-alias.js";
@@ -37,6 +37,11 @@ export async function collectSourceEdges(filePath, source, context) {
37
37
  collectWorkspaceEdges(filePath, source, context.workspaceResolver, context.addEdge);
38
38
  collectKotlinEdges(filePath, source, context.kotlinFilesByBasename, context.addEdge);
39
39
  await collectPhpEdges(context.index, filePath, source, context.normalizedPaths, context.addEdge);
40
- await collectPythonEdges(filePath, source, context.python, context.addEdge);
40
+ // Python had no fallback at all: a parser failure deleted every import edge in the file and said
41
+ // so only on stderr. TypeScript above has had this shape since it was written.
42
+ const python = await collectPythonEdges(filePath, source, context.python, context.addEdge);
43
+ if (!python.astHandled) {
44
+ collectPythonRegexEdges(filePath, source, context.python, context.addEdge);
45
+ }
41
46
  }
42
47
  //# sourceMappingURL=source-edge-collector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-edge-collector.js","sourceRoot":"","sources":["../../../src/utils/import-graph/source-edge-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,aAAa,EAA+B,MAAM,sBAAsB,CAAC;AAWlF,SAAS,iBAAiB,CACxB,QAAgB,EAChB,MAAc,EACd,eAAoC,EACpC,OAAsB;IAEtB,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAChF,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAgB,EAChB,MAAc,EACd,QAAgC,EAChC,OAAsB;IAEtB,IAAI,QAAQ,KAAK,aAAa,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC7F,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAgB,EAChB,MAAc,EACd,eAAsC,EACtC,OAAsB;IAEtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO;IACtC,KAAK,MAAM,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAChE,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,MAAc,EACd,OAA0B;IAE1B,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAC7C,OAAO,CAAC,KAAK,EACb,QAAQ,EACR,MAAM,EACN,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,OAAO,CAChB,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3B,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IACD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"source-edge-collector.js","sourceRoot":"","sources":["../../../src/utils/import-graph/source-edge-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,aAAa,EAA+B,MAAM,sBAAsB,CAAC;AAWlF,SAAS,iBAAiB,CACxB,QAAgB,EAChB,MAAc,EACd,eAAoC,EACpC,OAAsB;IAEtB,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAChF,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAgB,EAChB,MAAc,EACd,QAAgC,EAChC,OAAsB;IAEtB,IAAI,QAAQ,KAAK,aAAa,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC7F,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAgB,EAChB,MAAc,EACd,eAAsC,EACtC,OAAsB;IAEtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO;IACtC,KAAK,MAAM,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAChE,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,MAAc,EACd,OAA0B;IAE1B,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAC7C,OAAO,CAAC,KAAK,EACb,QAAQ,EACR,MAAM,EACN,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,OAAO,CAChB,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3B,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IACD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,iGAAiG;IACjG,+EAA+E;IAC/E,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3F,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -25,4 +25,24 @@ export interface PythonImportRef {
25
25
  * Extract all Python imports from a parsed tree-sitter tree.
26
26
  */
27
27
  export declare function extractPythonImports(tree: TSTree): PythonImportRef[];
28
+ /**
29
+ * Regex fallback for when the tree-sitter parse is unavailable.
30
+ *
31
+ * The AST path is strictly better and stays the default — it cannot be fooled by an import written
32
+ * inside a docstring, and it knows which imports sit under `if TYPE_CHECKING:`. This exists because
33
+ * the alternative on a parser failure was **nothing at all**: `collectPythonEdges` logged a warning
34
+ * and returned, so every import edge in that file vanished from the graph with no signal. Measured
35
+ * on this machine 2026-08-19: 30 such failures, all `memory access out of bounds` from an exhausted
36
+ * WASM heap, across a reporting module and its test suite — files whose edges simply stopped
37
+ * existing for `find_circular_deps`, `detect_communities`, `impact_analysis` and `check_boundaries`.
38
+ *
39
+ * TypeScript already had this shape of fallback; Python did not.
40
+ *
41
+ * Known and accepted limits, since a fallback that pretends to be the AST is worse than one that
42
+ * admits what it is: an `import` inside a triple-quoted string is matched here and would not be by
43
+ * the AST, and `is_type_only` is always false because block structure is not tracked. Both make the
44
+ * graph slightly too CONNECTED, which is the safer direction — a missing edge hides a cycle, a
45
+ * spurious one merely adds noise a human can see.
46
+ */
47
+ export declare function extractPythonImportsByRegex(source: string): PythonImportRef[];
28
48
  //# sourceMappingURL=python-imports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"python-imports.d.ts","sourceRoot":"","sources":["../../src/utils/python-imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAkB,IAAI,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtE,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GACX,eAAe,EAAE,CAoGnB"}
1
+ {"version":3,"file":"python-imports.d.ts","sourceRoot":"","sources":["../../src/utils/python-imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAkB,IAAI,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtE,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GACX,eAAe,EAAE,CAoGnB;AAwBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAmC7E"}
@@ -114,4 +114,56 @@ function countRelativeDots(relImport) {
114
114
  }
115
115
  return dots;
116
116
  }
117
+ /**
118
+ * Regex fallback for when the tree-sitter parse is unavailable.
119
+ *
120
+ * The AST path is strictly better and stays the default — it cannot be fooled by an import written
121
+ * inside a docstring, and it knows which imports sit under `if TYPE_CHECKING:`. This exists because
122
+ * the alternative on a parser failure was **nothing at all**: `collectPythonEdges` logged a warning
123
+ * and returned, so every import edge in that file vanished from the graph with no signal. Measured
124
+ * on this machine 2026-08-19: 30 such failures, all `memory access out of bounds` from an exhausted
125
+ * WASM heap, across a reporting module and its test suite — files whose edges simply stopped
126
+ * existing for `find_circular_deps`, `detect_communities`, `impact_analysis` and `check_boundaries`.
127
+ *
128
+ * TypeScript already had this shape of fallback; Python did not.
129
+ *
130
+ * Known and accepted limits, since a fallback that pretends to be the AST is worse than one that
131
+ * admits what it is: an `import` inside a triple-quoted string is matched here and would not be by
132
+ * the AST, and `is_type_only` is always false because block structure is not tracked. Both make the
133
+ * graph slightly too CONNECTED, which is the safer direction — a missing edge hides a cycle, a
134
+ * spurious one merely adds noise a human can see.
135
+ */
136
+ export function extractPythonImportsByRegex(source) {
137
+ const imports = [];
138
+ for (const rawLine of source.split("\n")) {
139
+ const line = rawLine.replace(/#.*$/, "").trim();
140
+ if (line.length === 0)
141
+ continue;
142
+ // `from .`, `from ..pkg.mod`, `from pkg import a, b` / `import *`
143
+ const fromMatch = /^from\s+(\.*)([A-Za-z_][\w.]*)?\s+import\s+(.+)$/.exec(line);
144
+ if (fromMatch) {
145
+ const dots = fromMatch[1] ?? "";
146
+ const targets = fromMatch[3] ?? "";
147
+ imports.push({
148
+ module: fromMatch[2] ?? "",
149
+ level: dots.length,
150
+ is_type_only: false,
151
+ is_star: targets.trim().startsWith("*"),
152
+ raw: line,
153
+ });
154
+ continue;
155
+ }
156
+ // `import a.b.c`, `import a as x, b.c as y`
157
+ const importMatch = /^import\s+(.+)$/.exec(line);
158
+ if (importMatch) {
159
+ for (const part of (importMatch[1] ?? "").split(",")) {
160
+ const name = /^([A-Za-z_][\w.]*)/.exec(part.trim())?.[1];
161
+ if (name) {
162
+ imports.push({ module: name, level: 0, is_type_only: false, is_star: false, raw: line });
163
+ }
164
+ }
165
+ }
166
+ }
167
+ return imports;
168
+ }
117
169
  //# sourceMappingURL=python-imports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"python-imports.js","sourceRoot":"","sources":["../../src/utils/python-imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python-imports.js","sourceRoot":"","sources":["../../src/utils/python-imports.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codesift-mcp",
3
- "version": "0.15.3",
3
+ "version": "0.15.5",
4
4
  "description": "MCP server for code intelligence — 146 tools for symbol search, call graph, semantic search, route tracing, community detection, LSP bridge, secret detection, conversation search, and Hono framework intelligence",
5
5
  "license": "BSL-1.1",
6
6
  "author": "Greg Laskowski",