edsger 0.77.0 → 0.78.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 (877) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +95 -210
  3. package/assets/LICENSE +21 -0
  4. package/assets/README.md +104 -0
  5. package/assets/benchmark/base.yaml +286 -0
  6. package/assets/benchmark/csharp.yaml +68 -0
  7. package/assets/benchmark/dart.yaml +70 -0
  8. package/assets/benchmark/go.yaml +71 -0
  9. package/assets/benchmark/java.yaml +68 -0
  10. package/assets/benchmark/python.yaml +72 -0
  11. package/assets/benchmark/typescript.yaml +71 -0
  12. package/assets/languages.yaml +35 -0
  13. package/assets/manifest.yaml +39 -0
  14. package/assets/review/base.yaml +111 -0
  15. package/assets/review/csharp.yaml +38 -0
  16. package/assets/review/dart.yaml +40 -0
  17. package/assets/review/go.yaml +40 -0
  18. package/assets/review/java.yaml +40 -0
  19. package/assets/review/python.yaml +41 -0
  20. package/assets/review/typescript.yaml +40 -0
  21. package/assets/schema/benchmark.schema.json +87 -0
  22. package/assets/schema/review.schema.json +73 -0
  23. package/assets/skills/benchmark/SKILL.md +66 -0
  24. package/assets/skills/pr-resolve/SKILL.md +58 -0
  25. package/assets/skills/pr-review/SKILL.md +66 -0
  26. package/dist/index.js +1339 -1247
  27. package/dist/index.js.map +1 -0
  28. package/package.json +58 -53
  29. package/dist/api/adr.d.ts +0 -48
  30. package/dist/api/adr.js +0 -139
  31. package/dist/api/app-store-iap.d.ts +0 -60
  32. package/dist/api/app-store-iap.js +0 -145
  33. package/dist/api/app-store.d.ts +0 -93
  34. package/dist/api/app-store.js +0 -206
  35. package/dist/api/chat.d.ts +0 -72
  36. package/dist/api/chat.js +0 -272
  37. package/dist/api/cross-product.d.ts +0 -33
  38. package/dist/api/cross-product.js +0 -127
  39. package/dist/api/financing.d.ts +0 -47
  40. package/dist/api/financing.js +0 -37
  41. package/dist/api/github.d.ts +0 -86
  42. package/dist/api/github.js +0 -203
  43. package/dist/api/growth.d.ts +0 -81
  44. package/dist/api/growth.js +0 -75
  45. package/dist/api/intelligence-normalize.d.ts +0 -25
  46. package/dist/api/intelligence-normalize.js +0 -103
  47. package/dist/api/intelligence.d.ts +0 -187
  48. package/dist/api/intelligence.js +0 -402
  49. package/dist/api/issues/approval-checker.d.ts +0 -22
  50. package/dist/api/issues/approval-checker.js +0 -141
  51. package/dist/api/issues/batch-operations.d.ts +0 -17
  52. package/dist/api/issues/batch-operations.js +0 -100
  53. package/dist/api/issues/get-issue.d.ts +0 -5
  54. package/dist/api/issues/get-issue.js +0 -47
  55. package/dist/api/issues/index.d.ts +0 -8
  56. package/dist/api/issues/index.js +0 -10
  57. package/dist/api/issues/issue-utils.d.ts +0 -25
  58. package/dist/api/issues/issue-utils.js +0 -133
  59. package/dist/api/issues/status-updater.d.ts +0 -68
  60. package/dist/api/issues/status-updater.js +0 -190
  61. package/dist/api/issues/test-cases.d.ts +0 -29
  62. package/dist/api/issues/test-cases.js +0 -185
  63. package/dist/api/issues/update-issue.d.ts +0 -25
  64. package/dist/api/issues/update-issue.js +0 -127
  65. package/dist/api/issues/user-stories.d.ts +0 -21
  66. package/dist/api/issues/user-stories.js +0 -163
  67. package/dist/api/mcp-client.d.ts +0 -22
  68. package/dist/api/mcp-client.js +0 -75
  69. package/dist/api/products/test-cases.d.ts +0 -18
  70. package/dist/api/products/test-cases.js +0 -51
  71. package/dist/api/products.d.ts +0 -15
  72. package/dist/api/products.js +0 -45
  73. package/dist/api/release-test-cases.d.ts +0 -7
  74. package/dist/api/release-test-cases.js +0 -59
  75. package/dist/api/releases.d.ts +0 -41
  76. package/dist/api/releases.js +0 -117
  77. package/dist/api/run-sheets.d.ts +0 -22
  78. package/dist/api/run-sheets.js +0 -13
  79. package/dist/api/storage.d.ts +0 -13
  80. package/dist/api/storage.js +0 -29
  81. package/dist/api/tasks.d.ts +0 -26
  82. package/dist/api/tasks.js +0 -81
  83. package/dist/api/test-reports.d.ts +0 -9
  84. package/dist/api/test-reports.js +0 -43
  85. package/dist/api/user-psychology.d.ts +0 -101
  86. package/dist/api/user-psychology.js +0 -143
  87. package/dist/api/web-deploy.d.ts +0 -67
  88. package/dist/api/web-deploy.js +0 -199
  89. package/dist/auth/auth-store.d.ts +0 -98
  90. package/dist/auth/auth-store.js +0 -194
  91. package/dist/auth/env-store.d.ts +0 -41
  92. package/dist/auth/env-store.js +0 -127
  93. package/dist/auth/login.d.ts +0 -18
  94. package/dist/auth/login.js +0 -179
  95. package/dist/commands/adr/index.d.ts +0 -13
  96. package/dist/commands/adr/index.js +0 -31
  97. package/dist/commands/agent-workflow/chat-worker.d.ts +0 -16
  98. package/dist/commands/agent-workflow/chat-worker.js +0 -465
  99. package/dist/commands/agent-workflow/index.d.ts +0 -13
  100. package/dist/commands/agent-workflow/index.js +0 -107
  101. package/dist/commands/agent-workflow/issue-worker.d.ts +0 -14
  102. package/dist/commands/agent-workflow/issue-worker.js +0 -65
  103. package/dist/commands/agent-workflow/processor.d.ts +0 -95
  104. package/dist/commands/agent-workflow/processor.js +0 -519
  105. package/dist/commands/analyze-logs/index.d.ts +0 -7
  106. package/dist/commands/analyze-logs/index.js +0 -34
  107. package/dist/commands/api-docs/index.d.ts +0 -18
  108. package/dist/commands/api-docs/index.js +0 -41
  109. package/dist/commands/app-store/index.d.ts +0 -12
  110. package/dist/commands/app-store/index.js +0 -69
  111. package/dist/commands/architecture-diagram/index.d.ts +0 -8
  112. package/dist/commands/architecture-diagram/index.js +0 -10
  113. package/dist/commands/build/detect-project.d.ts +0 -52
  114. package/dist/commands/build/detect-project.js +0 -277
  115. package/dist/commands/build/index.d.ts +0 -66
  116. package/dist/commands/build/index.js +0 -544
  117. package/dist/commands/chat-serve/chat-server.d.ts +0 -114
  118. package/dist/commands/chat-serve/chat-server.js +0 -339
  119. package/dist/commands/chat-serve/index.d.ts +0 -20
  120. package/dist/commands/chat-serve/index.js +0 -58
  121. package/dist/commands/checklists/index.d.ts +0 -16
  122. package/dist/commands/checklists/index.js +0 -187
  123. package/dist/commands/checklists/tools.d.ts +0 -17
  124. package/dist/commands/checklists/tools.js +0 -19
  125. package/dist/commands/class-diagram/index.d.ts +0 -7
  126. package/dist/commands/class-diagram/index.js +0 -9
  127. package/dist/commands/code-review/index.d.ts +0 -2
  128. package/dist/commands/code-review/index.js +0 -37
  129. package/dist/commands/code-review/reviewer.d.ts +0 -3
  130. package/dist/commands/code-review/reviewer.js +0 -205
  131. package/dist/commands/config/index.d.ts +0 -16
  132. package/dist/commands/config/index.js +0 -60
  133. package/dist/commands/data-flow/index.d.ts +0 -19
  134. package/dist/commands/data-flow/index.js +0 -55
  135. package/dist/commands/diagram-shared/index.d.ts +0 -21
  136. package/dist/commands/diagram-shared/index.js +0 -37
  137. package/dist/commands/discover/index.d.ts +0 -14
  138. package/dist/commands/discover/index.js +0 -29
  139. package/dist/commands/er-diagram/index.d.ts +0 -19
  140. package/dist/commands/er-diagram/index.js +0 -55
  141. package/dist/commands/features/index.d.ts +0 -15
  142. package/dist/commands/features/index.js +0 -34
  143. package/dist/commands/financing-deck/index.d.ts +0 -8
  144. package/dist/commands/financing-deck/index.js +0 -66
  145. package/dist/commands/find-architecture/index.d.ts +0 -15
  146. package/dist/commands/find-architecture/index.js +0 -50
  147. package/dist/commands/find-bugs/index.d.ts +0 -13
  148. package/dist/commands/find-bugs/index.js +0 -48
  149. package/dist/commands/find-features/index.d.ts +0 -14
  150. package/dist/commands/find-features/index.js +0 -42
  151. package/dist/commands/find-smells/index.d.ts +0 -23
  152. package/dist/commands/find-smells/index.js +0 -74
  153. package/dist/commands/flowchart/index.d.ts +0 -8
  154. package/dist/commands/flowchart/index.js +0 -10
  155. package/dist/commands/growth-analysis/index.d.ts +0 -7
  156. package/dist/commands/growth-analysis/index.js +0 -89
  157. package/dist/commands/init/index.d.ts +0 -5
  158. package/dist/commands/init/index.js +0 -152
  159. package/dist/commands/init/prompts.d.ts +0 -9
  160. package/dist/commands/init/prompts.js +0 -128
  161. package/dist/commands/init/templates.d.ts +0 -9
  162. package/dist/commands/init/templates.js +0 -264
  163. package/dist/commands/intelligence/index.d.ts +0 -15
  164. package/dist/commands/intelligence/index.js +0 -138
  165. package/dist/commands/issue-analysis/index.d.ts +0 -5
  166. package/dist/commands/issue-analysis/index.js +0 -9
  167. package/dist/commands/pr-resolve/index.d.ts +0 -13
  168. package/dist/commands/pr-resolve/index.js +0 -50
  169. package/dist/commands/pr-review/index.d.ts +0 -12
  170. package/dist/commands/pr-review/index.js +0 -47
  171. package/dist/commands/product-techniques/index.d.ts +0 -15
  172. package/dist/commands/product-techniques/index.js +0 -37
  173. package/dist/commands/product-test-cases/index.d.ts +0 -12
  174. package/dist/commands/product-test-cases/index.js +0 -40
  175. package/dist/commands/quality-benchmark/index.d.ts +0 -45
  176. package/dist/commands/quality-benchmark/index.js +0 -247
  177. package/dist/commands/recipes/index.d.ts +0 -17
  178. package/dist/commands/recipes/index.js +0 -40
  179. package/dist/commands/refactor/refactor.d.ts +0 -2
  180. package/dist/commands/refactor/refactor.js +0 -134
  181. package/dist/commands/release-sync/index.d.ts +0 -5
  182. package/dist/commands/release-sync/index.js +0 -38
  183. package/dist/commands/run-sheet/index.d.ts +0 -6
  184. package/dist/commands/run-sheet/index.js +0 -48
  185. package/dist/commands/screen-flow/index.d.ts +0 -18
  186. package/dist/commands/screen-flow/index.js +0 -54
  187. package/dist/commands/sequence-diagram/index.d.ts +0 -19
  188. package/dist/commands/sequence-diagram/index.js +0 -55
  189. package/dist/commands/session-serve/index.d.ts +0 -32
  190. package/dist/commands/session-serve/index.js +0 -100
  191. package/dist/commands/session-turn/index.d.ts +0 -73
  192. package/dist/commands/session-turn/index.js +0 -254
  193. package/dist/commands/smoke-test/index.d.ts +0 -5
  194. package/dist/commands/smoke-test/index.js +0 -40
  195. package/dist/commands/state-diagram/index.d.ts +0 -7
  196. package/dist/commands/state-diagram/index.js +0 -9
  197. package/dist/commands/sync-aws/index.d.ts +0 -16
  198. package/dist/commands/sync-aws/index.js +0 -214
  199. package/dist/commands/sync-datadog/index.d.ts +0 -16
  200. package/dist/commands/sync-datadog/index.js +0 -236
  201. package/dist/commands/sync-github-issues/index.d.ts +0 -11
  202. package/dist/commands/sync-github-issues/index.js +0 -42
  203. package/dist/commands/sync-github-pull-requests/index.d.ts +0 -11
  204. package/dist/commands/sync-github-pull-requests/index.js +0 -42
  205. package/dist/commands/sync-org-repos/index.d.ts +0 -12
  206. package/dist/commands/sync-org-repos/index.js +0 -60
  207. package/dist/commands/sync-sentry-issues/index.d.ts +0 -14
  208. package/dist/commands/sync-sentry-issues/index.js +0 -73
  209. package/dist/commands/sync-terraform/index.d.ts +0 -16
  210. package/dist/commands/sync-terraform/index.js +0 -248
  211. package/dist/commands/task-worker/index.d.ts +0 -8
  212. package/dist/commands/task-worker/index.js +0 -34
  213. package/dist/commands/task-worker/processor.d.ts +0 -23
  214. package/dist/commands/task-worker/processor.js +0 -84
  215. package/dist/commands/technical-design/index.d.ts +0 -5
  216. package/dist/commands/technical-design/index.js +0 -9
  217. package/dist/commands/test-cases-analysis/index.d.ts +0 -5
  218. package/dist/commands/test-cases-analysis/index.js +0 -9
  219. package/dist/commands/user-psychology/index.d.ts +0 -7
  220. package/dist/commands/user-psychology/index.js +0 -51
  221. package/dist/commands/user-stories-analysis/index.d.ts +0 -5
  222. package/dist/commands/user-stories-analysis/index.js +0 -9
  223. package/dist/commands/workflow/config/phase-configs.d.ts +0 -5
  224. package/dist/commands/workflow/config/phase-configs.js +0 -132
  225. package/dist/commands/workflow/core/index.d.ts +0 -8
  226. package/dist/commands/workflow/core/index.js +0 -12
  227. package/dist/commands/workflow/core/issue-filter.d.ts +0 -16
  228. package/dist/commands/workflow/core/issue-filter.js +0 -47
  229. package/dist/commands/workflow/core/pipeline-evaluator.d.ts +0 -24
  230. package/dist/commands/workflow/core/pipeline-evaluator.js +0 -32
  231. package/dist/commands/workflow/core/state-manager.d.ts +0 -24
  232. package/dist/commands/workflow/core/state-manager.js +0 -42
  233. package/dist/commands/workflow/core/workflow-logger.d.ts +0 -23
  234. package/dist/commands/workflow/core/workflow-logger.js +0 -77
  235. package/dist/commands/workflow/executors/phase-executor.d.ts +0 -8
  236. package/dist/commands/workflow/executors/phase-executor.js +0 -338
  237. package/dist/commands/workflow/index.d.ts +0 -2
  238. package/dist/commands/workflow/index.js +0 -34
  239. package/dist/commands/workflow/issue-coordinator.d.ts +0 -18
  240. package/dist/commands/workflow/issue-coordinator.js +0 -161
  241. package/dist/commands/workflow/phase-orchestrator.d.ts +0 -26
  242. package/dist/commands/workflow/phase-orchestrator.js +0 -699
  243. package/dist/commands/workflow/processor.d.ts +0 -47
  244. package/dist/commands/workflow/processor.js +0 -149
  245. package/dist/config/issue-status.d.ts +0 -29
  246. package/dist/config/issue-status.js +0 -44
  247. package/dist/config.d.ts +0 -3
  248. package/dist/config.js +0 -79
  249. package/dist/constants.d.ts +0 -10
  250. package/dist/constants.js +0 -36
  251. package/dist/errors/index.d.ts +0 -68
  252. package/dist/errors/index.js +0 -129
  253. package/dist/index.d.ts +0 -4
  254. package/dist/phases/adr-generation/agent.d.ts +0 -6
  255. package/dist/phases/adr-generation/agent.js +0 -69
  256. package/dist/phases/adr-generation/index.d.ts +0 -15
  257. package/dist/phases/adr-generation/index.js +0 -66
  258. package/dist/phases/adr-generation/parse.d.ts +0 -12
  259. package/dist/phases/adr-generation/parse.js +0 -123
  260. package/dist/phases/adr-generation/prompts.d.ts +0 -8
  261. package/dist/phases/adr-generation/prompts.js +0 -35
  262. package/dist/phases/analyze-logs/agent.d.ts +0 -11
  263. package/dist/phases/analyze-logs/agent.js +0 -66
  264. package/dist/phases/analyze-logs/index.d.ts +0 -23
  265. package/dist/phases/analyze-logs/index.js +0 -152
  266. package/dist/phases/analyze-logs/prompts.d.ts +0 -3
  267. package/dist/phases/analyze-logs/prompts.js +0 -27
  268. package/dist/phases/api-docs/index.d.ts +0 -47
  269. package/dist/phases/api-docs/index.js +0 -254
  270. package/dist/phases/api-docs/mcp-server.d.ts +0 -25
  271. package/dist/phases/api-docs/mcp-server.js +0 -82
  272. package/dist/phases/api-docs/prompts.d.ts +0 -16
  273. package/dist/phases/api-docs/prompts.js +0 -65
  274. package/dist/phases/api-docs/types.d.ts +0 -22
  275. package/dist/phases/api-docs/types.js +0 -10
  276. package/dist/phases/app-store-generation/agent.d.ts +0 -2
  277. package/dist/phases/app-store-generation/agent.js +0 -177
  278. package/dist/phases/app-store-generation/assets/inter-latin-ext.woff2 +0 -0
  279. package/dist/phases/app-store-generation/assets/inter-latin.woff2 +0 -0
  280. package/dist/phases/app-store-generation/context.d.ts +0 -21
  281. package/dist/phases/app-store-generation/context.js +0 -78
  282. package/dist/phases/app-store-generation/index.d.ts +0 -20
  283. package/dist/phases/app-store-generation/index.js +0 -157
  284. package/dist/phases/app-store-generation/inter-font.d.ts +0 -20
  285. package/dist/phases/app-store-generation/inter-font.js +0 -49
  286. package/dist/phases/app-store-generation/prompts.d.ts +0 -43
  287. package/dist/phases/app-store-generation/prompts.js +0 -73
  288. package/dist/phases/app-store-generation/screenshot-composer.d.ts +0 -41
  289. package/dist/phases/app-store-generation/screenshot-composer.js +0 -516
  290. package/dist/phases/app-store-generation/uploader.d.ts +0 -19
  291. package/dist/phases/app-store-generation/uploader.js +0 -150
  292. package/dist/phases/architecture-diagram/index.d.ts +0 -15
  293. package/dist/phases/architecture-diagram/index.js +0 -51
  294. package/dist/phases/autonomous/index.d.ts +0 -32
  295. package/dist/phases/autonomous/index.js +0 -412
  296. package/dist/phases/autonomous/prompts.d.ts +0 -5
  297. package/dist/phases/autonomous/prompts.js +0 -31
  298. package/dist/phases/branch-planning/context.d.ts +0 -14
  299. package/dist/phases/branch-planning/context.js +0 -43
  300. package/dist/phases/branch-planning/index.d.ts +0 -25
  301. package/dist/phases/branch-planning/index.js +0 -404
  302. package/dist/phases/branch-planning/outcome.d.ts +0 -28
  303. package/dist/phases/branch-planning/outcome.js +0 -115
  304. package/dist/phases/branch-planning/prompts.d.ts +0 -41
  305. package/dist/phases/branch-planning/prompts.js +0 -157
  306. package/dist/phases/bug-fixing/analyzer.d.ts +0 -17
  307. package/dist/phases/bug-fixing/analyzer.js +0 -247
  308. package/dist/phases/bug-fixing/context-fetcher.d.ts +0 -22
  309. package/dist/phases/bug-fixing/context-fetcher.js +0 -137
  310. package/dist/phases/bug-fixing/index.d.ts +0 -7
  311. package/dist/phases/bug-fixing/index.js +0 -7
  312. package/dist/phases/bug-fixing/mcp-server.d.ts +0 -18
  313. package/dist/phases/bug-fixing/mcp-server.js +0 -19
  314. package/dist/phases/bug-fixing/prompts.d.ts +0 -2
  315. package/dist/phases/bug-fixing/prompts.js +0 -9
  316. package/dist/phases/chat-processor/context.d.ts +0 -38
  317. package/dist/phases/chat-processor/context.js +0 -91
  318. package/dist/phases/chat-processor/index.d.ts +0 -49
  319. package/dist/phases/chat-processor/index.js +0 -482
  320. package/dist/phases/chat-processor/product-context.d.ts +0 -36
  321. package/dist/phases/chat-processor/product-context.js +0 -113
  322. package/dist/phases/chat-processor/product-prompts.d.ts +0 -4
  323. package/dist/phases/chat-processor/product-prompts.js +0 -65
  324. package/dist/phases/chat-processor/product-tools.d.ts +0 -8
  325. package/dist/phases/chat-processor/product-tools.js +0 -11
  326. package/dist/phases/chat-processor/prompts.d.ts +0 -35
  327. package/dist/phases/chat-processor/prompts.js +0 -213
  328. package/dist/phases/chat-processor/tools.d.ts +0 -8
  329. package/dist/phases/chat-processor/tools.js +0 -11
  330. package/dist/phases/class-diagram/index.d.ts +0 -14
  331. package/dist/phases/class-diagram/index.js +0 -76
  332. package/dist/phases/code-implementation/branch-pr-creator.d.ts +0 -31
  333. package/dist/phases/code-implementation/branch-pr-creator.js +0 -172
  334. package/dist/phases/code-implementation/context.d.ts +0 -17
  335. package/dist/phases/code-implementation/context.js +0 -88
  336. package/dist/phases/code-implementation/index.d.ts +0 -33
  337. package/dist/phases/code-implementation/index.js +0 -926
  338. package/dist/phases/code-implementation/outcome.d.ts +0 -47
  339. package/dist/phases/code-implementation/outcome.js +0 -53
  340. package/dist/phases/code-implementation/prompts.d.ts +0 -8
  341. package/dist/phases/code-implementation/prompts.js +0 -166
  342. package/dist/phases/code-implementation-verification/agent.d.ts +0 -32
  343. package/dist/phases/code-implementation-verification/agent.js +0 -225
  344. package/dist/phases/code-implementation-verification/index.d.ts +0 -27
  345. package/dist/phases/code-implementation-verification/index.js +0 -121
  346. package/dist/phases/code-implementation-verification/prompts.d.ts +0 -10
  347. package/dist/phases/code-implementation-verification/prompts.js +0 -90
  348. package/dist/phases/code-refine/context.d.ts +0 -99
  349. package/dist/phases/code-refine/context.js +0 -457
  350. package/dist/phases/code-refine/index.d.ts +0 -59
  351. package/dist/phases/code-refine/index.js +0 -348
  352. package/dist/phases/code-refine/prompts.d.ts +0 -5
  353. package/dist/phases/code-refine/prompts.js +0 -162
  354. package/dist/phases/code-refine/refine-iteration.d.ts +0 -33
  355. package/dist/phases/code-refine/refine-iteration.js +0 -166
  356. package/dist/phases/code-refine/retry-handler.d.ts +0 -17
  357. package/dist/phases/code-refine/retry-handler.js +0 -87
  358. package/dist/phases/code-refine-verification/github.d.ts +0 -54
  359. package/dist/phases/code-refine-verification/github.js +0 -328
  360. package/dist/phases/code-refine-verification/index.d.ts +0 -11
  361. package/dist/phases/code-refine-verification/index.js +0 -260
  362. package/dist/phases/code-refine-verification/llm-analyzer.d.ts +0 -22
  363. package/dist/phases/code-refine-verification/llm-analyzer.js +0 -152
  364. package/dist/phases/code-refine-verification/prompts.d.ts +0 -5
  365. package/dist/phases/code-refine-verification/prompts.js +0 -119
  366. package/dist/phases/code-refine-verification/types.d.ts +0 -74
  367. package/dist/phases/code-refine-verification/types.js +0 -4
  368. package/dist/phases/code-review/context.d.ts +0 -96
  369. package/dist/phases/code-review/context.js +0 -278
  370. package/dist/phases/code-review/diff-utils.d.ts +0 -36
  371. package/dist/phases/code-review/diff-utils.js +0 -100
  372. package/dist/phases/code-review/index.d.ts +0 -40
  373. package/dist/phases/code-review/index.js +0 -627
  374. package/dist/phases/code-testing/analyzer.d.ts +0 -19
  375. package/dist/phases/code-testing/analyzer.js +0 -215
  376. package/dist/phases/code-testing/context-fetcher.d.ts +0 -16
  377. package/dist/phases/code-testing/context-fetcher.js +0 -83
  378. package/dist/phases/code-testing/index.d.ts +0 -2
  379. package/dist/phases/code-testing/index.js +0 -2
  380. package/dist/phases/code-testing/prompts.d.ts +0 -3
  381. package/dist/phases/code-testing/prompts.js +0 -63
  382. package/dist/phases/data-flow/index.d.ts +0 -28
  383. package/dist/phases/data-flow/index.js +0 -286
  384. package/dist/phases/data-flow/mcp-server.d.ts +0 -85
  385. package/dist/phases/data-flow/mcp-server.js +0 -140
  386. package/dist/phases/data-flow/prompts.d.ts +0 -14
  387. package/dist/phases/data-flow/prompts.js +0 -36
  388. package/dist/phases/data-flow/types.d.ts +0 -71
  389. package/dist/phases/data-flow/types.js +0 -86
  390. package/dist/phases/diagram-shared/clone-repos.d.ts +0 -63
  391. package/dist/phases/diagram-shared/clone-repos.js +0 -153
  392. package/dist/phases/diagram-shared/generate.d.ts +0 -42
  393. package/dist/phases/diagram-shared/generate.js +0 -162
  394. package/dist/phases/diagram-shared/graph.d.ts +0 -62
  395. package/dist/phases/diagram-shared/graph.js +0 -169
  396. package/dist/phases/diagram-shared/mcp.d.ts +0 -35
  397. package/dist/phases/diagram-shared/mcp.js +0 -68
  398. package/dist/phases/diagram-shared/prompts.d.ts +0 -23
  399. package/dist/phases/diagram-shared/prompts.js +0 -35
  400. package/dist/phases/discover-services/index.d.ts +0 -29
  401. package/dist/phases/discover-services/index.js +0 -528
  402. package/dist/phases/er-diagram/index.d.ts +0 -28
  403. package/dist/phases/er-diagram/index.js +0 -290
  404. package/dist/phases/er-diagram/mcp-server.d.ts +0 -77
  405. package/dist/phases/er-diagram/mcp-server.js +0 -144
  406. package/dist/phases/er-diagram/prompts.d.ts +0 -14
  407. package/dist/phases/er-diagram/prompts.js +0 -36
  408. package/dist/phases/er-diagram/types.d.ts +0 -76
  409. package/dist/phases/er-diagram/types.js +0 -84
  410. package/dist/phases/features/index.d.ts +0 -65
  411. package/dist/phases/features/index.js +0 -292
  412. package/dist/phases/features/mcp-server.d.ts +0 -61
  413. package/dist/phases/features/mcp-server.js +0 -165
  414. package/dist/phases/features/prompts.d.ts +0 -32
  415. package/dist/phases/features/prompts.js +0 -92
  416. package/dist/phases/features/types.d.ts +0 -34
  417. package/dist/phases/features/types.js +0 -15
  418. package/dist/phases/financing-deck/agent.d.ts +0 -1
  419. package/dist/phases/financing-deck/agent.js +0 -96
  420. package/dist/phases/financing-deck/context.d.ts +0 -13
  421. package/dist/phases/financing-deck/context.js +0 -69
  422. package/dist/phases/financing-deck/index.d.ts +0 -15
  423. package/dist/phases/financing-deck/index.js +0 -89
  424. package/dist/phases/financing-deck/prompts.d.ts +0 -2
  425. package/dist/phases/financing-deck/prompts.js +0 -94
  426. package/dist/phases/find-architecture/index.d.ts +0 -47
  427. package/dist/phases/find-architecture/index.js +0 -268
  428. package/dist/phases/find-architecture/prompts.d.ts +0 -32
  429. package/dist/phases/find-architecture/prompts.js +0 -129
  430. package/dist/phases/find-architecture/state.d.ts +0 -21
  431. package/dist/phases/find-architecture/state.js +0 -17
  432. package/dist/phases/find-architecture/types.d.ts +0 -55
  433. package/dist/phases/find-architecture/types.js +0 -69
  434. package/dist/phases/find-bugs/index.d.ts +0 -33
  435. package/dist/phases/find-bugs/index.js +0 -238
  436. package/dist/phases/find-bugs/prompts.d.ts +0 -22
  437. package/dist/phases/find-bugs/prompts.js +0 -101
  438. package/dist/phases/find-bugs/state.d.ts +0 -19
  439. package/dist/phases/find-bugs/state.js +0 -13
  440. package/dist/phases/find-bugs/types.d.ts +0 -21
  441. package/dist/phases/find-bugs/types.js +0 -16
  442. package/dist/phases/find-features/index.d.ts +0 -40
  443. package/dist/phases/find-features/index.js +0 -328
  444. package/dist/phases/find-features/prompts.d.ts +0 -43
  445. package/dist/phases/find-features/prompts.js +0 -138
  446. package/dist/phases/find-features/state.d.ts +0 -25
  447. package/dist/phases/find-features/state.js +0 -22
  448. package/dist/phases/find-features/types.d.ts +0 -27
  449. package/dist/phases/find-features/types.js +0 -16
  450. package/dist/phases/find-shared/baseline.d.ts +0 -45
  451. package/dist/phases/find-shared/baseline.js +0 -56
  452. package/dist/phases/find-shared/custom-rules.d.ts +0 -39
  453. package/dist/phases/find-shared/custom-rules.js +0 -75
  454. package/dist/phases/find-shared/detect-context.d.ts +0 -40
  455. package/dist/phases/find-shared/detect-context.js +0 -247
  456. package/dist/phases/find-shared/git.d.ts +0 -24
  457. package/dist/phases/find-shared/git.js +0 -60
  458. package/dist/phases/find-shared/mcp.d.ts +0 -54
  459. package/dist/phases/find-shared/mcp.js +0 -127
  460. package/dist/phases/find-shared/rule-config.d.ts +0 -37
  461. package/dist/phases/find-shared/rule-config.js +0 -67
  462. package/dist/phases/find-shared/rule-packs.d.ts +0 -65
  463. package/dist/phases/find-shared/rule-packs.js +0 -124
  464. package/dist/phases/find-shared/scan-state.d.ts +0 -33
  465. package/dist/phases/find-shared/scan-state.js +0 -112
  466. package/dist/phases/find-shared/scoped-read.d.ts +0 -12
  467. package/dist/phases/find-shared/scoped-read.js +0 -33
  468. package/dist/phases/find-smells/index.d.ts +0 -50
  469. package/dist/phases/find-smells/index.js +0 -305
  470. package/dist/phases/find-smells/prompts.d.ts +0 -31
  471. package/dist/phases/find-smells/prompts.js +0 -130
  472. package/dist/phases/find-smells/state.d.ts +0 -21
  473. package/dist/phases/find-smells/state.js +0 -17
  474. package/dist/phases/find-smells/types.d.ts +0 -51
  475. package/dist/phases/find-smells/types.js +0 -64
  476. package/dist/phases/flow-shared/clone-repos.d.ts +0 -63
  477. package/dist/phases/flow-shared/clone-repos.js +0 -153
  478. package/dist/phases/flowchart/index.d.ts +0 -15
  479. package/dist/phases/flowchart/index.js +0 -50
  480. package/dist/phases/functional-testing/analyzer.d.ts +0 -46
  481. package/dist/phases/functional-testing/analyzer.js +0 -622
  482. package/dist/phases/functional-testing/context-fetcher.d.ts +0 -16
  483. package/dist/phases/functional-testing/context-fetcher.js +0 -83
  484. package/dist/phases/functional-testing/http-fallback.d.ts +0 -10
  485. package/dist/phases/functional-testing/http-fallback.js +0 -156
  486. package/dist/phases/functional-testing/index.d.ts +0 -4
  487. package/dist/phases/functional-testing/index.js +0 -4
  488. package/dist/phases/functional-testing/mcp-server.d.ts +0 -9
  489. package/dist/phases/functional-testing/mcp-server.js +0 -13
  490. package/dist/phases/functional-testing/prompts.d.ts +0 -2
  491. package/dist/phases/functional-testing/prompts.js +0 -58
  492. package/dist/phases/functional-testing/test-report-creator.d.ts +0 -68
  493. package/dist/phases/functional-testing/test-report-creator.js +0 -306
  494. package/dist/phases/functional-testing/test-retry-handler.d.ts +0 -16
  495. package/dist/phases/functional-testing/test-retry-handler.js +0 -70
  496. package/dist/phases/growth-analysis/agent.d.ts +0 -2
  497. package/dist/phases/growth-analysis/agent.js +0 -107
  498. package/dist/phases/growth-analysis/context.d.ts +0 -23
  499. package/dist/phases/growth-analysis/context.js +0 -137
  500. package/dist/phases/growth-analysis/index.d.ts +0 -32
  501. package/dist/phases/growth-analysis/index.js +0 -226
  502. package/dist/phases/growth-analysis/prompts.d.ts +0 -2
  503. package/dist/phases/growth-analysis/prompts.js +0 -45
  504. package/dist/phases/intelligence-analysis/agent.d.ts +0 -2
  505. package/dist/phases/intelligence-analysis/agent.js +0 -338
  506. package/dist/phases/intelligence-analysis/context.d.ts +0 -23
  507. package/dist/phases/intelligence-analysis/context.js +0 -142
  508. package/dist/phases/intelligence-analysis/index.d.ts +0 -58
  509. package/dist/phases/intelligence-analysis/index.js +0 -244
  510. package/dist/phases/intelligence-analysis/prompts.d.ts +0 -2
  511. package/dist/phases/intelligence-analysis/prompts.js +0 -62
  512. package/dist/phases/issue-analysis/agent.d.ts +0 -21
  513. package/dist/phases/issue-analysis/agent.js +0 -153
  514. package/dist/phases/issue-analysis/context.d.ts +0 -20
  515. package/dist/phases/issue-analysis/context.js +0 -93
  516. package/dist/phases/issue-analysis/index.d.ts +0 -8
  517. package/dist/phases/issue-analysis/index.js +0 -147
  518. package/dist/phases/issue-analysis/outcome.d.ts +0 -10
  519. package/dist/phases/issue-analysis/outcome.js +0 -42
  520. package/dist/phases/issue-analysis/prompts.d.ts +0 -8
  521. package/dist/phases/issue-analysis/prompts.js +0 -99
  522. package/dist/phases/issue-analysis-verification/agent.d.ts +0 -33
  523. package/dist/phases/issue-analysis-verification/agent.js +0 -124
  524. package/dist/phases/issue-analysis-verification/index.d.ts +0 -27
  525. package/dist/phases/issue-analysis-verification/index.js +0 -79
  526. package/dist/phases/issue-analysis-verification/prompts.d.ts +0 -9
  527. package/dist/phases/issue-analysis-verification/prompts.js +0 -75
  528. package/dist/phases/output-contracts.d.ts +0 -7
  529. package/dist/phases/output-contracts.js +0 -1201
  530. package/dist/phases/pr-execution/context.d.ts +0 -32
  531. package/dist/phases/pr-execution/context.js +0 -246
  532. package/dist/phases/pr-execution/file-assigner.d.ts +0 -57
  533. package/dist/phases/pr-execution/file-assigner.js +0 -287
  534. package/dist/phases/pr-execution/index.d.ts +0 -22
  535. package/dist/phases/pr-execution/index.js +0 -401
  536. package/dist/phases/pr-execution/outcome.d.ts +0 -24
  537. package/dist/phases/pr-execution/outcome.js +0 -34
  538. package/dist/phases/pr-execution/pr-executor.d.ts +0 -42
  539. package/dist/phases/pr-execution/pr-executor.js +0 -78
  540. package/dist/phases/pr-execution/prompts.d.ts +0 -27
  541. package/dist/phases/pr-execution/prompts.js +0 -131
  542. package/dist/phases/pr-resolve/checklist-learner.d.ts +0 -28
  543. package/dist/phases/pr-resolve/checklist-learner.js +0 -153
  544. package/dist/phases/pr-resolve/github-reply.d.ts +0 -16
  545. package/dist/phases/pr-resolve/github-reply.js +0 -75
  546. package/dist/phases/pr-resolve/index.d.ts +0 -33
  547. package/dist/phases/pr-resolve/index.js +0 -272
  548. package/dist/phases/pr-resolve/prompts.d.ts +0 -17
  549. package/dist/phases/pr-resolve/prompts.js +0 -107
  550. package/dist/phases/pr-resolve/types.d.ts +0 -18
  551. package/dist/phases/pr-resolve/types.js +0 -14
  552. package/dist/phases/pr-resolve/workspace.d.ts +0 -45
  553. package/dist/phases/pr-resolve/workspace.js +0 -174
  554. package/dist/phases/pr-review/index.d.ts +0 -27
  555. package/dist/phases/pr-review/index.js +0 -209
  556. package/dist/phases/pr-review/prompts.d.ts +0 -5
  557. package/dist/phases/pr-review/prompts.js +0 -87
  558. package/dist/phases/pr-shared/agent-utils.d.ts +0 -47
  559. package/dist/phases/pr-shared/agent-utils.js +0 -112
  560. package/dist/phases/pr-shared/context.d.ts +0 -24
  561. package/dist/phases/pr-shared/context.js +0 -78
  562. package/dist/phases/pr-shared/status.d.ts +0 -18
  563. package/dist/phases/pr-shared/status.js +0 -37
  564. package/dist/phases/pr-splitting/context.d.ts +0 -28
  565. package/dist/phases/pr-splitting/context.js +0 -182
  566. package/dist/phases/pr-splitting/import-dep-validator.d.ts +0 -67
  567. package/dist/phases/pr-splitting/import-dep-validator.js +0 -255
  568. package/dist/phases/pr-splitting/index.d.ts +0 -36
  569. package/dist/phases/pr-splitting/index.js +0 -413
  570. package/dist/phases/pr-splitting/outcome.d.ts +0 -24
  571. package/dist/phases/pr-splitting/outcome.js +0 -114
  572. package/dist/phases/pr-splitting/prompts.d.ts +0 -43
  573. package/dist/phases/pr-splitting/prompts.js +0 -154
  574. package/dist/phases/product-techniques/index.d.ts +0 -52
  575. package/dist/phases/product-techniques/index.js +0 -268
  576. package/dist/phases/product-techniques/mcp-server.d.ts +0 -41
  577. package/dist/phases/product-techniques/mcp-server.js +0 -96
  578. package/dist/phases/product-techniques/prompts.d.ts +0 -19
  579. package/dist/phases/product-techniques/prompts.js +0 -66
  580. package/dist/phases/product-techniques/types.d.ts +0 -13
  581. package/dist/phases/product-techniques/types.js +0 -13
  582. package/dist/phases/product-test-cases/index.d.ts +0 -25
  583. package/dist/phases/product-test-cases/index.js +0 -174
  584. package/dist/phases/product-test-cases/prompts.d.ts +0 -24
  585. package/dist/phases/product-test-cases/prompts.js +0 -80
  586. package/dist/phases/product-test-cases/types.d.ts +0 -17
  587. package/dist/phases/product-test-cases/types.js +0 -27
  588. package/dist/phases/pull-request/creator.d.ts +0 -30
  589. package/dist/phases/pull-request/creator.js +0 -319
  590. package/dist/phases/pull-request/handler.d.ts +0 -15
  591. package/dist/phases/pull-request/handler.js +0 -92
  592. package/dist/phases/quality-benchmark/gate.d.ts +0 -50
  593. package/dist/phases/quality-benchmark/gate.js +0 -91
  594. package/dist/phases/quality-benchmark/index.d.ts +0 -65
  595. package/dist/phases/quality-benchmark/index.js +0 -208
  596. package/dist/phases/quality-benchmark/mcp-server.d.ts +0 -46
  597. package/dist/phases/quality-benchmark/mcp-server.js +0 -252
  598. package/dist/phases/quality-benchmark/parsers.d.ts +0 -45
  599. package/dist/phases/quality-benchmark/parsers.js +0 -1311
  600. package/dist/phases/quality-benchmark/prompts.d.ts +0 -31
  601. package/dist/phases/quality-benchmark/prompts.js +0 -154
  602. package/dist/phases/quality-benchmark/rubric.md +0 -1211
  603. package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
  604. package/dist/phases/quality-benchmark/tool-catalog.js +0 -693
  605. package/dist/phases/quality-benchmark/tool-runner.d.ts +0 -69
  606. package/dist/phases/quality-benchmark/tool-runner.js +0 -399
  607. package/dist/phases/quality-benchmark/types.d.ts +0 -319
  608. package/dist/phases/quality-benchmark/types.js +0 -23
  609. package/dist/phases/quality-benchmark/workspace.d.ts +0 -31
  610. package/dist/phases/quality-benchmark/workspace.js +0 -110
  611. package/dist/phases/recipes/index.d.ts +0 -63
  612. package/dist/phases/recipes/index.js +0 -358
  613. package/dist/phases/recipes/mcp-server.d.ts +0 -66
  614. package/dist/phases/recipes/mcp-server.js +0 -229
  615. package/dist/phases/recipes/prompts.d.ts +0 -35
  616. package/dist/phases/recipes/prompts.js +0 -105
  617. package/dist/phases/recipes/types.d.ts +0 -42
  618. package/dist/phases/recipes/types.js +0 -16
  619. package/dist/phases/release-sync/github.d.ts +0 -66
  620. package/dist/phases/release-sync/github.js +0 -140
  621. package/dist/phases/release-sync/index.d.ts +0 -24
  622. package/dist/phases/release-sync/index.js +0 -156
  623. package/dist/phases/release-sync/snapshot.d.ts +0 -27
  624. package/dist/phases/release-sync/snapshot.js +0 -158
  625. package/dist/phases/run-sheet/agent.d.ts +0 -49
  626. package/dist/phases/run-sheet/agent.js +0 -156
  627. package/dist/phases/run-sheet/index.d.ts +0 -57
  628. package/dist/phases/run-sheet/index.js +0 -392
  629. package/dist/phases/screen-flow/index.d.ts +0 -26
  630. package/dist/phases/screen-flow/index.js +0 -349
  631. package/dist/phases/screen-flow/mcp-server.d.ts +0 -201
  632. package/dist/phases/screen-flow/mcp-server.js +0 -272
  633. package/dist/phases/screen-flow/prompts.d.ts +0 -19
  634. package/dist/phases/screen-flow/prompts.js +0 -43
  635. package/dist/phases/screen-flow/theme.d.ts +0 -19
  636. package/dist/phases/screen-flow/theme.js +0 -193
  637. package/dist/phases/screen-flow/types.d.ts +0 -137
  638. package/dist/phases/screen-flow/types.js +0 -81
  639. package/dist/phases/sequence-diagram/index.d.ts +0 -30
  640. package/dist/phases/sequence-diagram/index.js +0 -290
  641. package/dist/phases/sequence-diagram/mcp-server.d.ts +0 -64
  642. package/dist/phases/sequence-diagram/mcp-server.js +0 -134
  643. package/dist/phases/sequence-diagram/prompts.d.ts +0 -14
  644. package/dist/phases/sequence-diagram/prompts.js +0 -36
  645. package/dist/phases/sequence-diagram/types.d.ts +0 -52
  646. package/dist/phases/sequence-diagram/types.js +0 -93
  647. package/dist/phases/smoke-test/agent.d.ts +0 -12
  648. package/dist/phases/smoke-test/agent.js +0 -93
  649. package/dist/phases/smoke-test/index.d.ts +0 -22
  650. package/dist/phases/smoke-test/index.js +0 -241
  651. package/dist/phases/smoke-test/prompts.d.ts +0 -15
  652. package/dist/phases/smoke-test/prompts.js +0 -35
  653. package/dist/phases/state-diagram/index.d.ts +0 -15
  654. package/dist/phases/state-diagram/index.js +0 -53
  655. package/dist/phases/sync-github-issues/index.d.ts +0 -41
  656. package/dist/phases/sync-github-issues/index.js +0 -187
  657. package/dist/phases/sync-github-issues/state.d.ts +0 -26
  658. package/dist/phases/sync-github-issues/state.js +0 -18
  659. package/dist/phases/sync-github-issues/types.d.ts +0 -35
  660. package/dist/phases/sync-github-issues/types.js +0 -6
  661. package/dist/phases/sync-github-pull-requests/index.d.ts +0 -23
  662. package/dist/phases/sync-github-pull-requests/index.js +0 -210
  663. package/dist/phases/sync-github-pull-requests/state.d.ts +0 -24
  664. package/dist/phases/sync-github-pull-requests/state.js +0 -16
  665. package/dist/phases/sync-github-pull-requests/types.d.ts +0 -22
  666. package/dist/phases/sync-github-pull-requests/types.js +0 -1
  667. package/dist/phases/sync-org-repos/index.d.ts +0 -28
  668. package/dist/phases/sync-org-repos/index.js +0 -133
  669. package/dist/phases/sync-sentry-issues/index.d.ts +0 -29
  670. package/dist/phases/sync-sentry-issues/index.js +0 -153
  671. package/dist/phases/sync-sentry-issues/sentry-client.d.ts +0 -66
  672. package/dist/phases/sync-sentry-issues/sentry-client.js +0 -221
  673. package/dist/phases/sync-sentry-issues/state.d.ts +0 -23
  674. package/dist/phases/sync-sentry-issues/state.js +0 -18
  675. package/dist/phases/sync-sentry-issues/types.d.ts +0 -46
  676. package/dist/phases/sync-sentry-issues/types.js +0 -6
  677. package/dist/phases/sync-shared/mcp.d.ts +0 -81
  678. package/dist/phases/sync-shared/mcp.js +0 -111
  679. package/dist/phases/task/agent.d.ts +0 -10
  680. package/dist/phases/task/agent.js +0 -83
  681. package/dist/phases/task/context.d.ts +0 -16
  682. package/dist/phases/task/context.js +0 -50
  683. package/dist/phases/task/index.d.ts +0 -17
  684. package/dist/phases/task/index.js +0 -54
  685. package/dist/phases/task/prompts.d.ts +0 -9
  686. package/dist/phases/task/prompts.js +0 -21
  687. package/dist/phases/technical-design/context.d.ts +0 -12
  688. package/dist/phases/technical-design/context.js +0 -39
  689. package/dist/phases/technical-design/index.d.ts +0 -21
  690. package/dist/phases/technical-design/index.js +0 -456
  691. package/dist/phases/technical-design/outcome.d.ts +0 -25
  692. package/dist/phases/technical-design/outcome.js +0 -41
  693. package/dist/phases/technical-design/prompts.d.ts +0 -8
  694. package/dist/phases/technical-design/prompts.js +0 -210
  695. package/dist/phases/technical-design-verification/agent.d.ts +0 -53
  696. package/dist/phases/technical-design-verification/agent.js +0 -186
  697. package/dist/phases/technical-design-verification/index.d.ts +0 -38
  698. package/dist/phases/technical-design-verification/index.js +0 -152
  699. package/dist/phases/technical-design-verification/prompts.d.ts +0 -12
  700. package/dist/phases/technical-design-verification/prompts.js +0 -143
  701. package/dist/phases/test-cases-analysis/agent.d.ts +0 -9
  702. package/dist/phases/test-cases-analysis/agent.js +0 -105
  703. package/dist/phases/test-cases-analysis/context.d.ts +0 -15
  704. package/dist/phases/test-cases-analysis/context.js +0 -86
  705. package/dist/phases/test-cases-analysis/formatters.d.ts +0 -6
  706. package/dist/phases/test-cases-analysis/formatters.js +0 -35
  707. package/dist/phases/test-cases-analysis/index.d.ts +0 -9
  708. package/dist/phases/test-cases-analysis/index.js +0 -175
  709. package/dist/phases/test-cases-analysis/outcome.d.ts +0 -27
  710. package/dist/phases/test-cases-analysis/outcome.js +0 -146
  711. package/dist/phases/test-cases-analysis/prompts.d.ts +0 -7
  712. package/dist/phases/test-cases-analysis/prompts.js +0 -171
  713. package/dist/phases/user-psychology/agent.d.ts +0 -16
  714. package/dist/phases/user-psychology/agent.js +0 -105
  715. package/dist/phases/user-psychology/context.d.ts +0 -10
  716. package/dist/phases/user-psychology/context.js +0 -65
  717. package/dist/phases/user-psychology/index.d.ts +0 -18
  718. package/dist/phases/user-psychology/index.js +0 -96
  719. package/dist/phases/user-psychology/prompts.d.ts +0 -2
  720. package/dist/phases/user-psychology/prompts.js +0 -41
  721. package/dist/phases/user-stories-analysis/agent.d.ts +0 -9
  722. package/dist/phases/user-stories-analysis/agent.js +0 -105
  723. package/dist/phases/user-stories-analysis/context.d.ts +0 -15
  724. package/dist/phases/user-stories-analysis/context.js +0 -86
  725. package/dist/phases/user-stories-analysis/formatters.d.ts +0 -6
  726. package/dist/phases/user-stories-analysis/formatters.js +0 -32
  727. package/dist/phases/user-stories-analysis/index.d.ts +0 -9
  728. package/dist/phases/user-stories-analysis/index.js +0 -175
  729. package/dist/phases/user-stories-analysis/outcome.d.ts +0 -27
  730. package/dist/phases/user-stories-analysis/outcome.js +0 -146
  731. package/dist/phases/user-stories-analysis/prompts.d.ts +0 -7
  732. package/dist/phases/user-stories-analysis/prompts.js +0 -194
  733. package/dist/services/audit-logs.d.ts +0 -73
  734. package/dist/services/audit-logs.js +0 -174
  735. package/dist/services/branches.d.ts +0 -103
  736. package/dist/services/branches.js +0 -391
  737. package/dist/services/checklist.d.ts +0 -100
  738. package/dist/services/checklist.js +0 -259
  739. package/dist/services/coaching/coaching-agent.d.ts +0 -39
  740. package/dist/services/coaching/coaching-agent.js +0 -308
  741. package/dist/services/coaching/coaching-loop.d.ts +0 -62
  742. package/dist/services/coaching/coaching-loop.js +0 -265
  743. package/dist/services/coaching/index.d.ts +0 -8
  744. package/dist/services/coaching/index.js +0 -8
  745. package/dist/services/coaching/phase-coaching.d.ts +0 -47
  746. package/dist/services/coaching/phase-coaching.js +0 -60
  747. package/dist/services/coaching/self-rating.d.ts +0 -26
  748. package/dist/services/coaching/self-rating.js +0 -153
  749. package/dist/services/feedbacks.d.ts +0 -57
  750. package/dist/services/feedbacks.js +0 -264
  751. package/dist/services/phase-hooks/bindings-fetcher.d.ts +0 -21
  752. package/dist/services/phase-hooks/bindings-fetcher.js +0 -53
  753. package/dist/services/phase-hooks/hook-executor.d.ts +0 -36
  754. package/dist/services/phase-hooks/hook-executor.js +0 -167
  755. package/dist/services/phase-hooks/hook-logging.d.ts +0 -14
  756. package/dist/services/phase-hooks/hook-logging.js +0 -41
  757. package/dist/services/phase-hooks/hook-runner.d.ts +0 -19
  758. package/dist/services/phase-hooks/hook-runner.js +0 -83
  759. package/dist/services/phase-hooks/index.d.ts +0 -10
  760. package/dist/services/phase-hooks/index.js +0 -9
  761. package/dist/services/phase-hooks/plugin-loader.d.ts +0 -31
  762. package/dist/services/phase-hooks/plugin-loader.js +0 -207
  763. package/dist/services/phase-hooks/types.d.ts +0 -69
  764. package/dist/services/phase-hooks/types.js +0 -8
  765. package/dist/services/phase-ratings.d.ts +0 -70
  766. package/dist/services/phase-ratings.js +0 -143
  767. package/dist/services/product-logs.d.ts +0 -31
  768. package/dist/services/product-logs.js +0 -94
  769. package/dist/services/pull-requests.d.ts +0 -57
  770. package/dist/services/pull-requests.js +0 -186
  771. package/dist/services/quality-reports.d.ts +0 -45
  772. package/dist/services/quality-reports.js +0 -93
  773. package/dist/services/repo-config.d.ts +0 -17
  774. package/dist/services/repo-config.js +0 -50
  775. package/dist/services/skill-resolver.d.ts +0 -46
  776. package/dist/services/skill-resolver.js +0 -123
  777. package/dist/services/video/device-frames.d.ts +0 -34
  778. package/dist/services/video/device-frames.js +0 -513
  779. package/dist/services/video/index.d.ts +0 -66
  780. package/dist/services/video/index.js +0 -238
  781. package/dist/services/video/retry.d.ts +0 -20
  782. package/dist/services/video/retry.js +0 -76
  783. package/dist/services/video/screenshot-generator.d.ts +0 -69
  784. package/dist/services/video/screenshot-generator.js +0 -259
  785. package/dist/services/video/tts-generator.d.ts +0 -40
  786. package/dist/services/video/tts-generator.js +0 -121
  787. package/dist/services/video/video-assembler.d.ts +0 -45
  788. package/dist/services/video/video-assembler.js +0 -351
  789. package/dist/services/video/video-uploader.d.ts +0 -28
  790. package/dist/services/video/video-uploader.js +0 -108
  791. package/dist/skills/phase/adr-generation/SKILL.md +0 -51
  792. package/dist/skills/phase/analyze-logs/SKILL.md +0 -24
  793. package/dist/skills/phase/app-store-generation/SKILL.md +0 -60
  794. package/dist/skills/phase/architecture-diagram/SKILL.md +0 -41
  795. package/dist/skills/phase/autonomous/SKILL.md +0 -52
  796. package/dist/skills/phase/branch-planning/SKILL.md +0 -55
  797. package/dist/skills/phase/bug-fixing/SKILL.md +0 -47
  798. package/dist/skills/phase/class-diagram/SKILL.md +0 -44
  799. package/dist/skills/phase/code-implementation/SKILL.md +0 -68
  800. package/dist/skills/phase/code-implementation-verification/SKILL.md +0 -76
  801. package/dist/skills/phase/code-refine/SKILL.md +0 -62
  802. package/dist/skills/phase/code-testing/SKILL.md +0 -78
  803. package/dist/skills/phase/data-flow/SKILL.md +0 -82
  804. package/dist/skills/phase/er-diagram/SKILL.md +0 -71
  805. package/dist/skills/phase/flowchart/SKILL.md +0 -38
  806. package/dist/skills/phase/functional-testing/SKILL.md +0 -62
  807. package/dist/skills/phase/growth-analysis/SKILL.md +0 -97
  808. package/dist/skills/phase/incremental-sync/SKILL.md +0 -59
  809. package/dist/skills/phase/intelligence-analysis/SKILL.md +0 -52
  810. package/dist/skills/phase/issue-analysis/SKILL.md +0 -73
  811. package/dist/skills/phase/issue-analysis-verification/SKILL.md +0 -61
  812. package/dist/skills/phase/pr-execution/SKILL.md +0 -69
  813. package/dist/skills/phase/pr-splitting/SKILL.md +0 -78
  814. package/dist/skills/phase/screen-flow/SKILL.md +0 -78
  815. package/dist/skills/phase/sequence-diagram/SKILL.md +0 -67
  816. package/dist/skills/phase/smoke-test/SKILL.md +0 -80
  817. package/dist/skills/phase/state-diagram/SKILL.md +0 -38
  818. package/dist/skills/phase/task/SKILL.md +0 -19
  819. package/dist/skills/phase/technical-design/SKILL.md +0 -75
  820. package/dist/skills/phase/technical-design-verification/SKILL.md +0 -43
  821. package/dist/skills/phase/test-cases-analysis/SKILL.md +0 -88
  822. package/dist/skills/phase/user-psychology/SKILL.md +0 -135
  823. package/dist/skills/phase/user-stories-analysis/SKILL.md +0 -118
  824. package/dist/supabase/client.d.ts +0 -34
  825. package/dist/supabase/client.js +0 -123
  826. package/dist/system/session-manager.d.ts +0 -67
  827. package/dist/system/session-manager.js +0 -300
  828. package/dist/system/sleep-notification.d.ts +0 -15
  829. package/dist/system/sleep-notification.js +0 -108
  830. package/dist/system/sleep-prevention.d.ts +0 -20
  831. package/dist/system/sleep-prevention.js +0 -112
  832. package/dist/tools/bootstrap.d.ts +0 -45
  833. package/dist/tools/bootstrap.js +0 -50
  834. package/dist/types/external-sources.d.ts +0 -22
  835. package/dist/types/external-sources.js +0 -23
  836. package/dist/types/index.d.ts +0 -206
  837. package/dist/types/index.js +0 -1
  838. package/dist/types/issues.d.ts +0 -37
  839. package/dist/types/issues.js +0 -1
  840. package/dist/types/llm-responses.d.ts +0 -114
  841. package/dist/types/llm-responses.js +0 -9
  842. package/dist/types/pipeline.d.ts +0 -28
  843. package/dist/types/pipeline.js +0 -4
  844. package/dist/updater/auto-updater.d.ts +0 -39
  845. package/dist/updater/auto-updater.js +0 -134
  846. package/dist/utils/conflict-resolver.d.ts +0 -49
  847. package/dist/utils/conflict-resolver.js +0 -201
  848. package/dist/utils/formatters.d.ts +0 -42
  849. package/dist/utils/formatters.js +0 -166
  850. package/dist/utils/git-branch-manager-async.d.ts +0 -127
  851. package/dist/utils/git-branch-manager-async.js +0 -425
  852. package/dist/utils/git-branch-manager.d.ts +0 -160
  853. package/dist/utils/git-branch-manager.js +0 -613
  854. package/dist/utils/git-push.d.ts +0 -43
  855. package/dist/utils/git-push.js +0 -136
  856. package/dist/utils/github-repo-info.d.ts +0 -26
  857. package/dist/utils/github-repo-info.js +0 -45
  858. package/dist/utils/image-downloader.d.ts +0 -32
  859. package/dist/utils/image-downloader.js +0 -152
  860. package/dist/utils/issue-phase-cli.d.ts +0 -26
  861. package/dist/utils/issue-phase-cli.js +0 -44
  862. package/dist/utils/json-extract.d.ts +0 -6
  863. package/dist/utils/json-extract.js +0 -44
  864. package/dist/utils/json-extractor.d.ts +0 -27
  865. package/dist/utils/json-extractor.js +0 -102
  866. package/dist/utils/logger.d.ts +0 -35
  867. package/dist/utils/logger.js +0 -167
  868. package/dist/utils/pipeline-logger.d.ts +0 -8
  869. package/dist/utils/pipeline-logger.js +0 -38
  870. package/dist/utils/validation.d.ts +0 -68
  871. package/dist/utils/validation.js +0 -229
  872. package/dist/utils/workflow-utils.d.ts +0 -22
  873. package/dist/utils/workflow-utils.js +0 -48
  874. package/dist/workspace/session-workspace.d.ts +0 -43
  875. package/dist/workspace/session-workspace.js +0 -90
  876. package/dist/workspace/workspace-manager.d.ts +0 -105
  877. package/dist/workspace/workspace-manager.js +0 -280
