edsger 0.76.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 (853) 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 -1218
  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/app-store/index.d.ts +0 -12
  108. package/dist/commands/app-store/index.js +0 -69
  109. package/dist/commands/architecture-diagram/index.d.ts +0 -8
  110. package/dist/commands/architecture-diagram/index.js +0 -10
  111. package/dist/commands/build/detect-project.d.ts +0 -52
  112. package/dist/commands/build/detect-project.js +0 -277
  113. package/dist/commands/build/index.d.ts +0 -66
  114. package/dist/commands/build/index.js +0 -544
  115. package/dist/commands/chat-serve/chat-server.d.ts +0 -114
  116. package/dist/commands/chat-serve/chat-server.js +0 -339
  117. package/dist/commands/chat-serve/index.d.ts +0 -20
  118. package/dist/commands/chat-serve/index.js +0 -58
  119. package/dist/commands/checklists/index.d.ts +0 -16
  120. package/dist/commands/checklists/index.js +0 -187
  121. package/dist/commands/checklists/tools.d.ts +0 -17
  122. package/dist/commands/checklists/tools.js +0 -19
  123. package/dist/commands/class-diagram/index.d.ts +0 -7
  124. package/dist/commands/class-diagram/index.js +0 -9
  125. package/dist/commands/code-review/index.d.ts +0 -2
  126. package/dist/commands/code-review/index.js +0 -37
  127. package/dist/commands/code-review/reviewer.d.ts +0 -3
  128. package/dist/commands/code-review/reviewer.js +0 -205
  129. package/dist/commands/config/index.d.ts +0 -16
  130. package/dist/commands/config/index.js +0 -60
  131. package/dist/commands/data-flow/index.d.ts +0 -19
  132. package/dist/commands/data-flow/index.js +0 -55
  133. package/dist/commands/diagram-shared/index.d.ts +0 -21
  134. package/dist/commands/diagram-shared/index.js +0 -37
  135. package/dist/commands/discover/index.d.ts +0 -14
  136. package/dist/commands/discover/index.js +0 -29
  137. package/dist/commands/er-diagram/index.d.ts +0 -19
  138. package/dist/commands/er-diagram/index.js +0 -55
  139. package/dist/commands/features/index.d.ts +0 -15
  140. package/dist/commands/features/index.js +0 -34
  141. package/dist/commands/financing-deck/index.d.ts +0 -8
  142. package/dist/commands/financing-deck/index.js +0 -66
  143. package/dist/commands/find-architecture/index.d.ts +0 -15
  144. package/dist/commands/find-architecture/index.js +0 -50
  145. package/dist/commands/find-bugs/index.d.ts +0 -13
  146. package/dist/commands/find-bugs/index.js +0 -48
  147. package/dist/commands/find-features/index.d.ts +0 -14
  148. package/dist/commands/find-features/index.js +0 -42
  149. package/dist/commands/find-smells/index.d.ts +0 -23
  150. package/dist/commands/find-smells/index.js +0 -74
  151. package/dist/commands/flowchart/index.d.ts +0 -8
  152. package/dist/commands/flowchart/index.js +0 -10
  153. package/dist/commands/growth-analysis/index.d.ts +0 -7
  154. package/dist/commands/growth-analysis/index.js +0 -89
  155. package/dist/commands/init/index.d.ts +0 -5
  156. package/dist/commands/init/index.js +0 -152
  157. package/dist/commands/init/prompts.d.ts +0 -9
  158. package/dist/commands/init/prompts.js +0 -128
  159. package/dist/commands/init/templates.d.ts +0 -9
  160. package/dist/commands/init/templates.js +0 -264
  161. package/dist/commands/intelligence/index.d.ts +0 -15
  162. package/dist/commands/intelligence/index.js +0 -138
  163. package/dist/commands/issue-analysis/index.d.ts +0 -5
  164. package/dist/commands/issue-analysis/index.js +0 -9
  165. package/dist/commands/pr-resolve/index.d.ts +0 -13
  166. package/dist/commands/pr-resolve/index.js +0 -50
  167. package/dist/commands/pr-review/index.d.ts +0 -12
  168. package/dist/commands/pr-review/index.js +0 -47
  169. package/dist/commands/product-techniques/index.d.ts +0 -15
  170. package/dist/commands/product-techniques/index.js +0 -37
  171. package/dist/commands/product-test-cases/index.d.ts +0 -12
  172. package/dist/commands/product-test-cases/index.js +0 -40
  173. package/dist/commands/quality-benchmark/index.d.ts +0 -40
  174. package/dist/commands/quality-benchmark/index.js +0 -219
  175. package/dist/commands/recipes/index.d.ts +0 -17
  176. package/dist/commands/recipes/index.js +0 -40
  177. package/dist/commands/refactor/refactor.d.ts +0 -2
  178. package/dist/commands/refactor/refactor.js +0 -134
  179. package/dist/commands/release-sync/index.d.ts +0 -5
  180. package/dist/commands/release-sync/index.js +0 -38
  181. package/dist/commands/run-sheet/index.d.ts +0 -6
  182. package/dist/commands/run-sheet/index.js +0 -48
  183. package/dist/commands/screen-flow/index.d.ts +0 -18
  184. package/dist/commands/screen-flow/index.js +0 -54
  185. package/dist/commands/sequence-diagram/index.d.ts +0 -19
  186. package/dist/commands/sequence-diagram/index.js +0 -55
  187. package/dist/commands/session-serve/index.d.ts +0 -32
  188. package/dist/commands/session-serve/index.js +0 -100
  189. package/dist/commands/session-turn/index.d.ts +0 -73
  190. package/dist/commands/session-turn/index.js +0 -254
  191. package/dist/commands/smoke-test/index.d.ts +0 -5
  192. package/dist/commands/smoke-test/index.js +0 -40
  193. package/dist/commands/state-diagram/index.d.ts +0 -7
  194. package/dist/commands/state-diagram/index.js +0 -9
  195. package/dist/commands/sync-aws/index.d.ts +0 -16
  196. package/dist/commands/sync-aws/index.js +0 -214
  197. package/dist/commands/sync-datadog/index.d.ts +0 -16
  198. package/dist/commands/sync-datadog/index.js +0 -236
  199. package/dist/commands/sync-github-issues/index.d.ts +0 -11
  200. package/dist/commands/sync-github-issues/index.js +0 -42
  201. package/dist/commands/sync-github-pull-requests/index.d.ts +0 -11
  202. package/dist/commands/sync-github-pull-requests/index.js +0 -42
  203. package/dist/commands/sync-org-repos/index.d.ts +0 -12
  204. package/dist/commands/sync-org-repos/index.js +0 -60
  205. package/dist/commands/sync-sentry-issues/index.d.ts +0 -14
  206. package/dist/commands/sync-sentry-issues/index.js +0 -73
  207. package/dist/commands/sync-terraform/index.d.ts +0 -16
  208. package/dist/commands/sync-terraform/index.js +0 -248
  209. package/dist/commands/task-worker/index.d.ts +0 -8
  210. package/dist/commands/task-worker/index.js +0 -34
  211. package/dist/commands/task-worker/processor.d.ts +0 -23
  212. package/dist/commands/task-worker/processor.js +0 -84
  213. package/dist/commands/technical-design/index.d.ts +0 -5
  214. package/dist/commands/technical-design/index.js +0 -9
  215. package/dist/commands/test-cases-analysis/index.d.ts +0 -5
  216. package/dist/commands/test-cases-analysis/index.js +0 -9
  217. package/dist/commands/user-psychology/index.d.ts +0 -7
  218. package/dist/commands/user-psychology/index.js +0 -51
  219. package/dist/commands/user-stories-analysis/index.d.ts +0 -5
  220. package/dist/commands/user-stories-analysis/index.js +0 -9
  221. package/dist/commands/workflow/config/phase-configs.d.ts +0 -5
  222. package/dist/commands/workflow/config/phase-configs.js +0 -132
  223. package/dist/commands/workflow/core/index.d.ts +0 -8
  224. package/dist/commands/workflow/core/index.js +0 -12
  225. package/dist/commands/workflow/core/issue-filter.d.ts +0 -16
  226. package/dist/commands/workflow/core/issue-filter.js +0 -47
  227. package/dist/commands/workflow/core/pipeline-evaluator.d.ts +0 -24
  228. package/dist/commands/workflow/core/pipeline-evaluator.js +0 -32
  229. package/dist/commands/workflow/core/state-manager.d.ts +0 -24
  230. package/dist/commands/workflow/core/state-manager.js +0 -42
  231. package/dist/commands/workflow/core/workflow-logger.d.ts +0 -23
  232. package/dist/commands/workflow/core/workflow-logger.js +0 -77
  233. package/dist/commands/workflow/executors/phase-executor.d.ts +0 -8
  234. package/dist/commands/workflow/executors/phase-executor.js +0 -338
  235. package/dist/commands/workflow/index.d.ts +0 -2
  236. package/dist/commands/workflow/index.js +0 -34
  237. package/dist/commands/workflow/issue-coordinator.d.ts +0 -18
  238. package/dist/commands/workflow/issue-coordinator.js +0 -161
  239. package/dist/commands/workflow/phase-orchestrator.d.ts +0 -26
  240. package/dist/commands/workflow/phase-orchestrator.js +0 -699
  241. package/dist/commands/workflow/processor.d.ts +0 -47
  242. package/dist/commands/workflow/processor.js +0 -149
  243. package/dist/config/issue-status.d.ts +0 -29
  244. package/dist/config/issue-status.js +0 -44
  245. package/dist/config.d.ts +0 -3
  246. package/dist/config.js +0 -79
  247. package/dist/constants.d.ts +0 -10
  248. package/dist/constants.js +0 -36
  249. package/dist/errors/index.d.ts +0 -68
  250. package/dist/errors/index.js +0 -129
  251. package/dist/index.d.ts +0 -4
  252. package/dist/phases/adr-generation/agent.d.ts +0 -6
  253. package/dist/phases/adr-generation/agent.js +0 -69
  254. package/dist/phases/adr-generation/index.d.ts +0 -15
  255. package/dist/phases/adr-generation/index.js +0 -66
  256. package/dist/phases/adr-generation/parse.d.ts +0 -12
  257. package/dist/phases/adr-generation/parse.js +0 -123
  258. package/dist/phases/adr-generation/prompts.d.ts +0 -8
  259. package/dist/phases/adr-generation/prompts.js +0 -35
  260. package/dist/phases/analyze-logs/agent.d.ts +0 -11
  261. package/dist/phases/analyze-logs/agent.js +0 -66
  262. package/dist/phases/analyze-logs/index.d.ts +0 -23
  263. package/dist/phases/analyze-logs/index.js +0 -152
  264. package/dist/phases/analyze-logs/prompts.d.ts +0 -3
  265. package/dist/phases/analyze-logs/prompts.js +0 -27
  266. package/dist/phases/app-store-generation/agent.d.ts +0 -2
  267. package/dist/phases/app-store-generation/agent.js +0 -177
  268. package/dist/phases/app-store-generation/assets/inter-latin-ext.woff2 +0 -0
  269. package/dist/phases/app-store-generation/assets/inter-latin.woff2 +0 -0
  270. package/dist/phases/app-store-generation/context.d.ts +0 -21
  271. package/dist/phases/app-store-generation/context.js +0 -78
  272. package/dist/phases/app-store-generation/index.d.ts +0 -20
  273. package/dist/phases/app-store-generation/index.js +0 -157
  274. package/dist/phases/app-store-generation/inter-font.d.ts +0 -20
  275. package/dist/phases/app-store-generation/inter-font.js +0 -49
  276. package/dist/phases/app-store-generation/prompts.d.ts +0 -43
  277. package/dist/phases/app-store-generation/prompts.js +0 -73
  278. package/dist/phases/app-store-generation/screenshot-composer.d.ts +0 -41
  279. package/dist/phases/app-store-generation/screenshot-composer.js +0 -516
  280. package/dist/phases/app-store-generation/uploader.d.ts +0 -19
  281. package/dist/phases/app-store-generation/uploader.js +0 -150
  282. package/dist/phases/architecture-diagram/index.d.ts +0 -15
  283. package/dist/phases/architecture-diagram/index.js +0 -51
  284. package/dist/phases/autonomous/index.d.ts +0 -32
  285. package/dist/phases/autonomous/index.js +0 -412
  286. package/dist/phases/autonomous/prompts.d.ts +0 -5
  287. package/dist/phases/autonomous/prompts.js +0 -31
  288. package/dist/phases/branch-planning/context.d.ts +0 -14
  289. package/dist/phases/branch-planning/context.js +0 -43
  290. package/dist/phases/branch-planning/index.d.ts +0 -25
  291. package/dist/phases/branch-planning/index.js +0 -404
  292. package/dist/phases/branch-planning/outcome.d.ts +0 -28
  293. package/dist/phases/branch-planning/outcome.js +0 -115
  294. package/dist/phases/branch-planning/prompts.d.ts +0 -41
  295. package/dist/phases/branch-planning/prompts.js +0 -157
  296. package/dist/phases/bug-fixing/analyzer.d.ts +0 -17
  297. package/dist/phases/bug-fixing/analyzer.js +0 -247
  298. package/dist/phases/bug-fixing/context-fetcher.d.ts +0 -22
  299. package/dist/phases/bug-fixing/context-fetcher.js +0 -137
  300. package/dist/phases/bug-fixing/index.d.ts +0 -7
  301. package/dist/phases/bug-fixing/index.js +0 -7
  302. package/dist/phases/bug-fixing/mcp-server.d.ts +0 -18
  303. package/dist/phases/bug-fixing/mcp-server.js +0 -19
  304. package/dist/phases/bug-fixing/prompts.d.ts +0 -2
  305. package/dist/phases/bug-fixing/prompts.js +0 -9
  306. package/dist/phases/chat-processor/context.d.ts +0 -38
  307. package/dist/phases/chat-processor/context.js +0 -91
  308. package/dist/phases/chat-processor/index.d.ts +0 -49
  309. package/dist/phases/chat-processor/index.js +0 -482
  310. package/dist/phases/chat-processor/product-context.d.ts +0 -36
  311. package/dist/phases/chat-processor/product-context.js +0 -113
  312. package/dist/phases/chat-processor/product-prompts.d.ts +0 -4
  313. package/dist/phases/chat-processor/product-prompts.js +0 -65
  314. package/dist/phases/chat-processor/product-tools.d.ts +0 -8
  315. package/dist/phases/chat-processor/product-tools.js +0 -11
  316. package/dist/phases/chat-processor/prompts.d.ts +0 -35
  317. package/dist/phases/chat-processor/prompts.js +0 -213
  318. package/dist/phases/chat-processor/tools.d.ts +0 -8
  319. package/dist/phases/chat-processor/tools.js +0 -11
  320. package/dist/phases/class-diagram/index.d.ts +0 -14
  321. package/dist/phases/class-diagram/index.js +0 -76
  322. package/dist/phases/code-implementation/branch-pr-creator.d.ts +0 -31
  323. package/dist/phases/code-implementation/branch-pr-creator.js +0 -172
  324. package/dist/phases/code-implementation/context.d.ts +0 -17
  325. package/dist/phases/code-implementation/context.js +0 -88
  326. package/dist/phases/code-implementation/index.d.ts +0 -33
  327. package/dist/phases/code-implementation/index.js +0 -926
  328. package/dist/phases/code-implementation/outcome.d.ts +0 -47
  329. package/dist/phases/code-implementation/outcome.js +0 -53
  330. package/dist/phases/code-implementation/prompts.d.ts +0 -8
  331. package/dist/phases/code-implementation/prompts.js +0 -166
  332. package/dist/phases/code-implementation-verification/agent.d.ts +0 -32
  333. package/dist/phases/code-implementation-verification/agent.js +0 -225
  334. package/dist/phases/code-implementation-verification/index.d.ts +0 -27
  335. package/dist/phases/code-implementation-verification/index.js +0 -121
  336. package/dist/phases/code-implementation-verification/prompts.d.ts +0 -10
  337. package/dist/phases/code-implementation-verification/prompts.js +0 -90
  338. package/dist/phases/code-refine/context.d.ts +0 -99
  339. package/dist/phases/code-refine/context.js +0 -457
  340. package/dist/phases/code-refine/index.d.ts +0 -59
  341. package/dist/phases/code-refine/index.js +0 -348
  342. package/dist/phases/code-refine/prompts.d.ts +0 -5
  343. package/dist/phases/code-refine/prompts.js +0 -162
  344. package/dist/phases/code-refine/refine-iteration.d.ts +0 -33
  345. package/dist/phases/code-refine/refine-iteration.js +0 -166
  346. package/dist/phases/code-refine/retry-handler.d.ts +0 -17
  347. package/dist/phases/code-refine/retry-handler.js +0 -87
  348. package/dist/phases/code-refine-verification/github.d.ts +0 -54
  349. package/dist/phases/code-refine-verification/github.js +0 -328
  350. package/dist/phases/code-refine-verification/index.d.ts +0 -11
  351. package/dist/phases/code-refine-verification/index.js +0 -260
  352. package/dist/phases/code-refine-verification/llm-analyzer.d.ts +0 -22
  353. package/dist/phases/code-refine-verification/llm-analyzer.js +0 -152
  354. package/dist/phases/code-refine-verification/prompts.d.ts +0 -5
  355. package/dist/phases/code-refine-verification/prompts.js +0 -119
  356. package/dist/phases/code-refine-verification/types.d.ts +0 -74
  357. package/dist/phases/code-refine-verification/types.js +0 -4
  358. package/dist/phases/code-review/context.d.ts +0 -96
  359. package/dist/phases/code-review/context.js +0 -278
  360. package/dist/phases/code-review/diff-utils.d.ts +0 -36
  361. package/dist/phases/code-review/diff-utils.js +0 -100
  362. package/dist/phases/code-review/index.d.ts +0 -40
  363. package/dist/phases/code-review/index.js +0 -627
  364. package/dist/phases/code-testing/analyzer.d.ts +0 -19
  365. package/dist/phases/code-testing/analyzer.js +0 -215
  366. package/dist/phases/code-testing/context-fetcher.d.ts +0 -16
  367. package/dist/phases/code-testing/context-fetcher.js +0 -83
  368. package/dist/phases/code-testing/index.d.ts +0 -2
  369. package/dist/phases/code-testing/index.js +0 -2
  370. package/dist/phases/code-testing/prompts.d.ts +0 -3
  371. package/dist/phases/code-testing/prompts.js +0 -63
  372. package/dist/phases/data-flow/index.d.ts +0 -28
  373. package/dist/phases/data-flow/index.js +0 -286
  374. package/dist/phases/data-flow/mcp-server.d.ts +0 -85
  375. package/dist/phases/data-flow/mcp-server.js +0 -140
  376. package/dist/phases/data-flow/prompts.d.ts +0 -14
  377. package/dist/phases/data-flow/prompts.js +0 -36
  378. package/dist/phases/data-flow/types.d.ts +0 -71
  379. package/dist/phases/data-flow/types.js +0 -86
  380. package/dist/phases/diagram-shared/clone-repos.d.ts +0 -63
  381. package/dist/phases/diagram-shared/clone-repos.js +0 -153
  382. package/dist/phases/diagram-shared/generate.d.ts +0 -42
  383. package/dist/phases/diagram-shared/generate.js +0 -162
  384. package/dist/phases/diagram-shared/graph.d.ts +0 -62
  385. package/dist/phases/diagram-shared/graph.js +0 -169
  386. package/dist/phases/diagram-shared/mcp.d.ts +0 -35
  387. package/dist/phases/diagram-shared/mcp.js +0 -68
  388. package/dist/phases/diagram-shared/prompts.d.ts +0 -23
  389. package/dist/phases/diagram-shared/prompts.js +0 -35
  390. package/dist/phases/discover-services/index.d.ts +0 -29
  391. package/dist/phases/discover-services/index.js +0 -528
  392. package/dist/phases/er-diagram/index.d.ts +0 -28
  393. package/dist/phases/er-diagram/index.js +0 -290
  394. package/dist/phases/er-diagram/mcp-server.d.ts +0 -77
  395. package/dist/phases/er-diagram/mcp-server.js +0 -144
  396. package/dist/phases/er-diagram/prompts.d.ts +0 -14
  397. package/dist/phases/er-diagram/prompts.js +0 -36
  398. package/dist/phases/er-diagram/types.d.ts +0 -76
  399. package/dist/phases/er-diagram/types.js +0 -84
  400. package/dist/phases/features/index.d.ts +0 -65
  401. package/dist/phases/features/index.js +0 -292
  402. package/dist/phases/features/mcp-server.d.ts +0 -61
  403. package/dist/phases/features/mcp-server.js +0 -165
  404. package/dist/phases/features/prompts.d.ts +0 -32
  405. package/dist/phases/features/prompts.js +0 -92
  406. package/dist/phases/features/types.d.ts +0 -34
  407. package/dist/phases/features/types.js +0 -15
  408. package/dist/phases/financing-deck/agent.d.ts +0 -1
  409. package/dist/phases/financing-deck/agent.js +0 -96
  410. package/dist/phases/financing-deck/context.d.ts +0 -13
  411. package/dist/phases/financing-deck/context.js +0 -69
  412. package/dist/phases/financing-deck/index.d.ts +0 -15
  413. package/dist/phases/financing-deck/index.js +0 -89
  414. package/dist/phases/financing-deck/prompts.d.ts +0 -2
  415. package/dist/phases/financing-deck/prompts.js +0 -94
  416. package/dist/phases/find-architecture/index.d.ts +0 -47
  417. package/dist/phases/find-architecture/index.js +0 -261
  418. package/dist/phases/find-architecture/prompts.d.ts +0 -31
  419. package/dist/phases/find-architecture/prompts.js +0 -128
  420. package/dist/phases/find-architecture/state.d.ts +0 -21
  421. package/dist/phases/find-architecture/state.js +0 -17
  422. package/dist/phases/find-architecture/types.d.ts +0 -55
  423. package/dist/phases/find-architecture/types.js +0 -69
  424. package/dist/phases/find-bugs/index.d.ts +0 -33
  425. package/dist/phases/find-bugs/index.js +0 -236
  426. package/dist/phases/find-bugs/prompts.d.ts +0 -22
  427. package/dist/phases/find-bugs/prompts.js +0 -101
  428. package/dist/phases/find-bugs/state.d.ts +0 -19
  429. package/dist/phases/find-bugs/state.js +0 -13
  430. package/dist/phases/find-bugs/types.d.ts +0 -21
  431. package/dist/phases/find-bugs/types.js +0 -16
  432. package/dist/phases/find-features/index.d.ts +0 -40
  433. package/dist/phases/find-features/index.js +0 -328
  434. package/dist/phases/find-features/prompts.d.ts +0 -43
  435. package/dist/phases/find-features/prompts.js +0 -138
  436. package/dist/phases/find-features/state.d.ts +0 -25
  437. package/dist/phases/find-features/state.js +0 -22
  438. package/dist/phases/find-features/types.d.ts +0 -27
  439. package/dist/phases/find-features/types.js +0 -16
  440. package/dist/phases/find-shared/git.d.ts +0 -24
  441. package/dist/phases/find-shared/git.js +0 -60
  442. package/dist/phases/find-shared/mcp.d.ts +0 -48
  443. package/dist/phases/find-shared/mcp.js +0 -125
  444. package/dist/phases/find-shared/scan-state.d.ts +0 -33
  445. package/dist/phases/find-shared/scan-state.js +0 -112
  446. package/dist/phases/find-smells/index.d.ts +0 -50
  447. package/dist/phases/find-smells/index.js +0 -298
  448. package/dist/phases/find-smells/prompts.d.ts +0 -30
  449. package/dist/phases/find-smells/prompts.js +0 -129
  450. package/dist/phases/find-smells/state.d.ts +0 -21
  451. package/dist/phases/find-smells/state.js +0 -17
  452. package/dist/phases/find-smells/types.d.ts +0 -51
  453. package/dist/phases/find-smells/types.js +0 -64
  454. package/dist/phases/flow-shared/clone-repos.d.ts +0 -63
  455. package/dist/phases/flow-shared/clone-repos.js +0 -153
  456. package/dist/phases/flowchart/index.d.ts +0 -15
  457. package/dist/phases/flowchart/index.js +0 -50
  458. package/dist/phases/functional-testing/analyzer.d.ts +0 -46
  459. package/dist/phases/functional-testing/analyzer.js +0 -622
  460. package/dist/phases/functional-testing/context-fetcher.d.ts +0 -16
  461. package/dist/phases/functional-testing/context-fetcher.js +0 -83
  462. package/dist/phases/functional-testing/http-fallback.d.ts +0 -10
  463. package/dist/phases/functional-testing/http-fallback.js +0 -156
  464. package/dist/phases/functional-testing/index.d.ts +0 -4
  465. package/dist/phases/functional-testing/index.js +0 -4
  466. package/dist/phases/functional-testing/mcp-server.d.ts +0 -9
  467. package/dist/phases/functional-testing/mcp-server.js +0 -13
  468. package/dist/phases/functional-testing/prompts.d.ts +0 -2
  469. package/dist/phases/functional-testing/prompts.js +0 -58
  470. package/dist/phases/functional-testing/test-report-creator.d.ts +0 -68
  471. package/dist/phases/functional-testing/test-report-creator.js +0 -306
  472. package/dist/phases/functional-testing/test-retry-handler.d.ts +0 -16
  473. package/dist/phases/functional-testing/test-retry-handler.js +0 -70
  474. package/dist/phases/growth-analysis/agent.d.ts +0 -2
  475. package/dist/phases/growth-analysis/agent.js +0 -107
  476. package/dist/phases/growth-analysis/context.d.ts +0 -23
  477. package/dist/phases/growth-analysis/context.js +0 -137
  478. package/dist/phases/growth-analysis/index.d.ts +0 -32
  479. package/dist/phases/growth-analysis/index.js +0 -226
  480. package/dist/phases/growth-analysis/prompts.d.ts +0 -2
  481. package/dist/phases/growth-analysis/prompts.js +0 -45
  482. package/dist/phases/intelligence-analysis/agent.d.ts +0 -2
  483. package/dist/phases/intelligence-analysis/agent.js +0 -338
  484. package/dist/phases/intelligence-analysis/context.d.ts +0 -23
  485. package/dist/phases/intelligence-analysis/context.js +0 -142
  486. package/dist/phases/intelligence-analysis/index.d.ts +0 -58
  487. package/dist/phases/intelligence-analysis/index.js +0 -244
  488. package/dist/phases/intelligence-analysis/prompts.d.ts +0 -2
  489. package/dist/phases/intelligence-analysis/prompts.js +0 -62
  490. package/dist/phases/issue-analysis/agent.d.ts +0 -21
  491. package/dist/phases/issue-analysis/agent.js +0 -153
  492. package/dist/phases/issue-analysis/context.d.ts +0 -20
  493. package/dist/phases/issue-analysis/context.js +0 -93
  494. package/dist/phases/issue-analysis/index.d.ts +0 -8
  495. package/dist/phases/issue-analysis/index.js +0 -147
  496. package/dist/phases/issue-analysis/outcome.d.ts +0 -10
  497. package/dist/phases/issue-analysis/outcome.js +0 -42
  498. package/dist/phases/issue-analysis/prompts.d.ts +0 -8
  499. package/dist/phases/issue-analysis/prompts.js +0 -99
  500. package/dist/phases/issue-analysis-verification/agent.d.ts +0 -33
  501. package/dist/phases/issue-analysis-verification/agent.js +0 -124
  502. package/dist/phases/issue-analysis-verification/index.d.ts +0 -27
  503. package/dist/phases/issue-analysis-verification/index.js +0 -79
  504. package/dist/phases/issue-analysis-verification/prompts.d.ts +0 -9
  505. package/dist/phases/issue-analysis-verification/prompts.js +0 -75
  506. package/dist/phases/output-contracts.d.ts +0 -7
  507. package/dist/phases/output-contracts.js +0 -1201
  508. package/dist/phases/pr-execution/context.d.ts +0 -32
  509. package/dist/phases/pr-execution/context.js +0 -246
  510. package/dist/phases/pr-execution/file-assigner.d.ts +0 -57
  511. package/dist/phases/pr-execution/file-assigner.js +0 -287
  512. package/dist/phases/pr-execution/index.d.ts +0 -22
  513. package/dist/phases/pr-execution/index.js +0 -401
  514. package/dist/phases/pr-execution/outcome.d.ts +0 -24
  515. package/dist/phases/pr-execution/outcome.js +0 -34
  516. package/dist/phases/pr-execution/pr-executor.d.ts +0 -42
  517. package/dist/phases/pr-execution/pr-executor.js +0 -78
  518. package/dist/phases/pr-execution/prompts.d.ts +0 -27
  519. package/dist/phases/pr-execution/prompts.js +0 -131
  520. package/dist/phases/pr-resolve/checklist-learner.d.ts +0 -28
  521. package/dist/phases/pr-resolve/checklist-learner.js +0 -153
  522. package/dist/phases/pr-resolve/github-reply.d.ts +0 -16
  523. package/dist/phases/pr-resolve/github-reply.js +0 -75
  524. package/dist/phases/pr-resolve/index.d.ts +0 -33
  525. package/dist/phases/pr-resolve/index.js +0 -272
  526. package/dist/phases/pr-resolve/prompts.d.ts +0 -17
  527. package/dist/phases/pr-resolve/prompts.js +0 -107
  528. package/dist/phases/pr-resolve/types.d.ts +0 -18
  529. package/dist/phases/pr-resolve/types.js +0 -14
  530. package/dist/phases/pr-resolve/workspace.d.ts +0 -45
  531. package/dist/phases/pr-resolve/workspace.js +0 -174
  532. package/dist/phases/pr-review/index.d.ts +0 -27
  533. package/dist/phases/pr-review/index.js +0 -209
  534. package/dist/phases/pr-review/prompts.d.ts +0 -5
  535. package/dist/phases/pr-review/prompts.js +0 -87
  536. package/dist/phases/pr-shared/agent-utils.d.ts +0 -47
  537. package/dist/phases/pr-shared/agent-utils.js +0 -112
  538. package/dist/phases/pr-shared/context.d.ts +0 -24
  539. package/dist/phases/pr-shared/context.js +0 -78
  540. package/dist/phases/pr-shared/status.d.ts +0 -18
  541. package/dist/phases/pr-shared/status.js +0 -37
  542. package/dist/phases/pr-splitting/context.d.ts +0 -28
  543. package/dist/phases/pr-splitting/context.js +0 -182
  544. package/dist/phases/pr-splitting/import-dep-validator.d.ts +0 -67
  545. package/dist/phases/pr-splitting/import-dep-validator.js +0 -255
  546. package/dist/phases/pr-splitting/index.d.ts +0 -36
  547. package/dist/phases/pr-splitting/index.js +0 -413
  548. package/dist/phases/pr-splitting/outcome.d.ts +0 -24
  549. package/dist/phases/pr-splitting/outcome.js +0 -114
  550. package/dist/phases/pr-splitting/prompts.d.ts +0 -43
  551. package/dist/phases/pr-splitting/prompts.js +0 -154
  552. package/dist/phases/product-techniques/index.d.ts +0 -52
  553. package/dist/phases/product-techniques/index.js +0 -268
  554. package/dist/phases/product-techniques/mcp-server.d.ts +0 -41
  555. package/dist/phases/product-techniques/mcp-server.js +0 -96
  556. package/dist/phases/product-techniques/prompts.d.ts +0 -19
  557. package/dist/phases/product-techniques/prompts.js +0 -66
  558. package/dist/phases/product-techniques/types.d.ts +0 -13
  559. package/dist/phases/product-techniques/types.js +0 -13
  560. package/dist/phases/product-test-cases/index.d.ts +0 -25
  561. package/dist/phases/product-test-cases/index.js +0 -174
  562. package/dist/phases/product-test-cases/prompts.d.ts +0 -24
  563. package/dist/phases/product-test-cases/prompts.js +0 -80
  564. package/dist/phases/product-test-cases/types.d.ts +0 -17
  565. package/dist/phases/product-test-cases/types.js +0 -27
  566. package/dist/phases/pull-request/creator.d.ts +0 -30
  567. package/dist/phases/pull-request/creator.js +0 -319
  568. package/dist/phases/pull-request/handler.d.ts +0 -15
  569. package/dist/phases/pull-request/handler.js +0 -92
  570. package/dist/phases/quality-benchmark/index.d.ts +0 -65
  571. package/dist/phases/quality-benchmark/index.js +0 -194
  572. package/dist/phases/quality-benchmark/mcp-server.d.ts +0 -46
  573. package/dist/phases/quality-benchmark/mcp-server.js +0 -252
  574. package/dist/phases/quality-benchmark/parsers.d.ts +0 -22
  575. package/dist/phases/quality-benchmark/parsers.js +0 -1101
  576. package/dist/phases/quality-benchmark/prompts.d.ts +0 -31
  577. package/dist/phases/quality-benchmark/prompts.js +0 -154
  578. package/dist/phases/quality-benchmark/rubric.md +0 -1174
  579. package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
  580. package/dist/phases/quality-benchmark/tool-catalog.js +0 -636
  581. package/dist/phases/quality-benchmark/tool-runner.d.ts +0 -69
  582. package/dist/phases/quality-benchmark/tool-runner.js +0 -399
  583. package/dist/phases/quality-benchmark/types.d.ts +0 -312
  584. package/dist/phases/quality-benchmark/types.js +0 -23
  585. package/dist/phases/quality-benchmark/workspace.d.ts +0 -31
  586. package/dist/phases/quality-benchmark/workspace.js +0 -110
  587. package/dist/phases/recipes/index.d.ts +0 -63
  588. package/dist/phases/recipes/index.js +0 -358
  589. package/dist/phases/recipes/mcp-server.d.ts +0 -66
  590. package/dist/phases/recipes/mcp-server.js +0 -229
  591. package/dist/phases/recipes/prompts.d.ts +0 -35
  592. package/dist/phases/recipes/prompts.js +0 -105
  593. package/dist/phases/recipes/types.d.ts +0 -42
  594. package/dist/phases/recipes/types.js +0 -16
  595. package/dist/phases/release-sync/github.d.ts +0 -66
  596. package/dist/phases/release-sync/github.js +0 -140
  597. package/dist/phases/release-sync/index.d.ts +0 -24
  598. package/dist/phases/release-sync/index.js +0 -156
  599. package/dist/phases/release-sync/snapshot.d.ts +0 -27
  600. package/dist/phases/release-sync/snapshot.js +0 -158
  601. package/dist/phases/run-sheet/agent.d.ts +0 -49
  602. package/dist/phases/run-sheet/agent.js +0 -156
  603. package/dist/phases/run-sheet/index.d.ts +0 -57
  604. package/dist/phases/run-sheet/index.js +0 -392
  605. package/dist/phases/screen-flow/index.d.ts +0 -26
  606. package/dist/phases/screen-flow/index.js +0 -349
  607. package/dist/phases/screen-flow/mcp-server.d.ts +0 -201
  608. package/dist/phases/screen-flow/mcp-server.js +0 -272
  609. package/dist/phases/screen-flow/prompts.d.ts +0 -19
  610. package/dist/phases/screen-flow/prompts.js +0 -43
  611. package/dist/phases/screen-flow/theme.d.ts +0 -19
  612. package/dist/phases/screen-flow/theme.js +0 -193
  613. package/dist/phases/screen-flow/types.d.ts +0 -137
  614. package/dist/phases/screen-flow/types.js +0 -81
  615. package/dist/phases/sequence-diagram/index.d.ts +0 -30
  616. package/dist/phases/sequence-diagram/index.js +0 -290
  617. package/dist/phases/sequence-diagram/mcp-server.d.ts +0 -64
  618. package/dist/phases/sequence-diagram/mcp-server.js +0 -134
  619. package/dist/phases/sequence-diagram/prompts.d.ts +0 -14
  620. package/dist/phases/sequence-diagram/prompts.js +0 -36
  621. package/dist/phases/sequence-diagram/types.d.ts +0 -52
  622. package/dist/phases/sequence-diagram/types.js +0 -93
  623. package/dist/phases/smoke-test/agent.d.ts +0 -12
  624. package/dist/phases/smoke-test/agent.js +0 -93
  625. package/dist/phases/smoke-test/index.d.ts +0 -22
  626. package/dist/phases/smoke-test/index.js +0 -241
  627. package/dist/phases/smoke-test/prompts.d.ts +0 -15
  628. package/dist/phases/smoke-test/prompts.js +0 -35
  629. package/dist/phases/state-diagram/index.d.ts +0 -15
  630. package/dist/phases/state-diagram/index.js +0 -53
  631. package/dist/phases/sync-github-issues/index.d.ts +0 -41
  632. package/dist/phases/sync-github-issues/index.js +0 -187
  633. package/dist/phases/sync-github-issues/state.d.ts +0 -26
  634. package/dist/phases/sync-github-issues/state.js +0 -18
  635. package/dist/phases/sync-github-issues/types.d.ts +0 -35
  636. package/dist/phases/sync-github-issues/types.js +0 -6
  637. package/dist/phases/sync-github-pull-requests/index.d.ts +0 -23
  638. package/dist/phases/sync-github-pull-requests/index.js +0 -210
  639. package/dist/phases/sync-github-pull-requests/state.d.ts +0 -24
  640. package/dist/phases/sync-github-pull-requests/state.js +0 -16
  641. package/dist/phases/sync-github-pull-requests/types.d.ts +0 -22
  642. package/dist/phases/sync-github-pull-requests/types.js +0 -1
  643. package/dist/phases/sync-org-repos/index.d.ts +0 -28
  644. package/dist/phases/sync-org-repos/index.js +0 -133
  645. package/dist/phases/sync-sentry-issues/index.d.ts +0 -29
  646. package/dist/phases/sync-sentry-issues/index.js +0 -153
  647. package/dist/phases/sync-sentry-issues/sentry-client.d.ts +0 -66
  648. package/dist/phases/sync-sentry-issues/sentry-client.js +0 -221
  649. package/dist/phases/sync-sentry-issues/state.d.ts +0 -23
  650. package/dist/phases/sync-sentry-issues/state.js +0 -18
  651. package/dist/phases/sync-sentry-issues/types.d.ts +0 -46
  652. package/dist/phases/sync-sentry-issues/types.js +0 -6
  653. package/dist/phases/sync-shared/mcp.d.ts +0 -81
  654. package/dist/phases/sync-shared/mcp.js +0 -111
  655. package/dist/phases/task/agent.d.ts +0 -10
  656. package/dist/phases/task/agent.js +0 -83
  657. package/dist/phases/task/context.d.ts +0 -16
  658. package/dist/phases/task/context.js +0 -50
  659. package/dist/phases/task/index.d.ts +0 -17
  660. package/dist/phases/task/index.js +0 -54
  661. package/dist/phases/task/prompts.d.ts +0 -9
  662. package/dist/phases/task/prompts.js +0 -21
  663. package/dist/phases/technical-design/context.d.ts +0 -12
  664. package/dist/phases/technical-design/context.js +0 -39
  665. package/dist/phases/technical-design/index.d.ts +0 -21
  666. package/dist/phases/technical-design/index.js +0 -456
  667. package/dist/phases/technical-design/outcome.d.ts +0 -25
  668. package/dist/phases/technical-design/outcome.js +0 -41
  669. package/dist/phases/technical-design/prompts.d.ts +0 -8
  670. package/dist/phases/technical-design/prompts.js +0 -210
  671. package/dist/phases/technical-design-verification/agent.d.ts +0 -53
  672. package/dist/phases/technical-design-verification/agent.js +0 -186
  673. package/dist/phases/technical-design-verification/index.d.ts +0 -38
  674. package/dist/phases/technical-design-verification/index.js +0 -152
  675. package/dist/phases/technical-design-verification/prompts.d.ts +0 -12
  676. package/dist/phases/technical-design-verification/prompts.js +0 -143
  677. package/dist/phases/test-cases-analysis/agent.d.ts +0 -9
  678. package/dist/phases/test-cases-analysis/agent.js +0 -105
  679. package/dist/phases/test-cases-analysis/context.d.ts +0 -15
  680. package/dist/phases/test-cases-analysis/context.js +0 -86
  681. package/dist/phases/test-cases-analysis/formatters.d.ts +0 -6
  682. package/dist/phases/test-cases-analysis/formatters.js +0 -35
  683. package/dist/phases/test-cases-analysis/index.d.ts +0 -9
  684. package/dist/phases/test-cases-analysis/index.js +0 -175
  685. package/dist/phases/test-cases-analysis/outcome.d.ts +0 -27
  686. package/dist/phases/test-cases-analysis/outcome.js +0 -146
  687. package/dist/phases/test-cases-analysis/prompts.d.ts +0 -7
  688. package/dist/phases/test-cases-analysis/prompts.js +0 -171
  689. package/dist/phases/user-psychology/agent.d.ts +0 -16
  690. package/dist/phases/user-psychology/agent.js +0 -105
  691. package/dist/phases/user-psychology/context.d.ts +0 -10
  692. package/dist/phases/user-psychology/context.js +0 -65
  693. package/dist/phases/user-psychology/index.d.ts +0 -18
  694. package/dist/phases/user-psychology/index.js +0 -96
  695. package/dist/phases/user-psychology/prompts.d.ts +0 -2
  696. package/dist/phases/user-psychology/prompts.js +0 -41
  697. package/dist/phases/user-stories-analysis/agent.d.ts +0 -9
  698. package/dist/phases/user-stories-analysis/agent.js +0 -105
  699. package/dist/phases/user-stories-analysis/context.d.ts +0 -15
  700. package/dist/phases/user-stories-analysis/context.js +0 -86
  701. package/dist/phases/user-stories-analysis/formatters.d.ts +0 -6
  702. package/dist/phases/user-stories-analysis/formatters.js +0 -32
  703. package/dist/phases/user-stories-analysis/index.d.ts +0 -9
  704. package/dist/phases/user-stories-analysis/index.js +0 -175
  705. package/dist/phases/user-stories-analysis/outcome.d.ts +0 -27
  706. package/dist/phases/user-stories-analysis/outcome.js +0 -146
  707. package/dist/phases/user-stories-analysis/prompts.d.ts +0 -7
  708. package/dist/phases/user-stories-analysis/prompts.js +0 -194
  709. package/dist/services/audit-logs.d.ts +0 -73
  710. package/dist/services/audit-logs.js +0 -174
  711. package/dist/services/branches.d.ts +0 -103
  712. package/dist/services/branches.js +0 -391
  713. package/dist/services/checklist.d.ts +0 -100
  714. package/dist/services/checklist.js +0 -259
  715. package/dist/services/coaching/coaching-agent.d.ts +0 -39
  716. package/dist/services/coaching/coaching-agent.js +0 -308
  717. package/dist/services/coaching/coaching-loop.d.ts +0 -62
  718. package/dist/services/coaching/coaching-loop.js +0 -265
  719. package/dist/services/coaching/index.d.ts +0 -8
  720. package/dist/services/coaching/index.js +0 -8
  721. package/dist/services/coaching/phase-coaching.d.ts +0 -47
  722. package/dist/services/coaching/phase-coaching.js +0 -60
  723. package/dist/services/coaching/self-rating.d.ts +0 -26
  724. package/dist/services/coaching/self-rating.js +0 -153
  725. package/dist/services/feedbacks.d.ts +0 -57
  726. package/dist/services/feedbacks.js +0 -264
  727. package/dist/services/phase-hooks/bindings-fetcher.d.ts +0 -21
  728. package/dist/services/phase-hooks/bindings-fetcher.js +0 -53
  729. package/dist/services/phase-hooks/hook-executor.d.ts +0 -36
  730. package/dist/services/phase-hooks/hook-executor.js +0 -167
  731. package/dist/services/phase-hooks/hook-logging.d.ts +0 -14
  732. package/dist/services/phase-hooks/hook-logging.js +0 -41
  733. package/dist/services/phase-hooks/hook-runner.d.ts +0 -19
  734. package/dist/services/phase-hooks/hook-runner.js +0 -83
  735. package/dist/services/phase-hooks/index.d.ts +0 -10
  736. package/dist/services/phase-hooks/index.js +0 -9
  737. package/dist/services/phase-hooks/plugin-loader.d.ts +0 -31
  738. package/dist/services/phase-hooks/plugin-loader.js +0 -207
  739. package/dist/services/phase-hooks/types.d.ts +0 -69
  740. package/dist/services/phase-hooks/types.js +0 -8
  741. package/dist/services/phase-ratings.d.ts +0 -70
  742. package/dist/services/phase-ratings.js +0 -143
  743. package/dist/services/product-logs.d.ts +0 -31
  744. package/dist/services/product-logs.js +0 -94
  745. package/dist/services/pull-requests.d.ts +0 -57
  746. package/dist/services/pull-requests.js +0 -186
  747. package/dist/services/quality-reports.d.ts +0 -45
  748. package/dist/services/quality-reports.js +0 -93
  749. package/dist/services/repo-config.d.ts +0 -17
  750. package/dist/services/repo-config.js +0 -50
  751. package/dist/services/skill-resolver.d.ts +0 -46
  752. package/dist/services/skill-resolver.js +0 -123
  753. package/dist/services/video/device-frames.d.ts +0 -34
  754. package/dist/services/video/device-frames.js +0 -513
  755. package/dist/services/video/index.d.ts +0 -66
  756. package/dist/services/video/index.js +0 -238
  757. package/dist/services/video/retry.d.ts +0 -20
  758. package/dist/services/video/retry.js +0 -76
  759. package/dist/services/video/screenshot-generator.d.ts +0 -69
  760. package/dist/services/video/screenshot-generator.js +0 -259
  761. package/dist/services/video/tts-generator.d.ts +0 -40
  762. package/dist/services/video/tts-generator.js +0 -121
  763. package/dist/services/video/video-assembler.d.ts +0 -45
  764. package/dist/services/video/video-assembler.js +0 -351
  765. package/dist/services/video/video-uploader.d.ts +0 -28
  766. package/dist/services/video/video-uploader.js +0 -108
  767. package/dist/skills/phase/adr-generation/SKILL.md +0 -51
  768. package/dist/skills/phase/analyze-logs/SKILL.md +0 -24
  769. package/dist/skills/phase/app-store-generation/SKILL.md +0 -60
  770. package/dist/skills/phase/architecture-diagram/SKILL.md +0 -41
  771. package/dist/skills/phase/autonomous/SKILL.md +0 -52
  772. package/dist/skills/phase/branch-planning/SKILL.md +0 -55
  773. package/dist/skills/phase/bug-fixing/SKILL.md +0 -47
  774. package/dist/skills/phase/class-diagram/SKILL.md +0 -44
  775. package/dist/skills/phase/code-implementation/SKILL.md +0 -68
  776. package/dist/skills/phase/code-implementation-verification/SKILL.md +0 -76
  777. package/dist/skills/phase/code-refine/SKILL.md +0 -62
  778. package/dist/skills/phase/code-testing/SKILL.md +0 -78
  779. package/dist/skills/phase/data-flow/SKILL.md +0 -82
  780. package/dist/skills/phase/er-diagram/SKILL.md +0 -71
  781. package/dist/skills/phase/flowchart/SKILL.md +0 -38
  782. package/dist/skills/phase/functional-testing/SKILL.md +0 -62
  783. package/dist/skills/phase/growth-analysis/SKILL.md +0 -97
  784. package/dist/skills/phase/incremental-sync/SKILL.md +0 -59
  785. package/dist/skills/phase/intelligence-analysis/SKILL.md +0 -52
  786. package/dist/skills/phase/issue-analysis/SKILL.md +0 -73
  787. package/dist/skills/phase/issue-analysis-verification/SKILL.md +0 -61
  788. package/dist/skills/phase/pr-execution/SKILL.md +0 -69
  789. package/dist/skills/phase/pr-splitting/SKILL.md +0 -78
  790. package/dist/skills/phase/screen-flow/SKILL.md +0 -78
  791. package/dist/skills/phase/sequence-diagram/SKILL.md +0 -67
  792. package/dist/skills/phase/smoke-test/SKILL.md +0 -80
  793. package/dist/skills/phase/state-diagram/SKILL.md +0 -38
  794. package/dist/skills/phase/task/SKILL.md +0 -19
  795. package/dist/skills/phase/technical-design/SKILL.md +0 -75
  796. package/dist/skills/phase/technical-design-verification/SKILL.md +0 -43
  797. package/dist/skills/phase/test-cases-analysis/SKILL.md +0 -88
  798. package/dist/skills/phase/user-psychology/SKILL.md +0 -135
  799. package/dist/skills/phase/user-stories-analysis/SKILL.md +0 -118
  800. package/dist/supabase/client.d.ts +0 -34
  801. package/dist/supabase/client.js +0 -123
  802. package/dist/system/session-manager.d.ts +0 -67
  803. package/dist/system/session-manager.js +0 -300
  804. package/dist/system/sleep-notification.d.ts +0 -15
  805. package/dist/system/sleep-notification.js +0 -108
  806. package/dist/system/sleep-prevention.d.ts +0 -20
  807. package/dist/system/sleep-prevention.js +0 -112
  808. package/dist/tools/bootstrap.d.ts +0 -45
  809. package/dist/tools/bootstrap.js +0 -50
  810. package/dist/types/external-sources.d.ts +0 -22
  811. package/dist/types/external-sources.js +0 -23
  812. package/dist/types/index.d.ts +0 -206
  813. package/dist/types/index.js +0 -1
  814. package/dist/types/issues.d.ts +0 -37
  815. package/dist/types/issues.js +0 -1
  816. package/dist/types/llm-responses.d.ts +0 -114
  817. package/dist/types/llm-responses.js +0 -9
  818. package/dist/types/pipeline.d.ts +0 -28
  819. package/dist/types/pipeline.js +0 -4
  820. package/dist/updater/auto-updater.d.ts +0 -39
  821. package/dist/updater/auto-updater.js +0 -134
  822. package/dist/utils/conflict-resolver.d.ts +0 -49
  823. package/dist/utils/conflict-resolver.js +0 -201
  824. package/dist/utils/formatters.d.ts +0 -42
  825. package/dist/utils/formatters.js +0 -166
  826. package/dist/utils/git-branch-manager-async.d.ts +0 -127
  827. package/dist/utils/git-branch-manager-async.js +0 -425
  828. package/dist/utils/git-branch-manager.d.ts +0 -160
  829. package/dist/utils/git-branch-manager.js +0 -613
  830. package/dist/utils/git-push.d.ts +0 -43
  831. package/dist/utils/git-push.js +0 -136
  832. package/dist/utils/github-repo-info.d.ts +0 -26
  833. package/dist/utils/github-repo-info.js +0 -45
  834. package/dist/utils/image-downloader.d.ts +0 -32
  835. package/dist/utils/image-downloader.js +0 -152
  836. package/dist/utils/issue-phase-cli.d.ts +0 -26
  837. package/dist/utils/issue-phase-cli.js +0 -44
  838. package/dist/utils/json-extract.d.ts +0 -6
  839. package/dist/utils/json-extract.js +0 -44
  840. package/dist/utils/json-extractor.d.ts +0 -27
  841. package/dist/utils/json-extractor.js +0 -102
  842. package/dist/utils/logger.d.ts +0 -35
  843. package/dist/utils/logger.js +0 -167
  844. package/dist/utils/pipeline-logger.d.ts +0 -8
  845. package/dist/utils/pipeline-logger.js +0 -38
  846. package/dist/utils/validation.d.ts +0 -68
  847. package/dist/utils/validation.js +0 -229
  848. package/dist/utils/workflow-utils.d.ts +0 -22
  849. package/dist/utils/workflow-utils.js +0 -48
  850. package/dist/workspace/session-workspace.d.ts +0 -43
  851. package/dist/workspace/session-workspace.js +0 -90
  852. package/dist/workspace/workspace-manager.d.ts +0 -105
  853. 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,12 +0,0 @@
1
- import { type CliOptions } from '../../types/index.js';
2
- /**
3
- * Run AI-powered app store asset generation for a product.
4
- * Generates professional screenshots and optimized listing content.
5
- */
6
- export declare const runAppStoreGeneration: (options: CliOptions & {
7
- appStoreProductId: string;
8
- store?: string;
9
- locale?: string;
10
- screenshotsOnly?: boolean;
11
- listingsOnly?: boolean;
12
- }) => Promise<void>;