@mycodemap/mycodemap 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 (329) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/README.md +559 -0
  4. package/dist/ai/claude.d.ts +38 -0
  5. package/dist/ai/claude.d.ts.map +1 -0
  6. package/dist/ai/claude.js +169 -0
  7. package/dist/ai/claude.js.map +1 -0
  8. package/dist/ai/codex.d.ts +38 -0
  9. package/dist/ai/codex.d.ts.map +1 -0
  10. package/dist/ai/codex.js +169 -0
  11. package/dist/ai/codex.js.map +1 -0
  12. package/dist/ai/factory.d.ts +48 -0
  13. package/dist/ai/factory.d.ts.map +1 -0
  14. package/dist/ai/factory.js +95 -0
  15. package/dist/ai/factory.js.map +1 -0
  16. package/dist/ai/index.d.ts +12 -0
  17. package/dist/ai/index.d.ts.map +1 -0
  18. package/dist/ai/index.js +29 -0
  19. package/dist/ai/index.js.map +1 -0
  20. package/dist/ai/provider.d.ts +70 -0
  21. package/dist/ai/provider.d.ts.map +1 -0
  22. package/dist/ai/provider.js +31 -0
  23. package/dist/ai/provider.js.map +1 -0
  24. package/dist/ai/subagent-caller.d.ts +90 -0
  25. package/dist/ai/subagent-caller.d.ts.map +1 -0
  26. package/dist/ai/subagent-caller.js +280 -0
  27. package/dist/ai/subagent-caller.js.map +1 -0
  28. package/dist/ai/types.d.ts +70 -0
  29. package/dist/ai/types.d.ts.map +1 -0
  30. package/dist/ai/types.js +5 -0
  31. package/dist/ai/types.js.map +1 -0
  32. package/dist/cache/file-hash-cache.d.ts +76 -0
  33. package/dist/cache/file-hash-cache.d.ts.map +1 -0
  34. package/dist/cache/file-hash-cache.js +159 -0
  35. package/dist/cache/file-hash-cache.js.map +1 -0
  36. package/dist/cache/index.d.ts +151 -0
  37. package/dist/cache/index.d.ts.map +1 -0
  38. package/dist/cache/index.js +303 -0
  39. package/dist/cache/index.js.map +1 -0
  40. package/dist/cache/lru-cache.d.ts +93 -0
  41. package/dist/cache/lru-cache.d.ts.map +1 -0
  42. package/dist/cache/lru-cache.js +194 -0
  43. package/dist/cache/lru-cache.js.map +1 -0
  44. package/dist/cache/parse-cache.d.ts +68 -0
  45. package/dist/cache/parse-cache.d.ts.map +1 -0
  46. package/dist/cache/parse-cache.js +173 -0
  47. package/dist/cache/parse-cache.js.map +1 -0
  48. package/dist/cli/commands/analyze.d.ts +96 -0
  49. package/dist/cli/commands/analyze.d.ts.map +1 -0
  50. package/dist/cli/commands/analyze.js +567 -0
  51. package/dist/cli/commands/analyze.js.map +1 -0
  52. package/dist/cli/commands/ci.d.ts +25 -0
  53. package/dist/cli/commands/ci.d.ts.map +1 -0
  54. package/dist/cli/commands/ci.js +481 -0
  55. package/dist/cli/commands/ci.js.map +1 -0
  56. package/dist/cli/commands/complexity.d.ts +70 -0
  57. package/dist/cli/commands/complexity.d.ts.map +1 -0
  58. package/dist/cli/commands/complexity.js +479 -0
  59. package/dist/cli/commands/complexity.js.map +1 -0
  60. package/dist/cli/commands/cycles.d.ts +10 -0
  61. package/dist/cli/commands/cycles.d.ts.map +1 -0
  62. package/dist/cli/commands/cycles.js +202 -0
  63. package/dist/cli/commands/cycles.js.map +1 -0
  64. package/dist/cli/commands/deps.d.ts +61 -0
  65. package/dist/cli/commands/deps.d.ts.map +1 -0
  66. package/dist/cli/commands/deps.js +340 -0
  67. package/dist/cli/commands/deps.js.map +1 -0
  68. package/dist/cli/commands/generate.d.ts +8 -0
  69. package/dist/cli/commands/generate.d.ts.map +1 -0
  70. package/dist/cli/commands/generate.js +61 -0
  71. package/dist/cli/commands/generate.js.map +1 -0
  72. package/dist/cli/commands/impact.d.ts +55 -0
  73. package/dist/cli/commands/impact.d.ts.map +1 -0
  74. package/dist/cli/commands/impact.js +455 -0
  75. package/dist/cli/commands/impact.js.map +1 -0
  76. package/dist/cli/commands/init.d.ts +4 -0
  77. package/dist/cli/commands/init.d.ts.map +1 -0
  78. package/dist/cli/commands/init.js +50 -0
  79. package/dist/cli/commands/init.js.map +1 -0
  80. package/dist/cli/commands/query.d.ts +22 -0
  81. package/dist/cli/commands/query.d.ts.map +1 -0
  82. package/dist/cli/commands/query.js +718 -0
  83. package/dist/cli/commands/query.js.map +1 -0
  84. package/dist/cli/commands/watch-foreground.d.ts +9 -0
  85. package/dist/cli/commands/watch-foreground.d.ts.map +1 -0
  86. package/dist/cli/commands/watch-foreground.js +67 -0
  87. package/dist/cli/commands/watch-foreground.js.map +1 -0
  88. package/dist/cli/commands/watch.d.ts +12 -0
  89. package/dist/cli/commands/watch.d.ts.map +1 -0
  90. package/dist/cli/commands/watch.js +114 -0
  91. package/dist/cli/commands/watch.js.map +1 -0
  92. package/dist/cli/commands/workflow.d.ts +25 -0
  93. package/dist/cli/commands/workflow.d.ts.map +1 -0
  94. package/dist/cli/commands/workflow.js +488 -0
  95. package/dist/cli/commands/workflow.js.map +1 -0
  96. package/dist/cli/index.d.ts +3 -0
  97. package/dist/cli/index.d.ts.map +1 -0
  98. package/dist/cli/index.js +115 -0
  99. package/dist/cli/index.js.map +1 -0
  100. package/dist/cli/paths.d.ts +90 -0
  101. package/dist/cli/paths.d.ts.map +1 -0
  102. package/dist/cli/paths.js +136 -0
  103. package/dist/cli/paths.js.map +1 -0
  104. package/dist/cli/runtime-logger.d.ts +13 -0
  105. package/dist/cli/runtime-logger.d.ts.map +1 -0
  106. package/dist/cli/runtime-logger.js +213 -0
  107. package/dist/cli/runtime-logger.js.map +1 -0
  108. package/dist/core/analyzer.d.ts +3 -0
  109. package/dist/core/analyzer.d.ts.map +1 -0
  110. package/dist/core/analyzer.js +359 -0
  111. package/dist/core/analyzer.js.map +1 -0
  112. package/dist/core/ast-complexity-analyzer.d.ts +40 -0
  113. package/dist/core/ast-complexity-analyzer.d.ts.map +1 -0
  114. package/dist/core/ast-complexity-analyzer.js +279 -0
  115. package/dist/core/ast-complexity-analyzer.js.map +1 -0
  116. package/dist/core/global-index.d.ts +69 -0
  117. package/dist/core/global-index.d.ts.map +1 -0
  118. package/dist/core/global-index.js +388 -0
  119. package/dist/core/global-index.js.map +1 -0
  120. package/dist/generator/ai-overview.d.ts +51 -0
  121. package/dist/generator/ai-overview.d.ts.map +1 -0
  122. package/dist/generator/ai-overview.js +160 -0
  123. package/dist/generator/ai-overview.js.map +1 -0
  124. package/dist/generator/context.d.ts +5 -0
  125. package/dist/generator/context.d.ts.map +1 -0
  126. package/dist/generator/context.js +514 -0
  127. package/dist/generator/context.js.map +1 -0
  128. package/dist/generator/file-describer.d.ts +93 -0
  129. package/dist/generator/file-describer.d.ts.map +1 -0
  130. package/dist/generator/file-describer.js +375 -0
  131. package/dist/generator/file-describer.js.map +1 -0
  132. package/dist/generator/index.d.ts +8 -0
  133. package/dist/generator/index.d.ts.map +1 -0
  134. package/dist/generator/index.js +259 -0
  135. package/dist/generator/index.js.map +1 -0
  136. package/dist/index.d.ts +5 -0
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +6 -0
  139. package/dist/index.js.map +1 -0
  140. package/dist/orchestrator/adapters/ast-grep-adapter.d.ts +75 -0
  141. package/dist/orchestrator/adapters/ast-grep-adapter.d.ts.map +1 -0
  142. package/dist/orchestrator/adapters/ast-grep-adapter.js +242 -0
  143. package/dist/orchestrator/adapters/ast-grep-adapter.js.map +1 -0
  144. package/dist/orchestrator/adapters/base-adapter.d.ts +24 -0
  145. package/dist/orchestrator/adapters/base-adapter.d.ts.map +1 -0
  146. package/dist/orchestrator/adapters/base-adapter.js +2 -0
  147. package/dist/orchestrator/adapters/base-adapter.js.map +1 -0
  148. package/dist/orchestrator/adapters/codemap-adapter.d.ts +56 -0
  149. package/dist/orchestrator/adapters/codemap-adapter.d.ts.map +1 -0
  150. package/dist/orchestrator/adapters/codemap-adapter.js +163 -0
  151. package/dist/orchestrator/adapters/codemap-adapter.js.map +1 -0
  152. package/dist/orchestrator/adapters/index.d.ts +10 -0
  153. package/dist/orchestrator/adapters/index.d.ts.map +1 -0
  154. package/dist/orchestrator/adapters/index.js +3 -0
  155. package/dist/orchestrator/adapters/index.js.map +1 -0
  156. package/dist/orchestrator/ai-feed-generator.d.ts +210 -0
  157. package/dist/orchestrator/ai-feed-generator.d.ts.map +1 -0
  158. package/dist/orchestrator/ai-feed-generator.js +377 -0
  159. package/dist/orchestrator/ai-feed-generator.js.map +1 -0
  160. package/dist/orchestrator/commit-validator.d.ts +30 -0
  161. package/dist/orchestrator/commit-validator.d.ts.map +1 -0
  162. package/dist/orchestrator/commit-validator.js +87 -0
  163. package/dist/orchestrator/commit-validator.js.map +1 -0
  164. package/dist/orchestrator/confidence.d.ts +25 -0
  165. package/dist/orchestrator/confidence.d.ts.map +1 -0
  166. package/dist/orchestrator/confidence.js +138 -0
  167. package/dist/orchestrator/confidence.js.map +1 -0
  168. package/dist/orchestrator/file-header-scanner.d.ts +48 -0
  169. package/dist/orchestrator/file-header-scanner.d.ts.map +1 -0
  170. package/dist/orchestrator/file-header-scanner.js +158 -0
  171. package/dist/orchestrator/file-header-scanner.js.map +1 -0
  172. package/dist/orchestrator/git-analyzer.d.ts +192 -0
  173. package/dist/orchestrator/git-analyzer.d.ts.map +1 -0
  174. package/dist/orchestrator/git-analyzer.js +539 -0
  175. package/dist/orchestrator/git-analyzer.js.map +1 -0
  176. package/dist/orchestrator/index.d.ts +20 -0
  177. package/dist/orchestrator/index.d.ts.map +1 -0
  178. package/dist/orchestrator/index.js +16 -0
  179. package/dist/orchestrator/index.js.map +1 -0
  180. package/dist/orchestrator/intent-router.d.ts +41 -0
  181. package/dist/orchestrator/intent-router.d.ts.map +1 -0
  182. package/dist/orchestrator/intent-router.js +98 -0
  183. package/dist/orchestrator/intent-router.js.map +1 -0
  184. package/dist/orchestrator/result-fusion.d.ts +114 -0
  185. package/dist/orchestrator/result-fusion.d.ts.map +1 -0
  186. package/dist/orchestrator/result-fusion.js +332 -0
  187. package/dist/orchestrator/result-fusion.js.map +1 -0
  188. package/dist/orchestrator/test-linker.d.ts +166 -0
  189. package/dist/orchestrator/test-linker.d.ts.map +1 -0
  190. package/dist/orchestrator/test-linker.js +570 -0
  191. package/dist/orchestrator/test-linker.js.map +1 -0
  192. package/dist/orchestrator/tool-orchestrator.d.ts +108 -0
  193. package/dist/orchestrator/tool-orchestrator.d.ts.map +1 -0
  194. package/dist/orchestrator/tool-orchestrator.js +247 -0
  195. package/dist/orchestrator/tool-orchestrator.js.map +1 -0
  196. package/dist/orchestrator/types.d.ts +162 -0
  197. package/dist/orchestrator/types.d.ts.map +1 -0
  198. package/dist/orchestrator/types.js +39 -0
  199. package/dist/orchestrator/types.js.map +1 -0
  200. package/dist/orchestrator/workflow/ci-executor.d.ts +157 -0
  201. package/dist/orchestrator/workflow/ci-executor.d.ts.map +1 -0
  202. package/dist/orchestrator/workflow/ci-executor.js +423 -0
  203. package/dist/orchestrator/workflow/ci-executor.js.map +1 -0
  204. package/dist/orchestrator/workflow/config.d.ts +97 -0
  205. package/dist/orchestrator/workflow/config.d.ts.map +1 -0
  206. package/dist/orchestrator/workflow/config.js +115 -0
  207. package/dist/orchestrator/workflow/config.js.map +1 -0
  208. package/dist/orchestrator/workflow/git-analyzer.d.ts +173 -0
  209. package/dist/orchestrator/workflow/git-analyzer.d.ts.map +1 -0
  210. package/dist/orchestrator/workflow/git-analyzer.js +473 -0
  211. package/dist/orchestrator/workflow/git-analyzer.js.map +1 -0
  212. package/dist/orchestrator/workflow/index.d.ts +21 -0
  213. package/dist/orchestrator/workflow/index.d.ts.map +1 -0
  214. package/dist/orchestrator/workflow/index.js +21 -0
  215. package/dist/orchestrator/workflow/index.js.map +1 -0
  216. package/dist/orchestrator/workflow/phase-checkpoint.d.ts +38 -0
  217. package/dist/orchestrator/workflow/phase-checkpoint.d.ts.map +1 -0
  218. package/dist/orchestrator/workflow/phase-checkpoint.js +75 -0
  219. package/dist/orchestrator/workflow/phase-checkpoint.js.map +1 -0
  220. package/dist/orchestrator/workflow/phase-inheritance.d.ts +128 -0
  221. package/dist/orchestrator/workflow/phase-inheritance.d.ts.map +1 -0
  222. package/dist/orchestrator/workflow/phase-inheritance.js +266 -0
  223. package/dist/orchestrator/workflow/phase-inheritance.js.map +1 -0
  224. package/dist/orchestrator/workflow/result-fusion.d.ts +117 -0
  225. package/dist/orchestrator/workflow/result-fusion.d.ts.map +1 -0
  226. package/dist/orchestrator/workflow/result-fusion.js +246 -0
  227. package/dist/orchestrator/workflow/result-fusion.js.map +1 -0
  228. package/dist/orchestrator/workflow/templates.d.ts +116 -0
  229. package/dist/orchestrator/workflow/templates.d.ts.map +1 -0
  230. package/dist/orchestrator/workflow/templates.js +546 -0
  231. package/dist/orchestrator/workflow/templates.js.map +1 -0
  232. package/dist/orchestrator/workflow/test-linker.d.ts +152 -0
  233. package/dist/orchestrator/workflow/test-linker.d.ts.map +1 -0
  234. package/dist/orchestrator/workflow/test-linker.js +342 -0
  235. package/dist/orchestrator/workflow/test-linker.js.map +1 -0
  236. package/dist/orchestrator/workflow/types.d.ts +202 -0
  237. package/dist/orchestrator/workflow/types.d.ts.map +1 -0
  238. package/dist/orchestrator/workflow/types.js +4 -0
  239. package/dist/orchestrator/workflow/types.js.map +1 -0
  240. package/dist/orchestrator/workflow/visualizer.d.ts +56 -0
  241. package/dist/orchestrator/workflow/visualizer.d.ts.map +1 -0
  242. package/dist/orchestrator/workflow/visualizer.js +300 -0
  243. package/dist/orchestrator/workflow/visualizer.js.map +1 -0
  244. package/dist/orchestrator/workflow/workflow-context.d.ts +50 -0
  245. package/dist/orchestrator/workflow/workflow-context.d.ts.map +1 -0
  246. package/dist/orchestrator/workflow/workflow-context.js +105 -0
  247. package/dist/orchestrator/workflow/workflow-context.js.map +1 -0
  248. package/dist/orchestrator/workflow/workflow-orchestrator.d.ts +126 -0
  249. package/dist/orchestrator/workflow/workflow-orchestrator.d.ts.map +1 -0
  250. package/dist/orchestrator/workflow/workflow-orchestrator.js +489 -0
  251. package/dist/orchestrator/workflow/workflow-orchestrator.js.map +1 -0
  252. package/dist/orchestrator/workflow/workflow-persistence.d.ts +38 -0
  253. package/dist/orchestrator/workflow/workflow-persistence.d.ts.map +1 -0
  254. package/dist/orchestrator/workflow/workflow-persistence.js +166 -0
  255. package/dist/orchestrator/workflow/workflow-persistence.js.map +1 -0
  256. package/dist/parser/implementations/fast-parser.d.ts +65 -0
  257. package/dist/parser/implementations/fast-parser.d.ts.map +1 -0
  258. package/dist/parser/implementations/fast-parser.js +299 -0
  259. package/dist/parser/implementations/fast-parser.js.map +1 -0
  260. package/dist/parser/implementations/smart-parser.d.ts +220 -0
  261. package/dist/parser/implementations/smart-parser.d.ts.map +1 -0
  262. package/dist/parser/implementations/smart-parser.js +1536 -0
  263. package/dist/parser/implementations/smart-parser.js.map +1 -0
  264. package/dist/parser/implementations/tree-sitter-parser.d.ts +57 -0
  265. package/dist/parser/implementations/tree-sitter-parser.d.ts.map +1 -0
  266. package/dist/parser/implementations/tree-sitter-parser.js +375 -0
  267. package/dist/parser/implementations/tree-sitter-parser.js.map +1 -0
  268. package/dist/parser/index.d.ts +19 -0
  269. package/dist/parser/index.d.ts.map +1 -0
  270. package/dist/parser/index.js +449 -0
  271. package/dist/parser/index.js.map +1 -0
  272. package/dist/parser/interfaces/IParser.d.ts +218 -0
  273. package/dist/parser/interfaces/IParser.d.ts.map +1 -0
  274. package/dist/parser/interfaces/IParser.js +22 -0
  275. package/dist/parser/interfaces/IParser.js.map +1 -0
  276. package/dist/plugins/built-in/call-graph.d.ts +38 -0
  277. package/dist/plugins/built-in/call-graph.d.ts.map +1 -0
  278. package/dist/plugins/built-in/call-graph.js +135 -0
  279. package/dist/plugins/built-in/call-graph.js.map +1 -0
  280. package/dist/plugins/built-in/complexity-analyzer.d.ts +45 -0
  281. package/dist/plugins/built-in/complexity-analyzer.d.ts.map +1 -0
  282. package/dist/plugins/built-in/complexity-analyzer.js +155 -0
  283. package/dist/plugins/built-in/complexity-analyzer.js.map +1 -0
  284. package/dist/plugins/index.d.ts +34 -0
  285. package/dist/plugins/index.d.ts.map +1 -0
  286. package/dist/plugins/index.js +103 -0
  287. package/dist/plugins/index.js.map +1 -0
  288. package/dist/plugins/plugin-loader.d.ts +22 -0
  289. package/dist/plugins/plugin-loader.d.ts.map +1 -0
  290. package/dist/plugins/plugin-loader.js +200 -0
  291. package/dist/plugins/plugin-loader.js.map +1 -0
  292. package/dist/plugins/plugin-registry.d.ts +20 -0
  293. package/dist/plugins/plugin-registry.d.ts.map +1 -0
  294. package/dist/plugins/plugin-registry.js +143 -0
  295. package/dist/plugins/plugin-registry.js.map +1 -0
  296. package/dist/plugins/types.d.ts +72 -0
  297. package/dist/plugins/types.d.ts.map +1 -0
  298. package/dist/plugins/types.js +5 -0
  299. package/dist/plugins/types.js.map +1 -0
  300. package/dist/types/index.d.ts +373 -0
  301. package/dist/types/index.d.ts.map +1 -0
  302. package/dist/types/index.js +7 -0
  303. package/dist/types/index.js.map +1 -0
  304. package/dist/watcher/daemon.d.ts +64 -0
  305. package/dist/watcher/daemon.d.ts.map +1 -0
  306. package/dist/watcher/daemon.js +189 -0
  307. package/dist/watcher/daemon.js.map +1 -0
  308. package/dist/watcher/file-watcher.d.ts +70 -0
  309. package/dist/watcher/file-watcher.d.ts.map +1 -0
  310. package/dist/watcher/file-watcher.js +127 -0
  311. package/dist/watcher/file-watcher.js.map +1 -0
  312. package/dist/watcher/index.d.ts +5 -0
  313. package/dist/watcher/index.d.ts.map +1 -0
  314. package/dist/watcher/index.js +6 -0
  315. package/dist/watcher/index.js.map +1 -0
  316. package/dist/watcher/watch-worker.d.ts +2 -0
  317. package/dist/watcher/watch-worker.d.ts.map +1 -0
  318. package/dist/watcher/watch-worker.js +57 -0
  319. package/dist/watcher/watch-worker.js.map +1 -0
  320. package/dist/worker/index.d.ts +76 -0
  321. package/dist/worker/index.d.ts.map +1 -0
  322. package/dist/worker/index.js +155 -0
  323. package/dist/worker/index.js.map +1 -0
  324. package/dist/worker/parse-worker.d.ts +2 -0
  325. package/dist/worker/parse-worker.d.ts.map +1 -0
  326. package/dist/worker/parse-worker.js +202 -0
  327. package/dist/worker/parse-worker.js.map +1 -0
  328. package/mycodemap.config.schema.json +42 -0
  329. package/package.json +69 -0
