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,298 +0,0 @@
1
- /**
2
- * Find-smells phase: clone the product's repo, ask Claude to audit code for
3
- * code smells (refactor candidates, perf cliffs, dead code, etc.), and file
4
- * each new finding as an issue. Subsequent runs are incremental, scoped to
5
- * commits since the previous successful scan.
6
- *
7
- * Companion to find-bugs (real defects) and find-features (missing user
8
- * capability). The three phases share the same workspace + state pattern.
9
- */
10
- import { query } from '@anthropic-ai/claude-agent-sdk';
11
- import { DEFAULT_MODEL } from '../../constants.js';
12
- import { logError, logInfo, logSuccess, logWarning, } from '../../utils/logger.js';
13
- import { cleanupIssueRepo, cloneIssueRepo, ensureWorkspaceDir, syncRepoToRef, } from '../../workspace/workspace-manager.js';
14
- import { detectDefaultBranch, gitRevParse, isAncestor, listChangedPaths, } from '../find-shared/git.js';
15
- import { createIssue, fetchOpenIssues, fetchOpenIssuesByRepo, fetchProductBasics, fetchRepositoryBasics, } from '../find-shared/mcp.js';
16
- import { createPromptGenerator, extractTextFromContent, tryExtractResult, } from '../pr-shared/agent-utils.js';
17
- import { createFindSmellsSystemPrompt, createFindSmellsUserPrompt, } from './prompts.js';
18
- import { acquireFindSmellsLock, loadFindSmellsState, updateFindSmellsState, } from './state.js';
19
- import { isScanResult, isSmellCategory, } from './types.js';
20
- const WORKSPACE_KEY = 'find-smells';
21
- /** Single source of truth — referenced by the CLI help string too. */
22
- export const DEFAULT_MAX_FILES = 200;
23
- /**
24
- * Upper bound on turns for the in-CLI Claude session. Same rationale as
25
- * find-bugs: read-only but open-scope audit needs headroom for repo-wide
26
- * Glob/Read/Grep without runaway exploration.
27
- */
28
- const MAX_TURNS = 200;
29
- /**
30
- * Scan a product's repository for code smells and file each new finding as an issue.
31
- */
32
- // eslint-disable-next-line complexity
33
- export async function scanForSmells(options) {
34
- const { productId, repoId, githubToken, owner, repo, full, maxFiles, categories, verbose, } = options;
35
- // State/lock/workspace are keyed by an opaque scope id so product and repo
36
- // scans never collide; repo keys are prefixed to namespace them clearly.
37
- const scopeId = productId ?? `repo-${repoId}`;
38
- const scopeLabel = productId
39
- ? `product ${productId}`
40
- : `repository ${repoId}`;
41
- logInfo(`Starting smell scan for ${scopeLabel} (${owner}/${repo})`);
42
- const lock = acquireFindSmellsLock(scopeId);
43
- if (!lock) {
44
- logWarning(`Another smell scan is already in progress for ${scopeLabel}; skipping.`);
45
- return {
46
- status: 'error',
47
- message: 'Another smell scan is already in progress for this scope',
48
- };
49
- }
50
- let repoPath;
51
- let scanSucceeded = false;
52
- try {
53
- updateFindSmellsState(scopeId, {
54
- lastAttemptedAt: new Date().toISOString(),
55
- });
56
- const workspaceRoot = ensureWorkspaceDir();
57
- const repoKey = `${WORKSPACE_KEY}-${scopeId}`;
58
- ({ repoPath } = cloneIssueRepo(workspaceRoot, repoKey, owner, repo, githubToken));
59
- const branch = options.branch ?? detectDefaultBranch(repoPath);
60
- logInfo(`Syncing ${owner}/${repo} to branch ${branch}`);
61
- syncRepoToRef(repoPath, { branch }, githubToken);
62
- const headSha = gitRevParse(repoPath, 'HEAD');
63
- const state = loadFindSmellsState(scopeId);
64
- const baseSha = full ? undefined : state.lastScannedCommitSha;
65
- let scope = 'full';
66
- let changedPaths;
67
- if (baseSha && baseSha !== headSha) {
68
- const sameTree = isAncestor(repoPath, baseSha, headSha);
69
- if (sameTree) {
70
- scope = 'incremental';
71
- changedPaths = listChangedPaths(repoPath, baseSha, headSha);
72
- logInfo(`Incremental scan: ${changedPaths.length} files changed since ${baseSha.slice(0, 8)}`);
73
- if (changedPaths.length === 0) {
74
- logSuccess('No code changes since last scan; nothing to do.');
75
- updateFindSmellsState(scopeId, {
76
- lastScannedCommitSha: headSha,
77
- lastScannedAt: new Date().toISOString(),
78
- lastError: undefined,
79
- });
80
- scanSucceeded = true;
81
- return {
82
- status: 'success',
83
- message: 'No changes since last scan',
84
- scannedCommitSha: headSha,
85
- smellsFound: 0,
86
- issuesCreated: 0,
87
- };
88
- }
89
- }
90
- else {
91
- logWarning(`Last scanned sha ${baseSha.slice(0, 8)} not reachable from HEAD; falling back to full scan.`);
92
- }
93
- }
94
- else if (baseSha === headSha) {
95
- // Symmetric with the "no changed files" early return above: even though
96
- // the sha didn't move, advance lastScannedAt + clear lastError so the
97
- // state file accurately reflects when we last verified the repo.
98
- logSuccess('HEAD unchanged since last scan; nothing to do.');
99
- updateFindSmellsState(scopeId, {
100
- lastScannedAt: new Date().toISOString(),
101
- lastError: undefined,
102
- });
103
- scanSucceeded = true;
104
- return {
105
- status: 'success',
106
- message: 'HEAD unchanged since last scan',
107
- scannedCommitSha: headSha,
108
- smellsFound: 0,
109
- issuesCreated: 0,
110
- };
111
- }
112
- const product = productId
113
- ? await fetchProductBasics(productId)
114
- : await fetchRepositoryBasics(repoId);
115
- const existingIssues = productId
116
- ? await fetchOpenIssues(productId)
117
- : await fetchOpenIssuesByRepo(repoId);
118
- logInfo(`Loaded ${existingIssues.length} existing issues for dedup context`);
119
- const systemPrompt = createFindSmellsSystemPrompt();
120
- const userPrompt = createFindSmellsUserPrompt({
121
- productName: product.name,
122
- productDescription: product.description,
123
- scope,
124
- baseSha,
125
- headSha,
126
- changedPaths,
127
- maxFiles: maxFiles ?? DEFAULT_MAX_FILES,
128
- categories,
129
- existingIssues: existingIssues.map((i) => ({
130
- id: i.id,
131
- name: i.name,
132
- description: i.description,
133
- })),
134
- });
135
- let lastAssistantResponse = '';
136
- let scanResult = null;
137
- logInfo('Running Claude code-smell audit...');
138
- for await (const message of query({
139
- prompt: createPromptGenerator(userPrompt),
140
- options: {
141
- systemPrompt: {
142
- type: 'preset',
143
- preset: 'claude_code',
144
- append: systemPrompt,
145
- },
146
- model: DEFAULT_MODEL,
147
- maxTurns: MAX_TURNS,
148
- permissionMode: 'bypassPermissions',
149
- cwd: repoPath,
150
- },
151
- })) {
152
- if (message.type === 'assistant') {
153
- lastAssistantResponse += extractTextFromContent(message.message?.content ?? [], verbose);
154
- continue;
155
- }
156
- if (message.type !== 'result') {
157
- continue;
158
- }
159
- const responseText = message.subtype === 'success'
160
- ? message.result || lastAssistantResponse
161
- : lastAssistantResponse;
162
- const parsed = tryExtractResult(responseText, 'scan_result');
163
- if (isScanResult(parsed)) {
164
- scanResult = parsed;
165
- }
166
- else if (message.subtype !== 'success') {
167
- logError(`Audit incomplete: ${message.subtype}`);
168
- }
169
- }
170
- if (!scanResult) {
171
- const msg = 'Audit failed: could not parse a scan_result from the agent';
172
- updateFindSmellsState(scopeId, { lastError: msg });
173
- return {
174
- status: 'error',
175
- message: msg,
176
- };
177
- }
178
- const { summary, smells } = scanResult;
179
- logInfo(`Audit produced ${smells.length} candidate smells. ${summary}`);
180
- const deferredBugs = scanResult.deferred_to_bugs ?? [];
181
- const deferredFeatures = scanResult.deferred_to_features ?? [];
182
- // CLI suggestion argument: a productId positional, or the --repo-id flag.
183
- const scopeArg = productId ?? `--repo-id ${repoId}`;
184
- if (deferredBugs.length > 0) {
185
- logInfo(`${deferredBugs.length} finding(s) deferred to find-bugs — run \`edsger find-bugs ${scopeArg}\` to pick them up:`);
186
- for (const d of deferredBugs) {
187
- const loc = d.file ? ` (${d.file}${d.line ? `:${d.line}` : ''})` : '';
188
- logInfo(` • ${d.title}${loc} — ${d.reason}`);
189
- }
190
- }
191
- if (deferredFeatures.length > 0) {
192
- logInfo(`${deferredFeatures.length} finding(s) deferred to find-features — run \`edsger find-features ${scopeArg}\` to pick them up:`);
193
- for (const d of deferredFeatures) {
194
- const loc = d.file ? ` (${d.file}${d.line ? `:${d.line}` : ''})` : '';
195
- logInfo(` • ${d.title}${loc} — ${d.reason}`);
196
- }
197
- }
198
- const { kept: filteredSmells, droppedCategories } = filterByCategories(smells, categories);
199
- if (droppedCategories.length > 0) {
200
- const summaryLine = droppedCategories
201
- .map(({ category, count }) => `${category}×${count}`)
202
- .join(', ');
203
- logWarning(`Dropped findings outside the requested categories or with unknown category: ${summaryLine}.`);
204
- }
205
- let created = 0;
206
- for (const smell of filteredSmells) {
207
- const issueId = await createIssueForSmell({ productId, repoId }, smell);
208
- if (issueId) {
209
- created++;
210
- logSuccess(`Filed issue ${issueId}: ${smell.title}`);
211
- }
212
- }
213
- updateFindSmellsState(scopeId, {
214
- lastScannedCommitSha: headSha,
215
- lastScannedAt: new Date().toISOString(),
216
- lastError: undefined,
217
- });
218
- const droppedCount = droppedCategories.reduce((acc, d) => acc + d.count, 0);
219
- scanSucceeded = true;
220
- return {
221
- status: 'success',
222
- message: `Filed ${created} of ${filteredSmells.length} candidate smells (${droppedCount} dropped by category filter; ${deferredBugs.length} deferred to bugs, ${deferredFeatures.length} to features)`,
223
- scannedCommitSha: headSha,
224
- smellsFound: filteredSmells.length,
225
- issuesCreated: created,
226
- deferredToBugs: deferredBugs.length,
227
- deferredToFeatures: deferredFeatures.length,
228
- summary,
229
- };
230
- }
231
- catch (error) {
232
- const errorMessage = error instanceof Error ? error.message : String(error);
233
- logError(`Smell scan failed: ${errorMessage}`);
234
- updateFindSmellsState(scopeId, { lastError: errorMessage });
235
- return {
236
- status: 'error',
237
- message: `Smell scan failed: ${errorMessage}`,
238
- };
239
- }
240
- finally {
241
- if (scanSucceeded) {
242
- cleanupIssueRepo(repoPath);
243
- }
244
- lock.release();
245
- }
246
- }
247
- async function createIssueForSmell(scope, smell) {
248
- return createIssue({
249
- productId: scope.productId,
250
- repoId: scope.repoId,
251
- title: smell.title,
252
- description: formatIssueDescription(smell),
253
- });
254
- }
255
- /**
256
- * Filter the agent's findings down to the requested categories. The system
257
- * prompt asks the agent to honour the filter, but trusting the prompt alone
258
- * lets bad output through; we re-check here. Items with an unknown category
259
- * are also dropped — the type system can't enforce that across the JSON
260
- * boundary.
261
- *
262
- * Returns per-category drop counts so the user-facing warning can name the
263
- * specific categories that were filtered out (more actionable than a bare
264
- * total).
265
- */
266
- function filterByCategories(smells, categories) {
267
- const allow = categories?.length ? new Set(categories) : null;
268
- const kept = [];
269
- const droppedTally = new Map();
270
- for (const s of smells) {
271
- const known = isSmellCategory(s.category);
272
- const inAllow = !allow || (known && allow.has(s.category));
273
- if (known && inAllow) {
274
- kept.push(s);
275
- continue;
276
- }
277
- const key = known ? s.category : '<unknown>';
278
- droppedTally.set(key, (droppedTally.get(key) ?? 0) + 1);
279
- }
280
- const droppedCategories = Array.from(droppedTally.entries())
281
- .map(([category, count]) => ({ category, count }))
282
- .sort((a, b) => b.count - a.count);
283
- return { kept, droppedCategories };
284
- }
285
- function formatIssueDescription(smell) {
286
- const location = smell.line ? `${smell.file}:${smell.line}` : smell.file;
287
- const lines = [
288
- `**Severity**: ${smell.severity}`,
289
- `**Category**: ${smell.category}`,
290
- `**Location**: \`${location}\``,
291
- '',
292
- smell.description,
293
- '',
294
- '---',
295
- '_Filed automatically by `edsger find-smells`._',
296
- ];
297
- return lines.join('\n');
298
- }
@@ -1,30 +0,0 @@
1
- /**
2
- * Prompts for the find-smells phase. The agent runs with cwd=repo checkout
3
- * and has Read/Grep/Glob/Bash available — it explores the code itself
4
- * rather than receiving a pre-baked diff.
5
- *
6
- * Boundary against neighbouring phases:
7
- * - find-bugs handles real defects (security, correctness, races, etc.)
8
- * - find-features handles missing user-facing capability
9
- * - find-smells (this phase) handles "the code would be better if changed":
10
- * refactor candidates, dead code, perf cliffs, type-safety gaps, etc.
11
- */
12
- export declare function createFindSmellsSystemPrompt(): string;
13
- export interface FindSmellsUserPromptParams {
14
- productName: string;
15
- productDescription?: string;
16
- scope: 'full' | 'incremental';
17
- baseSha?: string;
18
- headSha: string;
19
- changedPaths?: string[];
20
- existingIssues: {
21
- id: string;
22
- name: string;
23
- description?: string;
24
- }[];
25
- /** Upper bound on files the auditor may Read. Keeps token cost predictable. */
26
- maxFiles?: number;
27
- /** Optional comma-separated category filter from the CLI. */
28
- categories?: string[];
29
- }
30
- export declare function createFindSmellsUserPrompt(params: FindSmellsUserPromptParams): string;
@@ -1,129 +0,0 @@
1
- /**
2
- * Prompts for the find-smells phase. The agent runs with cwd=repo checkout
3
- * and has Read/Grep/Glob/Bash available — it explores the code itself
4
- * rather than receiving a pre-baked diff.
5
- *
6
- * Boundary against neighbouring phases:
7
- * - find-bugs handles real defects (security, correctness, races, etc.)
8
- * - find-features handles missing user-facing capability
9
- * - find-smells (this phase) handles "the code would be better if changed":
10
- * refactor candidates, dead code, perf cliffs, type-safety gaps, etc.
11
- */
12
- export function createFindSmellsSystemPrompt() {
13
- return `You are a senior engineer auditing a codebase for **code smells** — concrete improvements the codebase would benefit from. You have read-only access via Read/Grep/Glob and may run shallow Bash queries (e.g. \`git log\`, \`wc -l\`) to navigate.
14
-
15
- **What counts as a smell worth filing**:
16
- 1. **Refactor**: duplicated logic across files, tangled module boundaries, leaky abstractions, primitive obsession
17
- 2. **Performance**: clearly-suboptimal patterns (N+1 queries, unbounded loops on growing data, repeated work that could be cached, sync I/O in hot paths) that are not yet causing user-visible bugs
18
- 3. **Duplication**: copy-pasted blocks that should be a single helper
19
- 4. **Complexity**: functions / files that are too long or too deeply nested to reason about, cyclomatic-complexity hotspots
20
- 5. **Dead code**: unreferenced exports, unreachable branches, abandoned feature flags, commented-out blocks
21
- 6. **Type safety**: \`any\` / \`unknown\` casts, \`@ts-ignore\` / \`@ts-expect-error\`, missing null checks at trust boundaries, loose interfaces that should be tightened
22
- 7. **Readability**: misleading names, missing or wrong comments, magic numbers that should be named constants
23
- 8. **Architecture**: cyclic deps, layering violations, modules that have grown into multiple responsibilities
24
-
25
- **What does NOT count** (skip these — wrong tool):
26
- - Real bugs (security holes, logic errors, races, data corruption) — those belong in \`edsger find-bugs\`. **Don't drop them silently — list them in \`deferred_to_bugs\` so the user knows to run that command.**
27
- - Missing user-facing features or workflows — those belong in \`edsger find-features\`. **List them in \`deferred_to_features\` instead of dropping them.**
28
- - Pure style / formatting / lint issues a formatter would catch
29
- - "Could be more idiomatic" rewrites with no concrete benefit
30
- - Hypothetical future-scaling concerns with no current evidence
31
- - Missing tests (track those separately, not here)
32
-
33
- **Discipline**:
34
- - Be concrete: cite the exact file and line. Quote the offending snippet in the description, and propose the specific change.
35
- - Be conservative: if you can't articulate the *benefit* of changing it (clarity, perf number, removed coupling), skip it.
36
- - Severity rubric:
37
- - high = pays back quickly (e.g. removes a hot-path N+1, deletes a large dead module, unblocks future work the team is clearly trying to do)
38
- - medium = clear improvement but not urgent (typical refactor candidate)
39
- - low = nice-to-have polish; only file if the change is small and obvious
40
- - **Deduplication**: you will be given the list of existing open issues. Skip any finding that overlaps. Better to under-report than spam duplicates.
41
-
42
- **CRITICAL — Output Format**:
43
- End your response with a single JSON code block in this exact shape:
44
-
45
- \`\`\`json
46
- {
47
- "scan_result": {
48
- "summary": "Reviewed N files in <scope>; found X smells (Y high, Z medium).",
49
- "scanned_commit_sha": "<the HEAD sha you scanned>",
50
- "smells": [
51
- {
52
- "title": "Short, action-oriented title (under 80 chars)",
53
- "description": "## What\\nWhat the smell is, with the offending snippet quoted.\\n\\n## Why it matters\\nConcrete benefit of changing it (clarity, perf, decoupling).\\n\\n## Suggested change\\nA specific refactor or replacement.",
54
- "file": "relative/path/from/repo/root.ts",
55
- "line": 42,
56
- "severity": "medium",
57
- "category": "refactor",
58
- "dedup_signature": "auth-service-duplicated-token-parser"
59
- }
60
- ],
61
- "deferred_to_bugs": [
62
- {
63
- "title": "Short title of the suspected bug",
64
- "reason": "One-line note of why this looks like a real defect, not a smell",
65
- "file": "relative/path.ts",
66
- "line": 100
67
- }
68
- ],
69
- "deferred_to_features": [
70
- {
71
- "title": "Short title of the missing capability",
72
- "reason": "One-line note of the user need this would address",
73
- "file": "relative/path.ts"
74
- }
75
- ]
76
- }
77
- }
78
- \`\`\`
79
-
80
- If you find nothing worth filing, still emit the JSON with an empty \`smells\` array. The \`deferred_to_*\` arrays are optional — omit them or send \`[]\` if there's nothing to hand off.`;
81
- }
82
- export function createFindSmellsUserPrompt(params) {
83
- const { productName, productDescription, scope, baseSha, headSha, changedPaths, existingIssues, maxFiles, categories, } = params;
84
- const productBlock = productDescription
85
- ? `**Product**: ${productName}\n${productDescription}`
86
- : `**Product**: ${productName}`;
87
- const scopeBlock = scope === 'incremental' && baseSha
88
- ? `**Scope**: incremental scan of changes between ${baseSha} and ${headSha}.\nUse \`git diff --name-only ${baseSha}..${headSha}\` to enumerate changed files, then Read/Grep them. Do NOT scan files outside the diff.`
89
- : `**Scope**: full repository scan at ${headSha}. Use Glob to enumerate source files. Skip vendored code, build output, generated files, lockfiles, and \`node_modules\`.`;
90
- const filesHint = changedPaths && changedPaths.length > 0
91
- ? `\n**Changed files in this range** (${changedPaths.length}):\n${changedPaths
92
- .slice(0, 200)
93
- .map((p) => `- ${p}`)
94
- .join('\n')}${changedPaths.length > 200 ? `\n…and ${changedPaths.length - 200} more.` : ''}`
95
- : '';
96
- const issuesBlock = existingIssues.length === 0
97
- ? 'No existing open issues for this product — every finding is new.'
98
- : `**Existing open issues** (${existingIssues.length}) — skip findings that overlap with any of these:\n${existingIssues
99
- .map((i) => `- [${i.id}] ${i.name}${i.description ? `\n ${truncate(i.description, 200)}` : ''}`)
100
- .join('\n')}`;
101
- const budgetBlock = typeof maxFiles === 'number' && maxFiles > 0
102
- ? `\n**Budget**: Read at most ${maxFiles} files. Prioritise files most likely to harbour smells (large modules, frequently-edited code per \`git log\`, files with \`any\`/\`@ts-ignore\`, hot data-access paths) over test fixtures and generated code. If the scope is larger than the budget, stop when you hit it and report truncation in \`summary\`.`
103
- : '';
104
- const categoryBlock = categories && categories.length > 0
105
- ? `\n**Category filter**: only file findings whose \`category\` is one of: ${categories.join(', ')}. Drop everything else.`
106
- : '';
107
- return `${productBlock}
108
-
109
- ${scopeBlock}${filesHint}${budgetBlock}${categoryBlock}
110
-
111
- ${issuesBlock}
112
-
113
- ## How to work
114
-
115
- 1. Identify the files in scope (per the scope block above).
116
- 2. For each file, Read it and look for the smell categories listed in the system prompt.
117
- 3. When you suspect a smell, re-read the surrounding context to confirm the *benefit* of changing it. If you can't name the benefit, drop it.
118
- 4. If something looks like a real bug (not a smell), drop it — \`edsger find-bugs\` covers that.
119
- 5. Cross-check every candidate against the existing issues list. Drop overlaps.
120
- 6. Produce the final JSON described in the system prompt.
121
-
122
- Begin.`;
123
- }
124
- function truncate(s, n) {
125
- if (s.length <= n) {
126
- return s;
127
- }
128
- return `${s.slice(0, n)}…`;
129
- }
@@ -1,21 +0,0 @@
1
- /**
2
- * Per-product scan state for find-smells. Storage at
3
- * `~/.edsger/find-smells-state/<productId>.json`.
4
- *
5
- * Same schema shape as find-bugs (incremental sha tracking) — file/lock
6
- * machinery shared via createScanStateModule. Kept as a sibling state file
7
- * (not merged with find-bugs) so a smell scan and a bug scan can run
8
- * concurrently without contending on the same lock.
9
- */
10
- import { type LockHandle } from '../find-shared/scan-state.js';
11
- export type { LockHandle };
12
- export interface FindSmellsState {
13
- lastScannedCommitSha?: string;
14
- lastScannedAt?: string;
15
- lastAttemptedAt?: string;
16
- lastError?: string;
17
- }
18
- export declare const loadFindSmellsState: (productId: string) => FindSmellsState;
19
- export declare const saveFindSmellsState: (productId: string, state: FindSmellsState) => void;
20
- export declare const updateFindSmellsState: (productId: string, patch: Partial<FindSmellsState>) => FindSmellsState;
21
- export declare const acquireFindSmellsLock: (productId: string, staleAfterMs?: number) => LockHandle | null;
@@ -1,17 +0,0 @@
1
- /**
2
- * Per-product scan state for find-smells. Storage at
3
- * `~/.edsger/find-smells-state/<productId>.json`.
4
- *
5
- * Same schema shape as find-bugs (incremental sha tracking) — file/lock
6
- * machinery shared via createScanStateModule. Kept as a sibling state file
7
- * (not merged with find-bugs) so a smell scan and a bug scan can run
8
- * concurrently without contending on the same lock.
9
- */
10
- import { createScanStateModule, } from '../find-shared/scan-state.js';
11
- const m = createScanStateModule({
12
- dirName: 'find-smells-state',
13
- });
14
- export const loadFindSmellsState = m.load;
15
- export const saveFindSmellsState = m.save;
16
- export const updateFindSmellsState = m.update;
17
- export const acquireFindSmellsLock = m.acquireLock;
@@ -1,51 +0,0 @@
1
- /**
2
- * Types for the find-smells phase.
3
- *
4
- * A "smell" here is anything the codebase would benefit from changing but that
5
- * is **not** a real bug (find-bugs handles those) and **not** a missing feature
6
- * (find-features handles those). Refactor candidates, dead code, performance
7
- * cliffs, type-safety gaps, and over-complex modules all live here.
8
- */
9
- export type SmellSeverity = 'high' | 'medium' | 'low';
10
- /**
11
- * Authoritative list of allowed categories. Kept as a `const` array so the
12
- * type and the runtime whitelist can never drift apart — `SmellCategory` is
13
- * derived from it, and `isSmellCategory` checks against it.
14
- */
15
- export declare const SMELL_CATEGORIES: readonly ["refactor", "performance", "duplication", "complexity", "dead_code", "type_safety", "readability", "architecture", "other"];
16
- export type SmellCategory = (typeof SMELL_CATEGORIES)[number];
17
- export declare function isSmellCategory(value: unknown): value is SmellCategory;
18
- export interface SmellFinding {
19
- title: string;
20
- description: string;
21
- file: string;
22
- line?: number;
23
- severity: SmellSeverity;
24
- category: SmellCategory;
25
- /** Stable signature for log/audit; not used for storage dedup. */
26
- dedup_signature?: string;
27
- }
28
- /**
29
- * A finding the agent saw but is handing off to a sibling phase rather than
30
- * filing as a smell. Surfaced in the run log so the user knows the work
31
- * wasn't silently lost — they can run `edsger find-bugs` / `find-features`
32
- * to pick it up.
33
- */
34
- export interface DeferredFinding {
35
- title: string;
36
- /** One-line reason the agent thinks the sibling phase owns this. */
37
- reason: string;
38
- file?: string;
39
- line?: number;
40
- }
41
- export declare function isDeferredFinding(value: unknown): value is DeferredFinding;
42
- export interface ScanResult {
43
- summary: string;
44
- scanned_commit_sha?: string;
45
- smells: SmellFinding[];
46
- /** Findings the agent thinks belong in `edsger find-bugs`. */
47
- deferred_to_bugs?: DeferredFinding[];
48
- /** Findings the agent thinks belong in `edsger find-features`. */
49
- deferred_to_features?: DeferredFinding[];
50
- }
51
- export declare function isScanResult(value: unknown): value is ScanResult;
@@ -1,64 +0,0 @@
1
- /**
2
- * Types for the find-smells phase.
3
- *
4
- * A "smell" here is anything the codebase would benefit from changing but that
5
- * is **not** a real bug (find-bugs handles those) and **not** a missing feature
6
- * (find-features handles those). Refactor candidates, dead code, performance
7
- * cliffs, type-safety gaps, and over-complex modules all live here.
8
- */
9
- /**
10
- * Authoritative list of allowed categories. Kept as a `const` array so the
11
- * type and the runtime whitelist can never drift apart — `SmellCategory` is
12
- * derived from it, and `isSmellCategory` checks against it.
13
- */
14
- export const SMELL_CATEGORIES = [
15
- 'refactor',
16
- 'performance',
17
- 'duplication',
18
- 'complexity',
19
- 'dead_code',
20
- 'type_safety',
21
- 'readability',
22
- 'architecture',
23
- 'other',
24
- ];
25
- export function isSmellCategory(value) {
26
- return (typeof value === 'string' &&
27
- SMELL_CATEGORIES.includes(value));
28
- }
29
- export function isDeferredFinding(value) {
30
- if (!value || typeof value !== 'object') {
31
- return false;
32
- }
33
- const v = value;
34
- return typeof v.title === 'string' && typeof v.reason === 'string';
35
- }
36
- export function isScanResult(value) {
37
- if (!value || typeof value !== 'object') {
38
- return false;
39
- }
40
- const v = value;
41
- if (typeof v.summary !== 'string' || !Array.isArray(v.smells)) {
42
- return false;
43
- }
44
- const smellsOk = v.smells.every((s) => s &&
45
- typeof s === 'object' &&
46
- typeof s.title === 'string' &&
47
- typeof s.description === 'string' &&
48
- typeof s.file === 'string');
49
- if (!smellsOk) {
50
- return false;
51
- }
52
- // Deferred arrays are optional but, if present, must be well-formed —
53
- // otherwise we'd silently drop hand-offs the agent intended us to log.
54
- for (const key of ['deferred_to_bugs', 'deferred_to_features']) {
55
- const arr = v[key];
56
- if (arr === undefined) {
57
- continue;
58
- }
59
- if (!Array.isArray(arr) || !arr.every(isDeferredFinding)) {
60
- return false;
61
- }
62
- }
63
- return true;
64
- }
@@ -1,63 +0,0 @@
1
- /**
2
- * Shared multi-repo cloning for flow generation (screen-flow / data-flow).
3
- *
4
- * A flow can be scoped to one or several repositories (the user picks them in
5
- * the desktop UI; the chosen set is stored on `flows.repository_ids`). This
6
- * helper resolves that set, clones each repo into a per-flow parent workspace
7
- * directory, and returns the directory the agent should run against:
8
- * - single repo → the repo's own clone dir
9
- * - many repos → the parent dir holding every clone as a subdirectory,
10
- * so the agent can explore them all and produce one unified
11
- * flow.
12
- *
13
- * Falls back to the product's primary repo when `repository_ids` is empty
14
- * (older flows, or single-repo products).
15
- */
16
- export interface ClonedRepo {
17
- fullName: string;
18
- owner: string;
19
- repo: string;
20
- dir: string;
21
- }
22
- export interface CloneFlowReposSuccess {
23
- ok: true;
24
- /** Directory to point the agent at (parent dir for multi-repo). */
25
- projectDir: string;
26
- /** Directory to clean up afterwards (always the per-flow parent). */
27
- cleanupDir: string;
28
- repos: ClonedRepo[];
29
- }
30
- export interface CloneFlowReposFailure {
31
- ok: false;
32
- message: string;
33
- }
34
- export declare function safeDirName(fullName: string): string;
35
- /**
36
- * Resolve the repositories a flow targets (by id, preserving the stored
37
- * order), falling back to the product's primary repo.
38
- *
39
- * In repo-only mode there is no product, so no `fallback` is provided: the
40
- * set is resolved purely from `repositoryIds`.
41
- */
42
- export declare function resolveTargetRepos(productId: string | undefined, repositoryIds: string[], fallback?: {
43
- owner: string;
44
- repo: string;
45
- }): Promise<{
46
- fullName: string;
47
- owner: string;
48
- repo: string;
49
- }[]>;
50
- export declare function cloneFlowRepos(opts: {
51
- /** Product-scoped flow. Mutually exclusive with `repoId`. */
52
- productId?: string;
53
- /** Repo-only flow: a single repositories row, no product context. */
54
- repoId?: string;
55
- repositoryIds: string[];
56
- workspaceKey: string;
57
- verbose?: boolean;
58
- }): Promise<CloneFlowReposSuccess | CloneFlowReposFailure>;
59
- /**
60
- * Build a short note describing the repo scope, appended to the agent's user
61
- * prompt so it knows whether to map one repo or unify several.
62
- */
63
- export declare function describeRepoScope(repos: ClonedRepo[]): string;