@@ -1,95 +0,0 @@
1
- /**
2
- * Agent Workflow Processor - Cross-product issue processing
3
- *
4
- * Uses child_process.fork() to run each issue in an isolated worker process.
5
- * This enables:
6
- * - Concurrent processing of multiple issues (each worker has its own cwd)
7
- * - Auto-update takes effect on next issue (new workers load latest code)
8
- * - Crash isolation (one worker failing doesn't affect others)
9
- */
10
- import { type EdsgerConfig } from '../../types/index.js';
11
- import { type WorkflowStats } from '../workflow/core/state-manager.js';
12
- /**
13
- * Maximum allowed concurrency (hard cap).
14
- * Limits are due to:
15
- * - MCP API rate limits (per-minute/per-hour per token)
16
- * - AI API rate limits (Claude/OpenAI RPM/TPM)
17
- * - GitHub App installation token rate limit (5000 req/hour)
18
- * - Memory: each fork() creates ~50-80MB Node.js process
19
- */
20
- export declare const MAX_CONCURRENCY = 10;
21
- export interface AgentWorkflowOptions {
22
- readonly workspaceRoot: string;
23
- readonly pollInterval?: number;
24
- readonly maxConcurrent?: number;
25
- readonly maxRetries?: number;
26
- readonly verbose?: boolean;
27
- }
28
- export declare class AgentWorkflowProcessor {
29
- private readonly options;
30
- private readonly config;
31
- private isRunning;
32
- private processedIssues;
33
- private pollTimer?;
34
- /** Currently active worker processes, keyed by issueId */
35
- private activeWorkers;
36
- /** Realtime subscription on `issues` — wakes processNextIssues when an
37
- * issue flips to ready_for_ai, so the 30s poll can be relaxed. */
38
- private issuesRealtimeChannel;
39
- constructor(options: AgentWorkflowOptions, config: EdsgerConfig);
40
- start(): Promise<void>;
41
- /**
42
- * Subscribe to `issues` UPDATE/INSERT events and trigger processNextIssues
43
- * when a row arrives with `status='ready_for_ai'` assigned to this user.
44
- *
45
- * Returns true if the subscription was successfully started. RLS on `issues`
46
- * already constrains delivery to products the user has access to.
47
- */
48
- private startIssuesRealtime;
49
- /**
50
- * Post a best-effort workflow status update into the issue's chat channel.
51
- * Chat itself is served by the standalone `edsger chat-serve` daemon; the
52
- * workflow only narrates lifecycle milestones here. Fire-and-forget — a chat
53
- * failure must never affect issue processing.
54
- */
55
- private narrateToIssueChat;
56
- stop(): void;
57
- private processNextIssues;
58
- /**
59
- * Start a child process worker for a single issue.
60
- * Handles: atomic claim, GitHub config lookup, repo cloning, then forks
61
- * the worker.
62
- *
63
- * The candidate `issue` here comes from the listed ready_for_ai pool but is
64
- * advisory — between list time and claim time another agent (or another
65
- * process) may have grabbed it. We re-claim atomically per product. The
66
- * RPC returns whichever ready issue is next in that product (most often
67
- * the same one we listed, but not guaranteed); we operate on what claim
68
- * actually returns. If claim returns null, someone else won the race —
69
- * skip this slot for this cycle.
70
- */
71
- private startIssueWorker;
72
- /**
73
- * After a successful claim moved the issue ready_for_ai → assigned_to_ai,
74
- * any post-claim setup failure (GitHub config, clone, fork) leaves the
75
- * issue stuck at assigned_to_ai with no worker — an orphan that the user
76
- * can't fix from the UI. Push it forward to 'failed' so it shows up in
77
- * the failed bucket and can be inspected / re-set to ready_for_ai by a
78
- * human.
79
- *
80
- * Status guard: only force-progress if the issue is still at
81
- * assigned_to_ai or in_progress. A worker may have already advanced the
82
- * status to shipped / failed via a separate code path before we got the
83
- * non-success IPC signal; clobbering those would lose real outcome data.
84
- * STATUS_PROGRESSION_ORDER classifies shipped→failed as a forward move
85
- * (so updateIssueStatus wouldn't reject it), which is why this guard
86
- * lives here rather than at the RPC layer.
87
- *
88
- * Errors are swallowed: if the status fetch or update fails the issue
89
- * stays orphaned but logging is the most we can do here.
90
- */
91
- private releaseClaim;
92
- private handleWorkerResult;
93
- getStats(): WorkflowStats;
94
- getActiveWorkerCount(): number;
95
- }
@@ -1,519 +0,0 @@
1
- /**
2
- * Agent Workflow Processor - Cross-product issue processing
3
- *
4
- * Uses child_process.fork() to run each issue in an isolated worker process.
5
- * This enables:
6
- * - Concurrent processing of multiple issues (each worker has its own cwd)
7
- * - Auto-update takes effect on next issue (new workers load latest code)
8
- * - Crash isolation (one worker failing doesn't affect others)
9
- */
10
- import { fork } from 'child_process';
11
- import { dirname, join } from 'path';
12
- import { fileURLToPath } from 'url';
13
- import { sendIssueSystemMessage } from '../../api/chat.js';
14
- import { listAllReadyIssues, } from '../../api/cross-product.js';
15
- import { getGitHubConfig } from '../../api/github.js';
16
- import { claimNextIssue, getIssue } from '../../api/issues/index.js';
17
- import { callMcpEndpoint } from '../../api/mcp-client.js';
18
- import { getUserId } from '../../auth/auth-store.js';
19
- import { WorkerTimeoutError } from '../../errors/index.js';
20
- import { getSupabase, hasSupabaseSession } from '../../supabase/client.js';
21
- import { sendHeartbeat, shouldProcess } from '../../system/session-manager.js';
22
- import { logError, logInfo, logSuccess, logWarning, } from '../../utils/logger.js';
23
- import { cleanupIssueRepo, cloneIssueRepo, getIssueRepoPath, } from '../../workspace/workspace-manager.js';
24
- import { calculateStats, createCompletedState, createFailedState, createInitialState, createProcessingState, updateIssueState, } from '../workflow/core/state-manager.js';
25
- /**
26
- * Maximum allowed concurrency (hard cap).
27
- * Limits are due to:
28
- * - MCP API rate limits (per-minute/per-hour per token)
29
- * - AI API rate limits (Claude/OpenAI RPM/TPM)
30
- * - GitHub App installation token rate limit (5000 req/hour)
31
- * - Memory: each fork() creates ~50-80MB Node.js process
32
- */
33
- export const MAX_CONCURRENCY = 10;
34
- /** Path to the compiled worker entry points */
35
- // eslint-disable-next-line @typescript-eslint/naming-convention -- ESM __filename/__dirname polyfill
36
- const __filename = fileURLToPath(import.meta.url);
37
- // eslint-disable-next-line @typescript-eslint/naming-convention -- ESM __filename/__dirname polyfill
38
- const __dirname = dirname(__filename);
39
- const WORKER_SCRIPT = join(__dirname, 'issue-worker.js');
40
- export class AgentWorkflowProcessor {
41
- options;
42
- config;
43
- isRunning = false;
44
- processedIssues = createInitialState();
45
- pollTimer;
46
- /** Currently active worker processes, keyed by issueId */
47
- activeWorkers = new Map();
48
- /** Realtime subscription on `issues` — wakes processNextIssues when an
49
- * issue flips to ready_for_ai, so the 30s poll can be relaxed. */
50
- issuesRealtimeChannel = null;
51
- constructor(options, config) {
52
- const wf = config.workflow;
53
- this.options = {
54
- pollInterval: options.pollInterval ?? wf.pollInterval,
55
- maxConcurrent: Math.min(options.maxConcurrent ?? wf.maxConcurrency, MAX_CONCURRENCY),
56
- maxRetries: options.maxRetries ?? wf.maxRetries,
57
- verbose: false,
58
- ...options,
59
- };
60
- this.config = config;
61
- }
62
- async start() {
63
- if (this.isRunning) {
64
- logInfo('Agent processor is already running');
65
- return;
66
- }
67
- this.isRunning = true;
68
- logInfo(`Concurrent processing: up to ${this.options.maxConcurrent} issue(s)`);
69
- // Initial issue check
70
- await this.processNextIssues();
71
- // Set up Realtime subscription on `issues` so a status flip to
72
- // 'ready_for_ai' triggers an immediate processing pass instead of
73
- // waiting for the next poll tick. Falls back to the timer-only path
74
- // when the Supabase session isn't available yet.
75
- const realtimeOk = this.startIssuesRealtime();
76
- // Keep the timer as a safety net (Realtime can drop events on
77
- // reconnect / publication lag). When Realtime is active we stretch the
78
- // interval substantially — the timer is purely a backstop now.
79
- const safetyNetInterval = realtimeOk
80
- ? Math.max(this.options.pollInterval, 5 * 60_000)
81
- : this.options.pollInterval;
82
- this.pollTimer = setInterval(() => {
83
- this.processNextIssues().catch((error) => {
84
- logError(`Polling error: ${error instanceof Error ? error.message : String(error)}`);
85
- });
86
- }, safetyNetInterval);
87
- }
88
- /**
89
- * Subscribe to `issues` UPDATE/INSERT events and trigger processNextIssues
90
- * when a row arrives with `status='ready_for_ai'` assigned to this user.
91
- *
92
- * Returns true if the subscription was successfully started. RLS on `issues`
93
- * already constrains delivery to products the user has access to.
94
- */
95
- startIssuesRealtime() {
96
- if (this.issuesRealtimeChannel) {
97
- return true;
98
- }
99
- const userId = getUserId();
100
- if (!hasSupabaseSession() || !userId) {
101
- return false;
102
- }
103
- try {
104
- const supabase = getSupabase();
105
- const onChange = (payload) => {
106
- const row = payload.new;
107
- if (!row) {
108
- return;
109
- }
110
- // Realtime postgres_changes filter syntax only supports a single
111
- // predicate, so filter the rest in-process.
112
- if (row.status !== 'ready_for_ai' ||
113
- (row.developer_id && row.developer_id !== userId)) {
114
- return;
115
- }
116
- this.processNextIssues().catch((error) => {
117
- logError(`Realtime-triggered processNextIssues failed: ${error instanceof Error ? error.message : String(error)}`);
118
- });
119
- };
120
- this.issuesRealtimeChannel = supabase
121
- .channel('agent-workflow-issues')
122
- .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'issues' }, onChange)
123
- .on('postgres_changes', { event: 'UPDATE', schema: 'public', table: 'issues' }, onChange)
124
- .subscribe((status) => {
125
- if (status === 'SUBSCRIBED') {
126
- logInfo('Realtime subscription on issues active');
127
- }
128
- else if (status === 'CHANNEL_ERROR' ||
129
- status === 'TIMED_OUT' ||
130
- status === 'CLOSED') {
131
- logWarning(`Issues Realtime channel status: ${status}`);
132
- }
133
- });
134
- return true;
135
- }
136
- catch (error) {
137
- logWarning(`Failed to start issues Realtime subscription: ${error instanceof Error ? error.message : String(error)}`);
138
- return false;
139
- }
140
- }
141
- /**
142
- * Post a best-effort workflow status update into the issue's chat channel.
143
- * Chat itself is served by the standalone `edsger chat-serve` daemon; the
144
- * workflow only narrates lifecycle milestones here. Fire-and-forget — a chat
145
- * failure must never affect issue processing.
146
- */
147
- narrateToIssueChat(issueId, content, metadata) {
148
- void sendIssueSystemMessage(issueId, content, metadata).catch((error) => {
149
- logWarning(`Failed to post chat update for issue ${issueId}: ${error instanceof Error ? error.message : String(error)}`);
150
- });
151
- }
152
- stop() {
153
- if (!this.isRunning) {
154
- return;
155
- }
156
- this.isRunning = false;
157
- if (this.pollTimer) {
158
- clearInterval(this.pollTimer);
159
- this.pollTimer = undefined;
160
- }
161
- // Tear down Realtime first so a late event doesn't kick off new work
162
- // while we're shutting down workers.
163
- if (this.issuesRealtimeChannel) {
164
- try {
165
- void getSupabase().removeChannel(this.issuesRealtimeChannel);
166
- }
167
- catch {
168
- // Best-effort
169
- }
170
- this.issuesRealtimeChannel = null;
171
- }
172
- // Kill all active issue workers gracefully
173
- for (const [issueId, worker] of this.activeWorkers) {
174
- logInfo(`Stopping worker for issue: ${issueId}`);
175
- if (worker.timeoutTimer) {
176
- clearTimeout(worker.timeoutTimer);
177
- }
178
- try {
179
- worker.process.kill('SIGTERM');
180
- }
181
- catch {
182
- // Ignore kill errors
183
- }
184
- }
185
- }
186
- async processNextIssues() {
187
- try {
188
- // Check if we should be processing (not paused/stopped from web dashboard)
189
- if (!shouldProcess()) {
190
- if (this.options.verbose) {
191
- logInfo('Processing paused by remote control');
192
- }
193
- return;
194
- }
195
- // Calculate how many more issues we can take on
196
- const availableSlots = this.options.maxConcurrent - this.activeWorkers.size;
197
- if (availableSlots <= 0) {
198
- if (this.options.verbose) {
199
- logInfo(`All ${this.options.maxConcurrent} slots occupied, waiting...`);
200
- }
201
- return;
202
- }
203
- // Fetch ready issues across all products
204
- const issues = await listAllReadyIssues(this.options.verbose);
205
- if (issues.length === 0) {
206
- if (this.options.verbose) {
207
- logInfo('No issues available for processing');
208
- }
209
- return;
210
- }
211
- // Filter out issues already being processed or recently failed
212
- const cooldownMs = this.config.workflow.retryCooldown;
213
- const newIssues = issues.filter((f) => {
214
- if (this.activeWorkers.has(f.id)) {
215
- return false;
216
- }
217
- const state = this.processedIssues.get(f.id);
218
- if (state?.status === 'failed') {
219
- // Allow retry if issue was updated after our last attempt (user intervention)
220
- if (f.updated_at && new Date(f.updated_at) > state.lastAttempt) {
221
- return true;
222
- }
223
- // Skip if max retries exceeded
224
- if (state.retryCount >= this.options.maxRetries) {
225
- return false;
226
- }
227
- // Skip if within cooldown period
228
- if (Date.now() - state.lastAttempt.getTime() < cooldownMs) {
229
- return false;
230
- }
231
- }
232
- return true;
233
- });
234
- if (newIssues.length === 0) {
235
- // Log skipped issues for debugging
236
- const skippedCount = issues.filter((f) => {
237
- const state = this.processedIssues.get(f.id);
238
- return (state?.status === 'failed' &&
239
- state.retryCount >= this.options.maxRetries);
240
- }).length;
241
- if (skippedCount > 0) {
242
- logInfo(`${skippedCount} issue(s) skipped (max retries exceeded)`);
243
- }
244
- if (this.options.verbose) {
245
- logInfo('No issues available for processing');
246
- }
247
- return;
248
- }
249
- // Pick issues up to available slots
250
- const toProcess = newIssues.slice(0, availableSlots);
251
- // Start processing each issue concurrently
252
- for (const issue of toProcess) {
253
- this.startIssueWorker(issue).catch((error) => {
254
- logError(`Failed to start worker for ${issue.name}: ${error instanceof Error ? error.message : String(error)}`);
255
- });
256
- }
257
- }
258
- catch (error) {
259
- logError(`Failed to process issues: ${error instanceof Error ? error.message : String(error)}`);
260
- }
261
- }
262
- /**
263
- * Start a child process worker for a single issue.
264
- * Handles: atomic claim, GitHub config lookup, repo cloning, then forks
265
- * the worker.
266
- *
267
- * The candidate `issue` here comes from the listed ready_for_ai pool but is
268
- * advisory — between list time and claim time another agent (or another
269
- * process) may have grabbed it. We re-claim atomically per product. The
270
- * RPC returns whichever ready issue is next in that product (most often
271
- * the same one we listed, but not guaranteed); we operate on what claim
272
- * actually returns. If claim returns null, someone else won the race —
273
- * skip this slot for this cycle.
274
- */
275
- async startIssueWorker(candidate) {
276
- // In-process dedup runs BEFORE the claim. If we already have a worker
277
- // for the listed candidate, skipping here avoids successfully claiming
278
- // an issue we'd then refuse to start — which would leave it stuck at
279
- // assigned_to_ai with no worker (an orphan, since the claim has no
280
- // release path). Cross-process races are still handled by the DB.
281
- if (this.activeWorkers.has(candidate.id)) {
282
- return;
283
- }
284
- // Atomic claim transitions ready_for_ai → assigned_to_ai inside the RPC
285
- // (FOR UPDATE SKIP LOCKED), so concurrent workers never share the same
286
- // issue. Scoped to the candidate's product so a race within one product
287
- // resolves locally instead of pulling work from elsewhere.
288
- const claimResult = await claimNextIssue(candidate.product_id, this.options.verbose);
289
- if (!claimResult) {
290
- if (this.options.verbose) {
291
- logInfo(`No claimable issue in product ${candidate.product_name ?? candidate.product_id} (raced or no longer ready)`);
292
- }
293
- return;
294
- }
295
- const issue = {
296
- ...claimResult,
297
- product_name: candidate.product_name,
298
- };
299
- const issueId = issue.id;
300
- // Update state to processing
301
- this.processedIssues = updateIssueState(this.processedIssues, issueId, (currentState) => createProcessingState(issueId, currentState));
302
- logInfo(`Processing issue: ${issue.name}`);
303
- if (issue.product_name) {
304
- logInfo(` Product: ${issue.product_name}`);
305
- }
306
- // Send heartbeat with current issue info
307
- await sendHeartbeat(issueId, issue.name);
308
- try {
309
- // Step 1: Get GitHub config for this issue
310
- const githubConfig = await getGitHubConfig(issueId, this.options.verbose);
311
- if (!githubConfig.configured ||
312
- !githubConfig.token ||
313
- !githubConfig.owner ||
314
- !githubConfig.repo) {
315
- logWarning(`GitHub not configured for issue: ${issue.name}. ${githubConfig.message || ''}`);
316
- this.processedIssues = updateIssueState(this.processedIssues, issueId, (currentState) => createFailedState(issueId, currentState));
317
- await this.releaseClaim(issueId, issue.name);
318
- return;
319
- }
320
- // Step 2: Clone or reuse repo
321
- const { repoPath, freshClone } = cloneIssueRepo(this.options.workspaceRoot, issueId, githubConfig.owner, githubConfig.repo, githubConfig.token);
322
- logInfo(`Repo: ${repoPath} (${freshClone ? 'fresh clone' : 'reused'})`);
323
- // Step 3: Fork a worker process to run the issue workflow
324
- // The worker runs with cwd set to the repo path, so each issue
325
- // has its own isolated working directory.
326
- const worker = fork(WORKER_SCRIPT, [], {
327
- cwd: repoPath,
328
- stdio: ['ignore', 'pipe', 'pipe', 'ipc'],
329
- env: {
330
- ...process.env,
331
- EDSGER_ISSUE_ID: issueId,
332
- },
333
- });
334
- // Track the active worker
335
- const activeWorker = {
336
- process: worker,
337
- issueId,
338
- issueName: issue.name,
339
- startedAt: new Date(),
340
- };
341
- this.activeWorkers.set(issueId, activeWorker);
342
- logInfo(`Worker spawned for issue: ${issue.name} (pid: ${worker.pid})`);
343
- // Forward worker stdout/stderr to parent logs
344
- worker.stdout?.on('data', (data) => {
345
- const lines = data.toString().trim().split('\n');
346
- for (const line of lines) {
347
- if (line) {
348
- logInfo(` [${issue.name}] ${line}`);
349
- }
350
- }
351
- });
352
- worker.stderr?.on('data', (data) => {
353
- const lines = data.toString().trim().split('\n');
354
- for (const line of lines) {
355
- if (line) {
356
- logError(` [${issue.name}] ${line}`);
357
- }
358
- }
359
- });
360
- // Track whether we received a result message (to detect crashes)
361
- let resultReceived = false;
362
- // Handle worker IPC messages
363
- worker.on('message', (msg) => {
364
- if (msg.type === 'log') {
365
- const prefix = `[${issue.name}]`;
366
- switch (msg.level) {
367
- case 'info':
368
- logInfo(` ${prefix} ${msg.message}`);
369
- break;
370
- case 'warning':
371
- logWarning(` ${prefix} ${msg.message}`);
372
- break;
373
- case 'error':
374
- logError(` ${prefix} ${msg.message}`);
375
- break;
376
- case 'success':
377
- logSuccess(` ${prefix} ${msg.message}`);
378
- break;
379
- case undefined:
380
- default:
381
- break;
382
- }
383
- }
384
- else if (msg.type === 'result') {
385
- resultReceived = true;
386
- this.handleWorkerResult(issueId, issue.name, msg.success ?? false, msg.error);
387
- }
388
- });
389
- // Handle worker exit (crash, killed, etc.)
390
- worker.on('exit', (code) => {
391
- // Clear timeout timer
392
- const w = this.activeWorkers.get(issueId);
393
- if (w?.timeoutTimer) {
394
- clearTimeout(w.timeoutTimer);
395
- }
396
- this.activeWorkers.delete(issueId);
397
- // If the worker exited without sending a result message, treat as failure
398
- if (!resultReceived) {
399
- if (code !== 0) {
400
- logError(`Worker for ${issue.name} exited with code ${code}`);
401
- }
402
- this.handleWorkerResult(issueId, issue.name, false, `Worker exited with code ${code}`);
403
- }
404
- });
405
- // Set up worker timeout
406
- const { workerTimeout } = this.config.workflow;
407
- activeWorker.timeoutTimer = setTimeout(() => {
408
- logError(`Worker for ${issue.name} timed out after ${Math.round(workerTimeout / 1000)}s, killing...`);
409
- try {
410
- worker.kill('SIGTERM');
411
- // Force kill after 10s if SIGTERM didn't work
412
- setTimeout(() => {
413
- try {
414
- worker.kill('SIGKILL');
415
- }
416
- catch {
417
- /* ignore */
418
- }
419
- }, 10_000);
420
- }
421
- catch {
422
- // Worker may already be dead
423
- }
424
- const err = new WorkerTimeoutError(issueId, workerTimeout);
425
- this.handleWorkerResult(issueId, issue.name, false, err.message);
426
- }, workerTimeout);
427
- // Send start message to worker
428
- worker.send({
429
- type: 'start',
430
- issueId,
431
- verbose: this.options.verbose,
432
- config: this.config,
433
- });
434
- }
435
- catch (error) {
436
- this.activeWorkers.delete(issueId);
437
- this.processedIssues = updateIssueState(this.processedIssues, issueId, (currentState) => createFailedState(issueId, currentState));
438
- logError(`Issue error: ${issue.name} - ${error instanceof Error ? error.message : String(error)}`);
439
- await this.releaseClaim(issueId, issue.name);
440
- }
441
- }
442
- /**
443
- * After a successful claim moved the issue ready_for_ai → assigned_to_ai,
444
- * any post-claim setup failure (GitHub config, clone, fork) leaves the
445
- * issue stuck at assigned_to_ai with no worker — an orphan that the user
446
- * can't fix from the UI. Push it forward to 'failed' so it shows up in
447
- * the failed bucket and can be inspected / re-set to ready_for_ai by a
448
- * human.
449
- *
450
- * Status guard: only force-progress if the issue is still at
451
- * assigned_to_ai or in_progress. A worker may have already advanced the
452
- * status to shipped / failed via a separate code path before we got the
453
- * non-success IPC signal; clobbering those would lose real outcome data.
454
- * STATUS_PROGRESSION_ORDER classifies shipped→failed as a forward move
455
- * (so updateIssueStatus wouldn't reject it), which is why this guard
456
- * lives here rather than at the RPC layer.
457
- *
458
- * Errors are swallowed: if the status fetch or update fails the issue
459
- * stays orphaned but logging is the most we can do here.
460
- */
461
- async releaseClaim(issueId, issueName) {
462
- try {
463
- const current = await getIssue(issueId, false);
464
- if (current.status !== 'assigned_to_ai' &&
465
- current.status !== 'in_progress') {
466
- return;
467
- }
468
- await callMcpEndpoint('issues/update', {
469
- issue_id: issueId,
470
- status: 'failed',
471
- });
472
- }
473
- catch (releaseError) {
474
- logWarning(`Failed to release claim on ${issueName} (${issueId}); issue may be orphaned at assigned_to_ai: ${releaseError instanceof Error ? releaseError.message : String(releaseError)}`);
475
- }
476
- }
477
- handleWorkerResult(issueId, issueName, success, error) {
478
- if (success) {
479
- this.processedIssues = updateIssueState(this.processedIssues, issueId, (currentState) => createCompletedState(issueId, currentState));
480
- logSuccess(`Issue completed: ${issueName}`);
481
- // Narrate completion into the issue chat (served by `edsger chat-serve`).
482
- this.narrateToIssueChat(issueId, 'All workflow phases completed.', {
483
- status: 'issue_done',
484
- });
485
- // Clean up the per-issue clone now that the workflow is finished.
486
- // Failures intentionally leave the workspace so the user (or a retry)
487
- // can inspect the partial state.
488
- cleanupIssueRepo(getIssueRepoPath(this.options.workspaceRoot, issueId));
489
- }
490
- else {
491
- this.processedIssues = updateIssueState(this.processedIssues, issueId, (currentState) => createFailedState(issueId, currentState));
492
- logError(`Issue failed: ${issueName}${error ? ` - ${error}` : ''}`);
493
- // No releaseClaim here: this path runs after the worker reported a
494
- // non-success result, but the worker may still have been mid-way
495
- // through writing its own status (e.g. setting 'shipped' or 'failed'
496
- // before exiting). A read-then-write release would race with the
497
- // worker's final DB write. Worker code is responsible for advancing
498
- // the lifecycle status before it exits; a worker that crashes
499
- // without doing so leaves the issue at assigned_to_ai, which is a
500
- // separate, pre-existing orphan class outside the scope of the
501
- // pre-fork cleanup that releaseClaim handles.
502
- // Only narrate on first failure to avoid flooding with duplicate messages.
503
- const failedState = this.processedIssues.get(issueId);
504
- if (failedState && failedState.retryCount <= 1) {
505
- this.narrateToIssueChat(issueId, `Phase "workflow" failed: ${error || 'Unknown error'}`, { phase: 'workflow', status: 'failed', error: error || 'Unknown error' });
506
- }
507
- }
508
- // Clear heartbeat issue info
509
- sendHeartbeat().catch(() => {
510
- /* noop */
511
- });
512
- }
513
- getStats() {
514
- return calculateStats(this.processedIssues, this.isRunning);
515
- }
516
- getActiveWorkerCount() {
517
- return this.activeWorkers.size;
518
- }
519
- }
@@ -1,7 +0,0 @@
1
- import { type CliOptions } from '../../types/index.js';
2
- /**
3
- * Run AI-powered log analysis for a product.
4
- * Analyzes pending user logs (inactive >1 hour) and creates
5
- * product feedback for any issues or improvements found.
6
- */
7
- export declare const runAnalyzeLogs: (options: CliOptions) => Promise<void>;
@@ -1,34 +0,0 @@
1
- import { analyzeLogs } from '../../phases/analyze-logs/index.js';
2
- import { logError, logInfo, logSuccess } from '../../utils/logger.js';
3
- /**
4
- * Run AI-powered log analysis for a product.
5
- * Analyzes pending user logs (inactive >1 hour) and creates
6
- * product feedback for any issues or improvements found.
7
- */
8
- export const runAnalyzeLogs = async (options) => {
9
- const productId = options.analyzeLogs;
10
- if (!productId) {
11
- throw new Error('Product ID is required for log analysis');
12
- }
13
- logInfo(`Starting log analysis for product: ${productId}`);
14
- try {
15
- const result = await analyzeLogs({
16
- productId,
17
- verbose: options.verbose,
18
- });
19
- if (result.status === 'success') {
20
- logSuccess('Log analysis completed!');
21
- logInfo(` Groups processed: ${result.groupsProcessed}`);
22
- logInfo(` Feedbacks created: ${result.feedbacksCreated}`);
23
- logInfo(` Logs analyzed: ${result.logsAnalyzed}`);
24
- }
25
- else {
26
- logError(`Log analysis failed: ${result.summary}`);
27
- process.exit(1);
28
- }
29
- }
30
- catch (error) {
31
- logError(`Log analysis failed: ${error instanceof Error ? error.message : String(error)}`);
32
- process.exit(1);
33
- }
34
- };
@@ -1,18 +0,0 @@
1
- /**
2
- * CLI command: edsger api-docs <productId> --run-id <id>
3
- * edsger api-docs --repo-id <id> --run-id <id>
4
- *
5
- * Clones the repository, asks Claude to determine its API surface, and persists
6
- * a generated API reference (Markdown + optional OpenAPI document) onto the
7
- * pending api_doc_runs row. The desktop UI creates the pending row first then
8
- * invokes the CLI with --run-id; the CLI flips status running →
9
- * success/failed and writes the artifact via the api-docs MCP toolkit.
10
- */
11
- export interface ApiDocsCliOptions {
12
- runId: string;
13
- /** Repo-only mode: generate for a single repositories row, no product. */
14
- repoId?: string;
15
- guidance?: string;
16
- verbose?: boolean;
17
- }
18
- export declare function runApiDocs(productId: string | undefined, options: ApiDocsCliOptions): Promise<void>;