@yuaone/core 0.1.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 (235) hide show
  1. package/LICENSE +663 -0
  2. package/README.md +15 -0
  3. package/dist/__tests__/context-manager.test.d.ts +6 -0
  4. package/dist/__tests__/context-manager.test.d.ts.map +1 -0
  5. package/dist/__tests__/context-manager.test.js +220 -0
  6. package/dist/__tests__/context-manager.test.js.map +1 -0
  7. package/dist/__tests__/governor.test.d.ts +6 -0
  8. package/dist/__tests__/governor.test.d.ts.map +1 -0
  9. package/dist/__tests__/governor.test.js +210 -0
  10. package/dist/__tests__/governor.test.js.map +1 -0
  11. package/dist/__tests__/model-router.test.d.ts +6 -0
  12. package/dist/__tests__/model-router.test.d.ts.map +1 -0
  13. package/dist/__tests__/model-router.test.js +329 -0
  14. package/dist/__tests__/model-router.test.js.map +1 -0
  15. package/dist/agent-logger.d.ts +384 -0
  16. package/dist/agent-logger.d.ts.map +1 -0
  17. package/dist/agent-logger.js +820 -0
  18. package/dist/agent-logger.js.map +1 -0
  19. package/dist/agent-loop.d.ts +163 -0
  20. package/dist/agent-loop.d.ts.map +1 -0
  21. package/dist/agent-loop.js +609 -0
  22. package/dist/agent-loop.js.map +1 -0
  23. package/dist/agent-modes.d.ts +85 -0
  24. package/dist/agent-modes.d.ts.map +1 -0
  25. package/dist/agent-modes.js +418 -0
  26. package/dist/agent-modes.js.map +1 -0
  27. package/dist/approval.d.ts +137 -0
  28. package/dist/approval.d.ts.map +1 -0
  29. package/dist/approval.js +299 -0
  30. package/dist/approval.js.map +1 -0
  31. package/dist/async-completion-queue.d.ts +56 -0
  32. package/dist/async-completion-queue.d.ts.map +1 -0
  33. package/dist/async-completion-queue.js +77 -0
  34. package/dist/async-completion-queue.js.map +1 -0
  35. package/dist/auto-fix.d.ts +174 -0
  36. package/dist/auto-fix.d.ts.map +1 -0
  37. package/dist/auto-fix.js +319 -0
  38. package/dist/auto-fix.js.map +1 -0
  39. package/dist/codebase-context.d.ts +396 -0
  40. package/dist/codebase-context.d.ts.map +1 -0
  41. package/dist/codebase-context.js +1260 -0
  42. package/dist/codebase-context.js.map +1 -0
  43. package/dist/conflict-resolver.d.ts +191 -0
  44. package/dist/conflict-resolver.d.ts.map +1 -0
  45. package/dist/conflict-resolver.js +524 -0
  46. package/dist/conflict-resolver.js.map +1 -0
  47. package/dist/constants.d.ts +52 -0
  48. package/dist/constants.d.ts.map +1 -0
  49. package/dist/constants.js +141 -0
  50. package/dist/constants.js.map +1 -0
  51. package/dist/context-budget.d.ts +435 -0
  52. package/dist/context-budget.d.ts.map +1 -0
  53. package/dist/context-budget.js +903 -0
  54. package/dist/context-budget.js.map +1 -0
  55. package/dist/context-compressor.d.ts +143 -0
  56. package/dist/context-compressor.d.ts.map +1 -0
  57. package/dist/context-compressor.js +511 -0
  58. package/dist/context-compressor.js.map +1 -0
  59. package/dist/context-manager.d.ts +112 -0
  60. package/dist/context-manager.d.ts.map +1 -0
  61. package/dist/context-manager.js +247 -0
  62. package/dist/context-manager.js.map +1 -0
  63. package/dist/continuous-reflection.d.ts +267 -0
  64. package/dist/continuous-reflection.d.ts.map +1 -0
  65. package/dist/continuous-reflection.js +338 -0
  66. package/dist/continuous-reflection.js.map +1 -0
  67. package/dist/cross-file-refactor.d.ts +352 -0
  68. package/dist/cross-file-refactor.d.ts.map +1 -0
  69. package/dist/cross-file-refactor.js +1544 -0
  70. package/dist/cross-file-refactor.js.map +1 -0
  71. package/dist/dag-orchestrator.d.ts +138 -0
  72. package/dist/dag-orchestrator.d.ts.map +1 -0
  73. package/dist/dag-orchestrator.js +379 -0
  74. package/dist/dag-orchestrator.js.map +1 -0
  75. package/dist/debate-orchestrator.d.ts +301 -0
  76. package/dist/debate-orchestrator.d.ts.map +1 -0
  77. package/dist/debate-orchestrator.js +719 -0
  78. package/dist/debate-orchestrator.js.map +1 -0
  79. package/dist/dependency-analyzer.d.ts +113 -0
  80. package/dist/dependency-analyzer.d.ts.map +1 -0
  81. package/dist/dependency-analyzer.js +444 -0
  82. package/dist/dependency-analyzer.js.map +1 -0
  83. package/dist/design-loop.d.ts +59 -0
  84. package/dist/design-loop.d.ts.map +1 -0
  85. package/dist/design-loop.js +344 -0
  86. package/dist/design-loop.js.map +1 -0
  87. package/dist/doc-intelligence.d.ts +383 -0
  88. package/dist/doc-intelligence.d.ts.map +1 -0
  89. package/dist/doc-intelligence.js +1307 -0
  90. package/dist/doc-intelligence.js.map +1 -0
  91. package/dist/dynamic-role-generator.d.ts +76 -0
  92. package/dist/dynamic-role-generator.d.ts.map +1 -0
  93. package/dist/dynamic-role-generator.js +194 -0
  94. package/dist/dynamic-role-generator.js.map +1 -0
  95. package/dist/errors.d.ts +69 -0
  96. package/dist/errors.d.ts.map +1 -0
  97. package/dist/errors.js +102 -0
  98. package/dist/errors.js.map +1 -0
  99. package/dist/event-bus.d.ts +159 -0
  100. package/dist/event-bus.d.ts.map +1 -0
  101. package/dist/event-bus.js +305 -0
  102. package/dist/event-bus.js.map +1 -0
  103. package/dist/execution-engine.d.ts +425 -0
  104. package/dist/execution-engine.d.ts.map +1 -0
  105. package/dist/execution-engine.js +1555 -0
  106. package/dist/execution-engine.js.map +1 -0
  107. package/dist/git-intelligence.d.ts +306 -0
  108. package/dist/git-intelligence.d.ts.map +1 -0
  109. package/dist/git-intelligence.js +1099 -0
  110. package/dist/git-intelligence.js.map +1 -0
  111. package/dist/governor.d.ts +77 -0
  112. package/dist/governor.d.ts.map +1 -0
  113. package/dist/governor.js +161 -0
  114. package/dist/governor.js.map +1 -0
  115. package/dist/hierarchical-planner.d.ts +313 -0
  116. package/dist/hierarchical-planner.d.ts.map +1 -0
  117. package/dist/hierarchical-planner.js +981 -0
  118. package/dist/hierarchical-planner.js.map +1 -0
  119. package/dist/index.d.ts +121 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +123 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/intent-inference.d.ts +103 -0
  124. package/dist/intent-inference.d.ts.map +1 -0
  125. package/dist/intent-inference.js +605 -0
  126. package/dist/intent-inference.js.map +1 -0
  127. package/dist/interrupt-manager.d.ts +143 -0
  128. package/dist/interrupt-manager.d.ts.map +1 -0
  129. package/dist/interrupt-manager.js +196 -0
  130. package/dist/interrupt-manager.js.map +1 -0
  131. package/dist/kernel.d.ts +564 -0
  132. package/dist/kernel.d.ts.map +1 -0
  133. package/dist/kernel.js +1419 -0
  134. package/dist/kernel.js.map +1 -0
  135. package/dist/language-support.d.ts +232 -0
  136. package/dist/language-support.d.ts.map +1 -0
  137. package/dist/language-support.js +1134 -0
  138. package/dist/language-support.js.map +1 -0
  139. package/dist/llm-client.d.ts +82 -0
  140. package/dist/llm-client.d.ts.map +1 -0
  141. package/dist/llm-client.js +475 -0
  142. package/dist/llm-client.js.map +1 -0
  143. package/dist/mcp-client.d.ts +232 -0
  144. package/dist/mcp-client.d.ts.map +1 -0
  145. package/dist/mcp-client.js +718 -0
  146. package/dist/mcp-client.js.map +1 -0
  147. package/dist/memory-manager.d.ts +200 -0
  148. package/dist/memory-manager.d.ts.map +1 -0
  149. package/dist/memory-manager.js +568 -0
  150. package/dist/memory-manager.js.map +1 -0
  151. package/dist/memory.d.ts +87 -0
  152. package/dist/memory.d.ts.map +1 -0
  153. package/dist/memory.js +341 -0
  154. package/dist/memory.js.map +1 -0
  155. package/dist/model-router.d.ts +245 -0
  156. package/dist/model-router.d.ts.map +1 -0
  157. package/dist/model-router.js +632 -0
  158. package/dist/model-router.js.map +1 -0
  159. package/dist/parallel-executor.d.ts +125 -0
  160. package/dist/parallel-executor.d.ts.map +1 -0
  161. package/dist/parallel-executor.js +201 -0
  162. package/dist/parallel-executor.js.map +1 -0
  163. package/dist/perf-optimizer.d.ts +212 -0
  164. package/dist/perf-optimizer.d.ts.map +1 -0
  165. package/dist/perf-optimizer.js +721 -0
  166. package/dist/perf-optimizer.js.map +1 -0
  167. package/dist/persona.d.ts +305 -0
  168. package/dist/persona.d.ts.map +1 -0
  169. package/dist/persona.js +887 -0
  170. package/dist/persona.js.map +1 -0
  171. package/dist/planner.d.ts +70 -0
  172. package/dist/planner.d.ts.map +1 -0
  173. package/dist/planner.js +264 -0
  174. package/dist/planner.js.map +1 -0
  175. package/dist/qa-pipeline.d.ts +365 -0
  176. package/dist/qa-pipeline.d.ts.map +1 -0
  177. package/dist/qa-pipeline.js +1352 -0
  178. package/dist/qa-pipeline.js.map +1 -0
  179. package/dist/reasoning-adapter.d.ts +116 -0
  180. package/dist/reasoning-adapter.d.ts.map +1 -0
  181. package/dist/reasoning-adapter.js +187 -0
  182. package/dist/reasoning-adapter.js.map +1 -0
  183. package/dist/role-registry.d.ts +55 -0
  184. package/dist/role-registry.d.ts.map +1 -0
  185. package/dist/role-registry.js +192 -0
  186. package/dist/role-registry.js.map +1 -0
  187. package/dist/sandbox-tiers.d.ts +327 -0
  188. package/dist/sandbox-tiers.d.ts.map +1 -0
  189. package/dist/sandbox-tiers.js +928 -0
  190. package/dist/sandbox-tiers.js.map +1 -0
  191. package/dist/security-scanner.d.ts +222 -0
  192. package/dist/security-scanner.d.ts.map +1 -0
  193. package/dist/security-scanner.js +1129 -0
  194. package/dist/security-scanner.js.map +1 -0
  195. package/dist/security.d.ts +93 -0
  196. package/dist/security.d.ts.map +1 -0
  197. package/dist/security.js +393 -0
  198. package/dist/security.js.map +1 -0
  199. package/dist/self-reflection.d.ts +397 -0
  200. package/dist/self-reflection.d.ts.map +1 -0
  201. package/dist/self-reflection.js +908 -0
  202. package/dist/self-reflection.js.map +1 -0
  203. package/dist/session-persistence.d.ts +191 -0
  204. package/dist/session-persistence.d.ts.map +1 -0
  205. package/dist/session-persistence.js +395 -0
  206. package/dist/session-persistence.js.map +1 -0
  207. package/dist/speculative-executor.d.ts +210 -0
  208. package/dist/speculative-executor.d.ts.map +1 -0
  209. package/dist/speculative-executor.js +618 -0
  210. package/dist/speculative-executor.js.map +1 -0
  211. package/dist/state-machine.d.ts +289 -0
  212. package/dist/state-machine.d.ts.map +1 -0
  213. package/dist/state-machine.js +695 -0
  214. package/dist/state-machine.js.map +1 -0
  215. package/dist/sub-agent.d.ts +177 -0
  216. package/dist/sub-agent.d.ts.map +1 -0
  217. package/dist/sub-agent.js +303 -0
  218. package/dist/sub-agent.js.map +1 -0
  219. package/dist/system-prompt.d.ts +26 -0
  220. package/dist/system-prompt.d.ts.map +1 -0
  221. package/dist/system-prompt.js +84 -0
  222. package/dist/system-prompt.js.map +1 -0
  223. package/dist/test-intelligence.d.ts +439 -0
  224. package/dist/test-intelligence.d.ts.map +1 -0
  225. package/dist/test-intelligence.js +1165 -0
  226. package/dist/test-intelligence.js.map +1 -0
  227. package/dist/types.d.ts +632 -0
  228. package/dist/types.d.ts.map +1 -0
  229. package/dist/types.js +6 -0
  230. package/dist/types.js.map +1 -0
  231. package/dist/vector-index.d.ts +314 -0
  232. package/dist/vector-index.d.ts.map +1 -0
  233. package/dist/vector-index.js +618 -0
  234. package/dist/vector-index.js.map +1 -0
  235. package/package.json +41 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debate-orchestrator.js","sourceRoot":"","sources":["../src/debate-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @module dependency-analyzer