@@ -0,0 +1,489 @@
1
+ /**
2
+ * [META] 工作流编排器
3
+ * [WHY] 串联所有模块的"粘合剂",解决阶段割裂问题
4
+ */
5
+ import { exec } from 'node:child_process';
6
+ import { promisify } from 'node:util';
7
+ import { existsSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ import { cwd } from 'node:process';
10
+ import { calculateConfidence } from '../confidence.js';
11
+ import { ToolOrchestrator } from '../tool-orchestrator.js';
12
+ import { IntentRouter } from '../intent-router.js';
13
+ import { ResultFusion } from '../result-fusion.js';
14
+ import { createCodemapAdapter } from '../adapters/codemap-adapter.js';
15
+ import { createAstGrepAdapter } from '../adapters/ast-grep-adapter.js';
16
+ import { WorkflowPersistence } from './workflow-persistence.js';
17
+ import { PhaseCheckpoint } from './phase-checkpoint.js';
18
+ import { WorkflowTemplateManager } from './templates.js';
19
+ import { WorkflowContextFactory, WorkflowContextValidator } from './workflow-context.js';
20
+ const execAsync = promisify(exec);
21
+ /**
22
+ * 路径兼容常量
23
+ */
24
+ const DEFAULT_OUTPUT_DIR_NEW = '.mycodemap';
25
+ const DEFAULT_OUTPUT_DIR_OLD = '.codemap';
26
+ /**
27
+ * 解析工作流目录路径
28
+ */
29
+ function resolveWorkflowDir() {
30
+ const rootDir = cwd();
31
+ const newPath = join(rootDir, DEFAULT_OUTPUT_DIR_NEW, 'workflow');
32
+ if (existsSync(newPath) || !existsSync(join(rootDir, DEFAULT_OUTPUT_DIR_OLD, 'workflow'))) {
33
+ return join(DEFAULT_OUTPUT_DIR_NEW, 'workflow');
34
+ }
35
+ return join(DEFAULT_OUTPUT_DIR_OLD, 'workflow');
36
+ }
37
+ /**
38
+ * 工作流编排器类
39
+ */
40
+ export class WorkflowOrchestrator {
41
+ context = null;
42
+ phaseDefinitions;
43
+ persistence;
44
+ phaseCheckpoint;
45
+ toolOrchestrator;
46
+ intentRouter;
47
+ resultFusion;
48
+ templateManager;
49
+ constructor() {
50
+ this.phaseDefinitions = this.initializePhaseDefinitions();
51
+ this.persistence = new WorkflowPersistence();
52
+ this.phaseCheckpoint = new PhaseCheckpoint();
53
+ this.toolOrchestrator = new ToolOrchestrator();
54
+ this.intentRouter = new IntentRouter();
55
+ this.resultFusion = new ResultFusion();
56
+ this.templateManager = new WorkflowTemplateManager();
57
+ // 注册工具适配器
58
+ this.registerAdapters();
59
+ }
60
+ /**
61
+ * 注册工具适配器
62
+ */
63
+ registerAdapters() {
64
+ // 注册 CodeMap 适配器
65
+ this.toolOrchestrator.registerAdapter(createCodemapAdapter());
66
+ // 注册 ast-grep 适配器(权重 1.0)
67
+ this.toolOrchestrator.registerAdapter(createAstGrepAdapter());
68
+ }
69
+ /**
70
+ * 启动新的工作流
71
+ */
72
+ async start(task, options = {}) {
73
+ this.phaseDefinitions = await this.resolvePhaseDefinitions(options.template);
74
+ this.context = WorkflowContextFactory.create(task);
75
+ this.context.currentPhase = this.getFirstPhase(this.phaseDefinitions);
76
+ if (options.template) {
77
+ this.context.templateName = options.template;
78
+ }
79
+ // 保存初始状态
80
+ await this.persistence.save(this.context);
81
+ return this.context;
82
+ }
83
+ /**
84
+ * 执行当前阶段
85
+ */
86
+ async executeCurrentPhase(analyzeArgs) {
87
+ if (!this.context) {
88
+ throw new Error('No active workflow. Call start() first.');
89
+ }
90
+ const phase = this.context.currentPhase;
91
+ const definition = this.phaseDefinitions.get(phase);
92
+ if (!definition) {
93
+ throw new Error(`Unknown phase: ${phase}`);
94
+ }
95
+ // 更新状态为 running
96
+ this.context.phaseStatus = 'running';
97
+ this.context.updatedAt = new Date();
98
+ await this.persistence.save(this.context);
99
+ // 按阶段执行方式运行
100
+ const results = await this.runPhase(definition, analyzeArgs);
101
+ // 计算置信度(仅 analyze 阶段)
102
+ const confidence = this.calculatePhaseConfidence(results, definition);
103
+ // 保存产物
104
+ const artifacts = {
105
+ phase,
106
+ results,
107
+ confidence,
108
+ metadata: {},
109
+ createdAt: new Date()
110
+ };
111
+ this.context.artifacts.set(phase, artifacts);
112
+ this.context.cachedResults[phase] = results;
113
+ // 更新状态为 completed
114
+ this.context.phaseStatus = 'completed';
115
+ this.context.updatedAt = new Date();
116
+ await this.persistence.save(this.context);
117
+ const canProceed = this.checkProceedCondition(confidence, definition);
118
+ return { artifacts, confidence, canProceed };
119
+ }
120
+ /**
121
+ * 计算阶段置信度
122
+ */
123
+ calculatePhaseConfidence(results, definition) {
124
+ if (definition.action === 'analyze' && definition.analyzeIntent) {
125
+ return calculateConfidence(results, definition.analyzeIntent);
126
+ }
127
+ return { score: 1, level: 'high', reasons: ['non-analyze phase'] };
128
+ }
129
+ /**
130
+ * 运行阶段
131
+ */
132
+ async runPhase(definition, analyzeArgs) {
133
+ if (definition.action === 'analyze' && definition.analyzeIntent) {
134
+ return this.runAnalysis(definition.analyzeIntent, analyzeArgs);
135
+ }
136
+ if (definition.action === 'ci' && definition.ciCommand) {
137
+ await this.runCICommand(definition.ciCommand);
138
+ return [];
139
+ }
140
+ // manual 阶段不执行任何操作
141
+ return [];
142
+ }
143
+ /**
144
+ * 运行分析
145
+ *
146
+ * 集成 ToolOrchestrator 和 ResultFusion 执行真实的分析
147
+ */
148
+ async runAnalysis(intent, analyzeArgs) {
149
+ try {
150
+ // 1. 使用 IntentRouter 将参数转换为 CodemapIntent
151
+ const mergedArgs = {
152
+ ...analyzeArgs,
153
+ intent: intent
154
+ };
155
+ const codemapIntent = this.intentRouter.route(mergedArgs);
156
+ console.log(`Running analysis with intent: ${intent}, targets: ${codemapIntent.targets.join(', ')}`);
157
+ // 2. 并行执行多个工具
158
+ const tools = this.selectTools(codemapIntent);
159
+ const resultsByTool = await this.toolOrchestrator.executeParallel(codemapIntent, tools);
160
+ // 3. 使用 ResultFusion 融合结果
161
+ const fusedResults = await this.resultFusion.fuse(resultsByTool, {
162
+ topK: analyzeArgs.topK ?? 8,
163
+ intent: intent,
164
+ keywordWeights: this.buildKeywordWeights(codemapIntent.keywords)
165
+ });
166
+ console.log(`Analysis completed: ${fusedResults.length} results`);
167
+ return fusedResults;
168
+ }
169
+ catch (error) {
170
+ // 错误处理:工具失败时返回空数组而非抛出异常
171
+ console.error(`Analysis failed for intent ${intent}:`, error);
172
+ return [];
173
+ }
174
+ }
175
+ /**
176
+ * 根据意图选择要执行的工具列表
177
+ */
178
+ selectTools(intent) {
179
+ // 根据意图类型选择工具
180
+ switch (intent.intent) {
181
+ case 'search':
182
+ case 'refactor':
183
+ case 'reference':
184
+ // 需要 AST 分析的工具
185
+ return ['codemap'];
186
+ case 'impact':
187
+ case 'dependency':
188
+ case 'complexity':
189
+ case 'overview':
190
+ case 'documentation':
191
+ default:
192
+ // 默认使用 codemap
193
+ return ['codemap'];
194
+ }
195
+ }
196
+ /**
197
+ * 构建关键词权重映射
198
+ */
199
+ buildKeywordWeights(keywords) {
200
+ const weights = {};
201
+ if (keywords.length > 0) {
202
+ // 为每个关键词分配基础权重
203
+ const baseWeight = 0.1 / keywords.length;
204
+ for (const keyword of keywords) {
205
+ weights[keyword] = baseWeight;
206
+ }
207
+ }
208
+ return weights;
209
+ }
210
+ /**
211
+ * 运行 CI 命令
212
+ */
213
+ async runCICommand(ciCommand) {
214
+ try {
215
+ await execAsync(ciCommand);
216
+ }
217
+ catch (error) {
218
+ console.warn(`CI command failed: ${ciCommand}`, error);
219
+ }
220
+ }
221
+ /**
222
+ * 验证是否可以进入下一阶段
223
+ */
224
+ checkProceedCondition(confidence, definition) {
225
+ const { entryCondition } = definition;
226
+ // 检查置信度
227
+ if (entryCondition.minConfidence && confidence.score < entryCondition.minConfidence) {
228
+ return false;
229
+ }
230
+ return true;
231
+ }
232
+ /**
233
+ * 推进到下一阶段
234
+ */
235
+ async proceedToNextPhase(force = false) {
236
+ if (!this.context) {
237
+ throw new Error('No active workflow');
238
+ }
239
+ const current = this.context.currentPhase;
240
+ const definition = this.phaseDefinitions.get(current);
241
+ if (!definition?.nextPhase) {
242
+ throw new Error('No next phase available');
243
+ }
244
+ // 验证当前阶段已完成(除非强制)
245
+ if (!force) {
246
+ const validation = WorkflowContextValidator.canProceed(this.context);
247
+ if (!validation.valid) {
248
+ throw new Error(validation.reason);
249
+ }
250
+ }
251
+ // 标记当前阶段为 verified
252
+ this.context.phaseStatus = 'verified';
253
+ // 推进到下一阶段
254
+ this.context.currentPhase = definition.nextPhase;
255
+ this.context.phaseStatus = 'pending';
256
+ this.context.updatedAt = new Date();
257
+ await this.persistence.save(this.context);
258
+ return definition.nextPhase;
259
+ }
260
+ /**
261
+ * 获取工作流状态
262
+ */
263
+ async getStatus() {
264
+ if (!this.context) {
265
+ // 尝试加载活动工作流
266
+ this.context = await this.resumeActive();
267
+ }
268
+ if (!this.context) {
269
+ return { active: false };
270
+ }
271
+ return {
272
+ active: true,
273
+ task: this.context.task,
274
+ currentPhase: this.context.currentPhase,
275
+ phaseStatus: this.context.phaseStatus,
276
+ progress: this.calculateProgress(),
277
+ artifacts: Array.from(this.context.artifacts.keys())
278
+ };
279
+ }
280
+ /**
281
+ * 恢复指定的工作流
282
+ */
283
+ async resume(id) {
284
+ const context = await this.persistence.load(id);
285
+ if (context) {
286
+ this.context = context;
287
+ await this.syncPhaseDefinitionsWithContext(context);
288
+ }
289
+ return context;
290
+ }
291
+ /**
292
+ * 恢复当前活动工作流
293
+ */
294
+ async resumeActive() {
295
+ const context = await this.persistence.loadActive();
296
+ if (context) {
297
+ this.context = context;
298
+ await this.syncPhaseDefinitionsWithContext(context);
299
+ }
300
+ return context;
301
+ }
302
+ /**
303
+ * 为活动工作流应用模板
304
+ */
305
+ async applyTemplate(templateName) {
306
+ if (!this.context) {
307
+ this.context = await this.persistence.loadActive();
308
+ }
309
+ if (!this.context) {
310
+ throw new Error('No active workflow');
311
+ }
312
+ this.phaseDefinitions = await this.resolvePhaseDefinitions(templateName);
313
+ this.context.templateName = templateName;
314
+ if (!this.phaseDefinitions.has(this.context.currentPhase)) {
315
+ this.context.currentPhase = this.getFirstPhase(this.phaseDefinitions);
316
+ this.context.phaseStatus = 'pending';
317
+ }
318
+ this.context.updatedAt = new Date();
319
+ await this.persistence.save(this.context);
320
+ return this.context;
321
+ }
322
+ /**
323
+ * 创建检查点
324
+ */
325
+ async checkpoint() {
326
+ if (!this.context) {
327
+ throw new Error('No active workflow');
328
+ }
329
+ await this.persistence.save(this.context);
330
+ }
331
+ /**
332
+ * 获取置信度引导
333
+ */
334
+ getGuidance(confidence, phase) {
335
+ if (confidence.level === 'high') {
336
+ return {
337
+ action: 'auto-proceed',
338
+ message: `High confidence (${confidence.score.toFixed(2)}), proceeding to next phase...`
339
+ };
340
+ }
341
+ if (confidence.level === 'medium') {
342
+ return {
343
+ action: 'confirm-proceed',
344
+ message: `Medium confidence (${confidence.score.toFixed(2)}), review results before proceeding?`,
345
+ suggestion: 'Run additional analysis with broader scope'
346
+ };
347
+ }
348
+ return {
349
+ action: 'hold',
350
+ message: `Low confidence (${confidence.score.toFixed(2)}), current phase needs more work`,
351
+ suggestion: confidence.reasons.join('; ')
352
+ };
353
+ }
354
+ /**
355
+ * 计算进度
356
+ */
357
+ calculateProgress() {
358
+ const totalPhases = this.phaseDefinitions.size;
359
+ const completedPhases = this.context.artifacts.size;
360
+ return (completedPhases / totalPhases) * 100;
361
+ }
362
+ /**
363
+ * 初始化阶段定义
364
+ */
365
+ initializePhaseDefinitions() {
366
+ const workflowDir = resolveWorkflowDir();
367
+ return new Map([
368
+ ['reference', {
369
+ name: 'reference',
370
+ action: 'analyze',
371
+ analyzeIntent: 'reference',
372
+ entryCondition: { minConfidence: 0.3 },
373
+ deliverables: [
374
+ { name: 'reference-results', path: join(workflowDir, 'reference.json'), validator: () => true }
375
+ ],
376
+ nextPhase: 'impact',
377
+ commands: ['codemap analyze --intent reference']
378
+ }],
379
+ ['impact', {
380
+ name: 'impact',
381
+ action: 'analyze',
382
+ analyzeIntent: 'impact',
383
+ entryCondition: { minConfidence: 0.4 },
384
+ deliverables: [
385
+ { name: 'impact-report', path: join(workflowDir, 'impact.json'), validator: () => true }
386
+ ],
387
+ nextPhase: 'risk',
388
+ commands: ['codemap analyze --intent impact']
389
+ }],
390
+ ['risk', {
391
+ name: 'risk',
392
+ action: 'ci',
393
+ ciCommand: 'codemap ci assess-risk --threshold 0.7',
394
+ entryCondition: {},
395
+ deliverables: [
396
+ { name: 'risk-assessment', path: join(workflowDir, 'risk.json'), validator: () => true }
397
+ ],
398
+ nextPhase: 'implementation',
399
+ commands: ['codemap ci assess-risk']
400
+ }],
401
+ ['implementation', {
402
+ name: 'implementation',
403
+ action: 'manual',
404
+ entryCondition: {},
405
+ deliverables: [
406
+ { name: 'implementation', path: 'src/', validator: () => true }
407
+ ],
408
+ nextPhase: 'commit',
409
+ commands: []
410
+ }],
411
+ ['commit', {
412
+ name: 'commit',
413
+ action: 'manual',
414
+ entryCondition: {},
415
+ deliverables: [
416
+ { name: 'commit', path: '.git/COMMIT_EDITMSG', validator: () => true }
417
+ ],
418
+ nextPhase: 'ci',
419
+ commands: ['git commit']
420
+ }],
421
+ ['ci', {
422
+ name: 'ci',
423
+ action: 'ci',
424
+ ciCommand: 'npm test && codemap ci check-commits && codemap ci check-headers && codemap ci assess-risk --threshold 0.7 && codemap ci check-output-contract',
425
+ entryCondition: {},
426
+ deliverables: [],
427
+ commands: []
428
+ }]
429
+ ]);
430
+ }
431
+ async syncPhaseDefinitionsWithContext(context) {
432
+ this.phaseDefinitions = await this.resolvePhaseDefinitions(context.templateName);
433
+ }
434
+ async resolvePhaseDefinitions(templateName) {
435
+ if (!templateName) {
436
+ return this.initializePhaseDefinitions();
437
+ }
438
+ await this.templateManager.loadCustomTemplates();
439
+ const template = this.templateManager.getTemplate(templateName);
440
+ if (!template) {
441
+ throw new Error(`Template not found: ${templateName}`);
442
+ }
443
+ if (template.phases.length === 0) {
444
+ throw new Error(`Template invalid: ${templateName}`);
445
+ }
446
+ return new Map(template.phases.map((phase) => [phase.name, phase]));
447
+ }
448
+ getFirstPhase(definitions) {
449
+ const firstPhase = definitions.keys().next().value;
450
+ if (!firstPhase) {
451
+ throw new Error('No phase definitions available');
452
+ }
453
+ return firstPhase;
454
+ }
455
+ /**
456
+ * 获取阶段定义
457
+ */
458
+ getPhaseDefinition(phase) {
459
+ return this.phaseDefinitions.get(phase);
460
+ }
461
+ /**
462
+ * 获取所有阶段定义
463
+ */
464
+ getAllPhaseDefinitions() {
465
+ return Array.from(this.phaseDefinitions.values());
466
+ }
467
+ /**
468
+ * 获取当前上下文
469
+ */
470
+ getContext() {
471
+ return this.context;
472
+ }
473
+ /**
474
+ * 列出所有工作流
475
+ */
476
+ async listWorkflows() {
477
+ return this.persistence.list();
478
+ }
479
+ /**
480
+ * 删除工作流
481
+ */
482
+ async deleteWorkflow(id) {
483
+ await this.persistence.delete(id);
484
+ if (this.context?.id === id) {
485
+ this.context = null;
486
+ }
487
+ }
488
+ }
489
+ //# sourceMappingURL=workflow-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-orchestrator.js","sourceRoot":"","sources":["../../../src/orchestrator/workflow/workflow-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { WorkflowContext, WorkflowSummary } from './types.js';
2
+ /**
3
+ * 工作流持久化类
4
+ */
5
+ export declare class WorkflowPersistence {
6
+ private storagePath;
7
+ private activePath;
8
+ constructor();
9
+ /**
10
+ * 保存工作流上下文
11
+ */
12
+ save(context: WorkflowContext): Promise<void>;
13
+ /**
14
+ * 加载指定工作流
15
+ */
16
+ load(id: string): Promise<WorkflowContext | null>;
17
+ /**
18
+ * 加载活动工作流
19
+ */
20
+ loadActive(): Promise<WorkflowContext | null>;
21
+ /**
22
+ * 列出所有工作流摘要
23
+ */
24
+ list(): Promise<WorkflowSummary[]>;
25
+ /**
26
+ * 删除工作流
27
+ */
28
+ delete(id: string): Promise<void>;
29
+ /**
30
+ * 序列化上下文(处理 Map 和 Set)
31
+ */
32
+ private serialize;
33
+ /**
34
+ * 反序列化上下文(还原 Map 和 Set)
35
+ */
36
+ private deserialize;
37
+ }
38
+ //# sourceMappingURL=workflow-persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-persistence.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/workflow/workflow-persistence.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAiC,eAAe,EAAiB,MAAM,YAAY,CAAC;AAmCjH;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;;IAQ3B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD;;OAEG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAWvD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAUnD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA+BxC;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvC;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,WAAW;CAuBpB"}