edsger 0.50.0 → 0.52.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 (470) hide show
  1. package/.claude/settings.local.json +23 -3
  2. package/.env.local +12 -0
  3. package/README.md +25 -25
  4. package/dist/api/chat.d.ts +7 -7
  5. package/dist/api/chat.js +13 -13
  6. package/dist/api/cross-product.d.ts +10 -10
  7. package/dist/api/cross-product.js +30 -30
  8. package/dist/api/github.d.ts +5 -5
  9. package/dist/api/github.js +10 -10
  10. package/dist/api/intelligence.d.ts +3 -3
  11. package/dist/api/issues/approval-checker.d.ts +20 -0
  12. package/dist/api/{features → issues}/approval-checker.js +16 -16
  13. package/dist/api/issues/get-issue.d.ts +5 -0
  14. package/dist/api/issues/get-issue.js +21 -0
  15. package/dist/api/issues/index.d.ts +8 -0
  16. package/dist/api/issues/index.js +10 -0
  17. package/dist/api/issues/issue-utils.d.ts +23 -0
  18. package/dist/api/issues/issue-utils.js +80 -0
  19. package/dist/api/issues/status-updater.d.ts +41 -0
  20. package/dist/api/{features → issues}/status-updater.js +23 -23
  21. package/dist/api/{features → issues}/test-cases.d.ts +7 -7
  22. package/dist/api/{features → issues}/test-cases.js +12 -12
  23. package/dist/api/issues/update-issue.d.ts +20 -0
  24. package/dist/api/{features/update-feature.js → issues/update-issue.js} +22 -22
  25. package/dist/api/{features → issues}/user-stories.d.ts +5 -5
  26. package/dist/api/{features → issues}/user-stories.js +8 -8
  27. package/dist/api/products.d.ts +1 -1
  28. package/dist/api/tasks.d.ts +1 -1
  29. package/dist/api/test-reports.d.ts +2 -2
  30. package/dist/api/test-reports.js +4 -4
  31. package/dist/auth/login.js +1 -1
  32. package/dist/commands/agent-workflow/chat-worker.d.ts +7 -7
  33. package/dist/commands/agent-workflow/chat-worker.js +50 -50
  34. package/dist/commands/agent-workflow/index.d.ts +2 -2
  35. package/dist/commands/agent-workflow/index.js +3 -3
  36. package/dist/commands/agent-workflow/{feature-worker.d.ts → issue-worker.d.ts} +4 -4
  37. package/dist/commands/agent-workflow/{feature-worker.js → issue-worker.js} +12 -12
  38. package/dist/commands/agent-workflow/processor.d.ts +9 -9
  39. package/dist/commands/agent-workflow/processor.js +90 -90
  40. package/dist/commands/build/index.js +2 -2
  41. package/dist/commands/find-bugs/index.d.ts +11 -0
  42. package/dist/commands/find-bugs/index.js +39 -0
  43. package/dist/commands/find-features/index.d.ts +14 -0
  44. package/dist/commands/find-features/index.js +42 -0
  45. package/dist/commands/find-smells/index.d.ts +21 -0
  46. package/dist/commands/find-smells/index.js +65 -0
  47. package/dist/commands/init/prompts.js +1 -1
  48. package/dist/commands/init/templates.d.ts +1 -1
  49. package/dist/commands/init/templates.js +4 -4
  50. package/dist/commands/workflow/config/phase-configs.js +17 -17
  51. package/dist/commands/workflow/core/index.d.ts +1 -1
  52. package/dist/commands/workflow/core/index.js +2 -2
  53. package/dist/commands/workflow/core/issue-filter.d.ts +16 -0
  54. package/dist/commands/workflow/core/issue-filter.js +47 -0
  55. package/dist/commands/workflow/core/state-manager.d.ts +10 -10
  56. package/dist/commands/workflow/core/state-manager.js +10 -10
  57. package/dist/commands/workflow/core/workflow-logger.d.ts +9 -9
  58. package/dist/commands/workflow/core/workflow-logger.js +21 -21
  59. package/dist/commands/workflow/executors/phase-executor.d.ts +2 -2
  60. package/dist/commands/workflow/executors/phase-executor.js +32 -32
  61. package/dist/commands/workflow/issue-coordinator.d.ts +18 -0
  62. package/dist/commands/workflow/{feature-coordinator.js → issue-coordinator.js} +29 -29
  63. package/dist/commands/workflow/phase-orchestrator.d.ts +2 -2
  64. package/dist/commands/workflow/phase-orchestrator.js +82 -82
  65. package/dist/commands/workflow/processor.d.ts +7 -7
  66. package/dist/commands/workflow/processor.js +44 -44
  67. package/dist/config/{feature-status.d.ts → issue-status.d.ts} +14 -14
  68. package/dist/config/{feature-status.js → issue-status.js} +14 -14
  69. package/dist/errors/index.d.ts +6 -6
  70. package/dist/errors/index.js +11 -11
  71. package/dist/index.js +90 -1
  72. package/dist/phases/app-store-generation/context.js +6 -6
  73. package/dist/phases/app-store-generation/index.js +2 -2
  74. package/dist/phases/app-store-generation/prompts.js +2 -2
  75. package/dist/phases/autonomous/index.d.ts +3 -3
  76. package/dist/phases/autonomous/index.js +37 -37
  77. package/dist/phases/autonomous/prompts.d.ts +2 -2
  78. package/dist/phases/autonomous/prompts.js +4 -4
  79. package/dist/phases/branch-planning/context.d.ts +3 -3
  80. package/dist/phases/branch-planning/context.js +12 -12
  81. package/dist/phases/branch-planning/index.d.ts +3 -3
  82. package/dist/phases/branch-planning/index.js +32 -32
  83. package/dist/phases/branch-planning/outcome.d.ts +5 -5
  84. package/dist/phases/branch-planning/outcome.js +12 -12
  85. package/dist/phases/branch-planning/prompts.d.ts +3 -3
  86. package/dist/phases/branch-planning/prompts.js +13 -13
  87. package/dist/phases/bug-fixing/analyzer.d.ts +2 -2
  88. package/dist/phases/bug-fixing/analyzer.js +13 -13
  89. package/dist/phases/bug-fixing/context-fetcher.d.ts +3 -3
  90. package/dist/phases/bug-fixing/context-fetcher.js +18 -18
  91. package/dist/phases/bug-fixing/mcp-server.js +17 -18
  92. package/dist/phases/chat-processor/context.d.ts +5 -5
  93. package/dist/phases/chat-processor/context.js +17 -17
  94. package/dist/phases/chat-processor/index.d.ts +4 -4
  95. package/dist/phases/chat-processor/index.js +17 -17
  96. package/dist/phases/chat-processor/product-context.d.ts +3 -3
  97. package/dist/phases/chat-processor/product-context.js +16 -16
  98. package/dist/phases/chat-processor/product-prompts.d.ts +1 -1
  99. package/dist/phases/chat-processor/product-prompts.js +10 -10
  100. package/dist/phases/chat-processor/product-tools.d.ts +2 -2
  101. package/dist/phases/chat-processor/product-tools.js +33 -33
  102. package/dist/phases/chat-processor/prompts.d.ts +3 -3
  103. package/dist/phases/chat-processor/prompts.js +22 -22
  104. package/dist/phases/chat-processor/tools.js +46 -46
  105. package/dist/phases/code-implementation/branch-pr-creator.d.ts +3 -3
  106. package/dist/phases/code-implementation/branch-pr-creator.js +5 -5
  107. package/dist/phases/code-implementation/context.d.ts +3 -3
  108. package/dist/phases/code-implementation/context.js +18 -18
  109. package/dist/phases/code-implementation/index.d.ts +4 -4
  110. package/dist/phases/code-implementation/index.js +88 -88
  111. package/dist/phases/code-implementation/outcome.d.ts +3 -3
  112. package/dist/phases/code-implementation/outcome.js +6 -6
  113. package/dist/phases/code-implementation/prompts.d.ts +1 -1
  114. package/dist/phases/code-implementation/prompts.js +6 -6
  115. package/dist/phases/code-implementation-verification/agent.d.ts +3 -3
  116. package/dist/phases/code-implementation-verification/agent.js +5 -5
  117. package/dist/phases/code-implementation-verification/index.d.ts +3 -3
  118. package/dist/phases/code-implementation-verification/index.js +11 -11
  119. package/dist/phases/code-implementation-verification/prompts.d.ts +3 -3
  120. package/dist/phases/code-implementation-verification/prompts.js +7 -7
  121. package/dist/phases/code-refine/context.d.ts +8 -8
  122. package/dist/phases/code-refine/context.js +29 -29
  123. package/dist/phases/code-refine/index.d.ts +2 -2
  124. package/dist/phases/code-refine/index.js +20 -20
  125. package/dist/phases/code-refine/prompts.d.ts +1 -1
  126. package/dist/phases/code-refine/prompts.js +3 -3
  127. package/dist/phases/code-refine/refine-iteration.d.ts +1 -1
  128. package/dist/phases/code-refine/refine-iteration.js +4 -4
  129. package/dist/phases/code-refine/retry-handler.js +2 -2
  130. package/dist/phases/code-refine-verification/index.js +10 -10
  131. package/dist/phases/code-refine-verification/types.d.ts +2 -2
  132. package/dist/phases/code-review/context.d.ts +8 -8
  133. package/dist/phases/code-review/context.js +25 -25
  134. package/dist/phases/code-review/diff-utils.d.ts +1 -1
  135. package/dist/phases/code-review/diff-utils.js +1 -1
  136. package/dist/phases/code-review/index.d.ts +2 -2
  137. package/dist/phases/code-review/index.js +26 -26
  138. package/dist/phases/code-testing/analyzer.d.ts +2 -2
  139. package/dist/phases/code-testing/analyzer.js +18 -18
  140. package/dist/phases/code-testing/context-fetcher.d.ts +3 -3
  141. package/dist/phases/code-testing/context-fetcher.js +16 -16
  142. package/dist/phases/code-testing/prompts.d.ts +1 -1
  143. package/dist/phases/code-testing/prompts.js +5 -5
  144. package/dist/phases/find-bugs/index.d.ts +30 -0
  145. package/dist/phases/find-bugs/index.js +216 -0
  146. package/dist/phases/find-bugs/prompts.d.ts +22 -0
  147. package/dist/phases/find-bugs/prompts.js +101 -0
  148. package/dist/phases/find-bugs/state.d.ts +19 -0
  149. package/dist/phases/find-bugs/state.js +13 -0
  150. package/dist/phases/find-bugs/types.d.ts +21 -0
  151. package/dist/phases/find-bugs/types.js +16 -0
  152. package/dist/phases/find-features/index.d.ts +40 -0
  153. package/dist/phases/find-features/index.js +279 -0
  154. package/dist/phases/find-features/prompts.d.ts +43 -0
  155. package/dist/phases/find-features/prompts.js +138 -0
  156. package/dist/phases/find-features/state.d.ts +25 -0
  157. package/dist/phases/find-features/state.js +22 -0
  158. package/dist/phases/find-features/types.d.ts +27 -0
  159. package/dist/phases/find-features/types.js +16 -0
  160. package/dist/phases/find-shared/git.d.ts +24 -0
  161. package/dist/phases/find-shared/git.js +60 -0
  162. package/dist/phases/find-shared/mcp.d.ts +33 -0
  163. package/dist/phases/find-shared/mcp.js +69 -0
  164. package/dist/phases/find-shared/scan-state.d.ts +33 -0
  165. package/dist/phases/find-shared/scan-state.js +112 -0
  166. package/dist/phases/find-smells/index.d.ts +47 -0
  167. package/dist/phases/find-smells/index.js +278 -0
  168. package/dist/phases/find-smells/prompts.d.ts +30 -0
  169. package/dist/phases/find-smells/prompts.js +129 -0
  170. package/dist/phases/find-smells/state.d.ts +21 -0
  171. package/dist/phases/find-smells/state.js +17 -0
  172. package/dist/phases/find-smells/types.d.ts +51 -0
  173. package/dist/phases/find-smells/types.js +64 -0
  174. package/dist/phases/functional-testing/analyzer.d.ts +2 -2
  175. package/dist/phases/functional-testing/analyzer.js +40 -40
  176. package/dist/phases/functional-testing/context-fetcher.d.ts +3 -3
  177. package/dist/phases/functional-testing/context-fetcher.js +16 -16
  178. package/dist/phases/functional-testing/http-fallback.d.ts +2 -2
  179. package/dist/phases/functional-testing/http-fallback.js +9 -9
  180. package/dist/phases/functional-testing/mcp-server.js +23 -24
  181. package/dist/phases/functional-testing/prompts.d.ts +1 -1
  182. package/dist/phases/functional-testing/prompts.js +4 -4
  183. package/dist/phases/functional-testing/test-report-creator.d.ts +2 -2
  184. package/dist/phases/functional-testing/test-report-creator.js +10 -10
  185. package/dist/phases/functional-testing/test-retry-handler.js +3 -3
  186. package/dist/phases/growth-analysis/context.js +6 -6
  187. package/dist/phases/growth-analysis/index.js +2 -2
  188. package/dist/phases/growth-analysis/prompts.js +2 -2
  189. package/dist/phases/intelligence-analysis/context.js +7 -7
  190. package/dist/phases/intelligence-analysis/index.js +3 -3
  191. package/dist/phases/{feature-analysis → issue-analysis}/agent.js +1 -1
  192. package/dist/phases/issue-analysis/context.d.ts +24 -0
  193. package/dist/phases/{feature-analysis → issue-analysis}/context.js +30 -30
  194. package/dist/phases/issue-analysis/index.d.ts +8 -0
  195. package/dist/phases/{feature-analysis → issue-analysis}/index.js +29 -29
  196. package/dist/phases/issue-analysis/outcome.d.ts +40 -0
  197. package/dist/phases/{feature-analysis → issue-analysis}/outcome.js +17 -17
  198. package/dist/phases/{feature-analysis → issue-analysis}/prompts.d.ts +3 -3
  199. package/dist/phases/{feature-analysis → issue-analysis}/prompts.js +12 -12
  200. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/agent.d.ts +2 -2
  201. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/agent.js +1 -1
  202. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/index.d.ts +5 -5
  203. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/index.js +9 -9
  204. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/prompts.d.ts +2 -2
  205. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/prompts.js +7 -7
  206. package/dist/phases/output-contracts.js +37 -37
  207. package/dist/phases/pr-execution/context.d.ts +3 -3
  208. package/dist/phases/pr-execution/context.js +14 -14
  209. package/dist/phases/pr-execution/index.d.ts +2 -2
  210. package/dist/phases/pr-execution/index.js +22 -22
  211. package/dist/phases/pr-execution/outcome.d.ts +4 -4
  212. package/dist/phases/pr-execution/outcome.js +6 -6
  213. package/dist/phases/pr-execution/prompts.d.ts +4 -4
  214. package/dist/phases/pr-execution/prompts.js +6 -6
  215. package/dist/phases/pr-resolve/checklist-learner.js +2 -2
  216. package/dist/phases/pr-review/index.d.ts +1 -1
  217. package/dist/phases/pr-review/index.js +1 -1
  218. package/dist/phases/pr-review/prompts.d.ts +1 -1
  219. package/dist/phases/pr-review/prompts.js +1 -1
  220. package/dist/phases/pr-shared/context.d.ts +3 -3
  221. package/dist/phases/pr-shared/context.js +3 -3
  222. package/dist/phases/pr-splitting/context.d.ts +3 -3
  223. package/dist/phases/pr-splitting/context.js +16 -16
  224. package/dist/phases/pr-splitting/index.d.ts +4 -4
  225. package/dist/phases/pr-splitting/index.js +29 -29
  226. package/dist/phases/pr-splitting/outcome.d.ts +3 -3
  227. package/dist/phases/pr-splitting/outcome.js +7 -7
  228. package/dist/phases/pr-splitting/prompts.d.ts +3 -3
  229. package/dist/phases/pr-splitting/prompts.js +11 -11
  230. package/dist/phases/pull-request/creator.d.ts +4 -4
  231. package/dist/phases/pull-request/creator.js +25 -25
  232. package/dist/phases/pull-request/handler.d.ts +3 -3
  233. package/dist/phases/pull-request/handler.js +16 -16
  234. package/dist/phases/release-sync/index.js +2 -2
  235. package/dist/phases/run-sheet/agent.js +1 -2
  236. package/dist/phases/run-sheet/index.js +3 -3
  237. package/dist/phases/smoke-test/index.js +2 -2
  238. package/dist/phases/technical-design/context.d.ts +3 -3
  239. package/dist/phases/technical-design/context.js +11 -11
  240. package/dist/phases/technical-design/index.d.ts +2 -2
  241. package/dist/phases/technical-design/index.js +27 -27
  242. package/dist/phases/technical-design/outcome.d.ts +4 -4
  243. package/dist/phases/technical-design/outcome.js +6 -6
  244. package/dist/phases/technical-design/prompts.d.ts +2 -2
  245. package/dist/phases/technical-design/prompts.js +10 -10
  246. package/dist/phases/technical-design-verification/agent.d.ts +3 -3
  247. package/dist/phases/technical-design-verification/agent.js +4 -4
  248. package/dist/phases/technical-design-verification/index.d.ts +4 -4
  249. package/dist/phases/technical-design-verification/index.js +12 -12
  250. package/dist/phases/technical-design-verification/prompts.d.ts +3 -3
  251. package/dist/phases/technical-design-verification/prompts.js +6 -6
  252. package/dist/phases/test-cases-analysis/context.d.ts +5 -5
  253. package/dist/phases/test-cases-analysis/context.js +18 -18
  254. package/dist/phases/test-cases-analysis/formatters.js +7 -7
  255. package/dist/phases/test-cases-analysis/index.d.ts +1 -1
  256. package/dist/phases/test-cases-analysis/index.js +21 -21
  257. package/dist/phases/test-cases-analysis/outcome.d.ts +7 -7
  258. package/dist/phases/test-cases-analysis/outcome.js +13 -13
  259. package/dist/phases/test-cases-analysis/prompts.d.ts +3 -3
  260. package/dist/phases/test-cases-analysis/prompts.js +6 -6
  261. package/dist/phases/user-stories-analysis/context.d.ts +5 -5
  262. package/dist/phases/user-stories-analysis/context.js +18 -18
  263. package/dist/phases/user-stories-analysis/formatters.js +7 -7
  264. package/dist/phases/user-stories-analysis/index.d.ts +1 -1
  265. package/dist/phases/user-stories-analysis/index.js +21 -21
  266. package/dist/phases/user-stories-analysis/outcome.d.ts +7 -7
  267. package/dist/phases/user-stories-analysis/outcome.js +13 -13
  268. package/dist/phases/user-stories-analysis/prompts.d.ts +3 -3
  269. package/dist/phases/user-stories-analysis/prompts.js +10 -10
  270. package/dist/services/audit-logs.d.ts +10 -10
  271. package/dist/services/audit-logs.js +12 -12
  272. package/dist/services/branches.d.ts +6 -6
  273. package/dist/services/branches.js +16 -16
  274. package/dist/services/checklist.d.ts +3 -3
  275. package/dist/services/checklist.js +11 -11
  276. package/dist/services/coaching/coaching-agent.js +2 -2
  277. package/dist/services/coaching/coaching-loop.d.ts +1 -1
  278. package/dist/services/coaching/coaching-loop.js +2 -2
  279. package/dist/services/coaching/phase-coaching.d.ts +2 -2
  280. package/dist/services/coaching/phase-coaching.js +3 -3
  281. package/dist/services/coaching/self-rating.js +1 -1
  282. package/dist/services/feedbacks.d.ts +4 -4
  283. package/dist/services/feedbacks.js +8 -8
  284. package/dist/services/phase-hooks/bindings-fetcher.d.ts +4 -4
  285. package/dist/services/phase-hooks/bindings-fetcher.js +8 -8
  286. package/dist/services/phase-hooks/hook-executor.js +1 -1
  287. package/dist/services/phase-hooks/hook-logging.d.ts +2 -2
  288. package/dist/services/phase-hooks/hook-logging.js +4 -4
  289. package/dist/services/phase-hooks/hook-runner.d.ts +1 -1
  290. package/dist/services/phase-hooks/hook-runner.js +4 -4
  291. package/dist/services/phase-hooks/types.d.ts +3 -3
  292. package/dist/services/phase-ratings.d.ts +7 -7
  293. package/dist/services/phase-ratings.js +8 -8
  294. package/dist/services/pull-requests.d.ts +4 -4
  295. package/dist/services/pull-requests.js +11 -11
  296. package/dist/services/skill-resolver.d.ts +1 -1
  297. package/dist/services/skill-resolver.js +1 -1
  298. package/dist/skills/phase/app-store-generation/SKILL.md +9 -9
  299. package/dist/skills/phase/autonomous/SKILL.md +2 -2
  300. package/dist/skills/phase/branch-planning/SKILL.md +12 -12
  301. package/dist/skills/phase/bug-fixing/SKILL.md +1 -1
  302. package/dist/skills/phase/code-implementation/SKILL.md +6 -6
  303. package/dist/skills/phase/code-implementation-verification/SKILL.md +3 -3
  304. package/dist/skills/phase/code-testing/SKILL.md +5 -5
  305. package/dist/skills/phase/functional-testing/SKILL.md +3 -3
  306. package/dist/skills/phase/growth-analysis/SKILL.md +8 -8
  307. package/dist/skills/phase/incremental-sync/SKILL.md +6 -6
  308. package/dist/skills/phase/intelligence-analysis/SKILL.md +7 -7
  309. package/dist/skills/phase/{feature-analysis → issue-analysis}/SKILL.md +8 -8
  310. package/dist/skills/phase/pr-execution/SKILL.md +7 -7
  311. package/dist/skills/phase/pr-splitting/SKILL.md +14 -14
  312. package/dist/skills/phase/smoke-test/SKILL.md +1 -1
  313. package/dist/skills/phase/technical-design/SKILL.md +5 -5
  314. package/dist/skills/phase/test-cases-analysis/SKILL.md +4 -4
  315. package/dist/skills/phase/user-stories-analysis/SKILL.md +13 -13
  316. package/dist/system/session-manager.d.ts +3 -3
  317. package/dist/system/session-manager.js +3 -3
  318. package/dist/system/sleep-notification.js +2 -2
  319. package/dist/system/sleep-prevention.js +1 -1
  320. package/dist/types/index.d.ts +21 -21
  321. package/dist/types/{features.d.ts → issues.d.ts} +3 -3
  322. package/dist/types/pipeline.d.ts +4 -4
  323. package/dist/updater/auto-updater.d.ts +2 -2
  324. package/dist/updater/auto-updater.js +3 -3
  325. package/dist/utils/conflict-resolver.d.ts +1 -1
  326. package/dist/utils/conflict-resolver.js +5 -5
  327. package/dist/utils/formatters.d.ts +4 -4
  328. package/dist/utils/formatters.js +29 -29
  329. package/dist/utils/git-branch-manager-async.d.ts +6 -6
  330. package/dist/utils/git-branch-manager-async.js +41 -41
  331. package/dist/utils/git-branch-manager.d.ts +11 -11
  332. package/dist/utils/git-branch-manager.js +42 -42
  333. package/dist/utils/image-downloader.d.ts +4 -4
  334. package/dist/utils/image-downloader.js +17 -17
  335. package/dist/utils/pipeline-logger.d.ts +1 -1
  336. package/dist/utils/pipeline-logger.js +5 -5
  337. package/dist/workspace/workspace-manager.d.ts +17 -17
  338. package/dist/workspace/workspace-manager.js +21 -21
  339. package/package.json +1 -1
  340. package/vitest.config.ts +4 -0
  341. package/dist/api/__tests__/app-store.test.d.ts +0 -7
  342. package/dist/api/__tests__/app-store.test.js +0 -60
  343. package/dist/api/__tests__/intelligence.test.d.ts +0 -11
  344. package/dist/api/__tests__/intelligence.test.js +0 -315
  345. package/dist/api/features/__tests__/feature-utils.test.d.ts +0 -4
  346. package/dist/api/features/__tests__/feature-utils.test.js +0 -370
  347. package/dist/api/features/__tests__/status-updater.test.d.ts +0 -4
  348. package/dist/api/features/__tests__/status-updater.test.js +0 -88
  349. package/dist/api/features/approval-checker.d.ts +0 -20
  350. package/dist/api/features/feature-utils.d.ts +0 -23
  351. package/dist/api/features/feature-utils.js +0 -80
  352. package/dist/api/features/get-feature.d.ts +0 -5
  353. package/dist/api/features/get-feature.js +0 -21
  354. package/dist/api/features/index.d.ts +0 -8
  355. package/dist/api/features/index.js +0 -10
  356. package/dist/api/features/status-updater.d.ts +0 -41
  357. package/dist/api/features/update-feature.d.ts +0 -20
  358. package/dist/commands/build/__tests__/build.test.d.ts +0 -5
  359. package/dist/commands/build/__tests__/build.test.js +0 -206
  360. package/dist/commands/build/__tests__/detect-project.test.d.ts +0 -6
  361. package/dist/commands/build/__tests__/detect-project.test.js +0 -160
  362. package/dist/commands/build/__tests__/run-build.test.d.ts +0 -6
  363. package/dist/commands/build/__tests__/run-build.test.js +0 -433
  364. package/dist/commands/intelligence/__tests__/command.test.d.ts +0 -4
  365. package/dist/commands/intelligence/__tests__/command.test.js +0 -48
  366. package/dist/commands/workflow/core/__tests__/feature-filter.test.d.ts +0 -5
  367. package/dist/commands/workflow/core/__tests__/feature-filter.test.js +0 -316
  368. package/dist/commands/workflow/core/__tests__/pipeline-evaluator.test.d.ts +0 -4
  369. package/dist/commands/workflow/core/__tests__/pipeline-evaluator.test.js +0 -397
  370. package/dist/commands/workflow/core/__tests__/state-manager.test.d.ts +0 -4
  371. package/dist/commands/workflow/core/__tests__/state-manager.test.js +0 -384
  372. package/dist/commands/workflow/core/feature-filter.d.ts +0 -16
  373. package/dist/commands/workflow/core/feature-filter.js +0 -47
  374. package/dist/commands/workflow/feature-coordinator.d.ts +0 -18
  375. package/dist/config/__tests__/config.test.d.ts +0 -4
  376. package/dist/config/__tests__/config.test.js +0 -286
  377. package/dist/config/__tests__/feature-status.test.d.ts +0 -4
  378. package/dist/config/__tests__/feature-status.test.js +0 -111
  379. package/dist/errors/__tests__/index.test.d.ts +0 -4
  380. package/dist/errors/__tests__/index.test.js +0 -349
  381. package/dist/phases/app-store-generation/__tests__/agent.test.d.ts +0 -5
  382. package/dist/phases/app-store-generation/__tests__/agent.test.js +0 -142
  383. package/dist/phases/app-store-generation/__tests__/context.test.d.ts +0 -4
  384. package/dist/phases/app-store-generation/__tests__/context.test.js +0 -284
  385. package/dist/phases/app-store-generation/__tests__/prompts.test.d.ts +0 -4
  386. package/dist/phases/app-store-generation/__tests__/prompts.test.js +0 -122
  387. package/dist/phases/app-store-generation/__tests__/screenshot-composer.test.d.ts +0 -5
  388. package/dist/phases/app-store-generation/__tests__/screenshot-composer.test.js +0 -826
  389. package/dist/phases/code-review/__tests__/diff-utils.test.js +0 -101
  390. package/dist/phases/feature-analysis/context.d.ts +0 -24
  391. package/dist/phases/feature-analysis/index.d.ts +0 -8
  392. package/dist/phases/feature-analysis/outcome.d.ts +0 -40
  393. package/dist/phases/intelligence-analysis/__tests__/context.test.d.ts +0 -4
  394. package/dist/phases/intelligence-analysis/__tests__/context.test.js +0 -192
  395. package/dist/phases/intelligence-analysis/__tests__/matching.test.d.ts +0 -13
  396. package/dist/phases/intelligence-analysis/__tests__/matching.test.js +0 -154
  397. package/dist/phases/intelligence-analysis/__tests__/orchestration.test.d.ts +0 -5
  398. package/dist/phases/intelligence-analysis/__tests__/orchestration.test.js +0 -378
  399. package/dist/phases/intelligence-analysis/__tests__/prompts.test.d.ts +0 -4
  400. package/dist/phases/intelligence-analysis/__tests__/prompts.test.js +0 -33
  401. package/dist/phases/pr-execution/__tests__/file-assigner.test.d.ts +0 -1
  402. package/dist/phases/pr-execution/__tests__/file-assigner.test.js +0 -303
  403. package/dist/phases/pr-resolve/__tests__/checklist-learner.test.d.ts +0 -1
  404. package/dist/phases/pr-resolve/__tests__/checklist-learner.test.js +0 -157
  405. package/dist/phases/pr-resolve/__tests__/prompts.test.d.ts +0 -1
  406. package/dist/phases/pr-resolve/__tests__/prompts.test.js +0 -116
  407. package/dist/phases/pr-resolve/__tests__/resolve-mapping.test.d.ts +0 -1
  408. package/dist/phases/pr-resolve/__tests__/resolve-mapping.test.js +0 -138
  409. package/dist/phases/pr-resolve/__tests__/types.test.d.ts +0 -1
  410. package/dist/phases/pr-resolve/__tests__/types.test.js +0 -43
  411. package/dist/phases/pr-resolve/__tests__/workspace.test.d.ts +0 -1
  412. package/dist/phases/pr-resolve/__tests__/workspace.test.js +0 -111
  413. package/dist/phases/pr-review/__tests__/prompts.test.d.ts +0 -1
  414. package/dist/phases/pr-review/__tests__/prompts.test.js +0 -49
  415. package/dist/phases/pr-review/__tests__/review-comments.test.d.ts +0 -1
  416. package/dist/phases/pr-review/__tests__/review-comments.test.js +0 -110
  417. package/dist/phases/pr-shared/__tests__/agent-utils.test.d.ts +0 -1
  418. package/dist/phases/pr-shared/__tests__/agent-utils.test.js +0 -91
  419. package/dist/phases/pr-shared/__tests__/context.test.d.ts +0 -1
  420. package/dist/phases/pr-shared/__tests__/context.test.js +0 -94
  421. package/dist/phases/pr-splitting/__tests__/import-dep-validator.test.d.ts +0 -1
  422. package/dist/phases/pr-splitting/__tests__/import-dep-validator.test.js +0 -331
  423. package/dist/phases/run-sheet/render.d.ts +0 -60
  424. package/dist/phases/run-sheet/render.js +0 -297
  425. package/dist/phases/smoke-test/__tests__/agent.test.d.ts +0 -4
  426. package/dist/phases/smoke-test/__tests__/agent.test.js +0 -84
  427. package/dist/phases/smoke-test/__tests__/github.test.d.ts +0 -9
  428. package/dist/phases/smoke-test/__tests__/github.test.js +0 -120
  429. package/dist/phases/smoke-test/__tests__/snapshot.test.d.ts +0 -8
  430. package/dist/phases/smoke-test/__tests__/snapshot.test.js +0 -93
  431. package/dist/phases/smoke-test/github.d.ts +0 -54
  432. package/dist/phases/smoke-test/github.js +0 -101
  433. package/dist/phases/smoke-test/snapshot.d.ts +0 -27
  434. package/dist/phases/smoke-test/snapshot.js +0 -157
  435. package/dist/services/coaching/__tests__/coaching-agent.test.d.ts +0 -1
  436. package/dist/services/coaching/__tests__/coaching-agent.test.js +0 -74
  437. package/dist/services/coaching/__tests__/coaching-loop.test.d.ts +0 -1
  438. package/dist/services/coaching/__tests__/coaching-loop.test.js +0 -59
  439. package/dist/services/coaching/__tests__/self-rating.test.d.ts +0 -1
  440. package/dist/services/coaching/__tests__/self-rating.test.js +0 -188
  441. package/dist/services/lifecycle-agent/__tests__/phase-criteria.test.d.ts +0 -4
  442. package/dist/services/lifecycle-agent/__tests__/phase-criteria.test.js +0 -133
  443. package/dist/services/lifecycle-agent/__tests__/transition-rules.test.d.ts +0 -4
  444. package/dist/services/lifecycle-agent/__tests__/transition-rules.test.js +0 -336
  445. package/dist/services/lifecycle-agent/index.d.ts +0 -24
  446. package/dist/services/lifecycle-agent/index.js +0 -25
  447. package/dist/services/lifecycle-agent/phase-criteria.d.ts +0 -57
  448. package/dist/services/lifecycle-agent/phase-criteria.js +0 -335
  449. package/dist/services/lifecycle-agent/transition-rules.d.ts +0 -60
  450. package/dist/services/lifecycle-agent/transition-rules.js +0 -184
  451. package/dist/services/lifecycle-agent/types.d.ts +0 -190
  452. package/dist/services/lifecycle-agent/types.js +0 -12
  453. package/dist/services/phase-hooks/__tests__/bindings-fetcher.test.d.ts +0 -1
  454. package/dist/services/phase-hooks/__tests__/bindings-fetcher.test.js +0 -122
  455. package/dist/services/phase-hooks/__tests__/hook-executor.test.d.ts +0 -1
  456. package/dist/services/phase-hooks/__tests__/hook-executor.test.js +0 -321
  457. package/dist/services/phase-hooks/__tests__/hook-runner.test.d.ts +0 -1
  458. package/dist/services/phase-hooks/__tests__/hook-runner.test.js +0 -261
  459. package/dist/services/phase-hooks/__tests__/plugin-loader.test.d.ts +0 -1
  460. package/dist/services/phase-hooks/__tests__/plugin-loader.test.js +0 -158
  461. package/dist/services/video/__tests__/video-pipeline.test.d.ts +0 -6
  462. package/dist/services/video/__tests__/video-pipeline.test.js +0 -249
  463. package/dist/types/features.js +0 -1
  464. package/dist/workspace/__tests__/workspace-manager.test.d.ts +0 -7
  465. package/dist/workspace/__tests__/workspace-manager.test.js +0 -52
  466. /package/dist/api/{features → issues}/batch-operations.d.ts +0 -0
  467. /package/dist/api/{features → issues}/batch-operations.js +0 -0
  468. /package/dist/phases/{feature-analysis → issue-analysis}/agent.d.ts +0 -0
  469. /package/dist/skills/phase/{feature-analysis-verification → issue-analysis-verification}/SKILL.md +0 -0
  470. /package/dist/{phases/code-review/__tests__/diff-utils.test.d.ts → types/issues.js} +0 -0