3
+ * @description TypeScript/JavaScript file import graph analyzer.
4
+ * Determines which files can be modified independently vs which must be modified together.
5
+ */
6
+ /** Represents a single file node in the dependency graph. */
7
+ export interface FileNode {
8
+ /** Absolute file path */
9
+ path: string;
10
+ /** Detected language (ts, tsx, js, jsx) */
11
+ language: string;
12
+ /** Exported symbol names */
13
+ exports: string[];
14
+ /** Import references */
15
+ imports: ImportRef[];
16
+ /** Estimated cyclomatic complexity */
17
+ complexity: number;
18
+ }
19
+ /** A single import reference from a file. */
20
+ export interface ImportRef {
21
+ /** The import specifier (path string) */
22
+ source: string;
23
+ /** Imported symbol names */
24
+ symbols: string[];
25
+ /** Whether this is a type-only import */
26
+ isTypeOnly: boolean;
27
+ }
28
+ /** Full dependency graph for a project. */
29
+ export interface FileDependencyGraph {
30
+ /** Map from absolute path to FileNode */
31
+ nodes: Map<string, FileNode>;
32
+ /** Map from absolute path to list of absolute paths it imports */
33
+ edges: Map<string, string[]>;
34
+ }
35
+ /** A group of files that can (or cannot) be modified in parallel. */
36
+ export interface IndependentGroup {
37
+ /** Absolute file paths in this group */
38
+ files: string[];
39
+ /** Whether files in this group can be modified in parallel */
40
+ canParallelize: boolean;
41
+ /** Human-readable reason */
42
+ reason: string;
43
+ }
44
+ /**
45
+ * Analyzes TypeScript/JavaScript import dependency graphs.
46
+ *
47
+ * Scans project directories, parses import/export statements via regex,
48
+ * and provides utilities for grouping files by independence and detecting
49
+ * circular dependencies.
50
+ */
51
+ export declare class DependencyAnalyzer {
52
+ /**
53
+ * Analyze a project directory and build an import dependency graph.
54
+ * Scans all .ts/.js/.tsx/.jsx files, parses import/export statements via regex.
55
+ *
56
+ * @param projectPath - Absolute path to the project root
57
+ * @returns The complete file dependency graph
58
+ */
59
+ analyze(projectPath: string): Promise<FileDependencyGraph>;
60
+ /**
61
+ * Given target files to modify, group them into independent sets
62
+ * that can be modified in parallel without conflicts.
63
+ *
64
+ * Two files are independent if neither imports the other (directly or transitively).
65
+ *
66
+ * @param graph - The dependency graph
67
+ * @param targetFiles - Files intended for modification
68
+ * @returns Groups of files with parallelization info
69
+ */
70
+ groupIndependentFiles(graph: FileDependencyGraph, targetFiles: string[]): IndependentGroup[];
71
+ /**
72
+ * Find all files that would be affected by changes to the given files
73
+ * (reverse dependency lookup).
74
+ *
75
+ * @param graph - The dependency graph
76
+ * @param changedFiles - Files that have been or will be changed
77
+ * @returns Absolute paths of all affected files (excluding the changed files themselves)
78
+ */
79
+ findAffectedFiles(graph: FileDependencyGraph, changedFiles: string[]): string[];
80
+ /**
81
+ * Detect strongly connected components (circular dependencies)
82
+ * using Tarjan's algorithm. Files in an SCC must be modified together.
83
+ *
84
+ * @param graph - The dependency graph
85
+ * @returns Array of SCCs (each SCC is an array of file paths). Only SCCs with 2+ files are returned.
86
+ */
87
+ findCircularDependencies(graph: FileDependencyGraph): string[][];
88
+ /**
89
+ * Recursively collect all source files under a directory,
90
+ * skipping excluded directories.
91
+ */
92
+ private collectSourceFiles;
93
+ /** Parse a single file's imports, exports, and complexity. */
94
+ private parseFile;
95
+ /** Parse all import statements from file content. */
96
+ private parseImports;
97
+ /** Parse all export declarations from file content. */
98
+ private parseExports;
99
+ /** Estimate cyclomatic complexity of file content. */
100
+ private estimateComplexity;
101
+ /**
102
+ * Resolve a relative import path to an absolute file path.
103
+ * Returns undefined for external/package imports.
104
+ */
105
+ private resolveImport;
106
+ /**
107
+ * Get transitive dependencies in a given direction.
108
+ * "forward" = files this file depends on.
109
+ * "reverse" = files that depend on this file.
110
+ */
111
+ private getTransitiveDeps;
112
+ }
113
+ //# sourceMappingURL=dependency-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-analyzer.d.ts","sourceRoot":"","sources":["../src/dependency-analyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wBAAwB;IACxB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7B,kEAAkE;IAClE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC9B;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8DAA8D;IAC9D,cAAc,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AA6CD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B;;;;;;OAMG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4BhE;;;;;;;;;OASG;IACH,qBAAqB,CACnB,KAAK,EAAE,mBAAmB,EAC1B,WAAW,EAAE,MAAM,EAAE,GACpB,gBAAgB,EAAE;IAsErB;;;;;;;OAOG;IACH,iBAAiB,CACf,KAAK,EAAE,mBAAmB,EAC1B,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE;IA2CX;;;;;;OAMG;IACH,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,EAAE,EAAE;IAqDhE;;;OAGG;YACW,kBAAkB;IAuBhC,8DAA8D;IAC9D,OAAO,CAAC,SAAS;IAejB,qDAAqD;IACrD,OAAO,CAAC,YAAY;IAkDpB,uDAAuD;IACvD,OAAO,CAAC,YAAY;IAiCpB,sDAAsD;IACtD,OAAO,CAAC,kBAAkB;IAK1B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAuCrB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CA0C1B"}
@@ -0,0 +1,444 @@
1
+ /**
2
+ * @module dependency-analyzer
3
+ * @description TypeScript/JavaScript file import graph analyzer.
4
+ * Determines which files can be modified independently vs which must be modified together.
5
+ */
6
+ import { readdir, readFile } from "node:fs/promises";
7
+ import { join, resolve, dirname, extname } from "node:path";
8
+ // ─── Constants ───
9
+ const SOURCE_EXTENSIONS = new Set([".ts", ".tsx", ".js", ".jsx"]);
10
+ const SKIP_DIRS = new Set([
11
+ "node_modules",
12
+ "dist",
13
+ ".git",
14
+ "build",
15
+ "coverage",
16
+ ".next",
17
+ ".turbo",
18
+ "__pycache__",
19
+ ]);
20
+ // ─── Regex patterns ───
21
+ // import { X, Y } from "Z" | import X from "Z" | import * as X from "Z"
22
+ const IMPORT_RE = /import\s+(?:type\s+)?(?:\{([^}]*)\}|(\w+)|\*\s+as\s+(\w+))\s+from\s+["']([^"']+)["']/g;
23
+ // import "Z" (side-effect)
24
+ const IMPORT_SIDE_EFFECT_RE = /import\s+["']([^"']+)["']/g;
25
+ // export { X } from "Z" (re-exports)
26
+ const RE_EXPORT_RE = /export\s+(?:type\s+)?\{([^}]*)\}\s+from\s+["']([^"']+)["']/g;
27
+ // require("Z")
28
+ const REQUIRE_RE = /require\s*\(\s*["']([^"']+)["']\s*\)/g;
29
+ // Named exports: export function/class/const/let/var/interface/type/enum/abstract
30
+ const EXPORT_NAMED_RE = /export\s+(?:declare\s+)?(?:abstract\s+)?(?:async\s+)?(?:function\s*\*?|class|const|let|var|interface|type|enum)\s+(\w+)/g;
31
+ // export default
32
+ const EXPORT_DEFAULT_RE = /export\s+default\s+/g;
33
+ // export { X, Y } (without "from")
34
+ const EXPORT_LIST_RE = /export\s+\{([^}]*)\}(?!\s*from)/g;
35
+ // Complexity indicators
36
+ const COMPLEXITY_RE = /\b(?:function\s+\w+|(?:async\s+)?(?:\w+\s*\([^)]*\)\s*\{)|if\s*\(|for\s*\(|while\s*\(|switch\s*\(|catch\s*\(|\?\?|&&|\|\||=>)/g;
37
+ /**
38
+ * Analyzes TypeScript/JavaScript import dependency graphs.
39
+ *
40
+ * Scans project directories, parses import/export statements via regex,
41
+ * and provides utilities for grouping files by independence and detecting
42
+ * circular dependencies.
43
+ */
44
+ export class DependencyAnalyzer {
45
+ /**
46
+ * Analyze a project directory and build an import dependency graph.
47
+ * Scans all .ts/.js/.tsx/.jsx files, parses import/export statements via regex.
48
+ *
49
+ * @param projectPath - Absolute path to the project root
50
+ * @returns The complete file dependency graph
51
+ */
52
+ async analyze(projectPath) {
53
+ const absRoot = resolve(projectPath);
54
+ const files = await this.collectSourceFiles(absRoot);
55
+ const nodes = new Map();
56
+ const edges = new Map();
57
+ // First pass: parse all files
58
+ for (const filePath of files) {
59
+ const content = await readFile(filePath, "utf-8");
60
+ const node = this.parseFile(filePath, content);
61
+ nodes.set(filePath, node);
62
+ }
63
+ // Second pass: resolve import paths and build edges
64
+ for (const [filePath, node] of nodes) {
65
+ const resolvedImports = [];
66
+ for (const imp of node.imports) {
67
+ const resolved = this.resolveImport(filePath, imp.source, files);
68
+ if (resolved) {
69
+ resolvedImports.push(resolved);
70
+ }
71
+ }
72
+ edges.set(filePath, [...new Set(resolvedImports)]);
73
+ }
74
+ return { nodes, edges };
75
+ }
76
+ /**
77
+ * Given target files to modify, group them into independent sets
78
+ * that can be modified in parallel without conflicts.
79
+ *
80
+ * Two files are independent if neither imports the other (directly or transitively).
81
+ *
82
+ * @param graph - The dependency graph
83
+ * @param targetFiles - Files intended for modification
84
+ * @returns Groups of files with parallelization info
85
+ */
86
+ groupIndependentFiles(graph, targetFiles) {
87
+ // Build transitive dependency sets (both directions) for each target file
88
+ const transitiveDeps = new Map();
89
+ for (const file of targetFiles) {
90
+ const forward = this.getTransitiveDeps(graph, file, "forward");
91
+ const reverse = this.getTransitiveDeps(graph, file, "reverse");
92
+ const all = new Set([...forward, ...reverse]);
93
+ all.delete(file);
94
+ transitiveDeps.set(file, all);
95
+ }
96
+ // Build conflict graph among target files
97
+ // Two target files conflict if one is in the other's transitive deps
98
+ const conflictAdj = new Map();
99
+ for (const f of targetFiles) {
100
+ conflictAdj.set(f, new Set());
101
+ }
102
+ for (let i = 0; i < targetFiles.length; i++) {
103
+ for (let j = i + 1; j < targetFiles.length; j++) {
104
+ const a = targetFiles[i];
105
+ const b = targetFiles[j];
106
+ const depsA = transitiveDeps.get(a);
107
+ const depsB = transitiveDeps.get(b);
108
+ if (depsA.has(b) || depsB.has(a)) {
109
+ conflictAdj.get(a).add(b);
110
+ conflictAdj.get(b).add(a);
111
+ }
112
+ }
113
+ }
114
+ // Greedy graph coloring to find independent groups
115
+ const groups = [];
116
+ const assigned = new Set();
117
+ for (const file of targetFiles) {
118
+ if (assigned.has(file))
119
+ continue;
120
+ const group = [file];
121
+ assigned.add(file);
122
+ // Try to add other unassigned files that don't conflict with any in group
123
+ for (const candidate of targetFiles) {
124
+ if (assigned.has(candidate))
125
+ continue;
126
+ const conflicts = conflictAdj.get(candidate);
127
+ const canAdd = group.every((g) => !conflicts.has(g));
128
+ if (canAdd) {
129
+ group.push(candidate);
130
+ assigned.add(candidate);
131
+ }
132
+ }
133
+ if (group.length === 1) {
134
+ groups.push({
135
+ files: group,
136
+ canParallelize: true,
137
+ reason: "Single file, no dependency conflicts",
138
+ });
139
+ }
140
+ else {
141
+ groups.push({
142
+ files: group,
143
+ canParallelize: true,
144
+ reason: `${group.length} files with no mutual import dependencies`,
145
+ });
146
+ }
147
+ }
148
+ return groups;
149
+ }
150
+ /**
151
+ * Find all files that would be affected by changes to the given files
152
+ * (reverse dependency lookup).
153
+ *
154
+ * @param graph - The dependency graph
155
+ * @param changedFiles - Files that have been or will be changed
156
+ * @returns Absolute paths of all affected files (excluding the changed files themselves)
157
+ */
158
+ findAffectedFiles(graph, changedFiles) {
159
+ const affected = new Set();
160
+ const visited = new Set();
161
+ // Build reverse edge map
162
+ const reverseEdges = new Map();
163
+ for (const [from, tos] of graph.edges) {
164
+ for (const to of tos) {
165
+ let rev = reverseEdges.get(to);
166
+ if (!rev) {
167
+ rev = [];
168
+ reverseEdges.set(to, rev);
169
+ }
170
+ rev.push(from);
171
+ }
172
+ }
173
+ // BFS from each changed file along reverse edges
174
+ const queue = [...changedFiles];
175
+ for (const f of changedFiles) {
176
+ visited.add(f);
177
+ }
178
+ while (queue.length > 0) {
179
+ const current = queue.shift();
180
+ const dependents = reverseEdges.get(current) ?? [];
181
+ for (const dep of dependents) {
182
+ if (!visited.has(dep)) {
183
+ visited.add(dep);
184
+ affected.add(dep);
185
+ queue.push(dep);
186
+ }
187
+ }
188
+ }
189
+ // Remove the changed files themselves from affected set
190
+ for (const f of changedFiles) {
191
+ affected.delete(f);
192
+ }
193
+ return [...affected];
194
+ }
195
+ /**
196
+ * Detect strongly connected components (circular dependencies)
197
+ * using Tarjan's algorithm. Files in an SCC must be modified together.
198
+ *
199
+ * @param graph - The dependency graph
200
+ * @returns Array of SCCs (each SCC is an array of file paths). Only SCCs with 2+ files are returned.
201
+ */
202
+ findCircularDependencies(graph) {
203
+ let index = 0;
204
+ const stack = [];
205
+ const onStack = new Set();
206
+ const indices = new Map();
207
+ const lowlinks = new Map();
208
+ const result = [];
209
+ const strongConnect = (v) => {
210
+ indices.set(v, index);
211
+ lowlinks.set(v, index);
212
+ index++;
213
+ stack.push(v);
214
+ onStack.add(v);
215
+ const successors = graph.edges.get(v) ?? [];
216
+ for (const w of successors) {
217
+ if (!indices.has(w)) {
218
+ strongConnect(w);
219
+ lowlinks.set(v, Math.min(lowlinks.get(v), lowlinks.get(w)));
220
+ }
221
+ else if (onStack.has(w)) {
222
+ lowlinks.set(v, Math.min(lowlinks.get(v), indices.get(w)));
223
+ }
224
+ }
225
+ // If v is a root node, pop the SCC
226
+ if (lowlinks.get(v) === indices.get(v)) {
227
+ const scc = [];
228
+ let w;
229
+ do {
230
+ w = stack.pop();
231
+ onStack.delete(w);
232
+ scc.push(w);
233
+ } while (w !== v);
234
+ // Only include SCCs with actual cycles (2+ nodes)
235
+ if (scc.length > 1) {
236
+ result.push(scc);
237
+ }
238
+ }
239
+ };
240
+ for (const node of graph.nodes.keys()) {
241
+ if (!indices.has(node)) {
242
+ strongConnect(node);
243
+ }
244
+ }
245
+ return result;
246
+ }
247
+ // ─── Private helpers ───
248
+ /**
249
+ * Recursively collect all source files under a directory,
250
+ * skipping excluded directories.
251
+ */
252
+ async collectSourceFiles(dir) {
253
+ const results = [];
254
+ let entries;
255
+ try {
256
+ entries = await readdir(dir, { withFileTypes: true });
257
+ }
258
+ catch {
259
+ return results;
260
+ }
261
+ for (const entry of entries) {
262
+ const fullPath = join(dir, entry.name);
263
+ if (entry.isDirectory()) {
264
+ if (!SKIP_DIRS.has(entry.name)) {
265
+ const sub = await this.collectSourceFiles(fullPath);
266
+ results.push(...sub);
267
+ }
268
+ }
269
+ else if (entry.isFile() && SOURCE_EXTENSIONS.has(extname(entry.name))) {
270
+ results.push(fullPath);
271
+ }
272
+ }
273
+ return results;
274
+ }
275
+ /** Parse a single file's imports, exports, and complexity. */
276
+ parseFile(filePath, content) {
277
+ const ext = extname(filePath).slice(1); // remove leading dot
278
+ const imports = this.parseImports(content);
279
+ const exports = this.parseExports(content);
280
+ const complexity = this.estimateComplexity(content);
281
+ return {
282
+ path: filePath,
283
+ language: ext,
284
+ exports,
285
+ imports,
286
+ complexity,
287
+ };
288
+ }
289
+ /** Parse all import statements from file content. */
290
+ parseImports(content) {
291
+ const refs = [];
292
+ // Standard imports: import { X } from "Y", import X from "Y", import * as X from "Y"
293
+ let match;
294
+ const importRe = new RegExp(IMPORT_RE.source, "g");
295
+ while ((match = importRe.exec(content)) !== null) {
296
+ const namedGroup = match[1]; // { X, Y }
297
+ const defaultImport = match[2]; // X
298
+ const namespaceImport = match[3]; // * as X
299
+ const source = match[4];
300
+ const symbols = [];
301
+ if (namedGroup) {
302
+ symbols.push(...namedGroup.split(",").map((s) => s.trim().split(/\s+as\s+/)[0]).filter(Boolean));
303
+ }
304
+ if (defaultImport)
305
+ symbols.push(defaultImport);
306
+ if (namespaceImport)
307
+ symbols.push(namespaceImport);
308
+ // Detect type-only: check if "type" keyword precedes the symbols
309
+ const fullMatch = match[0];
310
+ const isTypeOnly = /import\s+type\s+/.test(fullMatch);
311
+ refs.push({ source, symbols, isTypeOnly });
312
+ }
313
+ // Re-exports: export { X } from "Y"
314
+ const reExportRe = new RegExp(RE_EXPORT_RE.source, "g");
315
+ while ((match = reExportRe.exec(content)) !== null) {
316
+ const namedGroup = match[1];
317
+ const source = match[2];
318
+ const symbols = namedGroup
319
+ .split(",")
320
+ .map((s) => s.trim().split(/\s+as\s+/)[0])
321
+ .filter(Boolean);
322
+ const isTypeOnly = /export\s+type\s+\{/.test(match[0]);
323
+ refs.push({ source, symbols, isTypeOnly });
324
+ }
325
+ // CJS require
326
+ const requireRe = new RegExp(REQUIRE_RE.source, "g");
327
+ while ((match = requireRe.exec(content)) !== null) {
328
+ refs.push({ source: match[1], symbols: [], isTypeOnly: false });
329
+ }
330
+ return refs;
331
+ }
332
+ /** Parse all export declarations from file content. */
333
+ parseExports(content) {
334
+ const exports = [];
335
+ let match;
336
+ // Named exports
337
+ const namedRe = new RegExp(EXPORT_NAMED_RE.source, "g");
338
+ while ((match = namedRe.exec(content)) !== null) {
339
+ exports.push(match[1]);
340
+ }
341
+ // export default
342
+ const defaultRe = new RegExp(EXPORT_DEFAULT_RE.source, "g");
343
+ if (defaultRe.exec(content) !== null) {
344
+ exports.push("default");
345
+ }
346
+ // export { X, Y }
347
+ const listRe = new RegExp(EXPORT_LIST_RE.source, "g");
348
+ while ((match = listRe.exec(content)) !== null) {
349
+ const symbols = match[1]
350
+ .split(",")
351
+ .map((s) => {
352
+ const parts = s.trim().split(/\s+as\s+/);
353
+ return parts.length > 1 ? parts[1].trim() : parts[0].trim();
354
+ })
355
+ .filter(Boolean);
356
+ exports.push(...symbols);
357
+ }
358
+ return [...new Set(exports)];
359
+ }
360
+ /** Estimate cyclomatic complexity of file content. */
361
+ estimateComplexity(content) {
362
+ const matches = content.match(COMPLEXITY_RE);
363
+ return matches ? matches.length : 1;
364
+ }
365
+ /**
366
+ * Resolve a relative import path to an absolute file path.
367
+ * Returns undefined for external/package imports.
368
+ */
369
+ resolveImport(fromFile, importPath, knownFiles) {
370
+ // Only resolve relative imports
371
+ if (!importPath.startsWith(".")) {
372
+ return undefined;
373
+ }
374
+ const dir = dirname(fromFile);
375
+ let resolved = resolve(dir, importPath);
376
+ // Try exact match first
377
+ if (knownFiles.includes(resolved))
378
+ return resolved;
379
+ // Strip .js extension and try .ts (common in ESM TS projects)
380
+ if (resolved.endsWith(".js")) {
381
+ const tsPath = resolved.slice(0, -3) + ".ts";
382
+ if (knownFiles.includes(tsPath))
383
+ return tsPath;
384
+ const tsxPath = resolved.slice(0, -3) + ".tsx";
385
+ if (knownFiles.includes(tsxPath))
386
+ return tsxPath;
387
+ }
388
+ // Try adding extensions
389
+ for (const ext of [".ts", ".tsx", ".js", ".jsx"]) {
390
+ const withExt = resolved + ext;
391
+ if (knownFiles.includes(withExt))
392
+ return withExt;
393
+ }
394
+ // Try as directory with index file
395
+ for (const ext of [".ts", ".tsx", ".js", ".jsx"]) {
396
+ const indexPath = join(resolved, `index${ext}`);
397
+ if (knownFiles.includes(indexPath))
398
+ return indexPath;
399
+ }
400
+ return undefined;
401
+ }
402
+ /**
403
+ * Get transitive dependencies in a given direction.
404
+ * "forward" = files this file depends on.
405
+ * "reverse" = files that depend on this file.
406
+ */
407
+ getTransitiveDeps(graph, startFile, direction) {
408
+ const result = new Set();
409
+ const visited = new Set();
410
+ const queue = [startFile];
411
+ visited.add(startFile);
412
+ // Build reverse edge map if needed
413
+ let edgeMap;
414
+ if (direction === "forward") {
415
+ edgeMap = graph.edges;
416
+ }
417
+ else {
418
+ edgeMap = new Map();
419
+ for (const [from, tos] of graph.edges) {
420
+ for (const to of tos) {
421
+ let rev = edgeMap.get(to);
422
+ if (!rev) {
423
+ rev = [];
424
+ edgeMap.set(to, rev);
425
+ }
426
+ rev.push(from);
427
+ }
428
+ }
429
+ }
430
+ while (queue.length > 0) {
431
+ const current = queue.shift();
432
+ const neighbors = edgeMap.get(current) ?? [];
433
+ for (const n of neighbors) {
434
+ if (!visited.has(n)) {
435
+ visited.add(n);
436
+ result.add(n);
437
+ queue.push(n);
438
+ }
439
+ }
440
+ }
441
+ return result;
442
+ }
443
+ }
444
+ //# sourceMappingURL=dependency-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-analyzer.js","sourceRoot":"","sources":["../src/dependency-analyzer.ts"],"names":[],"mappings":"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"}