edsger 0.77.0 → 0.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (877) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +95 -210
  3. package/assets/LICENSE +21 -0
  4. package/assets/README.md +104 -0
  5. package/assets/benchmark/base.yaml +286 -0
  6. package/assets/benchmark/csharp.yaml +68 -0
  7. package/assets/benchmark/dart.yaml +70 -0
  8. package/assets/benchmark/go.yaml +71 -0
  9. package/assets/benchmark/java.yaml +68 -0
  10. package/assets/benchmark/python.yaml +72 -0
  11. package/assets/benchmark/typescript.yaml +71 -0
  12. package/assets/languages.yaml +35 -0
  13. package/assets/manifest.yaml +39 -0
  14. package/assets/review/base.yaml +111 -0
  15. package/assets/review/csharp.yaml +38 -0
  16. package/assets/review/dart.yaml +40 -0
  17. package/assets/review/go.yaml +40 -0
  18. package/assets/review/java.yaml +40 -0
  19. package/assets/review/python.yaml +41 -0
  20. package/assets/review/typescript.yaml +40 -0
  21. package/assets/schema/benchmark.schema.json +87 -0
  22. package/assets/schema/review.schema.json +73 -0
  23. package/assets/skills/benchmark/SKILL.md +66 -0
  24. package/assets/skills/pr-resolve/SKILL.md +58 -0
  25. package/assets/skills/pr-review/SKILL.md +66 -0
  26. package/dist/index.js +1348 -1247
  27. package/dist/index.js.map +1 -0
  28. package/package.json +58 -53
  29. package/dist/api/adr.d.ts +0 -48
  30. package/dist/api/adr.js +0 -139
  31. package/dist/api/app-store-iap.d.ts +0 -60
  32. package/dist/api/app-store-iap.js +0 -145
  33. package/dist/api/app-store.d.ts +0 -93
  34. package/dist/api/app-store.js +0 -206
  35. package/dist/api/chat.d.ts +0 -72
  36. package/dist/api/chat.js +0 -272
  37. package/dist/api/cross-product.d.ts +0 -33
  38. package/dist/api/cross-product.js +0 -127
  39. package/dist/api/financing.d.ts +0 -47
  40. package/dist/api/financing.js +0 -37
  41. package/dist/api/github.d.ts +0 -86
  42. package/dist/api/github.js +0 -203
  43. package/dist/api/growth.d.ts +0 -81
  44. package/dist/api/growth.js +0 -75
  45. package/dist/api/intelligence-normalize.d.ts +0 -25
  46. package/dist/api/intelligence-normalize.js +0 -103
  47. package/dist/api/intelligence.d.ts +0 -187
  48. package/dist/api/intelligence.js +0 -402
  49. package/dist/api/issues/approval-checker.d.ts +0 -22
  50. package/dist/api/issues/approval-checker.js +0 -141
  51. package/dist/api/issues/batch-operations.d.ts +0 -17
  52. package/dist/api/issues/batch-operations.js +0 -100
  53. package/dist/api/issues/get-issue.d.ts +0 -5
  54. package/dist/api/issues/get-issue.js +0 -47
  55. package/dist/api/issues/index.d.ts +0 -8
  56. package/dist/api/issues/index.js +0 -10
  57. package/dist/api/issues/issue-utils.d.ts +0 -25
  58. package/dist/api/issues/issue-utils.js +0 -133
  59. package/dist/api/issues/status-updater.d.ts +0 -68
  60. package/dist/api/issues/status-updater.js +0 -190
  61. package/dist/api/issues/test-cases.d.ts +0 -29
  62. package/dist/api/issues/test-cases.js +0 -185
  63. package/dist/api/issues/update-issue.d.ts +0 -25
  64. package/dist/api/issues/update-issue.js +0 -127
  65. package/dist/api/issues/user-stories.d.ts +0 -21
  66. package/dist/api/issues/user-stories.js +0 -163
  67. package/dist/api/mcp-client.d.ts +0 -22
  68. package/dist/api/mcp-client.js +0 -75
  69. package/dist/api/products/test-cases.d.ts +0 -18
  70. package/dist/api/products/test-cases.js +0 -51
  71. package/dist/api/products.d.ts +0 -15
  72. package/dist/api/products.js +0 -45
  73. package/dist/api/release-test-cases.d.ts +0 -7
  74. package/dist/api/release-test-cases.js +0 -59
  75. package/dist/api/releases.d.ts +0 -41
  76. package/dist/api/releases.js +0 -117
  77. package/dist/api/run-sheets.d.ts +0 -22
  78. package/dist/api/run-sheets.js +0 -13
  79. package/dist/api/storage.d.ts +0 -13
  80. package/dist/api/storage.js +0 -29
  81. package/dist/api/tasks.d.ts +0 -26
  82. package/dist/api/tasks.js +0 -81
  83. package/dist/api/test-reports.d.ts +0 -9
  84. package/dist/api/test-reports.js +0 -43
  85. package/dist/api/user-psychology.d.ts +0 -101
  86. package/dist/api/user-psychology.js +0 -143
  87. package/dist/api/web-deploy.d.ts +0 -67
  88. package/dist/api/web-deploy.js +0 -199
  89. package/dist/auth/auth-store.d.ts +0 -98
  90. package/dist/auth/auth-store.js +0 -194
  91. package/dist/auth/env-store.d.ts +0 -41
  92. package/dist/auth/env-store.js +0 -127
  93. package/dist/auth/login.d.ts +0 -18
  94. package/dist/auth/login.js +0 -179
  95. package/dist/commands/adr/index.d.ts +0 -13
  96. package/dist/commands/adr/index.js +0 -31
  97. package/dist/commands/agent-workflow/chat-worker.d.ts +0 -16
  98. package/dist/commands/agent-workflow/chat-worker.js +0 -465
  99. package/dist/commands/agent-workflow/index.d.ts +0 -13
  100. package/dist/commands/agent-workflow/index.js +0 -107
  101. package/dist/commands/agent-workflow/issue-worker.d.ts +0 -14
  102. package/dist/commands/agent-workflow/issue-worker.js +0 -65
  103. package/dist/commands/agent-workflow/processor.d.ts +0 -95
  104. package/dist/commands/agent-workflow/processor.js +0 -519
  105. package/dist/commands/analyze-logs/index.d.ts +0 -7
  106. package/dist/commands/analyze-logs/index.js +0 -34
  107. package/dist/commands/api-docs/index.d.ts +0 -18
  108. package/dist/commands/api-docs/index.js +0 -41
  109. package/dist/commands/app-store/index.d.ts +0 -12
  110. package/dist/commands/app-store/index.js +0 -69
  111. package/dist/commands/architecture-diagram/index.d.ts +0 -8
  112. package/dist/commands/architecture-diagram/index.js +0 -10
  113. package/dist/commands/build/detect-project.d.ts +0 -52
  114. package/dist/commands/build/detect-project.js +0 -277
  115. package/dist/commands/build/index.d.ts +0 -66
  116. package/dist/commands/build/index.js +0 -544
  117. package/dist/commands/chat-serve/chat-server.d.ts +0 -114
  118. package/dist/commands/chat-serve/chat-server.js +0 -339
  119. package/dist/commands/chat-serve/index.d.ts +0 -20
  120. package/dist/commands/chat-serve/index.js +0 -58
  121. package/dist/commands/checklists/index.d.ts +0 -16
  122. package/dist/commands/checklists/index.js +0 -187
  123. package/dist/commands/checklists/tools.d.ts +0 -17
  124. package/dist/commands/checklists/tools.js +0 -19
  125. package/dist/commands/class-diagram/index.d.ts +0 -7
  126. package/dist/commands/class-diagram/index.js +0 -9
  127. package/dist/commands/code-review/index.d.ts +0 -2
  128. package/dist/commands/code-review/index.js +0 -37
  129. package/dist/commands/code-review/reviewer.d.ts +0 -3
  130. package/dist/commands/code-review/reviewer.js +0 -205
  131. package/dist/commands/config/index.d.ts +0 -16
  132. package/dist/commands/config/index.js +0 -60
  133. package/dist/commands/data-flow/index.d.ts +0 -19
  134. package/dist/commands/data-flow/index.js +0 -55
  135. package/dist/commands/diagram-shared/index.d.ts +0 -21
  136. package/dist/commands/diagram-shared/index.js +0 -37
  137. package/dist/commands/discover/index.d.ts +0 -14
  138. package/dist/commands/discover/index.js +0 -29
  139. package/dist/commands/er-diagram/index.d.ts +0 -19
  140. package/dist/commands/er-diagram/index.js +0 -55
  141. package/dist/commands/features/index.d.ts +0 -15
  142. package/dist/commands/features/index.js +0 -34
  143. package/dist/commands/financing-deck/index.d.ts +0 -8
  144. package/dist/commands/financing-deck/index.js +0 -66
  145. package/dist/commands/find-architecture/index.d.ts +0 -15
  146. package/dist/commands/find-architecture/index.js +0 -50
  147. package/dist/commands/find-bugs/index.d.ts +0 -13
  148. package/dist/commands/find-bugs/index.js +0 -48
  149. package/dist/commands/find-features/index.d.ts +0 -14
  150. package/dist/commands/find-features/index.js +0 -42
  151. package/dist/commands/find-smells/index.d.ts +0 -23
  152. package/dist/commands/find-smells/index.js +0 -74
  153. package/dist/commands/flowchart/index.d.ts +0 -8
  154. package/dist/commands/flowchart/index.js +0 -10
  155. package/dist/commands/growth-analysis/index.d.ts +0 -7
  156. package/dist/commands/growth-analysis/index.js +0 -89
  157. package/dist/commands/init/index.d.ts +0 -5
  158. package/dist/commands/init/index.js +0 -152
  159. package/dist/commands/init/prompts.d.ts +0 -9
  160. package/dist/commands/init/prompts.js +0 -128
  161. package/dist/commands/init/templates.d.ts +0 -9
  162. package/dist/commands/init/templates.js +0 -264
  163. package/dist/commands/intelligence/index.d.ts +0 -15
  164. package/dist/commands/intelligence/index.js +0 -138
  165. package/dist/commands/issue-analysis/index.d.ts +0 -5
  166. package/dist/commands/issue-analysis/index.js +0 -9
  167. package/dist/commands/pr-resolve/index.d.ts +0 -13
  168. package/dist/commands/pr-resolve/index.js +0 -50
  169. package/dist/commands/pr-review/index.d.ts +0 -12
  170. package/dist/commands/pr-review/index.js +0 -47
  171. package/dist/commands/product-techniques/index.d.ts +0 -15
  172. package/dist/commands/product-techniques/index.js +0 -37
  173. package/dist/commands/product-test-cases/index.d.ts +0 -12
  174. package/dist/commands/product-test-cases/index.js +0 -40
  175. package/dist/commands/quality-benchmark/index.d.ts +0 -45
  176. package/dist/commands/quality-benchmark/index.js +0 -247
  177. package/dist/commands/recipes/index.d.ts +0 -17
  178. package/dist/commands/recipes/index.js +0 -40
  179. package/dist/commands/refactor/refactor.d.ts +0 -2
  180. package/dist/commands/refactor/refactor.js +0 -134
  181. package/dist/commands/release-sync/index.d.ts +0 -5
  182. package/dist/commands/release-sync/index.js +0 -38
  183. package/dist/commands/run-sheet/index.d.ts +0 -6
  184. package/dist/commands/run-sheet/index.js +0 -48
  185. package/dist/commands/screen-flow/index.d.ts +0 -18
  186. package/dist/commands/screen-flow/index.js +0 -54
  187. package/dist/commands/sequence-diagram/index.d.ts +0 -19
  188. package/dist/commands/sequence-diagram/index.js +0 -55
  189. package/dist/commands/session-serve/index.d.ts +0 -32
  190. package/dist/commands/session-serve/index.js +0 -100
  191. package/dist/commands/session-turn/index.d.ts +0 -73
  192. package/dist/commands/session-turn/index.js +0 -254
  193. package/dist/commands/smoke-test/index.d.ts +0 -5
  194. package/dist/commands/smoke-test/index.js +0 -40
  195. package/dist/commands/state-diagram/index.d.ts +0 -7
  196. package/dist/commands/state-diagram/index.js +0 -9
  197. package/dist/commands/sync-aws/index.d.ts +0 -16
  198. package/dist/commands/sync-aws/index.js +0 -214
  199. package/dist/commands/sync-datadog/index.d.ts +0 -16
  200. package/dist/commands/sync-datadog/index.js +0 -236
  201. package/dist/commands/sync-github-issues/index.d.ts +0 -11
  202. package/dist/commands/sync-github-issues/index.js +0 -42
  203. package/dist/commands/sync-github-pull-requests/index.d.ts +0 -11
  204. package/dist/commands/sync-github-pull-requests/index.js +0 -42
  205. package/dist/commands/sync-org-repos/index.d.ts +0 -12
  206. package/dist/commands/sync-org-repos/index.js +0 -60
  207. package/dist/commands/sync-sentry-issues/index.d.ts +0 -14
  208. package/dist/commands/sync-sentry-issues/index.js +0 -73
  209. package/dist/commands/sync-terraform/index.d.ts +0 -16
  210. package/dist/commands/sync-terraform/index.js +0 -248
  211. package/dist/commands/task-worker/index.d.ts +0 -8
  212. package/dist/commands/task-worker/index.js +0 -34
  213. package/dist/commands/task-worker/processor.d.ts +0 -23
  214. package/dist/commands/task-worker/processor.js +0 -84
  215. package/dist/commands/technical-design/index.d.ts +0 -5
  216. package/dist/commands/technical-design/index.js +0 -9
  217. package/dist/commands/test-cases-analysis/index.d.ts +0 -5
  218. package/dist/commands/test-cases-analysis/index.js +0 -9
  219. package/dist/commands/user-psychology/index.d.ts +0 -7
  220. package/dist/commands/user-psychology/index.js +0 -51
  221. package/dist/commands/user-stories-analysis/index.d.ts +0 -5
  222. package/dist/commands/user-stories-analysis/index.js +0 -9
  223. package/dist/commands/workflow/config/phase-configs.d.ts +0 -5
  224. package/dist/commands/workflow/config/phase-configs.js +0 -132
  225. package/dist/commands/workflow/core/index.d.ts +0 -8
  226. package/dist/commands/workflow/core/index.js +0 -12
  227. package/dist/commands/workflow/core/issue-filter.d.ts +0 -16
  228. package/dist/commands/workflow/core/issue-filter.js +0 -47
  229. package/dist/commands/workflow/core/pipeline-evaluator.d.ts +0 -24
  230. package/dist/commands/workflow/core/pipeline-evaluator.js +0 -32
  231. package/dist/commands/workflow/core/state-manager.d.ts +0 -24
  232. package/dist/commands/workflow/core/state-manager.js +0 -42
  233. package/dist/commands/workflow/core/workflow-logger.d.ts +0 -23
  234. package/dist/commands/workflow/core/workflow-logger.js +0 -77
  235. package/dist/commands/workflow/executors/phase-executor.d.ts +0 -8
  236. package/dist/commands/workflow/executors/phase-executor.js +0 -338
  237. package/dist/commands/workflow/index.d.ts +0 -2
  238. package/dist/commands/workflow/index.js +0 -34
  239. package/dist/commands/workflow/issue-coordinator.d.ts +0 -18
  240. package/dist/commands/workflow/issue-coordinator.js +0 -161
  241. package/dist/commands/workflow/phase-orchestrator.d.ts +0 -26
  242. package/dist/commands/workflow/phase-orchestrator.js +0 -699
  243. package/dist/commands/workflow/processor.d.ts +0 -47
  244. package/dist/commands/workflow/processor.js +0 -149
  245. package/dist/config/issue-status.d.ts +0 -29
  246. package/dist/config/issue-status.js +0 -44
  247. package/dist/config.d.ts +0 -3
  248. package/dist/config.js +0 -79
  249. package/dist/constants.d.ts +0 -10
  250. package/dist/constants.js +0 -36
  251. package/dist/errors/index.d.ts +0 -68
  252. package/dist/errors/index.js +0 -129
  253. package/dist/index.d.ts +0 -4
  254. package/dist/phases/adr-generation/agent.d.ts +0 -6
  255. package/dist/phases/adr-generation/agent.js +0 -69
  256. package/dist/phases/adr-generation/index.d.ts +0 -15
  257. package/dist/phases/adr-generation/index.js +0 -66
  258. package/dist/phases/adr-generation/parse.d.ts +0 -12
  259. package/dist/phases/adr-generation/parse.js +0 -123
  260. package/dist/phases/adr-generation/prompts.d.ts +0 -8
  261. package/dist/phases/adr-generation/prompts.js +0 -35
  262. package/dist/phases/analyze-logs/agent.d.ts +0 -11
  263. package/dist/phases/analyze-logs/agent.js +0 -66
  264. package/dist/phases/analyze-logs/index.d.ts +0 -23
  265. package/dist/phases/analyze-logs/index.js +0 -152
  266. package/dist/phases/analyze-logs/prompts.d.ts +0 -3
  267. package/dist/phases/analyze-logs/prompts.js +0 -27
  268. package/dist/phases/api-docs/index.d.ts +0 -47
  269. package/dist/phases/api-docs/index.js +0 -254
  270. package/dist/phases/api-docs/mcp-server.d.ts +0 -25
  271. package/dist/phases/api-docs/mcp-server.js +0 -82
  272. package/dist/phases/api-docs/prompts.d.ts +0 -16
  273. package/dist/phases/api-docs/prompts.js +0 -65
  274. package/dist/phases/api-docs/types.d.ts +0 -22
  275. package/dist/phases/api-docs/types.js +0 -10
  276. package/dist/phases/app-store-generation/agent.d.ts +0 -2
  277. package/dist/phases/app-store-generation/agent.js +0 -177
  278. package/dist/phases/app-store-generation/assets/inter-latin-ext.woff2 +0 -0
  279. package/dist/phases/app-store-generation/assets/inter-latin.woff2 +0 -0
  280. package/dist/phases/app-store-generation/context.d.ts +0 -21
  281. package/dist/phases/app-store-generation/context.js +0 -78
  282. package/dist/phases/app-store-generation/index.d.ts +0 -20
  283. package/dist/phases/app-store-generation/index.js +0 -157
  284. package/dist/phases/app-store-generation/inter-font.d.ts +0 -20
  285. package/dist/phases/app-store-generation/inter-font.js +0 -49
  286. package/dist/phases/app-store-generation/prompts.d.ts +0 -43
  287. package/dist/phases/app-store-generation/prompts.js +0 -73
  288. package/dist/phases/app-store-generation/screenshot-composer.d.ts +0 -41
  289. package/dist/phases/app-store-generation/screenshot-composer.js +0 -516
  290. package/dist/phases/app-store-generation/uploader.d.ts +0 -19
  291. package/dist/phases/app-store-generation/uploader.js +0 -150
  292. package/dist/phases/architecture-diagram/index.d.ts +0 -15
  293. package/dist/phases/architecture-diagram/index.js +0 -51
  294. package/dist/phases/autonomous/index.d.ts +0 -32
  295. package/dist/phases/autonomous/index.js +0 -412
  296. package/dist/phases/autonomous/prompts.d.ts +0 -5
  297. package/dist/phases/autonomous/prompts.js +0 -31
  298. package/dist/phases/branch-planning/context.d.ts +0 -14
  299. package/dist/phases/branch-planning/context.js +0 -43
  300. package/dist/phases/branch-planning/index.d.ts +0 -25
  301. package/dist/phases/branch-planning/index.js +0 -404
  302. package/dist/phases/branch-planning/outcome.d.ts +0 -28
  303. package/dist/phases/branch-planning/outcome.js +0 -115
  304. package/dist/phases/branch-planning/prompts.d.ts +0 -41
  305. package/dist/phases/branch-planning/prompts.js +0 -157
  306. package/dist/phases/bug-fixing/analyzer.d.ts +0 -17
  307. package/dist/phases/bug-fixing/analyzer.js +0 -247
  308. package/dist/phases/bug-fixing/context-fetcher.d.ts +0 -22
  309. package/dist/phases/bug-fixing/context-fetcher.js +0 -137
  310. package/dist/phases/bug-fixing/index.d.ts +0 -7
  311. package/dist/phases/bug-fixing/index.js +0 -7
  312. package/dist/phases/bug-fixing/mcp-server.d.ts +0 -18
  313. package/dist/phases/bug-fixing/mcp-server.js +0 -19
  314. package/dist/phases/bug-fixing/prompts.d.ts +0 -2
  315. package/dist/phases/bug-fixing/prompts.js +0 -9
  316. package/dist/phases/chat-processor/context.d.ts +0 -38
  317. package/dist/phases/chat-processor/context.js +0 -91
  318. package/dist/phases/chat-processor/index.d.ts +0 -49
  319. package/dist/phases/chat-processor/index.js +0 -482
  320. package/dist/phases/chat-processor/product-context.d.ts +0 -36
  321. package/dist/phases/chat-processor/product-context.js +0 -113
  322. package/dist/phases/chat-processor/product-prompts.d.ts +0 -4
  323. package/dist/phases/chat-processor/product-prompts.js +0 -65
  324. package/dist/phases/chat-processor/product-tools.d.ts +0 -8
  325. package/dist/phases/chat-processor/product-tools.js +0 -11
  326. package/dist/phases/chat-processor/prompts.d.ts +0 -35
  327. package/dist/phases/chat-processor/prompts.js +0 -213
  328. package/dist/phases/chat-processor/tools.d.ts +0 -8
  329. package/dist/phases/chat-processor/tools.js +0 -11
  330. package/dist/phases/class-diagram/index.d.ts +0 -14
  331. package/dist/phases/class-diagram/index.js +0 -76
  332. package/dist/phases/code-implementation/branch-pr-creator.d.ts +0 -31
  333. package/dist/phases/code-implementation/branch-pr-creator.js +0 -172
  334. package/dist/phases/code-implementation/context.d.ts +0 -17
  335. package/dist/phases/code-implementation/context.js +0 -88
  336. package/dist/phases/code-implementation/index.d.ts +0 -33
  337. package/dist/phases/code-implementation/index.js +0 -926
  338. package/dist/phases/code-implementation/outcome.d.ts +0 -47
  339. package/dist/phases/code-implementation/outcome.js +0 -53
  340. package/dist/phases/code-implementation/prompts.d.ts +0 -8
  341. package/dist/phases/code-implementation/prompts.js +0 -166
  342. package/dist/phases/code-implementation-verification/agent.d.ts +0 -32
  343. package/dist/phases/code-implementation-verification/agent.js +0 -225
  344. package/dist/phases/code-implementation-verification/index.d.ts +0 -27
  345. package/dist/phases/code-implementation-verification/index.js +0 -121
  346. package/dist/phases/code-implementation-verification/prompts.d.ts +0 -10
  347. package/dist/phases/code-implementation-verification/prompts.js +0 -90
  348. package/dist/phases/code-refine/context.d.ts +0 -99
  349. package/dist/phases/code-refine/context.js +0 -457
  350. package/dist/phases/code-refine/index.d.ts +0 -59
  351. package/dist/phases/code-refine/index.js +0 -348
  352. package/dist/phases/code-refine/prompts.d.ts +0 -5
  353. package/dist/phases/code-refine/prompts.js +0 -162
  354. package/dist/phases/code-refine/refine-iteration.d.ts +0 -33
  355. package/dist/phases/code-refine/refine-iteration.js +0 -166
  356. package/dist/phases/code-refine/retry-handler.d.ts +0 -17
  357. package/dist/phases/code-refine/retry-handler.js +0 -87
  358. package/dist/phases/code-refine-verification/github.d.ts +0 -54
  359. package/dist/phases/code-refine-verification/github.js +0 -328
  360. package/dist/phases/code-refine-verification/index.d.ts +0 -11
  361. package/dist/phases/code-refine-verification/index.js +0 -260
  362. package/dist/phases/code-refine-verification/llm-analyzer.d.ts +0 -22
  363. package/dist/phases/code-refine-verification/llm-analyzer.js +0 -152
  364. package/dist/phases/code-refine-verification/prompts.d.ts +0 -5
  365. package/dist/phases/code-refine-verification/prompts.js +0 -119
  366. package/dist/phases/code-refine-verification/types.d.ts +0 -74
  367. package/dist/phases/code-refine-verification/types.js +0 -4
  368. package/dist/phases/code-review/context.d.ts +0 -96
  369. package/dist/phases/code-review/context.js +0 -278
  370. package/dist/phases/code-review/diff-utils.d.ts +0 -36
  371. package/dist/phases/code-review/diff-utils.js +0 -100
  372. package/dist/phases/code-review/index.d.ts +0 -40
  373. package/dist/phases/code-review/index.js +0 -627
  374. package/dist/phases/code-testing/analyzer.d.ts +0 -19
  375. package/dist/phases/code-testing/analyzer.js +0 -215
  376. package/dist/phases/code-testing/context-fetcher.d.ts +0 -16
  377. package/dist/phases/code-testing/context-fetcher.js +0 -83
  378. package/dist/phases/code-testing/index.d.ts +0 -2
  379. package/dist/phases/code-testing/index.js +0 -2
  380. package/dist/phases/code-testing/prompts.d.ts +0 -3
  381. package/dist/phases/code-testing/prompts.js +0 -63
  382. package/dist/phases/data-flow/index.d.ts +0 -28
  383. package/dist/phases/data-flow/index.js +0 -286
  384. package/dist/phases/data-flow/mcp-server.d.ts +0 -85
  385. package/dist/phases/data-flow/mcp-server.js +0 -140
  386. package/dist/phases/data-flow/prompts.d.ts +0 -14
  387. package/dist/phases/data-flow/prompts.js +0 -36
  388. package/dist/phases/data-flow/types.d.ts +0 -71
  389. package/dist/phases/data-flow/types.js +0 -86
  390. package/dist/phases/diagram-shared/clone-repos.d.ts +0 -63
  391. package/dist/phases/diagram-shared/clone-repos.js +0 -153
  392. package/dist/phases/diagram-shared/generate.d.ts +0 -42
  393. package/dist/phases/diagram-shared/generate.js +0 -162
  394. package/dist/phases/diagram-shared/graph.d.ts +0 -62
  395. package/dist/phases/diagram-shared/graph.js +0 -169
  396. package/dist/phases/diagram-shared/mcp.d.ts +0 -35
  397. package/dist/phases/diagram-shared/mcp.js +0 -68
  398. package/dist/phases/diagram-shared/prompts.d.ts +0 -23
  399. package/dist/phases/diagram-shared/prompts.js +0 -35
  400. package/dist/phases/discover-services/index.d.ts +0 -29
  401. package/dist/phases/discover-services/index.js +0 -528
  402. package/dist/phases/er-diagram/index.d.ts +0 -28
  403. package/dist/phases/er-diagram/index.js +0 -290
  404. package/dist/phases/er-diagram/mcp-server.d.ts +0 -77
  405. package/dist/phases/er-diagram/mcp-server.js +0 -144
  406. package/dist/phases/er-diagram/prompts.d.ts +0 -14
  407. package/dist/phases/er-diagram/prompts.js +0 -36
  408. package/dist/phases/er-diagram/types.d.ts +0 -76
  409. package/dist/phases/er-diagram/types.js +0 -84
  410. package/dist/phases/features/index.d.ts +0 -65
  411. package/dist/phases/features/index.js +0 -292
  412. package/dist/phases/features/mcp-server.d.ts +0 -61
  413. package/dist/phases/features/mcp-server.js +0 -165
  414. package/dist/phases/features/prompts.d.ts +0 -32
  415. package/dist/phases/features/prompts.js +0 -92
  416. package/dist/phases/features/types.d.ts +0 -34
  417. package/dist/phases/features/types.js +0 -15
  418. package/dist/phases/financing-deck/agent.d.ts +0 -1
  419. package/dist/phases/financing-deck/agent.js +0 -96
  420. package/dist/phases/financing-deck/context.d.ts +0 -13
  421. package/dist/phases/financing-deck/context.js +0 -69
  422. package/dist/phases/financing-deck/index.d.ts +0 -15
  423. package/dist/phases/financing-deck/index.js +0 -89
  424. package/dist/phases/financing-deck/prompts.d.ts +0 -2
  425. package/dist/phases/financing-deck/prompts.js +0 -94
  426. package/dist/phases/find-architecture/index.d.ts +0 -47
  427. package/dist/phases/find-architecture/index.js +0 -268
  428. package/dist/phases/find-architecture/prompts.d.ts +0 -32
  429. package/dist/phases/find-architecture/prompts.js +0 -129
  430. package/dist/phases/find-architecture/state.d.ts +0 -21
  431. package/dist/phases/find-architecture/state.js +0 -17
  432. package/dist/phases/find-architecture/types.d.ts +0 -55
  433. package/dist/phases/find-architecture/types.js +0 -69
  434. package/dist/phases/find-bugs/index.d.ts +0 -33
  435. package/dist/phases/find-bugs/index.js +0 -238
  436. package/dist/phases/find-bugs/prompts.d.ts +0 -22
  437. package/dist/phases/find-bugs/prompts.js +0 -101
  438. package/dist/phases/find-bugs/state.d.ts +0 -19
  439. package/dist/phases/find-bugs/state.js +0 -13
  440. package/dist/phases/find-bugs/types.d.ts +0 -21
  441. package/dist/phases/find-bugs/types.js +0 -16
  442. package/dist/phases/find-features/index.d.ts +0 -40
  443. package/dist/phases/find-features/index.js +0 -328
  444. package/dist/phases/find-features/prompts.d.ts +0 -43
  445. package/dist/phases/find-features/prompts.js +0 -138
  446. package/dist/phases/find-features/state.d.ts +0 -25
  447. package/dist/phases/find-features/state.js +0 -22
  448. package/dist/phases/find-features/types.d.ts +0 -27
  449. package/dist/phases/find-features/types.js +0 -16
  450. package/dist/phases/find-shared/baseline.d.ts +0 -45
  451. package/dist/phases/find-shared/baseline.js +0 -56
  452. package/dist/phases/find-shared/custom-rules.d.ts +0 -39
  453. package/dist/phases/find-shared/custom-rules.js +0 -75
  454. package/dist/phases/find-shared/detect-context.d.ts +0 -40
  455. package/dist/phases/find-shared/detect-context.js +0 -247
  456. package/dist/phases/find-shared/git.d.ts +0 -24
  457. package/dist/phases/find-shared/git.js +0 -60
  458. package/dist/phases/find-shared/mcp.d.ts +0 -54
  459. package/dist/phases/find-shared/mcp.js +0 -127
  460. package/dist/phases/find-shared/rule-config.d.ts +0 -37
  461. package/dist/phases/find-shared/rule-config.js +0 -67
  462. package/dist/phases/find-shared/rule-packs.d.ts +0 -65
  463. package/dist/phases/find-shared/rule-packs.js +0 -124
  464. package/dist/phases/find-shared/scan-state.d.ts +0 -33
  465. package/dist/phases/find-shared/scan-state.js +0 -112
  466. package/dist/phases/find-shared/scoped-read.d.ts +0 -12
  467. package/dist/phases/find-shared/scoped-read.js +0 -33
  468. package/dist/phases/find-smells/index.d.ts +0 -50
  469. package/dist/phases/find-smells/index.js +0 -305
  470. package/dist/phases/find-smells/prompts.d.ts +0 -31
  471. package/dist/phases/find-smells/prompts.js +0 -130
  472. package/dist/phases/find-smells/state.d.ts +0 -21
  473. package/dist/phases/find-smells/state.js +0 -17
  474. package/dist/phases/find-smells/types.d.ts +0 -51
  475. package/dist/phases/find-smells/types.js +0 -64
  476. package/dist/phases/flow-shared/clone-repos.d.ts +0 -63
  477. package/dist/phases/flow-shared/clone-repos.js +0 -153
  478. package/dist/phases/flowchart/index.d.ts +0 -15
  479. package/dist/phases/flowchart/index.js +0 -50
  480. package/dist/phases/functional-testing/analyzer.d.ts +0 -46
  481. package/dist/phases/functional-testing/analyzer.js +0 -622
  482. package/dist/phases/functional-testing/context-fetcher.d.ts +0 -16
  483. package/dist/phases/functional-testing/context-fetcher.js +0 -83
  484. package/dist/phases/functional-testing/http-fallback.d.ts +0 -10
  485. package/dist/phases/functional-testing/http-fallback.js +0 -156
  486. package/dist/phases/functional-testing/index.d.ts +0 -4
  487. package/dist/phases/functional-testing/index.js +0 -4
  488. package/dist/phases/functional-testing/mcp-server.d.ts +0 -9
  489. package/dist/phases/functional-testing/mcp-server.js +0 -13
  490. package/dist/phases/functional-testing/prompts.d.ts +0 -2
  491. package/dist/phases/functional-testing/prompts.js +0 -58
  492. package/dist/phases/functional-testing/test-report-creator.d.ts +0 -68
  493. package/dist/phases/functional-testing/test-report-creator.js +0 -306
  494. package/dist/phases/functional-testing/test-retry-handler.d.ts +0 -16
  495. package/dist/phases/functional-testing/test-retry-handler.js +0 -70
  496. package/dist/phases/growth-analysis/agent.d.ts +0 -2
  497. package/dist/phases/growth-analysis/agent.js +0 -107
  498. package/dist/phases/growth-analysis/context.d.ts +0 -23
  499. package/dist/phases/growth-analysis/context.js +0 -137
  500. package/dist/phases/growth-analysis/index.d.ts +0 -32
  501. package/dist/phases/growth-analysis/index.js +0 -226
  502. package/dist/phases/growth-analysis/prompts.d.ts +0 -2
  503. package/dist/phases/growth-analysis/prompts.js +0 -45
  504. package/dist/phases/intelligence-analysis/agent.d.ts +0 -2
  505. package/dist/phases/intelligence-analysis/agent.js +0 -338
  506. package/dist/phases/intelligence-analysis/context.d.ts +0 -23
  507. package/dist/phases/intelligence-analysis/context.js +0 -142
  508. package/dist/phases/intelligence-analysis/index.d.ts +0 -58
  509. package/dist/phases/intelligence-analysis/index.js +0 -244
  510. package/dist/phases/intelligence-analysis/prompts.d.ts +0 -2
  511. package/dist/phases/intelligence-analysis/prompts.js +0 -62
  512. package/dist/phases/issue-analysis/agent.d.ts +0 -21
  513. package/dist/phases/issue-analysis/agent.js +0 -153
  514. package/dist/phases/issue-analysis/context.d.ts +0 -20
  515. package/dist/phases/issue-analysis/context.js +0 -93
  516. package/dist/phases/issue-analysis/index.d.ts +0 -8
  517. package/dist/phases/issue-analysis/index.js +0 -147
  518. package/dist/phases/issue-analysis/outcome.d.ts +0 -10
  519. package/dist/phases/issue-analysis/outcome.js +0 -42
  520. package/dist/phases/issue-analysis/prompts.d.ts +0 -8
  521. package/dist/phases/issue-analysis/prompts.js +0 -99
  522. package/dist/phases/issue-analysis-verification/agent.d.ts +0 -33
  523. package/dist/phases/issue-analysis-verification/agent.js +0 -124
  524. package/dist/phases/issue-analysis-verification/index.d.ts +0 -27
  525. package/dist/phases/issue-analysis-verification/index.js +0 -79
  526. package/dist/phases/issue-analysis-verification/prompts.d.ts +0 -9
  527. package/dist/phases/issue-analysis-verification/prompts.js +0 -75
  528. package/dist/phases/output-contracts.d.ts +0 -7
  529. package/dist/phases/output-contracts.js +0 -1201
  530. package/dist/phases/pr-execution/context.d.ts +0 -32
  531. package/dist/phases/pr-execution/context.js +0 -246
  532. package/dist/phases/pr-execution/file-assigner.d.ts +0 -57
  533. package/dist/phases/pr-execution/file-assigner.js +0 -287
  534. package/dist/phases/pr-execution/index.d.ts +0 -22
  535. package/dist/phases/pr-execution/index.js +0 -401
  536. package/dist/phases/pr-execution/outcome.d.ts +0 -24
  537. package/dist/phases/pr-execution/outcome.js +0 -34
  538. package/dist/phases/pr-execution/pr-executor.d.ts +0 -42
  539. package/dist/phases/pr-execution/pr-executor.js +0 -78
  540. package/dist/phases/pr-execution/prompts.d.ts +0 -27
  541. package/dist/phases/pr-execution/prompts.js +0 -131
  542. package/dist/phases/pr-resolve/checklist-learner.d.ts +0 -28
  543. package/dist/phases/pr-resolve/checklist-learner.js +0 -153
  544. package/dist/phases/pr-resolve/github-reply.d.ts +0 -16
  545. package/dist/phases/pr-resolve/github-reply.js +0 -75
  546. package/dist/phases/pr-resolve/index.d.ts +0 -33
  547. package/dist/phases/pr-resolve/index.js +0 -272
  548. package/dist/phases/pr-resolve/prompts.d.ts +0 -17
  549. package/dist/phases/pr-resolve/prompts.js +0 -107
  550. package/dist/phases/pr-resolve/types.d.ts +0 -18
  551. package/dist/phases/pr-resolve/types.js +0 -14
  552. package/dist/phases/pr-resolve/workspace.d.ts +0 -45
  553. package/dist/phases/pr-resolve/workspace.js +0 -174
  554. package/dist/phases/pr-review/index.d.ts +0 -27
  555. package/dist/phases/pr-review/index.js +0 -209
  556. package/dist/phases/pr-review/prompts.d.ts +0 -5
  557. package/dist/phases/pr-review/prompts.js +0 -87
  558. package/dist/phases/pr-shared/agent-utils.d.ts +0 -47
  559. package/dist/phases/pr-shared/agent-utils.js +0 -112
  560. package/dist/phases/pr-shared/context.d.ts +0 -24
  561. package/dist/phases/pr-shared/context.js +0 -78
  562. package/dist/phases/pr-shared/status.d.ts +0 -18
  563. package/dist/phases/pr-shared/status.js +0 -37
  564. package/dist/phases/pr-splitting/context.d.ts +0 -28
  565. package/dist/phases/pr-splitting/context.js +0 -182
  566. package/dist/phases/pr-splitting/import-dep-validator.d.ts +0 -67
  567. package/dist/phases/pr-splitting/import-dep-validator.js +0 -255
  568. package/dist/phases/pr-splitting/index.d.ts +0 -36
  569. package/dist/phases/pr-splitting/index.js +0 -413
  570. package/dist/phases/pr-splitting/outcome.d.ts +0 -24
  571. package/dist/phases/pr-splitting/outcome.js +0 -114
  572. package/dist/phases/pr-splitting/prompts.d.ts +0 -43
  573. package/dist/phases/pr-splitting/prompts.js +0 -154
  574. package/dist/phases/product-techniques/index.d.ts +0 -52
  575. package/dist/phases/product-techniques/index.js +0 -268
  576. package/dist/phases/product-techniques/mcp-server.d.ts +0 -41
  577. package/dist/phases/product-techniques/mcp-server.js +0 -96
  578. package/dist/phases/product-techniques/prompts.d.ts +0 -19
  579. package/dist/phases/product-techniques/prompts.js +0 -66
  580. package/dist/phases/product-techniques/types.d.ts +0 -13
  581. package/dist/phases/product-techniques/types.js +0 -13
  582. package/dist/phases/product-test-cases/index.d.ts +0 -25
  583. package/dist/phases/product-test-cases/index.js +0 -174
  584. package/dist/phases/product-test-cases/prompts.d.ts +0 -24
  585. package/dist/phases/product-test-cases/prompts.js +0 -80
  586. package/dist/phases/product-test-cases/types.d.ts +0 -17
  587. package/dist/phases/product-test-cases/types.js +0 -27
  588. package/dist/phases/pull-request/creator.d.ts +0 -30
  589. package/dist/phases/pull-request/creator.js +0 -319
  590. package/dist/phases/pull-request/handler.d.ts +0 -15
  591. package/dist/phases/pull-request/handler.js +0 -92
  592. package/dist/phases/quality-benchmark/gate.d.ts +0 -50
  593. package/dist/phases/quality-benchmark/gate.js +0 -91
  594. package/dist/phases/quality-benchmark/index.d.ts +0 -65
  595. package/dist/phases/quality-benchmark/index.js +0 -208
  596. package/dist/phases/quality-benchmark/mcp-server.d.ts +0 -46
  597. package/dist/phases/quality-benchmark/mcp-server.js +0 -252
  598. package/dist/phases/quality-benchmark/parsers.d.ts +0 -45
  599. package/dist/phases/quality-benchmark/parsers.js +0 -1311
  600. package/dist/phases/quality-benchmark/prompts.d.ts +0 -31
  601. package/dist/phases/quality-benchmark/prompts.js +0 -154
  602. package/dist/phases/quality-benchmark/rubric.md +0 -1211
  603. package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
  604. package/dist/phases/quality-benchmark/tool-catalog.js +0 -693
  605. package/dist/phases/quality-benchmark/tool-runner.d.ts +0 -69
  606. package/dist/phases/quality-benchmark/tool-runner.js +0 -399
  607. package/dist/phases/quality-benchmark/types.d.ts +0 -319
  608. package/dist/phases/quality-benchmark/types.js +0 -23
  609. package/dist/phases/quality-benchmark/workspace.d.ts +0 -31
  610. package/dist/phases/quality-benchmark/workspace.js +0 -110
  611. package/dist/phases/recipes/index.d.ts +0 -63
  612. package/dist/phases/recipes/index.js +0 -358
  613. package/dist/phases/recipes/mcp-server.d.ts +0 -66
  614. package/dist/phases/recipes/mcp-server.js +0 -229
  615. package/dist/phases/recipes/prompts.d.ts +0 -35
  616. package/dist/phases/recipes/prompts.js +0 -105
  617. package/dist/phases/recipes/types.d.ts +0 -42
  618. package/dist/phases/recipes/types.js +0 -16
  619. package/dist/phases/release-sync/github.d.ts +0 -66
  620. package/dist/phases/release-sync/github.js +0 -140
  621. package/dist/phases/release-sync/index.d.ts +0 -24
  622. package/dist/phases/release-sync/index.js +0 -156
  623. package/dist/phases/release-sync/snapshot.d.ts +0 -27
  624. package/dist/phases/release-sync/snapshot.js +0 -158
  625. package/dist/phases/run-sheet/agent.d.ts +0 -49
  626. package/dist/phases/run-sheet/agent.js +0 -156
  627. package/dist/phases/run-sheet/index.d.ts +0 -57
  628. package/dist/phases/run-sheet/index.js +0 -392
  629. package/dist/phases/screen-flow/index.d.ts +0 -26
  630. package/dist/phases/screen-flow/index.js +0 -349
  631. package/dist/phases/screen-flow/mcp-server.d.ts +0 -201
  632. package/dist/phases/screen-flow/mcp-server.js +0 -272
  633. package/dist/phases/screen-flow/prompts.d.ts +0 -19
  634. package/dist/phases/screen-flow/prompts.js +0 -43
  635. package/dist/phases/screen-flow/theme.d.ts +0 -19
  636. package/dist/phases/screen-flow/theme.js +0 -193
  637. package/dist/phases/screen-flow/types.d.ts +0 -137
  638. package/dist/phases/screen-flow/types.js +0 -81
  639. package/dist/phases/sequence-diagram/index.d.ts +0 -30
  640. package/dist/phases/sequence-diagram/index.js +0 -290
  641. package/dist/phases/sequence-diagram/mcp-server.d.ts +0 -64
  642. package/dist/phases/sequence-diagram/mcp-server.js +0 -134
  643. package/dist/phases/sequence-diagram/prompts.d.ts +0 -14
  644. package/dist/phases/sequence-diagram/prompts.js +0 -36
  645. package/dist/phases/sequence-diagram/types.d.ts +0 -52
  646. package/dist/phases/sequence-diagram/types.js +0 -93
  647. package/dist/phases/smoke-test/agent.d.ts +0 -12
  648. package/dist/phases/smoke-test/agent.js +0 -93
  649. package/dist/phases/smoke-test/index.d.ts +0 -22
  650. package/dist/phases/smoke-test/index.js +0 -241
  651. package/dist/phases/smoke-test/prompts.d.ts +0 -15
  652. package/dist/phases/smoke-test/prompts.js +0 -35
  653. package/dist/phases/state-diagram/index.d.ts +0 -15
  654. package/dist/phases/state-diagram/index.js +0 -53
  655. package/dist/phases/sync-github-issues/index.d.ts +0 -41
  656. package/dist/phases/sync-github-issues/index.js +0 -187
  657. package/dist/phases/sync-github-issues/state.d.ts +0 -26
  658. package/dist/phases/sync-github-issues/state.js +0 -18
  659. package/dist/phases/sync-github-issues/types.d.ts +0 -35
  660. package/dist/phases/sync-github-issues/types.js +0 -6
  661. package/dist/phases/sync-github-pull-requests/index.d.ts +0 -23
  662. package/dist/phases/sync-github-pull-requests/index.js +0 -210
  663. package/dist/phases/sync-github-pull-requests/state.d.ts +0 -24
  664. package/dist/phases/sync-github-pull-requests/state.js +0 -16
  665. package/dist/phases/sync-github-pull-requests/types.d.ts +0 -22
  666. package/dist/phases/sync-github-pull-requests/types.js +0 -1
  667. package/dist/phases/sync-org-repos/index.d.ts +0 -28
  668. package/dist/phases/sync-org-repos/index.js +0 -133
  669. package/dist/phases/sync-sentry-issues/index.d.ts +0 -29
  670. package/dist/phases/sync-sentry-issues/index.js +0 -153
  671. package/dist/phases/sync-sentry-issues/sentry-client.d.ts +0 -66
  672. package/dist/phases/sync-sentry-issues/sentry-client.js +0 -221
  673. package/dist/phases/sync-sentry-issues/state.d.ts +0 -23
  674. package/dist/phases/sync-sentry-issues/state.js +0 -18
  675. package/dist/phases/sync-sentry-issues/types.d.ts +0 -46
  676. package/dist/phases/sync-sentry-issues/types.js +0 -6
  677. package/dist/phases/sync-shared/mcp.d.ts +0 -81
  678. package/dist/phases/sync-shared/mcp.js +0 -111
  679. package/dist/phases/task/agent.d.ts +0 -10
  680. package/dist/phases/task/agent.js +0 -83
  681. package/dist/phases/task/context.d.ts +0 -16
  682. package/dist/phases/task/context.js +0 -50
  683. package/dist/phases/task/index.d.ts +0 -17
  684. package/dist/phases/task/index.js +0 -54
  685. package/dist/phases/task/prompts.d.ts +0 -9
  686. package/dist/phases/task/prompts.js +0 -21
  687. package/dist/phases/technical-design/context.d.ts +0 -12
  688. package/dist/phases/technical-design/context.js +0 -39
  689. package/dist/phases/technical-design/index.d.ts +0 -21
  690. package/dist/phases/technical-design/index.js +0 -456
  691. package/dist/phases/technical-design/outcome.d.ts +0 -25
  692. package/dist/phases/technical-design/outcome.js +0 -41
  693. package/dist/phases/technical-design/prompts.d.ts +0 -8
  694. package/dist/phases/technical-design/prompts.js +0 -210
  695. package/dist/phases/technical-design-verification/agent.d.ts +0 -53
  696. package/dist/phases/technical-design-verification/agent.js +0 -186
  697. package/dist/phases/technical-design-verification/index.d.ts +0 -38
  698. package/dist/phases/technical-design-verification/index.js +0 -152
  699. package/dist/phases/technical-design-verification/prompts.d.ts +0 -12
  700. package/dist/phases/technical-design-verification/prompts.js +0 -143
  701. package/dist/phases/test-cases-analysis/agent.d.ts +0 -9
  702. package/dist/phases/test-cases-analysis/agent.js +0 -105
  703. package/dist/phases/test-cases-analysis/context.d.ts +0 -15
  704. package/dist/phases/test-cases-analysis/context.js +0 -86
  705. package/dist/phases/test-cases-analysis/formatters.d.ts +0 -6
  706. package/dist/phases/test-cases-analysis/formatters.js +0 -35
  707. package/dist/phases/test-cases-analysis/index.d.ts +0 -9
  708. package/dist/phases/test-cases-analysis/index.js +0 -175
  709. package/dist/phases/test-cases-analysis/outcome.d.ts +0 -27
  710. package/dist/phases/test-cases-analysis/outcome.js +0 -146
  711. package/dist/phases/test-cases-analysis/prompts.d.ts +0 -7
  712. package/dist/phases/test-cases-analysis/prompts.js +0 -171
  713. package/dist/phases/user-psychology/agent.d.ts +0 -16
  714. package/dist/phases/user-psychology/agent.js +0 -105
  715. package/dist/phases/user-psychology/context.d.ts +0 -10
  716. package/dist/phases/user-psychology/context.js +0 -65
  717. package/dist/phases/user-psychology/index.d.ts +0 -18
  718. package/dist/phases/user-psychology/index.js +0 -96
  719. package/dist/phases/user-psychology/prompts.d.ts +0 -2
  720. package/dist/phases/user-psychology/prompts.js +0 -41
  721. package/dist/phases/user-stories-analysis/agent.d.ts +0 -9
  722. package/dist/phases/user-stories-analysis/agent.js +0 -105
  723. package/dist/phases/user-stories-analysis/context.d.ts +0 -15
  724. package/dist/phases/user-stories-analysis/context.js +0 -86
  725. package/dist/phases/user-stories-analysis/formatters.d.ts +0 -6
  726. package/dist/phases/user-stories-analysis/formatters.js +0 -32
  727. package/dist/phases/user-stories-analysis/index.d.ts +0 -9
  728. package/dist/phases/user-stories-analysis/index.js +0 -175
  729. package/dist/phases/user-stories-analysis/outcome.d.ts +0 -27
  730. package/dist/phases/user-stories-analysis/outcome.js +0 -146
  731. package/dist/phases/user-stories-analysis/prompts.d.ts +0 -7
  732. package/dist/phases/user-stories-analysis/prompts.js +0 -194
  733. package/dist/services/audit-logs.d.ts +0 -73
  734. package/dist/services/audit-logs.js +0 -174
  735. package/dist/services/branches.d.ts +0 -103
  736. package/dist/services/branches.js +0 -391
  737. package/dist/services/checklist.d.ts +0 -100
  738. package/dist/services/checklist.js +0 -259
  739. package/dist/services/coaching/coaching-agent.d.ts +0 -39
  740. package/dist/services/coaching/coaching-agent.js +0 -308
  741. package/dist/services/coaching/coaching-loop.d.ts +0 -62
  742. package/dist/services/coaching/coaching-loop.js +0 -265
  743. package/dist/services/coaching/index.d.ts +0 -8
  744. package/dist/services/coaching/index.js +0 -8
  745. package/dist/services/coaching/phase-coaching.d.ts +0 -47
  746. package/dist/services/coaching/phase-coaching.js +0 -60
  747. package/dist/services/coaching/self-rating.d.ts +0 -26
  748. package/dist/services/coaching/self-rating.js +0 -153
  749. package/dist/services/feedbacks.d.ts +0 -57
  750. package/dist/services/feedbacks.js +0 -264
  751. package/dist/services/phase-hooks/bindings-fetcher.d.ts +0 -21
  752. package/dist/services/phase-hooks/bindings-fetcher.js +0 -53
  753. package/dist/services/phase-hooks/hook-executor.d.ts +0 -36
  754. package/dist/services/phase-hooks/hook-executor.js +0 -167
  755. package/dist/services/phase-hooks/hook-logging.d.ts +0 -14
  756. package/dist/services/phase-hooks/hook-logging.js +0 -41
  757. package/dist/services/phase-hooks/hook-runner.d.ts +0 -19
  758. package/dist/services/phase-hooks/hook-runner.js +0 -83
  759. package/dist/services/phase-hooks/index.d.ts +0 -10
  760. package/dist/services/phase-hooks/index.js +0 -9
  761. package/dist/services/phase-hooks/plugin-loader.d.ts +0 -31
  762. package/dist/services/phase-hooks/plugin-loader.js +0 -207
  763. package/dist/services/phase-hooks/types.d.ts +0 -69
  764. package/dist/services/phase-hooks/types.js +0 -8
  765. package/dist/services/phase-ratings.d.ts +0 -70
  766. package/dist/services/phase-ratings.js +0 -143
  767. package/dist/services/product-logs.d.ts +0 -31
  768. package/dist/services/product-logs.js +0 -94
  769. package/dist/services/pull-requests.d.ts +0 -57
  770. package/dist/services/pull-requests.js +0 -186
  771. package/dist/services/quality-reports.d.ts +0 -45
  772. package/dist/services/quality-reports.js +0 -93
  773. package/dist/services/repo-config.d.ts +0 -17
  774. package/dist/services/repo-config.js +0 -50
  775. package/dist/services/skill-resolver.d.ts +0 -46
  776. package/dist/services/skill-resolver.js +0 -123
  777. package/dist/services/video/device-frames.d.ts +0 -34
  778. package/dist/services/video/device-frames.js +0 -513
  779. package/dist/services/video/index.d.ts +0 -66
  780. package/dist/services/video/index.js +0 -238
  781. package/dist/services/video/retry.d.ts +0 -20
  782. package/dist/services/video/retry.js +0 -76
  783. package/dist/services/video/screenshot-generator.d.ts +0 -69
  784. package/dist/services/video/screenshot-generator.js +0 -259
  785. package/dist/services/video/tts-generator.d.ts +0 -40
  786. package/dist/services/video/tts-generator.js +0 -121
  787. package/dist/services/video/video-assembler.d.ts +0 -45
  788. package/dist/services/video/video-assembler.js +0 -351
  789. package/dist/services/video/video-uploader.d.ts +0 -28
  790. package/dist/services/video/video-uploader.js +0 -108
  791. package/dist/skills/phase/adr-generation/SKILL.md +0 -51
  792. package/dist/skills/phase/analyze-logs/SKILL.md +0 -24
  793. package/dist/skills/phase/app-store-generation/SKILL.md +0 -60
  794. package/dist/skills/phase/architecture-diagram/SKILL.md +0 -41
  795. package/dist/skills/phase/autonomous/SKILL.md +0 -52
  796. package/dist/skills/phase/branch-planning/SKILL.md +0 -55
  797. package/dist/skills/phase/bug-fixing/SKILL.md +0 -47
  798. package/dist/skills/phase/class-diagram/SKILL.md +0 -44
  799. package/dist/skills/phase/code-implementation/SKILL.md +0 -68
  800. package/dist/skills/phase/code-implementation-verification/SKILL.md +0 -76
  801. package/dist/skills/phase/code-refine/SKILL.md +0 -62
  802. package/dist/skills/phase/code-testing/SKILL.md +0 -78
  803. package/dist/skills/phase/data-flow/SKILL.md +0 -82
  804. package/dist/skills/phase/er-diagram/SKILL.md +0 -71
  805. package/dist/skills/phase/flowchart/SKILL.md +0 -38
  806. package/dist/skills/phase/functional-testing/SKILL.md +0 -62
  807. package/dist/skills/phase/growth-analysis/SKILL.md +0 -97
  808. package/dist/skills/phase/incremental-sync/SKILL.md +0 -59
  809. package/dist/skills/phase/intelligence-analysis/SKILL.md +0 -52
  810. package/dist/skills/phase/issue-analysis/SKILL.md +0 -73
  811. package/dist/skills/phase/issue-analysis-verification/SKILL.md +0 -61
  812. package/dist/skills/phase/pr-execution/SKILL.md +0 -69
  813. package/dist/skills/phase/pr-splitting/SKILL.md +0 -78
  814. package/dist/skills/phase/screen-flow/SKILL.md +0 -78
  815. package/dist/skills/phase/sequence-diagram/SKILL.md +0 -67
  816. package/dist/skills/phase/smoke-test/SKILL.md +0 -80
  817. package/dist/skills/phase/state-diagram/SKILL.md +0 -38
  818. package/dist/skills/phase/task/SKILL.md +0 -19
  819. package/dist/skills/phase/technical-design/SKILL.md +0 -75
  820. package/dist/skills/phase/technical-design-verification/SKILL.md +0 -43
  821. package/dist/skills/phase/test-cases-analysis/SKILL.md +0 -88
  822. package/dist/skills/phase/user-psychology/SKILL.md +0 -135
  823. package/dist/skills/phase/user-stories-analysis/SKILL.md +0 -118
  824. package/dist/supabase/client.d.ts +0 -34
  825. package/dist/supabase/client.js +0 -123
  826. package/dist/system/session-manager.d.ts +0 -67
  827. package/dist/system/session-manager.js +0 -300
  828. package/dist/system/sleep-notification.d.ts +0 -15
  829. package/dist/system/sleep-notification.js +0 -108
  830. package/dist/system/sleep-prevention.d.ts +0 -20
  831. package/dist/system/sleep-prevention.js +0 -112
  832. package/dist/tools/bootstrap.d.ts +0 -45
  833. package/dist/tools/bootstrap.js +0 -50
  834. package/dist/types/external-sources.d.ts +0 -22
  835. package/dist/types/external-sources.js +0 -23
  836. package/dist/types/index.d.ts +0 -206
  837. package/dist/types/index.js +0 -1
  838. package/dist/types/issues.d.ts +0 -37
  839. package/dist/types/issues.js +0 -1
  840. package/dist/types/llm-responses.d.ts +0 -114
  841. package/dist/types/llm-responses.js +0 -9
  842. package/dist/types/pipeline.d.ts +0 -28
  843. package/dist/types/pipeline.js +0 -4
  844. package/dist/updater/auto-updater.d.ts +0 -39
  845. package/dist/updater/auto-updater.js +0 -134
  846. package/dist/utils/conflict-resolver.d.ts +0 -49
  847. package/dist/utils/conflict-resolver.js +0 -201
  848. package/dist/utils/formatters.d.ts +0 -42
  849. package/dist/utils/formatters.js +0 -166
  850. package/dist/utils/git-branch-manager-async.d.ts +0 -127
  851. package/dist/utils/git-branch-manager-async.js +0 -425
  852. package/dist/utils/git-branch-manager.d.ts +0 -160
  853. package/dist/utils/git-branch-manager.js +0 -613
  854. package/dist/utils/git-push.d.ts +0 -43
  855. package/dist/utils/git-push.js +0 -136
  856. package/dist/utils/github-repo-info.d.ts +0 -26
  857. package/dist/utils/github-repo-info.js +0 -45
  858. package/dist/utils/image-downloader.d.ts +0 -32
  859. package/dist/utils/image-downloader.js +0 -152
  860. package/dist/utils/issue-phase-cli.d.ts +0 -26
  861. package/dist/utils/issue-phase-cli.js +0 -44
  862. package/dist/utils/json-extract.d.ts +0 -6
  863. package/dist/utils/json-extract.js +0 -44
  864. package/dist/utils/json-extractor.d.ts +0 -27
  865. package/dist/utils/json-extractor.js +0 -102
  866. package/dist/utils/logger.d.ts +0 -35
  867. package/dist/utils/logger.js +0 -167
  868. package/dist/utils/pipeline-logger.d.ts +0 -8
  869. package/dist/utils/pipeline-logger.js +0 -38
  870. package/dist/utils/validation.d.ts +0 -68
  871. package/dist/utils/validation.js +0 -229
  872. package/dist/utils/workflow-utils.d.ts +0 -22
  873. package/dist/utils/workflow-utils.js +0 -48
  874. package/dist/workspace/session-workspace.d.ts +0 -43
  875. package/dist/workspace/session-workspace.js +0 -90
  876. package/dist/workspace/workspace-manager.d.ts +0 -105
  877. package/dist/workspace/workspace-manager.js +0 -280
