@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,202 @@
1
+ /**
2
+ * 工作流编排器类型定义
3
+ * 定义工作流阶段、上下文、交付物等核心类型
4
+ */
5
+ import type { UnifiedResult, ConfidenceResult } from '../types.js';
6
+ /**
7
+ * 工作流阶段类型
8
+ * 6 个阶段:reference → impact → risk → implementation → commit → ci
9
+ */
10
+ export type WorkflowPhase = 'reference' | 'impact' | 'risk' | 'implementation' | 'commit' | 'ci';
11
+ /**
12
+ * 阶段执行方式
13
+ */
14
+ export type PhaseAction = 'analyze' | 'ci' | 'manual';
15
+ /**
16
+ * 阶段状态类型
17
+ */
18
+ export type PhaseStatus = 'pending' | 'running' | 'completed' | 'verified' | 'skipped';
19
+ /**
20
+ * 阶段入口条件
21
+ */
22
+ export interface PhaseCondition {
23
+ /** 最低置信度 */
24
+ minConfidence?: number;
25
+ /** 必需的产物 */
26
+ requiredArtifacts?: string[];
27
+ }
28
+ /**
29
+ * 阶段交付物
30
+ */
31
+ export interface Deliverable {
32
+ /** 交付物名称 */
33
+ name: string;
34
+ /** 交付物路径 */
35
+ path: string;
36
+ /** 验证器函数 */
37
+ validator: (path: string) => boolean;
38
+ }
39
+ /**
40
+ * 阶段定义接口
41
+ */
42
+ export interface PhaseDefinition {
43
+ /** 阶段名称 */
44
+ name: WorkflowPhase;
45
+ /** 执行方式 */
46
+ action: PhaseAction;
47
+ /** 分析意图(仅 action=analyze 时需要) */
48
+ analyzeIntent?: string;
49
+ /** CI 命令(仅 action=ci 时需要) */
50
+ ciCommand?: string;
51
+ /** 入口条件 */
52
+ entryCondition: PhaseCondition;
53
+ /** 交付物列表 */
54
+ deliverables: Deliverable[];
55
+ /** 下一阶段 */
56
+ nextPhase?: WorkflowPhase;
57
+ /** 可执行的命令 */
58
+ commands: string[];
59
+ }
60
+ /**
61
+ * 阶段产物
62
+ */
63
+ export interface PhaseArtifacts {
64
+ /** 阶段 */
65
+ phase: WorkflowPhase;
66
+ /** 分析结果 */
67
+ results?: UnifiedResult[];
68
+ /** 置信度 */
69
+ confidence?: ConfidenceResult;
70
+ /** 元数据 */
71
+ metadata?: Record<string, unknown>;
72
+ /** 创建时间 */
73
+ createdAt: Date;
74
+ }
75
+ /**
76
+ * 缓存结果
77
+ */
78
+ export interface CachedResults {
79
+ /** 参考搜索结果 */
80
+ reference?: UnifiedResult[];
81
+ /** 影响分析结果 */
82
+ impact?: UnifiedResult[];
83
+ /** 风险评估结果 */
84
+ risk?: RiskScore;
85
+ }
86
+ /**
87
+ * 风险评分
88
+ */
89
+ export interface RiskScore {
90
+ /** 总体风险评分 (0-1) */
91
+ score: number;
92
+ /** 风险等级 */
93
+ level: 'high' | 'medium' | 'low';
94
+ /** 风险因素 */
95
+ factors: string[];
96
+ }
97
+ /**
98
+ * 工作流上下文
99
+ */
100
+ export interface WorkflowContext {
101
+ /** 工作流实例 ID */
102
+ id: string;
103
+ /** 用户任务描述 */
104
+ task: string;
105
+ /** 工作流模板名称(可选) */
106
+ templateName?: string;
107
+ /** 当前阶段 */
108
+ currentPhase: WorkflowPhase;
109
+ /** 阶段状态 */
110
+ phaseStatus: PhaseStatus;
111
+ /** 阶段产物(自动传递) */
112
+ artifacts: Map<WorkflowPhase, PhaseArtifacts>;
113
+ /** 分析结果缓存 */
114
+ cachedResults: CachedResults;
115
+ /** 用户确认状态 */
116
+ userConfirmed: Set<WorkflowPhase>;
117
+ /** 开始时间 */
118
+ startedAt: Date;
119
+ /** 更新时间 */
120
+ updatedAt: Date;
121
+ }
122
+ /**
123
+ * 工作流状态
124
+ */
125
+ export interface WorkflowStatus {
126
+ /** 是否活动 */
127
+ active: boolean;
128
+ /** 任务描述 */
129
+ task?: string;
130
+ /** 当前阶段 */
131
+ currentPhase?: WorkflowPhase;
132
+ /** 阶段状态 */
133
+ phaseStatus?: PhaseStatus;
134
+ /** 进度百分比 */
135
+ progress?: number;
136
+ /** 已完成的阶段 */
137
+ artifacts?: WorkflowPhase[];
138
+ }
139
+ /**
140
+ * 阶段执行结果
141
+ */
142
+ export interface PhaseResult {
143
+ /** 阶段产物 */
144
+ artifacts: PhaseArtifacts;
145
+ /** 置信度 */
146
+ confidence: ConfidenceResult;
147
+ /** 是否可以进入下一阶段 */
148
+ canProceed: boolean;
149
+ }
150
+ /**
151
+ * 工作流摘要
152
+ */
153
+ export interface WorkflowSummary {
154
+ /** 工作流 ID */
155
+ id: string;
156
+ /** 任务描述 */
157
+ task: string;
158
+ /** 当前阶段 */
159
+ currentPhase: WorkflowPhase;
160
+ /** 阶段状态 */
161
+ phaseStatus: PhaseStatus;
162
+ /** 更新时间 */
163
+ updatedAt: string;
164
+ }
165
+ /**
166
+ * 检查项目
167
+ */
168
+ export interface CheckItem {
169
+ /** 交付物名称 */
170
+ name: string;
171
+ /** 交付物路径 */
172
+ path: string;
173
+ /** 是否存在 */
174
+ exists: boolean;
175
+ /** 是否有效 */
176
+ valid: boolean;
177
+ }
178
+ /**
179
+ * 检查点结果
180
+ */
181
+ export interface CheckpointResult {
182
+ /** 是否通过 */
183
+ passed: boolean;
184
+ /** 检查项目列表 */
185
+ items: CheckItem[];
186
+ }
187
+ /**
188
+ * 引导动作
189
+ */
190
+ export type GuidanceAction = 'auto-proceed' | 'confirm-proceed' | 'hold';
191
+ /**
192
+ * 置信度引导
193
+ */
194
+ export interface Guidance {
195
+ /** 建议动作 */
196
+ action: GuidanceAction;
197
+ /** 提示消息 */
198
+ message: string;
199
+ /** 建议 */
200
+ suggestion?: string;
201
+ }
202
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/workflow/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ // [META] since:2026-03-02 | owner:workflow-team | stable:true
2
+ // [WHY] Centralize workflow domain types shared by orchestrator, persistence, and CLI
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/orchestrator/workflow/types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,sFAAsF"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * [META] 工作流可视化器
3
+ * [WHY] 提供终端友好的工作流状态可视化,提升用户体验
4
+ */
5
+ import type { WorkflowContext, WorkflowStatus } from './types.js';
6
+ import type { UnifiedResult } from '../types.js';
7
+ export declare class WorkflowVisualizer {
8
+ /**
9
+ * 渲染完整的工作流状态
10
+ */
11
+ renderWorkflowStatus(context: WorkflowContext): string;
12
+ /**
13
+ * 渲染工作流状态(简化版)
14
+ */
15
+ renderWorkflowStatusCompact(status: WorkflowStatus): string;
16
+ /**
17
+ * 渲染阶段流程图
18
+ */
19
+ renderPhaseDiagram(context: WorkflowContext): string;
20
+ /**
21
+ * 渲染进度条
22
+ */
23
+ renderProgressBar(context: WorkflowContext): string;
24
+ /**
25
+ * 渲染阶段详情
26
+ */
27
+ renderPhaseDetails(context: WorkflowContext): string;
28
+ /**
29
+ * 渲染结果表格
30
+ */
31
+ renderResultsTable(results: UnifiedResult[], maxRows?: number): string;
32
+ /**
33
+ * 渲染工作流对比(用于模板比较)
34
+ */
35
+ renderWorkflowComparison(contexts: Array<{
36
+ name: string;
37
+ context: WorkflowContext;
38
+ }>): string;
39
+ /**
40
+ * 渲染时间线
41
+ */
42
+ renderTimeline(context: WorkflowContext): string;
43
+ private renderHeader;
44
+ private renderBasicInfo;
45
+ private renderProgressBarCompact;
46
+ private getPhaseIcon;
47
+ private getPhaseLabel;
48
+ private formatDuration;
49
+ }
50
+ /** 创建可视化器实例 */
51
+ export declare function createVisualizer(): WorkflowVisualizer;
52
+ /** 快速渲染工作流状态 */
53
+ export declare function visualizeWorkflow(context: WorkflowContext): string;
54
+ /** 快速渲染结果表格 */
55
+ export declare function visualizeResults(results: UnifiedResult[], maxRows?: number): string;
56
+ //# sourceMappingURL=visualizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualizer.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/workflow/visualizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,eAAe,EAIf,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAuCjD,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IAyBtD;;OAEG;IACH,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAoB3D;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IAyCpD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IAuBnD;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IA6BpD;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE,MAAW,GAAG,MAAM;IAoC1E;;OAEG;IACH,wBAAwB,CACtB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC,GAC1D,MAAM;IA8BT;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IAkChD,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;CAavB;AAMD,eAAe;AACf,wBAAgB,gBAAgB,IAAI,kBAAkB,CAErD;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAGlE;AAED,eAAe;AACf,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGnF"}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * [META] 工作流可视化器
3
+ * [WHY] 提供终端友好的工作流状态可视化,提升用户体验
4
+ */
5
+ /** 阶段显示映射 */
6
+ const PHASE_DISPLAY = {
7
+ reference: { label: 'Reference', icon: '🔍', color: '\x1b[34m' }, // blue
8
+ impact: { label: 'Impact', icon: '💥', color: '\x1b[33m' }, // yellow
9
+ risk: { label: 'Risk', icon: '⚠️', color: '\x1b[31m' }, // red
10
+ implementation: { label: 'Implementation', icon: '💻', color: '\x1b[32m' }, // green
11
+ commit: { label: 'Commit', icon: '💾', color: '\x1b[36m' }, // cyan
12
+ ci: { label: 'CI', icon: '✅', color: '\x1b[35m' } // magenta
13
+ };
14
+ /** 状态图标映射 */
15
+ const STATUS_ICONS = {
16
+ pending: '⏳',
17
+ running: '🔄',
18
+ completed: '✅',
19
+ verified: '🔒',
20
+ skipped: '⏭️'
21
+ };
22
+ /** 重置颜色 */
23
+ const RESET = '\x1b[0m';
24
+ // ============================================
25
+ // 工作流可视化器类
26
+ // ============================================
27
+ export class WorkflowVisualizer {
28
+ /**
29
+ * 渲染完整的工作流状态
30
+ */
31
+ renderWorkflowStatus(context) {
32
+ const lines = [];
33
+ // 头部
34
+ lines.push(this.renderHeader());
35
+ lines.push('');
36
+ // 基本信息
37
+ lines.push(this.renderBasicInfo(context));
38
+ lines.push('');
39
+ // 阶段流程图
40
+ lines.push(this.renderPhaseDiagram(context));
41
+ lines.push('');
42
+ // 进度条
43
+ lines.push(this.renderProgressBar(context));
44
+ lines.push('');
45
+ // 阶段详情
46
+ lines.push(this.renderPhaseDetails(context));
47
+ return lines.join('\n');
48
+ }
49
+ /**
50
+ * 渲染工作流状态(简化版)
51
+ */
52
+ renderWorkflowStatusCompact(status) {
53
+ if (!status.active) {
54
+ return 'No active workflow.';
55
+ }
56
+ const lines = [];
57
+ lines.push('╔══════════════════════════════════════════════════════════╗');
58
+ lines.push('║ [WORKFLOW STATUS] ║');
59
+ lines.push('╚══════════════════════════════════════════════════════════╝');
60
+ lines.push('');
61
+ lines.push(`Task: ${status.task}`);
62
+ lines.push(`Phase: ${status.currentPhase} ${this.getPhaseIcon(status.currentPhase)}`);
63
+ lines.push(`Status: ${STATUS_ICONS[status.phaseStatus]} ${status.phaseStatus}`);
64
+ lines.push(`Progress: ${this.renderProgressBarCompact(status.progress || 0)}`);
65
+ lines.push('');
66
+ lines.push(`Completed: ${status.artifacts?.join(', ') || 'none'}`);
67
+ return lines.join('\n');
68
+ }
69
+ /**
70
+ * 渲染阶段流程图
71
+ */
72
+ renderPhaseDiagram(context) {
73
+ const phases = ['reference', 'impact', 'risk', 'implementation', 'commit', 'ci'];
74
+ const currentPhase = context.currentPhase;
75
+ const artifacts = context.artifacts;
76
+ const lines = [];
77
+ lines.push('┌─────────────────────────────────────────────────────────┐');
78
+ lines.push('│ WORKFLOW PIPELINE │');
79
+ lines.push('└─────────────────────────────────────────────────────────┘');
80
+ lines.push('');
81
+ // 渲染流程图
82
+ const diagram = [];
83
+ for (let i = 0; i < phases.length; i++) {
84
+ const phase = phases[i];
85
+ const config = PHASE_DISPLAY[phase];
86
+ const isCurrent = phase === currentPhase;
87
+ const isCompleted = artifacts.has(phase);
88
+ let symbol;
89
+ if (isCurrent) {
90
+ symbol = `▶ ${config.icon}`;
91
+ }
92
+ else if (isCompleted) {
93
+ symbol = `✓ ${config.icon}`;
94
+ }
95
+ else {
96
+ symbol = `○ ${config.icon}`;
97
+ }
98
+ const label = isCurrent ? `【${config.label}】` : config.label;
99
+ diagram.push(`${symbol} ${label}`);
100
+ if (i < phases.length - 1) {
101
+ diagram.push(' ↓');
102
+ }
103
+ }
104
+ lines.push(diagram.join('\n'));
105
+ return lines.join('\n');
106
+ }
107
+ /**
108
+ * 渲染进度条
109
+ */
110
+ renderProgressBar(context) {
111
+ const totalPhases = 6;
112
+ const completedPhases = context.artifacts.size;
113
+ const progress = (completedPhases / totalPhases) * 100;
114
+ const barLength = 40;
115
+ const filledLength = Math.round((progress / 100) * barLength);
116
+ const emptyLength = barLength - filledLength;
117
+ const filled = '█'.repeat(filledLength);
118
+ const empty = '░'.repeat(emptyLength);
119
+ const lines = [];
120
+ lines.push('┌─────────────────────────────────────────────────────────┐');
121
+ lines.push('│ PROGRESS │');
122
+ lines.push('└─────────────────────────────────────────────────────────┘');
123
+ lines.push('');
124
+ lines.push(`[${filled}${empty}] ${progress.toFixed(0)}%`);
125
+ lines.push(`${completedPhases}/${totalPhases} phases completed`);
126
+ return lines.join('\n');
127
+ }
128
+ /**
129
+ * 渲染阶段详情
130
+ */
131
+ renderPhaseDetails(context) {
132
+ const lines = [];
133
+ lines.push('┌─────────────────────────────────────────────────────────┐');
134
+ lines.push('│ PHASE DETAILS │');
135
+ lines.push('└─────────────────────────────────────────────────────────┘');
136
+ lines.push('');
137
+ for (const [phase, artifacts] of context.artifacts) {
138
+ const config = PHASE_DISPLAY[phase];
139
+ lines.push(`${config.icon} ${config.label} Phase`);
140
+ lines.push(` Status: ${STATUS_ICONS[context.phaseStatus]} ${context.phaseStatus}`);
141
+ if (artifacts.results && artifacts.results.length > 0) {
142
+ lines.push(` Results: ${artifacts.results.length} items`);
143
+ }
144
+ if (artifacts.confidence) {
145
+ const conf = artifacts.confidence;
146
+ const icon = conf.level === 'high' ? '🟢' : conf.level === 'medium' ? '🟡' : '🔴';
147
+ lines.push(` Confidence: ${icon} ${(conf.score * 100).toFixed(0)}%`);
148
+ }
149
+ lines.push(` Created: ${artifacts.createdAt.toLocaleString()}`);
150
+ lines.push('');
151
+ }
152
+ return lines.join('\n');
153
+ }
154
+ /**
155
+ * 渲染结果表格
156
+ */
157
+ renderResultsTable(results, maxRows = 10) {
158
+ if (results.length === 0) {
159
+ return 'No results to display.';
160
+ }
161
+ const lines = [];
162
+ lines.push('┌─────────────────────────────────────────────────────────────────┐');
163
+ lines.push('│ ANALYSIS RESULTS │');
164
+ lines.push('└─────────────────────────────────────────────────────────────────┘');
165
+ lines.push('');
166
+ // 表头
167
+ lines.push('Rank │ File │ Score │ Type');
168
+ lines.push('─────┼─────────────────────────┼───────┼─────────────────');
169
+ // 数据行
170
+ const displayResults = results.slice(0, maxRows);
171
+ for (let i = 0; i < displayResults.length; i++) {
172
+ const r = displayResults[i];
173
+ const rank = (i + 1).toString().padStart(3);
174
+ const file = (r.file || 'N/A').substring(0, 23).padEnd(23);
175
+ // 使用 toolScore 或 relevance 作为分数
176
+ const scoreValue = r.toolScore ?? r.relevance ?? 0;
177
+ const score = (scoreValue * 100).toFixed(1).padStart(5);
178
+ const type = (r.type || 'unknown').padEnd(16);
179
+ lines.push(`${rank} │ ${file} │ ${score} │ ${type}`);
180
+ }
181
+ if (results.length > maxRows) {
182
+ lines.push(`... and ${results.length - maxRows} more results`);
183
+ }
184
+ return lines.join('\n');
185
+ }
186
+ /**
187
+ * 渲染工作流对比(用于模板比较)
188
+ */
189
+ renderWorkflowComparison(contexts) {
190
+ const lines = [];
191
+ lines.push('┌─────────────────────────────────────────────────────────┐');
192
+ lines.push('│ WORKFLOW COMPARISON │');
193
+ lines.push('└─────────────────────────────────────────────────────────┘');
194
+ lines.push('');
195
+ // 表头
196
+ const nameWidth = Math.max(...contexts.map(c => c.name.length), 10);
197
+ const header = `Workflow${' '.repeat(nameWidth - 8)} │ Phase │ Progress │ Status`;
198
+ lines.push(header);
199
+ lines.push('─'.repeat(header.length));
200
+ // 数据行
201
+ for (const { name, context } of contexts) {
202
+ const totalPhases = 6;
203
+ const completedPhases = context.artifacts.size;
204
+ const progress = (completedPhases / totalPhases) * 100;
205
+ const nameCol = name.padEnd(nameWidth);
206
+ const phaseCol = context.currentPhase.padEnd(10);
207
+ const progressCol = `${progress.toFixed(0)}%`.padEnd(8);
208
+ const statusCol = context.phaseStatus;
209
+ lines.push(`${nameCol} │ ${phaseCol} │ ${progressCol} │ ${statusCol}`);
210
+ }
211
+ return lines.join('\n');
212
+ }
213
+ /**
214
+ * 渲染时间线
215
+ */
216
+ renderTimeline(context) {
217
+ const lines = [];
218
+ lines.push('┌─────────────────────────────────────────────────────────┐');
219
+ lines.push('│ WORKFLOW TIMELINE │');
220
+ lines.push('└─────────────────────────────────────────────────────────┘');
221
+ lines.push('');
222
+ const startTime = context.startedAt.getTime();
223
+ const endTime = context.updatedAt.getTime();
224
+ const duration = endTime - startTime;
225
+ lines.push(`Started: ${context.startedAt.toLocaleString()}`);
226
+ lines.push(`Updated: ${context.updatedAt.toLocaleString()}`);
227
+ lines.push(`Duration: ${this.formatDuration(duration)}`);
228
+ lines.push('');
229
+ // 阶段时间线
230
+ const sortedArtifacts = Array.from(context.artifacts.entries())
231
+ .sort((a, b) => a[1].createdAt.getTime() - b[1].createdAt.getTime());
232
+ for (const [phase, artifacts] of sortedArtifacts) {
233
+ const config = PHASE_DISPLAY[phase];
234
+ const elapsed = artifacts.createdAt.getTime() - startTime;
235
+ const relativeTime = this.formatDuration(elapsed);
236
+ lines.push(`${relativeTime.padStart(8)} ${config.icon} ${config.label}`);
237
+ }
238
+ return lines.join('\n');
239
+ }
240
+ // ============================================
241
+ // 私有辅助方法
242
+ // ============================================
243
+ renderHeader() {
244
+ return `
245
+ ╔══════════════════════════════════════════════════════════╗
246
+ ║ WORKFLOW VISUALIZATION ║
247
+ ╚══════════════════════════════════════════════════════════╝`;
248
+ }
249
+ renderBasicInfo(context) {
250
+ const lines = [];
251
+ lines.push(`ID: ${context.id}`);
252
+ lines.push(`Task: ${context.task}`);
253
+ lines.push(`Phase: ${this.getPhaseLabel(context.currentPhase)} ${this.getPhaseIcon(context.currentPhase)}`);
254
+ lines.push(`Status: ${STATUS_ICONS[context.phaseStatus]} ${context.phaseStatus}`);
255
+ return lines.join('\n');
256
+ }
257
+ renderProgressBarCompact(progress) {
258
+ const barLength = 20;
259
+ const filledLength = Math.round((progress / 100) * barLength);
260
+ const filled = '█'.repeat(filledLength);
261
+ const empty = '░'.repeat(barLength - filledLength);
262
+ return `[${filled}${empty}] ${progress.toFixed(0)}%`;
263
+ }
264
+ getPhaseIcon(phase) {
265
+ return PHASE_DISPLAY[phase]?.icon || '❓';
266
+ }
267
+ getPhaseLabel(phase) {
268
+ return PHASE_DISPLAY[phase]?.label || phase;
269
+ }
270
+ formatDuration(ms) {
271
+ const seconds = Math.floor(ms / 1000);
272
+ const minutes = Math.floor(seconds / 60);
273
+ const hours = Math.floor(minutes / 60);
274
+ if (hours > 0) {
275
+ return `${hours}h ${minutes % 60}m`;
276
+ }
277
+ if (minutes > 0) {
278
+ return `${minutes}m ${seconds % 60}s`;
279
+ }
280
+ return `${seconds}s`;
281
+ }
282
+ }
283
+ // ============================================
284
+ // 便捷函数
285
+ // ============================================
286
+ /** 创建可视化器实例 */
287
+ export function createVisualizer() {
288
+ return new WorkflowVisualizer();
289
+ }
290
+ /** 快速渲染工作流状态 */
291
+ export function visualizeWorkflow(context) {
292
+ const visualizer = createVisualizer();
293
+ return visualizer.renderWorkflowStatus(context);
294
+ }
295
+ /** 快速渲染结果表格 */
296
+ export function visualizeResults(results, maxRows) {
297
+ const visualizer = createVisualizer();
298
+ return visualizer.renderResultsTable(results, maxRows);
299
+ }
300
+ //# sourceMappingURL=visualizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualizer.js","sourceRoot":"","sources":["../../../src/orchestrator/workflow/visualizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * 工作流上下文管理
3
+ * 提供工作流上下文的创建、验证和管理功能
4
+ */
5
+ import type { WorkflowContext, WorkflowPhase, PhaseArtifacts, PhaseStatus } from './types.js';
6
+ /**
7
+ * 工作流上下文工厂
8
+ */
9
+ export declare class WorkflowContextFactory {
10
+ /**
11
+ * 创建新的工作流上下文
12
+ */
13
+ static create(task: string): WorkflowContext;
14
+ /**
15
+ * 生成唯一 ID
16
+ */
17
+ private static generateId;
18
+ /**
19
+ * 验证工作流上下文
20
+ */
21
+ static validate(context: WorkflowContext): {
22
+ valid: boolean;
23
+ errors: string[];
24
+ };
25
+ /**
26
+ * 创建阶段产物
27
+ */
28
+ static createPhaseArtifacts(phase: WorkflowPhase, results?: unknown[], confidence?: {
29
+ score: number;
30
+ level: string;
31
+ reasons: string[];
32
+ }, metadata?: Record<string, unknown>): PhaseArtifacts;
33
+ }
34
+ /**
35
+ * 工作流上下文验证器
36
+ */
37
+ export declare class WorkflowContextValidator {
38
+ /**
39
+ * 验证是否可以推进到下一阶段
40
+ */
41
+ static canProceed(context: WorkflowContext): {
42
+ valid: boolean;
43
+ reason?: string;
44
+ };
45
+ /**
46
+ * 验证阶段状态转换是否有效
47
+ */
48
+ static isValidStatusTransition(currentStatus: PhaseStatus, newStatus: PhaseStatus): boolean;
49
+ }
50
+ //# sourceMappingURL=workflow-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-context.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/workflow/workflow-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,cAAc,EAEd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAc5C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAyB/E;;OAEG;IACH,MAAM,CAAC,oBAAoB,CACzB,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,OAAO,EAAE,EACnB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,EAChE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,cAAc;CASlB;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAqBhF;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAC5B,aAAa,EAAE,WAAW,EAC1B,SAAS,EAAE,WAAW,GACrB,OAAO;CAWX"}