@@ -1,397 +0,0 @@
1
- /**
2
- * Unit tests for pipeline result evaluation utilities
3
- */
4
- import assert from 'node:assert';
5
- import { describe, it } from 'node:test';
6
- import { calculatePipelineStats, countFailedPhases, countSuccessfulPhases, evaluatePipelineResults, getFailedPhases, getFirstFailure, getLastPhaseResult, getSuccessfulPhases, hasAnyPipelineFailures, isPipelineCompleteFailure, isPipelineEmpty, isPipelineFullySuccessful, isPipelinePartiallySuccessful, } from '../pipeline-evaluator.js';
7
- // Helper factory for creating test results
8
- const makeResult = (overrides) => ({
9
- featureId: 'feat-1',
10
- status: 'success',
11
- message: `Phase ${overrides.phase} completed`,
12
- ...overrides,
13
- });
14
- const successResult = (phase) => makeResult({ phase, status: 'success', message: `${phase} succeeded` });
15
- const errorResult = (phase) => makeResult({ phase, status: 'error', message: `${phase} failed` });
16
- const blockedResult = (phase) => makeResult({ phase, status: 'blocked', message: `${phase} blocked` });
17
- void describe('Pipeline Evaluator', () => {
18
- void describe('evaluatePipelineResults', () => {
19
- void it('should return true for empty results', () => {
20
- assert.strictEqual(evaluatePipelineResults([]), true, 'Empty array should vacuously satisfy every()');
21
- });
22
- void it('should return true when all results are successful', () => {
23
- const results = [
24
- successResult('analysis'),
25
- successResult('design'),
26
- successResult('implementation'),
27
- ];
28
- assert.strictEqual(evaluatePipelineResults(results), true);
29
- });
30
- void it('should return false when any result is an error', () => {
31
- const results = [
32
- successResult('analysis'),
33
- errorResult('design'),
34
- successResult('implementation'),
35
- ];
36
- assert.strictEqual(evaluatePipelineResults(results), false);
37
- });
38
- void it('should return false when any result is blocked', () => {
39
- const results = [successResult('analysis'), blockedResult('design')];
40
- assert.strictEqual(evaluatePipelineResults(results), false, 'Blocked status should cause evaluation to fail');
41
- });
42
- void it('should return false when all results are errors', () => {
43
- const results = [errorResult('analysis'), errorResult('design')];
44
- assert.strictEqual(evaluatePipelineResults(results), false);
45
- });
46
- });
47
- void describe('hasAnyPipelineFailures', () => {
48
- void it('should return false for empty results', () => {
49
- assert.strictEqual(hasAnyPipelineFailures([]), false);
50
- });
51
- void it('should return false when all results are successful', () => {
52
- const results = [successResult('analysis'), successResult('design')];
53
- assert.strictEqual(hasAnyPipelineFailures(results), false);
54
- });
55
- void it('should return true when at least one result is an error', () => {
56
- const results = [successResult('analysis'), errorResult('design')];
57
- assert.strictEqual(hasAnyPipelineFailures(results), true);
58
- });
59
- void it('should return true when at least one result is blocked', () => {
60
- const results = [successResult('analysis'), blockedResult('design')];
61
- assert.strictEqual(hasAnyPipelineFailures(results), true);
62
- });
63
- });
64
- void describe('countSuccessfulPhases', () => {
65
- void it('should return 0 for empty results', () => {
66
- assert.strictEqual(countSuccessfulPhases([]), 0);
67
- });
68
- void it('should count only successful phases', () => {
69
- const results = [
70
- successResult('analysis'),
71
- errorResult('design'),
72
- successResult('implementation'),
73
- blockedResult('testing'),
74
- ];
75
- assert.strictEqual(countSuccessfulPhases(results), 2);
76
- });
77
- void it('should return total count when all are successful', () => {
78
- const results = [
79
- successResult('analysis'),
80
- successResult('design'),
81
- successResult('implementation'),
82
- ];
83
- assert.strictEqual(countSuccessfulPhases(results), 3);
84
- });
85
- });
86
- void describe('countFailedPhases', () => {
87
- void it('should return 0 for empty results', () => {
88
- assert.strictEqual(countFailedPhases([]), 0);
89
- });
90
- void it('should count error and blocked phases as failed', () => {
91
- const results = [
92
- successResult('analysis'),
93
- errorResult('design'),
94
- blockedResult('implementation'),
95
- successResult('testing'),
96
- ];
97
- assert.strictEqual(countFailedPhases(results), 2, 'Both error and blocked should count as failed');
98
- });
99
- void it('should return 0 when all are successful', () => {
100
- const results = [successResult('analysis'), successResult('design')];
101
- assert.strictEqual(countFailedPhases(results), 0);
102
- });
103
- });
104
- void describe('getFailedPhases', () => {
105
- void it('should return empty array for empty results', () => {
106
- assert.deepStrictEqual(getFailedPhases([]), []);
107
- });
108
- void it('should return only non-success phases', () => {
109
- const results = [
110
- successResult('analysis'),
111
- errorResult('design'),
112
- blockedResult('implementation'),
113
- successResult('testing'),
114
- ];
115
- const failed = getFailedPhases(results);
116
- assert.strictEqual(failed.length, 2);
117
- assert.strictEqual(failed[0].phase, 'design');
118
- assert.strictEqual(failed[0].status, 'error');
119
- assert.strictEqual(failed[1].phase, 'implementation');
120
- assert.strictEqual(failed[1].status, 'blocked');
121
- });
122
- void it('should return empty array when all are successful', () => {
123
- const results = [successResult('analysis'), successResult('design')];
124
- assert.deepStrictEqual(getFailedPhases(results), []);
125
- });
126
- });
127
- void describe('getSuccessfulPhases', () => {
128
- void it('should return empty array for empty results', () => {
129
- assert.deepStrictEqual(getSuccessfulPhases([]), []);
130
- });
131
- void it('should return only successful phases', () => {
132
- const results = [
133
- successResult('analysis'),
134
- errorResult('design'),
135
- successResult('implementation'),
136
- ];
137
- const successful = getSuccessfulPhases(results);
138
- assert.strictEqual(successful.length, 2);
139
- assert.strictEqual(successful[0].phase, 'analysis');
140
- assert.strictEqual(successful[1].phase, 'implementation');
141
- });
142
- });
143
- void describe('getFirstFailure', () => {
144
- void it('should return undefined for empty results', () => {
145
- assert.strictEqual(getFirstFailure([]), undefined);
146
- });
147
- void it('should return undefined when all are successful', () => {
148
- const results = [successResult('analysis'), successResult('design')];
149
- assert.strictEqual(getFirstFailure(results), undefined);
150
- });
151
- void it('should return the first error result', () => {
152
- const results = [
153
- successResult('analysis'),
154
- errorResult('design'),
155
- errorResult('implementation'),
156
- ];
157
- const first = getFirstFailure(results);
158
- assert.strictEqual(first?.phase, 'design', 'Should return the first failure');
159
- });
160
- void it('should return blocked result as a failure', () => {
161
- const results = [
162
- successResult('analysis'),
163
- blockedResult('design'),
164
- errorResult('implementation'),
165
- ];
166
- const first = getFirstFailure(results);
167
- assert.strictEqual(first?.phase, 'design', 'Blocked should be treated as a failure');
168
- assert.strictEqual(first?.status, 'blocked');
169
- });
170
- void it('should return the only result if it is a failure', () => {
171
- const results = [errorResult('analysis')];
172
- const first = getFirstFailure(results);
173
- assert.strictEqual(first?.phase, 'analysis');
174
- });
175
- });
176
- void describe('getLastPhaseResult', () => {
177
- void it('should return undefined for empty results', () => {
178
- assert.strictEqual(getLastPhaseResult([]), undefined);
179
- });
180
- void it('should return the last result regardless of status', () => {
181
- const results = [
182
- successResult('analysis'),
183
- errorResult('design'),
184
- successResult('implementation'),
185
- ];
186
- const last = getLastPhaseResult(results);
187
- assert.strictEqual(last?.phase, 'implementation');
188
- assert.strictEqual(last?.status, 'success');
189
- });
190
- void it('should return the single result for a single-element array', () => {
191
- const results = [errorResult('analysis')];
192
- const last = getLastPhaseResult(results);
193
- assert.strictEqual(last?.phase, 'analysis');
194
- assert.strictEqual(last?.status, 'error');
195
- });
196
- });
197
- void describe('isPipelineFullySuccessful', () => {
198
- void it('should return false for empty results', () => {
199
- assert.strictEqual(isPipelineFullySuccessful([]), false, 'Empty pipeline is not fully successful');
200
- });
201
- void it('should return true when all results are successful', () => {
202
- const results = [
203
- successResult('analysis'),
204
- successResult('design'),
205
- successResult('implementation'),
206
- ];
207
- assert.strictEqual(isPipelineFullySuccessful(results), true);
208
- });
209
- void it('should return false when any result failed', () => {
210
- const results = [
211
- successResult('analysis'),
212
- errorResult('design'),
213
- successResult('implementation'),
214
- ];
215
- assert.strictEqual(isPipelineFullySuccessful(results), false);
216
- });
217
- void it('should return true for a single successful result', () => {
218
- assert.strictEqual(isPipelineFullySuccessful([successResult('analysis')]), true);
219
- });
220
- });
221
- void describe('isPipelinePartiallySuccessful', () => {
222
- void it('should return false for empty results', () => {
223
- assert.strictEqual(isPipelinePartiallySuccessful([]), false);
224
- });
225
- void it('should return false when all results are successful', () => {
226
- const results = [successResult('analysis'), successResult('design')];
227
- assert.strictEqual(isPipelinePartiallySuccessful(results), false, 'Fully successful is not partially successful');
228
- });
229
- void it('should return false when all results failed', () => {
230
- const results = [errorResult('analysis'), errorResult('design')];
231
- assert.strictEqual(isPipelinePartiallySuccessful(results), false, 'Complete failure is not partially successful');
232
- });
233
- void it('should return true when some succeed and some fail', () => {
234
- const results = [
235
- successResult('analysis'),
236
- errorResult('design'),
237
- successResult('implementation'),
238
- ];
239
- assert.strictEqual(isPipelinePartiallySuccessful(results), true);
240
- });
241
- void it('should return true with a mix of success and blocked', () => {
242
- const results = [successResult('analysis'), blockedResult('design')];
243
- assert.strictEqual(isPipelinePartiallySuccessful(results), true);
244
- });
245
- });
246
- void describe('isPipelineCompleteFailure', () => {
247
- void it('should return false for empty results', () => {
248
- assert.strictEqual(isPipelineCompleteFailure([]), false);
249
- });
250
- void it('should return true when no results are successful', () => {
251
- const results = [
252
- errorResult('analysis'),
253
- blockedResult('design'),
254
- errorResult('implementation'),
255
- ];
256
- assert.strictEqual(isPipelineCompleteFailure(results), true);
257
- });
258
- void it('should return false when at least one result is successful', () => {
259
- const results = [
260
- successResult('analysis'),
261
- errorResult('design'),
262
- errorResult('implementation'),
263
- ];
264
- assert.strictEqual(isPipelineCompleteFailure(results), false);
265
- });
266
- void it('should return true for a single error result', () => {
267
- assert.strictEqual(isPipelineCompleteFailure([errorResult('analysis')]), true);
268
- });
269
- });
270
- void describe('isPipelineEmpty', () => {
271
- void it('should return true for empty results', () => {
272
- assert.strictEqual(isPipelineEmpty([]), true);
273
- });
274
- void it('should return false when results exist', () => {
275
- assert.strictEqual(isPipelineEmpty([successResult('analysis')]), false);
276
- });
277
- });
278
- void describe('calculatePipelineStats', () => {
279
- void it('should return zeros for empty results', () => {
280
- const stats = calculatePipelineStats([]);
281
- assert.deepStrictEqual(stats, {
282
- total: 0,
283
- successful: 0,
284
- failed: 0,
285
- successRate: 0,
286
- });
287
- });
288
- void it('should calculate stats for all successful results', () => {
289
- const results = [
290
- successResult('analysis'),
291
- successResult('design'),
292
- successResult('implementation'),
293
- ];
294
- const stats = calculatePipelineStats(results);
295
- assert.strictEqual(stats.total, 3);
296
- assert.strictEqual(stats.successful, 3);
297
- assert.strictEqual(stats.failed, 0);
298
- assert.strictEqual(stats.successRate, 1);
299
- });
300
- void it('should calculate stats for all failed results', () => {
301
- const results = [errorResult('analysis'), errorResult('design')];
302
- const stats = calculatePipelineStats(results);
303
- assert.strictEqual(stats.total, 2);
304
- assert.strictEqual(stats.successful, 0);
305
- assert.strictEqual(stats.failed, 2);
306
- assert.strictEqual(stats.successRate, 0);
307
- });
308
- void it('should calculate correct successRate for mixed results', () => {
309
- const results = [
310
- successResult('analysis'),
311
- errorResult('design'),
312
- successResult('implementation'),
313
- blockedResult('testing'),
314
- ];
315
- const stats = calculatePipelineStats(results);
316
- assert.strictEqual(stats.total, 4);
317
- assert.strictEqual(stats.successful, 2);
318
- assert.strictEqual(stats.failed, 2);
319
- assert.strictEqual(stats.successRate, 0.5);
320
- });
321
- void it('should treat blocked as failed in stats', () => {
322
- const results = [
323
- successResult('analysis'),
324
- blockedResult('design'),
325
- blockedResult('implementation'),
326
- ];
327
- const stats = calculatePipelineStats(results);
328
- assert.strictEqual(stats.successful, 1);
329
- assert.strictEqual(stats.failed, 2);
330
- assert.ok(Math.abs(stats.successRate - 1 / 3) < 0.0001, 'successRate should be approximately 1/3');
331
- });
332
- void it('should calculate successRate for a single successful result', () => {
333
- const stats = calculatePipelineStats([successResult('analysis')]);
334
- assert.strictEqual(stats.total, 1);
335
- assert.strictEqual(stats.successful, 1);
336
- assert.strictEqual(stats.failed, 0);
337
- assert.strictEqual(stats.successRate, 1);
338
- });
339
- void it('should have total equal to successful plus failed', () => {
340
- const results = [
341
- successResult('analysis'),
342
- errorResult('design'),
343
- successResult('implementation'),
344
- blockedResult('testing'),
345
- successResult('review'),
346
- ];
347
- const stats = calculatePipelineStats(results);
348
- assert.strictEqual(stats.total, stats.successful + stats.failed, 'total should equal successful + failed');
349
- });
350
- });
351
- void describe('Integration - pipeline status categories are mutually exclusive', () => {
352
- void it('should have exactly one category true for all-success pipeline', () => {
353
- const results = [successResult('analysis'), successResult('design')];
354
- const full = isPipelineFullySuccessful(results);
355
- const partial = isPipelinePartiallySuccessful(results);
356
- const complete = isPipelineCompleteFailure(results);
357
- const empty = isPipelineEmpty(results);
358
- assert.strictEqual(full, true);
359
- assert.strictEqual(partial, false);
360
- assert.strictEqual(complete, false);
361
- assert.strictEqual(empty, false);
362
- });
363
- void it('should have exactly one category true for mixed pipeline', () => {
364
- const results = [successResult('analysis'), errorResult('design')];
365
- const full = isPipelineFullySuccessful(results);
366
- const partial = isPipelinePartiallySuccessful(results);
367
- const complete = isPipelineCompleteFailure(results);
368
- const empty = isPipelineEmpty(results);
369
- assert.strictEqual(full, false);
370
- assert.strictEqual(partial, true);
371
- assert.strictEqual(complete, false);
372
- assert.strictEqual(empty, false);
373
- });
374
- void it('should have exactly one category true for all-failure pipeline', () => {
375
- const results = [errorResult('analysis'), errorResult('design')];
376
- const full = isPipelineFullySuccessful(results);
377
- const partial = isPipelinePartiallySuccessful(results);
378
- const complete = isPipelineCompleteFailure(results);
379
- const empty = isPipelineEmpty(results);
380
- assert.strictEqual(full, false);
381
- assert.strictEqual(partial, false);
382
- assert.strictEqual(complete, true);
383
- assert.strictEqual(empty, false);
384
- });
385
- void it('should have exactly one category true for empty pipeline', () => {
386
- const results = [];
387
- const full = isPipelineFullySuccessful(results);
388
- const partial = isPipelinePartiallySuccessful(results);
389
- const complete = isPipelineCompleteFailure(results);
390
- const empty = isPipelineEmpty(results);
391
- assert.strictEqual(full, false);
392
- assert.strictEqual(partial, false);
393
- assert.strictEqual(complete, false);
394
- assert.strictEqual(empty, true);
395
- });
396
- });
397
- });
@@ -1,4 +0,0 @@
1
- /**
2
- * Unit tests for workflow state management utilities
3
- */
4
- export {};