@@ -1,133 +0,0 @@
1
- /**
2
- * Phase: sync-org-repos
3
- *
4
- * Fetches all repositories from a GitHub organization via the Edsger GitHub
5
- * App (server-side, through the MCP `github/org_repos` endpoint), then upserts
6
- * a row into the team-scoped `repositories` table for each repo. Products are
7
- * NOT created here — a product is a higher-level grouping that a user links one
8
- * or more repositories to afterwards.
9
- *
10
- * Repos are listed with a short-lived GitHub App installation token minted on
11
- * the server, so this no longer depends on the user's machine having the `gh`
12
- * CLI installed, authenticated, and on PATH. Forks and archived repos are
13
- * filtered out server-side.
14
- */
15
- import { callMcpEndpoint } from '../../api/mcp-client.js';
16
- import { getSupabase, hasSupabaseSession } from '../../supabase/client.js';
17
- import { logDebug, logError, logInfo, logWarning } from '../../utils/logger.js';
18
- const ORG_NAME_RE = /^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/;
19
- async function fetchOrgRepos(teamId, orgLogin, verbose) {
20
- logInfo(`Fetching repos for org "${orgLogin}" via Edsger GitHub App...`);
21
- const result = (await callMcpEndpoint('github/org_repos', {
22
- team_id: teamId,
23
- org: orgLogin,
24
- }));
25
- if (!result.configured) {
26
- throw new Error(result.message ||
27
- `The Edsger GitHub App is not configured for "${orgLogin}".`);
28
- }
29
- const repos = result.repos ?? [];
30
- if (verbose) {
31
- logDebug(`Fetched ${repos.length} source repos from ${orgLogin}`);
32
- }
33
- return repos;
34
- }
35
- export async function syncOrgRepos(opts) {
36
- const { teamId, orgLogin, userId, verbose } = opts;
37
- if (!ORG_NAME_RE.test(orgLogin) || orgLogin.length > 39) {
38
- return {
39
- status: 'error',
40
- message: `Invalid GitHub organization name: "${orgLogin}"`,
41
- total: 0,
42
- created: 0,
43
- skipped: 0,
44
- };
45
- }
46
- if (!hasSupabaseSession()) {
47
- return {
48
- status: 'error',
49
- message: 'Supabase session unavailable. Sign in to the Edsger desktop app.',
50
- total: 0,
51
- created: 0,
52
- skipped: 0,
53
- };
54
- }
55
- const supabase = getSupabase();
56
- let orgRepos;
57
- try {
58
- orgRepos = await fetchOrgRepos(teamId, orgLogin, verbose);
59
- }
60
- catch (err) {
61
- const msg = err instanceof Error ? err.message : String(err);
62
- logError(`Failed to fetch repos: ${msg}`);
63
- return {
64
- status: 'error',
65
- message: `Failed to fetch repos from GitHub: ${msg}`,
66
- total: 0,
67
- created: 0,
68
- skipped: 0,
69
- };
70
- }
71
- if (orgRepos.length === 0) {
72
- logWarning(`No repos found in org "${orgLogin}"`);
73
- return {
74
- status: 'success',
75
- message: `No repositories found in ${orgLogin}`,
76
- total: 0,
77
- created: 0,
78
- skipped: 0,
79
- };
80
- }
81
- logInfo(`Found ${orgRepos.length} repos in ${orgLogin}`);
82
- const repoFullNames = orgRepos.map((r) => r.full_name);
83
- const { data: existing } = await supabase
84
- .from('repositories')
85
- .select('full_name')
86
- .eq('team_id', teamId)
87
- .in('full_name', repoFullNames);
88
- const existingRepos = new Set((existing || []).map((r) => r.full_name));
89
- const toCreate = orgRepos.filter((r) => !existingRepos.has(r.full_name));
90
- // Refresh metadata + last_synced_at on every synced repo (new and existing)
91
- // via upsert keyed on (team_id, full_name).
92
- const now = new Date().toISOString();
93
- const rows = orgRepos.map((repo) => ({
94
- team_id: teamId,
95
- created_by: userId,
96
- github_repo_id: repo.id,
97
- full_name: repo.full_name,
98
- owner: repo.full_name.split('/')[0] ?? null,
99
- name: repo.name,
100
- url: repo.html_url,
101
- description: repo.description,
102
- default_branch: repo.default_branch,
103
- private: repo.private,
104
- language: repo.language,
105
- last_synced_at: now,
106
- }));
107
- if (verbose) {
108
- for (const r of toCreate) {
109
- logDebug(` Will create repository: ${r.full_name}`);
110
- }
111
- }
112
- const { error: upsertError } = await supabase
113
- .from('repositories')
114
- .upsert(rows, { onConflict: 'team_id,full_name' });
115
- if (upsertError) {
116
- logError(`Failed to upsert repositories: ${upsertError.message}`);
117
- return {
118
- status: 'error',
119
- message: `Failed to sync repositories: ${upsertError.message}`,
120
- total: orgRepos.length,
121
- created: 0,
122
- skipped: existingRepos.size,
123
- };
124
- }
125
- return {
126
- status: 'success',
127
- message: `Synced ${orgRepos.length} repos: ${toCreate.length} new, ${existingRepos.size} updated`,
128
- total: orgRepos.length,
129
- created: toCreate.length,
130
- skipped: existingRepos.size,
131
- repos: toCreate.map((r) => r.full_name),
132
- };
133
- }
@@ -1,29 +0,0 @@
1
- /**
2
- * sync-sentry-issues phase: pull every issue from a Sentry project and
3
- * mirror them into the product's local issues table. Uses the same
4
- * source_* schema and batch RPC contract as the GitHub variant — only
5
- * the API client and the source-state vocabulary
6
- * (unresolved/resolved/ignored vs open/closed) differ.
7
- *
8
- * Production hardening matches sync-github-issues:
9
- * - Sentry client retries 429 / 5xx / network errors with exponential
10
- * backoff (honouring Retry-After).
11
- * - Upserts are batched (MAX_BATCH_SIZE per round-trip).
12
- * - Deletion sweep is keyed on a sync-start timestamp cutoff.
13
- * - Skipped if any batch fails, to avoid wrongly marking live issues
14
- * as deleted from a partial fetch.
15
- */
16
- import { type SentryClientConfig } from './sentry-client.js';
17
- import { type SentryIssueLite, type SentrySyncResult } from './types.js';
18
- export interface SyncSentryIssuesOptions extends SentryClientConfig {
19
- productId: string;
20
- verbose?: boolean;
21
- }
22
- /**
23
- * Build the markdown description we drop into `issues.description` for a
24
- * fresh insert. Pulls only fields that are reliably present on the list
25
- * endpoint — the full event payload would require an extra fetch per
26
- * issue, which isn't worth it for the sync-list view.
27
- */
28
- export declare function formatSentryDescription(item: SentryIssueLite): string;
29
- export declare function syncSentryIssues(options: SyncSentryIssuesOptions): Promise<SentrySyncResult>;
@@ -1,153 +0,0 @@
1
- /**
2
- * sync-sentry-issues phase: pull every issue from a Sentry project and
3
- * mirror them into the product's local issues table. Uses the same
4
- * source_* schema and batch RPC contract as the GitHub variant — only
5
- * the API client and the source-state vocabulary
6
- * (unresolved/resolved/ignored vs open/closed) differ.
7
- *
8
- * Production hardening matches sync-github-issues:
9
- * - Sentry client retries 429 / 5xx / network errors with exponential
10
- * backoff (honouring Retry-After).
11
- * - Upserts are batched (MAX_BATCH_SIZE per round-trip).
12
- * - Deletion sweep is keyed on a sync-start timestamp cutoff.
13
- * - Skipped if any batch fails, to avoid wrongly marking live issues
14
- * as deleted from a partial fetch.
15
- */
16
- import { logError, logInfo, logSuccess, logWarning } from '../../utils/logger.js';
17
- import { markExternalIssuesDeletedSince, upsertInBatches, } from '../sync-shared/mcp.js';
18
- import { SentryClient } from './sentry-client.js';
19
- import { acquireSyncSentryIssuesLock, updateSyncSentryIssuesState, } from './state.js';
20
- function initialStatusFor(sentryStatus) {
21
- return sentryStatus === 'unresolved' ? 'backlog' : 'archived';
22
- }
23
- /**
24
- * Build the markdown description we drop into `issues.description` for a
25
- * fresh insert. Pulls only fields that are reliably present on the list
26
- * endpoint — the full event payload would require an extra fetch per
27
- * issue, which isn't worth it for the sync-list view.
28
- */
29
- export function formatSentryDescription(item) {
30
- const lines = [];
31
- if (item.shortId) {
32
- lines.push(`**Sentry ID:** ${item.shortId}`);
33
- }
34
- if (item.level) {
35
- lines.push(`**Level:** ${item.level}`);
36
- }
37
- if (item.platform) {
38
- lines.push(`**Platform:** ${item.platform}`);
39
- }
40
- if (item.culprit) {
41
- lines.push(`**Culprit:** ${item.culprit}`);
42
- }
43
- if (item.count !== undefined && item.count !== null) {
44
- const userPart = item.userCount !== undefined && item.userCount !== null
45
- ? ` across ${item.userCount} ${item.userCount === 1 ? 'user' : 'users'}`
46
- : '';
47
- lines.push(`**Events:** ${item.count}${userPart}`);
48
- }
49
- if (item.firstSeen) {
50
- lines.push(`**First seen:** ${item.firstSeen}`);
51
- }
52
- if (item.lastSeen) {
53
- lines.push(`**Last seen:** ${item.lastSeen}`);
54
- }
55
- lines.push('');
56
- lines.push(`[View in Sentry](${item.permalink})`);
57
- return lines.join('\n');
58
- }
59
- function toUpsertInput(item) {
60
- return {
61
- sourceId: item.id,
62
- name: item.shortId ? `[${item.shortId}] ${item.title}` : item.title,
63
- description: formatSentryDescription(item),
64
- sourceUrl: item.permalink,
65
- sourceState: item.status,
66
- sourceUpdatedAt: item.lastSeen,
67
- sourceData: {
68
- id: item.id,
69
- shortId: item.shortId ?? null,
70
- status: item.status,
71
- level: item.level ?? null,
72
- platform: item.platform ?? null,
73
- count: item.count ?? null,
74
- userCount: item.userCount ?? null,
75
- isUnhandled: item.isUnhandled ?? null,
76
- firstSeen: item.firstSeen ?? null,
77
- lastSeen: item.lastSeen,
78
- permalink: item.permalink,
79
- },
80
- initialStatus: initialStatusFor(item.status),
81
- };
82
- }
83
- export async function syncSentryIssues(options) {
84
- const { productId, authToken, org, project, baseUrl, verbose } = options;
85
- const lock = acquireSyncSentryIssuesLock(productId);
86
- if (!lock) {
87
- return {
88
- status: 'error',
89
- message: 'Another Sentry sync is already running for this product',
90
- };
91
- }
92
- const syncStartedAt = new Date().toISOString();
93
- try {
94
- updateSyncSentryIssuesState(productId, {
95
- lastAttemptedAt: syncStartedAt,
96
- });
97
- const sourceLabel = `${org}/${project}`;
98
- logInfo(`Syncing Sentry issues from ${sourceLabel} → product ${productId}`);
99
- const client = new SentryClient({ authToken, org, project, baseUrl });
100
- const remoteIssues = await client.listAllIssues();
101
- logInfo(`Fetched ${remoteIssues.length} issues from Sentry`);
102
- if (verbose) {
103
- logInfo(`Will upsert ${remoteIssues.length} issues in batches`);
104
- }
105
- const inputs = remoteIssues.map(toUpsertInput);
106
- const { result, failedBatches } = await upsertInBatches(productId, 'sentry', inputs, (error, batchIndex) => {
107
- logError(`Batch ${batchIndex} failed: ${error.message}`);
108
- });
109
- let deletedCount = 0;
110
- if (failedBatches === 0) {
111
- deletedCount = await markExternalIssuesDeletedSince(productId, 'sentry', syncStartedAt);
112
- }
113
- else {
114
- logWarning(`Skipping deletion sweep: ${failedBatches} batch(es) failed; would risk wrongly flagging live issues as deleted`);
115
- }
116
- updateSyncSentryIssuesState(productId, {
117
- lastSyncedAt: new Date().toISOString(),
118
- lastSource: sourceLabel,
119
- lastError: failedBatches > 0
120
- ? `${failedBatches} batch(es) failed during sync`
121
- : undefined,
122
- });
123
- const summary = `created=${result.created} updated=${result.updated} refreshed=${result.refreshed} deleted=${deletedCount}${failedBatches > 0 ? ` (${failedBatches} batch(es) failed)` : ''}`;
124
- if (failedBatches === 0) {
125
- logSuccess(`Sentry sync complete: ${summary}`);
126
- }
127
- else {
128
- logWarning(`Sentry sync completed with errors: ${summary}`);
129
- }
130
- return {
131
- status: failedBatches === 0 ? 'success' : 'error',
132
- message: summary,
133
- source: sourceLabel,
134
- fetchedCount: remoteIssues.length,
135
- createdCount: result.created,
136
- updatedCount: result.updated,
137
- refreshedCount: result.refreshed,
138
- deletedCount,
139
- };
140
- }
141
- catch (error) {
142
- const errorMessage = error instanceof Error ? error.message : String(error);
143
- logError(`Sentry sync failed: ${errorMessage}`);
144
- updateSyncSentryIssuesState(productId, { lastError: errorMessage });
145
- return {
146
- status: 'error',
147
- message: `Sentry sync failed: ${errorMessage}`,
148
- };
149
- }
150
- finally {
151
- lock.release();
152
- }
153
- }
@@ -1,66 +0,0 @@
1
- /**
2
- * Tiny Sentry REST client: just enough to list issues for a project, with
3
- * cursor-based pagination via the Link header. Implemented with `fetch`
4
- * rather than pulling in an SDK so the dep footprint stays small.
5
- *
6
- * Production hardening:
7
- * - per-request timeout via AbortController
8
- * - retry with exponential backoff for 429 / 5xx, honouring Retry-After
9
- * - retry for transient network errors (ECONNRESET, ETIMEDOUT, ...)
10
- *
11
- * Sentry's default `query` filter is `is:unresolved`, which would silently
12
- * hide resolved/ignored issues. We pass `query=` (empty string) to bypass
13
- * that filter and return everything.
14
- */
15
- import { type SentryIssueLite } from './types.js';
16
- export interface SentryClientConfig {
17
- authToken: string;
18
- org: string;
19
- project: string;
20
- /** Defaults to https://sentry.io/api/0. Override for self-hosted Sentry. */
21
- baseUrl?: string;
22
- /** Per-request timeout in ms. Defaults to 30s. */
23
- timeoutMs?: number;
24
- /** Number of retry attempts on retryable failures. Defaults to 3. */
25
- retries?: number;
26
- /** Base delay (ms) for exponential backoff. Defaults to 500. Tests pass 1. */
27
- baseDelayMs?: number;
28
- }
29
- export declare class SentryClient {
30
- private readonly authToken;
31
- private readonly org;
32
- private readonly project;
33
- private readonly baseUrl;
34
- private readonly timeoutMs;
35
- private readonly retries;
36
- private readonly baseDelayMs;
37
- constructor(config: SentryClientConfig);
38
- listAllIssues(): Promise<SentryIssueLite[]>;
39
- /**
40
- * Single-request retry loop. Retries on:
41
- * - network error / abort
42
- * - HTTP 429 (rate limited; honours Retry-After header)
43
- * - HTTP 5xx (server error)
44
- *
45
- * Does NOT retry on 4xx other than 429 — those are deterministic
46
- * (auth, permission, not found) and won't get better with another try.
47
- */
48
- private requestWithRetry;
49
- }
50
- /**
51
- * Accept either a Sentry host root (`https://sentry.io/`,
52
- * `https://sentry.internal.acme.com/`) or an explicit API root
53
- * (`https://sentry.io/api/0`) and return the latter.
54
- *
55
- * Matches the official `sentry-cli` convention where users set
56
- * `SENTRY_URL` to the host and the tool appends `/api/0` itself.
57
- */
58
- export declare function normaliseBaseUrl(input: string): string;
59
- /**
60
- * Parse Sentry's Link header. The next-page entry looks like:
61
- * <https://...>; rel="next"; results="true"; cursor="100:1:0"
62
- * We return the cursor string only when `results="true"` — Sentry returns
63
- * a "next" entry even at the end of the list with `results="false"`, and
64
- * pagination would loop forever if we trusted that.
65
- */
66
- export declare function parseNextCursor(linkHeader: string | null): string | null;
@@ -1,221 +0,0 @@
1
- /**
2
- * Tiny Sentry REST client: just enough to list issues for a project, with
3
- * cursor-based pagination via the Link header. Implemented with `fetch`
4
- * rather than pulling in an SDK so the dep footprint stays small.
5
- *
6
- * Production hardening:
7
- * - per-request timeout via AbortController
8
- * - retry with exponential backoff for 429 / 5xx, honouring Retry-After
9
- * - retry for transient network errors (ECONNRESET, ETIMEDOUT, ...)
10
- *
11
- * Sentry's default `query` filter is `is:unresolved`, which would silently
12
- * hide resolved/ignored issues. We pass `query=` (empty string) to bypass
13
- * that filter and return everything.
14
- */
15
- const PER_PAGE = 100;
16
- const DEFAULT_BASE_URL = 'https://sentry.io/api/0';
17
- const DEFAULT_TIMEOUT_MS = 30_000;
18
- const DEFAULT_RETRIES = 3;
19
- const DEFAULT_BASE_DELAY_MS = 500;
20
- const MAX_BACKOFF_MS = 30_000;
21
- export class SentryClient {
22
- authToken;
23
- org;
24
- project;
25
- baseUrl;
26
- timeoutMs;
27
- retries;
28
- baseDelayMs;
29
- constructor(config) {
30
- this.authToken = config.authToken;
31
- this.org = config.org;
32
- this.project = config.project;
33
- this.baseUrl = normaliseBaseUrl(config.baseUrl ?? DEFAULT_BASE_URL);
34
- this.timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
35
- this.retries = config.retries ?? DEFAULT_RETRIES;
36
- this.baseDelayMs = config.baseDelayMs ?? DEFAULT_BASE_DELAY_MS;
37
- }
38
- async listAllIssues() {
39
- const all = [];
40
- let cursor = null;
41
- for (;;) {
42
- const url = new URL(`${this.baseUrl}/projects/${encodeURIComponent(this.org)}/${encodeURIComponent(this.project)}/issues/`);
43
- url.searchParams.set('limit', String(PER_PAGE));
44
- url.searchParams.set('query', '');
45
- if (cursor) {
46
- url.searchParams.set('cursor', cursor);
47
- }
48
- const res = await this.requestWithRetry(url.toString());
49
- if (!res.ok) {
50
- const body = await safeReadBody(res);
51
- throw new Error(`Sentry API ${res.status} ${res.statusText}: ${body || '(no body)'}`);
52
- }
53
- const page = (await res.json());
54
- all.push(...page);
55
- const next = parseNextCursor(res.headers.get('Link'));
56
- if (!next || page.length === 0) {
57
- break;
58
- }
59
- cursor = next;
60
- }
61
- return all;
62
- }
63
- /**
64
- * Single-request retry loop. Retries on:
65
- * - network error / abort
66
- * - HTTP 429 (rate limited; honours Retry-After header)
67
- * - HTTP 5xx (server error)
68
- *
69
- * Does NOT retry on 4xx other than 429 — those are deterministic
70
- * (auth, permission, not found) and won't get better with another try.
71
- */
72
- async requestWithRetry(url) {
73
- let lastError;
74
- for (let attempt = 0; attempt <= this.retries; attempt++) {
75
- const controller = new AbortController();
76
- const timer = setTimeout(() => controller.abort(), this.timeoutMs);
77
- try {
78
- const res = await fetch(url, {
79
- headers: {
80
- Authorization: `Bearer ${this.authToken}`,
81
- Accept: 'application/json',
82
- },
83
- signal: controller.signal,
84
- });
85
- if (res.status === 429 ||
86
- (res.status >= 500 && res.status < 600)) {
87
- if (attempt < this.retries) {
88
- const delay = computeRetryDelay(res.headers.get('Retry-After'), attempt, this.baseDelayMs);
89
- // Drain the body so the connection can be reused.
90
- await safeReadBody(res);
91
- await sleep(delay);
92
- continue;
93
- }
94
- }
95
- return res;
96
- }
97
- catch (error) {
98
- lastError = error;
99
- if (attempt < this.retries && isRetryableNetworkError(error)) {
100
- await sleep(computeBackoffDelay(attempt, this.baseDelayMs));
101
- continue;
102
- }
103
- throw error;
104
- }
105
- finally {
106
- clearTimeout(timer);
107
- }
108
- }
109
- // If we exit the loop without returning, every attempt was a retryable
110
- // failure that exhausted the retry budget. Throw the last error so the
111
- // caller sees something actionable.
112
- throw lastError instanceof Error
113
- ? lastError
114
- : new Error(`Sentry request failed after ${this.retries + 1} attempts`);
115
- }
116
- }
117
- /**
118
- * Accept either a Sentry host root (`https://sentry.io/`,
119
- * `https://sentry.internal.acme.com/`) or an explicit API root
120
- * (`https://sentry.io/api/0`) and return the latter.
121
- *
122
- * Matches the official `sentry-cli` convention where users set
123
- * `SENTRY_URL` to the host and the tool appends `/api/0` itself.
124
- */
125
- export function normaliseBaseUrl(input) {
126
- let url = input.trim().replace(/\/+$/, '');
127
- // If the path already ends in /api/N for any version digit, leave it.
128
- if (/\/api\/\d+$/.test(url)) {
129
- return url;
130
- }
131
- // No /api/N segment present — append /api/0.
132
- url = `${url}/api/0`;
133
- return url;
134
- }
135
- async function safeReadBody(res) {
136
- try {
137
- return (await res.text()).slice(0, 500);
138
- }
139
- catch {
140
- return '';
141
- }
142
- }
143
- function sleep(ms) {
144
- return new Promise((resolve) => {
145
- setTimeout(resolve, ms);
146
- });
147
- }
148
- /**
149
- * Compute backoff for HTTP-level retries. Honours `Retry-After` if the
150
- * server set one (capped at MAX_BACKOFF_MS so a misconfigured server
151
- * can't pin us for an hour), otherwise exponential.
152
- */
153
- function computeRetryDelay(retryAfterHeader, attempt, baseDelayMs) {
154
- if (retryAfterHeader) {
155
- // Retry-After is either a delta-seconds integer or an HTTP-date.
156
- const asNumber = Number(retryAfterHeader);
157
- if (Number.isFinite(asNumber) && asNumber >= 0) {
158
- return Math.min(asNumber * 1000, MAX_BACKOFF_MS);
159
- }
160
- const asDate = Date.parse(retryAfterHeader);
161
- if (!Number.isNaN(asDate)) {
162
- return Math.min(Math.max(asDate - Date.now(), 0), MAX_BACKOFF_MS);
163
- }
164
- }
165
- return computeBackoffDelay(attempt, baseDelayMs);
166
- }
167
- function computeBackoffDelay(attempt, baseDelayMs) {
168
- // Exponential with jitter: base * 2^attempt + random(0..base/2)
169
- const exp = baseDelayMs * 2 ** attempt;
170
- const jitter = Math.random() * (baseDelayMs / 2);
171
- return Math.min(exp + jitter, MAX_BACKOFF_MS);
172
- }
173
- /**
174
- * Network errors that are worth retrying. Excludes user-controlled
175
- * AbortErrors that aren't from our timer (so a caller can cancel cleanly).
176
- */
177
- function isRetryableNetworkError(error) {
178
- if (!(error instanceof Error)) {
179
- return false;
180
- }
181
- const { code } = error;
182
- if (code === 'ECONNRESET' ||
183
- code === 'ECONNREFUSED' ||
184
- code === 'ETIMEDOUT' ||
185
- code === 'EAI_AGAIN' ||
186
- code === 'UND_ERR_SOCKET' ||
187
- code === 'UND_ERR_CONNECT_TIMEOUT') {
188
- return true;
189
- }
190
- // AbortError from our own timeout is retryable; from a caller signal,
191
- // we'd never get here because the caller would have aborted the await.
192
- if (error.name === 'AbortError') {
193
- return true;
194
- }
195
- return false;
196
- }
197
- /**
198
- * Parse Sentry's Link header. The next-page entry looks like:
199
- * <https://...>; rel="next"; results="true"; cursor="100:1:0"
200
- * We return the cursor string only when `results="true"` — Sentry returns
201
- * a "next" entry even at the end of the list with `results="false"`, and
202
- * pagination would loop forever if we trusted that.
203
- */
204
- export function parseNextCursor(linkHeader) {
205
- if (!linkHeader) {
206
- return null;
207
- }
208
- for (const part of linkHeader.split(',')) {
209
- const trimmed = part.trim();
210
- const isNext = /\brel="next"/.test(trimmed);
211
- const hasResults = /\bresults="true"/.test(trimmed);
212
- if (!isNext || !hasResults) {
213
- continue;
214
- }
215
- const cursorMatch = /\bcursor="([^"]+)"/.exec(trimmed);
216
- if (cursorMatch) {
217
- return cursorMatch[1] ?? null;
218
- }
219
- }
220
- return null;
221
- }
@@ -1,23 +0,0 @@
1
- /**
2
- * Per-product sync state for sync-sentry-issues. Stored at
3
- * `~/.edsger/sync-sentry-issues-state/<productId>.json`.
4
- *
5
- * We keep the lock + last-synced-at because Sentry's API doesn't surface
6
- * deletions (issues that were marked deleted on Sentry's side just stop
7
- * appearing). Like the GitHub variant we re-pull the full list on each
8
- * run; the cursor field is reserved for a future incremental optimisation
9
- * via `lastSeen` filter.
10
- */
11
- import { type LockHandle } from '../find-shared/scan-state.js';
12
- export type { LockHandle };
13
- export interface SyncSentryIssuesState {
14
- lastSyncedAt?: string;
15
- lastAttemptedAt?: string;
16
- lastError?: string;
17
- /** "<org>/<project>" we last synced from. */
18
- lastSource?: string;
19
- }
20
- export declare const loadSyncSentryIssuesState: (productId: string) => SyncSentryIssuesState;
21
- export declare const saveSyncSentryIssuesState: (productId: string, state: SyncSentryIssuesState) => void;
22
- export declare const updateSyncSentryIssuesState: (productId: string, patch: Partial<SyncSentryIssuesState>) => SyncSentryIssuesState;
23
- export declare const acquireSyncSentryIssuesLock: (productId: string, staleAfterMs?: number) => LockHandle | null;
@@ -1,18 +0,0 @@
1
- /**
2
- * Per-product sync state for sync-sentry-issues. Stored at
3
- * `~/.edsger/sync-sentry-issues-state/<productId>.json`.
4
- *
5
- * We keep the lock + last-synced-at because Sentry's API doesn't surface
6
- * deletions (issues that were marked deleted on Sentry's side just stop
7
- * appearing). Like the GitHub variant we re-pull the full list on each
8
- * run; the cursor field is reserved for a future incremental optimisation
9
- * via `lastSeen` filter.
10
- */
11
- import { createScanStateModule, } from '../find-shared/scan-state.js';
12
- const m = createScanStateModule({
13
- dirName: 'sync-sentry-issues-state',
14
- });
15
- export const loadSyncSentryIssuesState = m.load;
16
- export const saveSyncSentryIssuesState = m.save;
17
- export const updateSyncSentryIssuesState = m.update;
18
- export const acquireSyncSentryIssuesLock = m.acquireLock;