@diff-review-system/drs 4.0.0-rc.4 → 4.1.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 (419) hide show
  1. package/.pi/agents/describe/pr-describer.md +14 -0
  2. package/.pi/agents/review/unified-reviewer.md +33 -7
  3. package/.pi/agents/task/agents-md-updater.md +3 -1
  4. package/.pi/agents/task/review-assistant.md +22 -0
  5. package/.pi/agents/task/review-issue-fixer.md +18 -1
  6. package/.pi/agents/visual/pr-explainer.md +205 -0
  7. package/.pi/workflows/github-pr-describe.yaml +10 -7
  8. package/.pi/workflows/github-pr-fix-review-issues-stacked.yaml +154 -0
  9. package/.pi/workflows/github-pr-post-comment.yaml +10 -10
  10. package/.pi/workflows/github-pr-review-post.yaml +18 -8
  11. package/.pi/workflows/github-pr-review.yaml +354 -7
  12. package/.pi/workflows/github-pr-show-changes.yaml +8 -8
  13. package/.pi/workflows/github-pr-update-agents-md-stacked.yaml +103 -0
  14. package/.pi/workflows/github-pr-visual-explain.yaml +80 -0
  15. package/.pi/workflows/gitlab-mr-describe.yaml +8 -5
  16. package/.pi/workflows/gitlab-mr-fix-review-issues-stacked.yaml +150 -0
  17. package/.pi/workflows/gitlab-mr-post-comment.yaml +8 -8
  18. package/.pi/workflows/gitlab-mr-review.yaml +354 -5
  19. package/.pi/workflows/gitlab-mr-show-changes.yaml +6 -6
  20. package/.pi/workflows/gitlab-mr-update-agents-md-stacked.yaml +100 -0
  21. package/.pi/workflows/gitlab-mr-visual-explain.yaml +78 -0
  22. package/.pi/workflows/local-fix-review-issues.yaml +89 -13
  23. package/.pi/workflows/local-review.yaml +15 -2
  24. package/.pi/workflows/local-update-agents-md.yaml +1 -1
  25. package/.pi/workflows/local-visual-explain.yaml +76 -0
  26. package/.pi/workflows/release-changelog-finalize.yaml +47 -0
  27. package/.pi/workflows/tag-changelog-update.yaml +4 -4
  28. package/.pi/workflows/temporal-control-smoke.yaml +63 -0
  29. package/README.md +130 -27
  30. package/dist/ci/runner.d.ts.map +1 -1
  31. package/dist/ci/runner.js +3 -1
  32. package/dist/ci/runner.js.map +1 -1
  33. package/dist/cli/index.js +258 -9
  34. package/dist/cli/index.js.map +1 -1
  35. package/dist/cli/init.d.ts +6 -1
  36. package/dist/cli/init.d.ts.map +1 -1
  37. package/dist/cli/init.js +29 -10
  38. package/dist/cli/init.js.map +1 -1
  39. package/dist/cli/run-agent.d.ts +4 -7
  40. package/dist/cli/run-agent.d.ts.map +1 -1
  41. package/dist/cli/run-agent.js +4 -0
  42. package/dist/cli/run-agent.js.map +1 -1
  43. package/dist/cli/workflow-executor-selection.d.ts +3 -0
  44. package/dist/cli/workflow-executor-selection.d.ts.map +1 -0
  45. package/dist/cli/workflow-executor-selection.js +15 -0
  46. package/dist/cli/workflow-executor-selection.js.map +1 -0
  47. package/dist/cli/workflow.d.ts +76 -26
  48. package/dist/cli/workflow.d.ts.map +1 -1
  49. package/dist/cli/workflow.js +1624 -192
  50. package/dist/cli/workflow.js.map +1 -1
  51. package/dist/github/client.d.ts +12 -0
  52. package/dist/github/client.d.ts.map +1 -1
  53. package/dist/github/client.js +27 -0
  54. package/dist/github/client.js.map +1 -1
  55. package/dist/github/platform-adapter.d.ts +6 -1
  56. package/dist/github/platform-adapter.d.ts.map +1 -1
  57. package/dist/github/platform-adapter.js +84 -8
  58. package/dist/github/platform-adapter.js.map +1 -1
  59. package/dist/gitlab/client.d.ts +11 -0
  60. package/dist/gitlab/client.d.ts.map +1 -1
  61. package/dist/gitlab/client.js +11 -0
  62. package/dist/gitlab/client.js.map +1 -1
  63. package/dist/gitlab/platform-adapter.d.ts +3 -1
  64. package/dist/gitlab/platform-adapter.d.ts.map +1 -1
  65. package/dist/gitlab/platform-adapter.js +32 -1
  66. package/dist/gitlab/platform-adapter.js.map +1 -1
  67. package/dist/lib/agent-result.d.ts +8 -0
  68. package/dist/lib/agent-result.d.ts.map +1 -0
  69. package/dist/lib/agent-result.js +2 -0
  70. package/dist/lib/agent-result.js.map +1 -0
  71. package/dist/lib/comment-formatter.d.ts +8 -0
  72. package/dist/lib/comment-formatter.d.ts.map +1 -1
  73. package/dist/lib/comment-formatter.js +12 -4
  74. package/dist/lib/comment-formatter.js.map +1 -1
  75. package/dist/lib/comment-poster.d.ts.map +1 -1
  76. package/dist/lib/comment-poster.js +28 -1
  77. package/dist/lib/comment-poster.js.map +1 -1
  78. package/dist/lib/config.d.ts +71 -11
  79. package/dist/lib/config.d.ts.map +1 -1
  80. package/dist/lib/config.js +163 -28
  81. package/dist/lib/config.js.map +1 -1
  82. package/dist/lib/context-compression.d.ts +10 -0
  83. package/dist/lib/context-compression.d.ts.map +1 -1
  84. package/dist/lib/context-compression.js +101 -13
  85. package/dist/lib/context-compression.js.map +1 -1
  86. package/dist/lib/context-loader.d.ts +2 -1
  87. package/dist/lib/context-loader.d.ts.map +1 -1
  88. package/dist/lib/context-loader.js +70 -1
  89. package/dist/lib/context-loader.js.map +1 -1
  90. package/dist/lib/describe-core.d.ts.map +1 -1
  91. package/dist/lib/describe-core.js +3 -2
  92. package/dist/lib/describe-core.js.map +1 -1
  93. package/dist/lib/diff-lines.d.ts +9 -0
  94. package/dist/lib/diff-lines.d.ts.map +1 -1
  95. package/dist/lib/diff-lines.js +17 -9
  96. package/dist/lib/diff-lines.js.map +1 -1
  97. package/dist/lib/exit.js +4 -4
  98. package/dist/lib/exit.js.map +1 -1
  99. package/dist/lib/html-artifact.d.ts +14 -0
  100. package/dist/lib/html-artifact.d.ts.map +1 -0
  101. package/dist/lib/html-artifact.js +59 -0
  102. package/dist/lib/html-artifact.js.map +1 -0
  103. package/dist/lib/issue-parser.js +3 -3
  104. package/dist/lib/issue-parser.js.map +1 -1
  105. package/dist/lib/json-output-schema.d.ts +70 -0
  106. package/dist/lib/json-output-schema.d.ts.map +1 -1
  107. package/dist/lib/json-output-schema.js +40 -0
  108. package/dist/lib/json-output-schema.js.map +1 -1
  109. package/dist/lib/output-paths.d.ts +0 -1
  110. package/dist/lib/output-paths.d.ts.map +1 -1
  111. package/dist/lib/output-paths.js +0 -1
  112. package/dist/lib/output-paths.js.map +1 -1
  113. package/dist/lib/platform-client.d.ts +26 -0
  114. package/dist/lib/platform-client.d.ts.map +1 -1
  115. package/dist/lib/project-setup.d.ts +10 -0
  116. package/dist/lib/project-setup.d.ts.map +1 -0
  117. package/dist/lib/project-setup.js +25 -0
  118. package/dist/lib/project-setup.js.map +1 -0
  119. package/dist/lib/review-artifact-store.d.ts +16 -0
  120. package/dist/lib/review-artifact-store.d.ts.map +1 -0
  121. package/dist/lib/review-artifact-store.js +84 -0
  122. package/dist/lib/review-artifact-store.js.map +1 -0
  123. package/dist/lib/review-artifact.d.ts +69 -0
  124. package/dist/lib/review-artifact.d.ts.map +1 -0
  125. package/dist/lib/review-artifact.js +172 -0
  126. package/dist/lib/review-artifact.js.map +1 -0
  127. package/dist/lib/review-core.d.ts +7 -4
  128. package/dist/lib/review-core.d.ts.map +1 -1
  129. package/dist/lib/review-core.js +82 -165
  130. package/dist/lib/review-core.js.map +1 -1
  131. package/dist/lib/review-orchestrator.d.ts +23 -0
  132. package/dist/lib/review-orchestrator.d.ts.map +1 -1
  133. package/dist/lib/review-orchestrator.js +20 -13
  134. package/dist/lib/review-orchestrator.js.map +1 -1
  135. package/dist/lib/review-parser.d.ts.map +1 -1
  136. package/dist/lib/review-parser.js +15 -12
  137. package/dist/lib/review-parser.js.map +1 -1
  138. package/dist/lib/review-usage.d.ts +4 -0
  139. package/dist/lib/review-usage.d.ts.map +1 -1
  140. package/dist/lib/review-usage.js +25 -0
  141. package/dist/lib/review-usage.js.map +1 -1
  142. package/dist/lib/skills.d.ts +16 -0
  143. package/dist/lib/skills.d.ts.map +1 -0
  144. package/dist/lib/skills.js +140 -0
  145. package/dist/lib/skills.js.map +1 -0
  146. package/dist/lib/trace-collector.d.ts +105 -0
  147. package/dist/lib/trace-collector.d.ts.map +1 -0
  148. package/dist/lib/trace-collector.js +255 -0
  149. package/dist/lib/trace-collector.js.map +1 -0
  150. package/dist/lib/trace-html.d.ts +3 -0
  151. package/dist/lib/trace-html.d.ts.map +1 -0
  152. package/dist/lib/trace-html.js +349 -0
  153. package/dist/lib/trace-html.js.map +1 -0
  154. package/dist/lib/workflow/artifact-store.d.ts +71 -0
  155. package/dist/lib/workflow/artifact-store.d.ts.map +1 -0
  156. package/dist/lib/workflow/artifact-store.js +121 -0
  157. package/dist/lib/workflow/artifact-store.js.map +1 -0
  158. package/dist/lib/workflow/compiled-plan.d.ts +87 -0
  159. package/dist/lib/workflow/compiled-plan.d.ts.map +1 -0
  160. package/dist/lib/workflow/compiled-plan.js +62 -0
  161. package/dist/lib/workflow/compiled-plan.js.map +1 -0
  162. package/dist/lib/workflow/executor.d.ts +18 -0
  163. package/dist/lib/workflow/executor.d.ts.map +1 -0
  164. package/dist/lib/workflow/executor.js +2 -0
  165. package/dist/lib/workflow/executor.js.map +1 -0
  166. package/dist/lib/workflow/graph.d.ts +30 -0
  167. package/dist/lib/workflow/graph.d.ts.map +1 -0
  168. package/dist/lib/workflow/graph.js +139 -0
  169. package/dist/lib/workflow/graph.js.map +1 -0
  170. package/dist/lib/workflow/input.d.ts +4 -0
  171. package/dist/lib/workflow/input.d.ts.map +1 -0
  172. package/dist/lib/workflow/input.js +4 -0
  173. package/dist/lib/workflow/input.js.map +1 -0
  174. package/dist/lib/workflow/node-executor.d.ts +19 -0
  175. package/dist/lib/workflow/node-executor.d.ts.map +1 -0
  176. package/dist/lib/workflow/node-executor.js +2 -0
  177. package/dist/lib/workflow/node-executor.js.map +1 -0
  178. package/dist/lib/workflow/planning.d.ts +51 -0
  179. package/dist/lib/workflow/planning.d.ts.map +1 -0
  180. package/dist/lib/workflow/planning.js +814 -0
  181. package/dist/lib/workflow/planning.js.map +1 -0
  182. package/dist/lib/workflow/types.d.ts +66 -0
  183. package/dist/lib/workflow/types.d.ts.map +1 -0
  184. package/dist/lib/workflow/types.js +2 -0
  185. package/dist/lib/workflow/types.js.map +1 -0
  186. package/dist/lib/workflow-artifacts.d.ts +54 -0
  187. package/dist/lib/workflow-artifacts.d.ts.map +1 -0
  188. package/dist/lib/workflow-artifacts.js +150 -0
  189. package/dist/lib/workflow-artifacts.js.map +1 -0
  190. package/dist/lib/write-json-output.d.ts.map +1 -1
  191. package/dist/lib/write-json-output.js +3 -8
  192. package/dist/lib/write-json-output.js.map +1 -1
  193. package/dist/pi/sdk.d.ts.map +1 -1
  194. package/dist/pi/sdk.js +576 -8
  195. package/dist/pi/sdk.js.map +1 -1
  196. package/dist/runtime/agent-loader.js +2 -2
  197. package/dist/runtime/built-in-paths.d.ts +1 -0
  198. package/dist/runtime/built-in-paths.d.ts.map +1 -1
  199. package/dist/runtime/built-in-paths.js +7 -0
  200. package/dist/runtime/built-in-paths.js.map +1 -1
  201. package/dist/runtime/client.d.ts +2 -0
  202. package/dist/runtime/client.d.ts.map +1 -1
  203. package/dist/runtime/client.js +11 -5
  204. package/dist/runtime/client.js.map +1 -1
  205. package/dist/temporal/activities.d.ts +26 -0
  206. package/dist/temporal/activities.d.ts.map +1 -0
  207. package/dist/temporal/activities.js +219 -0
  208. package/dist/temporal/activities.js.map +1 -0
  209. package/dist/temporal/config.d.ts +4 -0
  210. package/dist/temporal/config.d.ts.map +1 -0
  211. package/dist/temporal/config.js +36 -0
  212. package/dist/temporal/config.js.map +1 -0
  213. package/dist/temporal/executor.d.ts +7 -0
  214. package/dist/temporal/executor.d.ts.map +1 -0
  215. package/dist/temporal/executor.js +233 -0
  216. package/dist/temporal/executor.js.map +1 -0
  217. package/dist/temporal/retry-policy.d.ts +28 -0
  218. package/dist/temporal/retry-policy.d.ts.map +1 -0
  219. package/dist/temporal/retry-policy.js +56 -0
  220. package/dist/temporal/retry-policy.js.map +1 -0
  221. package/dist/temporal/types.d.ts +86 -0
  222. package/dist/temporal/types.d.ts.map +1 -0
  223. package/dist/temporal/types.js +2 -0
  224. package/dist/temporal/types.js.map +1 -0
  225. package/dist/temporal/worker.d.ts +3 -0
  226. package/dist/temporal/worker.d.ts.map +1 -0
  227. package/dist/temporal/worker.js +18 -0
  228. package/dist/temporal/worker.js.map +1 -0
  229. package/dist/temporal/workflow-id.d.ts +27 -0
  230. package/dist/temporal/workflow-id.d.ts.map +1 -0
  231. package/dist/temporal/workflow-id.js +53 -0
  232. package/dist/temporal/workflow-id.js.map +1 -0
  233. package/dist/temporal/workflows.d.ts +6 -0
  234. package/dist/temporal/workflows.d.ts.map +1 -0
  235. package/dist/temporal/workflows.js +342 -0
  236. package/dist/temporal/workflows.js.map +1 -0
  237. package/package.json +26 -15
  238. package/.pi/workflows/github-pr-describe-post.yaml +0 -24
  239. package/.pi/workflows/gitlab-mr-describe-post.yaml +0 -22
  240. package/.pi/workflows/gitlab-mr-review-code-quality.yaml +0 -31
  241. package/.pi/workflows/gitlab-mr-review-post-code-quality.yaml +0 -40
  242. package/.pi/workflows/gitlab-mr-review-post.yaml +0 -30
  243. package/.pi/workflows/local-staged-review.yaml +0 -17
  244. package/dist/cli/run-agent.test.d.ts +0 -2
  245. package/dist/cli/run-agent.test.d.ts.map +0 -1
  246. package/dist/cli/run-agent.test.js +0 -204
  247. package/dist/cli/run-agent.test.js.map +0 -1
  248. package/dist/cli/workflow.test.d.ts +0 -2
  249. package/dist/cli/workflow.test.d.ts.map +0 -1
  250. package/dist/cli/workflow.test.js +0 -1410
  251. package/dist/cli/workflow.test.js.map +0 -1
  252. package/dist/github/client.test.d.ts +0 -2
  253. package/dist/github/client.test.d.ts.map +0 -1
  254. package/dist/github/client.test.js +0 -206
  255. package/dist/github/client.test.js.map +0 -1
  256. package/dist/github/platform-adapter.test.d.ts +0 -2
  257. package/dist/github/platform-adapter.test.d.ts.map +0 -1
  258. package/dist/github/platform-adapter.test.js +0 -40
  259. package/dist/github/platform-adapter.test.js.map +0 -1
  260. package/dist/gitlab/diff-parser.test.d.ts +0 -2
  261. package/dist/gitlab/diff-parser.test.d.ts.map +0 -1
  262. package/dist/gitlab/diff-parser.test.js +0 -315
  263. package/dist/gitlab/diff-parser.test.js.map +0 -1
  264. package/dist/gitlab/platform-adapter.test.d.ts +0 -2
  265. package/dist/gitlab/platform-adapter.test.d.ts.map +0 -1
  266. package/dist/gitlab/platform-adapter.test.js +0 -21
  267. package/dist/gitlab/platform-adapter.test.js.map +0 -1
  268. package/dist/index.test.d.ts +0 -2
  269. package/dist/index.test.d.ts.map +0 -1
  270. package/dist/index.test.js +0 -7
  271. package/dist/index.test.js.map +0 -1
  272. package/dist/lib/code-quality-report.test.d.ts +0 -2
  273. package/dist/lib/code-quality-report.test.d.ts.map +0 -1
  274. package/dist/lib/code-quality-report.test.js +0 -327
  275. package/dist/lib/code-quality-report.test.js.map +0 -1
  276. package/dist/lib/comment-formatter.test.d.ts +0 -2
  277. package/dist/lib/comment-formatter.test.d.ts.map +0 -1
  278. package/dist/lib/comment-formatter.test.js +0 -727
  279. package/dist/lib/comment-formatter.test.js.map +0 -1
  280. package/dist/lib/comment-manager.test.d.ts +0 -2
  281. package/dist/lib/comment-manager.test.d.ts.map +0 -1
  282. package/dist/lib/comment-manager.test.js +0 -680
  283. package/dist/lib/comment-manager.test.js.map +0 -1
  284. package/dist/lib/comment-poster.test.d.ts +0 -5
  285. package/dist/lib/comment-poster.test.d.ts.map +0 -1
  286. package/dist/lib/comment-poster.test.js +0 -255
  287. package/dist/lib/comment-poster.test.js.map +0 -1
  288. package/dist/lib/config-model-overrides.test.d.ts +0 -2
  289. package/dist/lib/config-model-overrides.test.d.ts.map +0 -1
  290. package/dist/lib/config-model-overrides.test.js +0 -218
  291. package/dist/lib/config-model-overrides.test.js.map +0 -1
  292. package/dist/lib/config.test.d.ts +0 -2
  293. package/dist/lib/config.test.d.ts.map +0 -1
  294. package/dist/lib/config.test.js +0 -353
  295. package/dist/lib/config.test.js.map +0 -1
  296. package/dist/lib/context-compression.test.d.ts +0 -2
  297. package/dist/lib/context-compression.test.d.ts.map +0 -1
  298. package/dist/lib/context-compression.test.js +0 -337
  299. package/dist/lib/context-compression.test.js.map +0 -1
  300. package/dist/lib/context-loader.test.d.ts +0 -2
  301. package/dist/lib/context-loader.test.d.ts.map +0 -1
  302. package/dist/lib/context-loader.test.js +0 -212
  303. package/dist/lib/context-loader.test.js.map +0 -1
  304. package/dist/lib/cursor-fix-link.test.d.ts +0 -2
  305. package/dist/lib/cursor-fix-link.test.d.ts.map +0 -1
  306. package/dist/lib/cursor-fix-link.test.js +0 -70
  307. package/dist/lib/cursor-fix-link.test.js.map +0 -1
  308. package/dist/lib/describe-core.test.d.ts +0 -2
  309. package/dist/lib/describe-core.test.d.ts.map +0 -1
  310. package/dist/lib/describe-core.test.js +0 -208
  311. package/dist/lib/describe-core.test.js.map +0 -1
  312. package/dist/lib/describe-output-path.test.d.ts +0 -2
  313. package/dist/lib/describe-output-path.test.d.ts.map +0 -1
  314. package/dist/lib/describe-output-path.test.js +0 -51
  315. package/dist/lib/describe-output-path.test.js.map +0 -1
  316. package/dist/lib/describe-parser.test.d.ts +0 -2
  317. package/dist/lib/describe-parser.test.d.ts.map +0 -1
  318. package/dist/lib/describe-parser.test.js +0 -282
  319. package/dist/lib/describe-parser.test.js.map +0 -1
  320. package/dist/lib/description-executor.test.d.ts +0 -2
  321. package/dist/lib/description-executor.test.d.ts.map +0 -1
  322. package/dist/lib/description-executor.test.js +0 -135
  323. package/dist/lib/description-executor.test.js.map +0 -1
  324. package/dist/lib/description-formatter.test.d.ts +0 -2
  325. package/dist/lib/description-formatter.test.d.ts.map +0 -1
  326. package/dist/lib/description-formatter.test.js +0 -57
  327. package/dist/lib/description-formatter.test.js.map +0 -1
  328. package/dist/lib/diff-lines.test.d.ts +0 -2
  329. package/dist/lib/diff-lines.test.d.ts.map +0 -1
  330. package/dist/lib/diff-lines.test.js +0 -13
  331. package/dist/lib/diff-lines.test.js.map +0 -1
  332. package/dist/lib/diff-parser.test.d.ts +0 -2
  333. package/dist/lib/diff-parser.test.d.ts.map +0 -1
  334. package/dist/lib/diff-parser.test.js +0 -335
  335. package/dist/lib/diff-parser.test.js.map +0 -1
  336. package/dist/lib/error-comment-poster.test.d.ts +0 -2
  337. package/dist/lib/error-comment-poster.test.d.ts.map +0 -1
  338. package/dist/lib/error-comment-poster.test.js +0 -128
  339. package/dist/lib/error-comment-poster.test.js.map +0 -1
  340. package/dist/lib/exit.test.d.ts +0 -2
  341. package/dist/lib/exit.test.d.ts.map +0 -1
  342. package/dist/lib/exit.test.js +0 -120
  343. package/dist/lib/exit.test.js.map +0 -1
  344. package/dist/lib/issue-parser.test.d.ts +0 -2
  345. package/dist/lib/issue-parser.test.d.ts.map +0 -1
  346. package/dist/lib/issue-parser.test.js +0 -281
  347. package/dist/lib/issue-parser.test.js.map +0 -1
  348. package/dist/lib/json-output-schema.test.d.ts +0 -2
  349. package/dist/lib/json-output-schema.test.d.ts.map +0 -1
  350. package/dist/lib/json-output-schema.test.js +0 -92
  351. package/dist/lib/json-output-schema.test.js.map +0 -1
  352. package/dist/lib/json-output.test.d.ts +0 -2
  353. package/dist/lib/json-output.test.d.ts.map +0 -1
  354. package/dist/lib/json-output.test.js +0 -141
  355. package/dist/lib/json-output.test.js.map +0 -1
  356. package/dist/lib/logger.test.d.ts +0 -2
  357. package/dist/lib/logger.test.d.ts.map +0 -1
  358. package/dist/lib/logger.test.js +0 -324
  359. package/dist/lib/logger.test.js.map +0 -1
  360. package/dist/lib/position-validator.test.d.ts +0 -2
  361. package/dist/lib/position-validator.test.d.ts.map +0 -1
  362. package/dist/lib/position-validator.test.js +0 -128
  363. package/dist/lib/position-validator.test.js.map +0 -1
  364. package/dist/lib/prompt-budget.test.d.ts +0 -2
  365. package/dist/lib/prompt-budget.test.d.ts.map +0 -1
  366. package/dist/lib/prompt-budget.test.js +0 -55
  367. package/dist/lib/prompt-budget.test.js.map +0 -1
  368. package/dist/lib/repository-validator.test.d.ts +0 -5
  369. package/dist/lib/repository-validator.test.d.ts.map +0 -1
  370. package/dist/lib/repository-validator.test.js +0 -341
  371. package/dist/lib/repository-validator.test.js.map +0 -1
  372. package/dist/lib/review-core.test.d.ts +0 -2
  373. package/dist/lib/review-core.test.d.ts.map +0 -1
  374. package/dist/lib/review-core.test.js +0 -614
  375. package/dist/lib/review-core.test.js.map +0 -1
  376. package/dist/lib/review-orchestrator.test.d.ts +0 -2
  377. package/dist/lib/review-orchestrator.test.d.ts.map +0 -1
  378. package/dist/lib/review-orchestrator.test.js +0 -552
  379. package/dist/lib/review-orchestrator.test.js.map +0 -1
  380. package/dist/lib/review-output-path.test.d.ts +0 -2
  381. package/dist/lib/review-output-path.test.d.ts.map +0 -1
  382. package/dist/lib/review-output-path.test.js +0 -83
  383. package/dist/lib/review-output-path.test.js.map +0 -1
  384. package/dist/lib/review-parser.test.d.ts +0 -2
  385. package/dist/lib/review-parser.test.d.ts.map +0 -1
  386. package/dist/lib/review-parser.test.js +0 -130
  387. package/dist/lib/review-parser.test.js.map +0 -1
  388. package/dist/lib/review-usage.test.d.ts +0 -2
  389. package/dist/lib/review-usage.test.d.ts.map +0 -1
  390. package/dist/lib/review-usage.test.js +0 -83
  391. package/dist/lib/review-usage.test.js.map +0 -1
  392. package/dist/lib/unified-review-executor.d.ts +0 -58
  393. package/dist/lib/unified-review-executor.d.ts.map +0 -1
  394. package/dist/lib/unified-review-executor.js +0 -201
  395. package/dist/lib/unified-review-executor.js.map +0 -1
  396. package/dist/lib/unified-review-executor.test.d.ts +0 -5
  397. package/dist/lib/unified-review-executor.test.d.ts.map +0 -1
  398. package/dist/lib/unified-review-executor.test.js +0 -472
  399. package/dist/lib/unified-review-executor.test.js.map +0 -1
  400. package/dist/lib/write-json-output.test.d.ts +0 -2
  401. package/dist/lib/write-json-output.test.d.ts.map +0 -1
  402. package/dist/lib/write-json-output.test.js +0 -259
  403. package/dist/lib/write-json-output.test.js.map +0 -1
  404. package/dist/pi/sdk.test.d.ts +0 -2
  405. package/dist/pi/sdk.test.d.ts.map +0 -1
  406. package/dist/pi/sdk.test.js +0 -488
  407. package/dist/pi/sdk.test.js.map +0 -1
  408. package/dist/runtime/agent-loader.test.d.ts +0 -2
  409. package/dist/runtime/agent-loader.test.d.ts.map +0 -1
  410. package/dist/runtime/agent-loader.test.js +0 -277
  411. package/dist/runtime/agent-loader.test.js.map +0 -1
  412. package/dist/runtime/client.test.d.ts +0 -2
  413. package/dist/runtime/client.test.d.ts.map +0 -1
  414. package/dist/runtime/client.test.js +0 -772
  415. package/dist/runtime/client.test.js.map +0 -1
  416. package/dist/runtime/path-config.test.d.ts +0 -2
  417. package/dist/runtime/path-config.test.d.ts.map +0 -1
  418. package/dist/runtime/path-config.test.js +0 -112
  419. package/dist/runtime/path-config.test.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ import { randomUUID } from 'crypto';
2
+ /**
3
+ * Sanitize a value for safe inclusion in a Temporal workflow ID.
4
+ *
5
+ * Replaces any character outside [A-Za-z0-9._-] with a dash and trims leading
6
+ * / trailing dashes, so values like GitLab project paths (`org/subgroup/repo`)
7
+ * become ID-safe segments (`org-subgroup-repo`).
8
+ */
9
+ function sanitizeIdSegment(value) {
10
+ return value.replace(/[^A-Za-z0-9._-]+/g, '-').replace(/^-+|-+$/g, '') || 'unknown';
11
+ }
12
+ /**
13
+ * Derive a deterministic Temporal workflow ID from the workflow name and
14
+ * resolved inputs.
15
+ *
16
+ * DRS workflows are triggered by external events whose identity is stable
17
+ * across re-deliveries (a webhook retried, a scheduler replay, a service
18
+ * restart). A deterministic workflow ID lets Temporal's built-in workflow-ID
19
+ * uniqueness deduplicate repeated triggers instead of scheduling duplicate
20
+ * work.
21
+ *
22
+ * Recognized trigger patterns (based on the standard DRS workflow inputs):
23
+ *
24
+ * - **GitHub PR** — inputs contain `owner`, `repo`, and `pr`:
25
+ * `{prefix}-{workflowName}-gh-{owner}-{repo}-pr-{pr}`
26
+ * - **GitLab MR** — inputs contain `project` and `mr`:
27
+ * `{prefix}-{workflowName}-gl-{project}-mr-{mr}`
28
+ *
29
+ * Workflows without a recognized external trigger identity (e.g. `local-review`,
30
+ * one-off CLI runs, smoke tests) fall back to a random UUID suffix so each
31
+ * dispatch is a fresh run — exactly the behavior expected for unique work.
32
+ *
33
+ * Callers that need full control (a service layer with a custom trigger
34
+ * identity) can bypass this helper by passing an explicit `workflowId` in
35
+ * {@link WorkflowRunOptions}.
36
+ */
37
+ export function deriveTemporalWorkflowId(prefix, workflowName, inputs) {
38
+ const safePrefix = sanitizeIdSegment(prefix);
39
+ const safeName = sanitizeIdSegment(workflowName);
40
+ const owner = inputs['owner'];
41
+ const repo = inputs['repo'];
42
+ const pr = inputs['pr'];
43
+ if (owner && repo && pr) {
44
+ return `${safePrefix}-${safeName}-gh-${sanitizeIdSegment(owner)}-${sanitizeIdSegment(repo)}-pr-${sanitizeIdSegment(pr)}`;
45
+ }
46
+ const project = inputs['project'];
47
+ const mr = inputs['mr'];
48
+ if (project && mr) {
49
+ return `${safePrefix}-${safeName}-gl-${sanitizeIdSegment(project)}-mr-${sanitizeIdSegment(mr)}`;
50
+ }
51
+ return `${safePrefix}-${safeName}-${randomUUID()}`;
52
+ }
53
+ //# sourceMappingURL=workflow-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-id.js","sourceRoot":"","sources":["../../src/temporal/workflow-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AACtF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAc,EACd,YAAoB,EACpB,MAA8B;IAE9B,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEjD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAExB,IAAI,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QACxB,OAAO,GAAG,UAAU,IAAI,QAAQ,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3H,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAExB,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;QAClB,OAAO,GAAG,UAAU,IAAI,QAAQ,OAAO,iBAAiB,CAAC,OAAO,CAAC,OAAO,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;IAClG,CAAC;IAED,OAAO,GAAG,UAAU,IAAI,QAAQ,IAAI,UAAU,EAAE,EAAE,CAAC;AACrD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { TemporalWorkflowArtifactsQueryResult, TemporalWorkflowInput, TemporalWorkflowStatusQueryResult, TemporalWorkflowResult } from './types.js';
2
+ export declare const workflowStatusQuery: import("@temporalio/common").QueryDefinition<TemporalWorkflowStatusQueryResult, [], string>;
3
+ export declare const workflowLoopStateQuery: import("@temporalio/common").QueryDefinition<Record<string, import("../cli/workflow.js").WorkflowLoopState>, [], string>;
4
+ export declare const workflowArtifactsQuery: import("@temporalio/common").QueryDefinition<TemporalWorkflowArtifactsQueryResult, [], string>;
5
+ export declare function drsWorkflow(input: TemporalWorkflowInput): Promise<TemporalWorkflowResult>;
6
+ //# sourceMappingURL=workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/temporal/workflows.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAEV,oCAAoC,EACpC,qBAAqB,EACrB,iCAAiC,EACjC,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,mBAAmB,6FACqC,CAAC;AACtE,eAAO,MAAM,sBAAsB,0HACmC,CAAC;AACvE,eAAO,MAAM,sBAAsB,gGACwC,CAAC;AAsY5E,wBAAsB,WAAW,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA4D/F"}
@@ -0,0 +1,342 @@
1
+ import { defineQuery, isCancellation, proxyActivities, setHandler, workflowInfo, } from '@temporalio/workflow';
2
+ import { computeActiveWorkflowNodes, createSkippedWorkflowNodeResult, findWorkflowSegmentIndex, getNodeNeeds, getWorkflowNodeSkipReason, runControlWorkflowNode, } from '../lib/workflow/planning.js';
3
+ import { isArtifactRef } from '../lib/workflow/artifact-store.js';
4
+ import { getTemporalNodeRetryMode, TEMPORAL_RETRYABLE_ACTIVITY_POLICY } from './retry-policy.js';
5
+ export const workflowStatusQuery = defineQuery('drsWorkflowStatus');
6
+ export const workflowLoopStateQuery = defineQuery('drsWorkflowLoopState');
7
+ export const workflowArtifactsQuery = defineQuery('drsWorkflowArtifacts');
8
+ const { runWorkflowNodeActivity, resolveArtifactRefsActivity, prepareWorkspaceActivity } = proxyActivities({
9
+ startToCloseTimeout: '30 minutes',
10
+ // Bound total time across all retries so a persistently failing activity
11
+ // fails the workflow instead of retrying indefinitely. 3 hours comfortably
12
+ // allows 5 attempts at up to 30 minutes each plus backoff.
13
+ scheduleToCloseTimeout: '3 hours',
14
+ retry: TEMPORAL_RETRYABLE_ACTIVITY_POLICY,
15
+ });
16
+ const { runWorkflowNodeActivity: runWorkflowNodeNoRetryActivity } = proxyActivities({
17
+ startToCloseTimeout: '30 minutes',
18
+ retry: {
19
+ maximumAttempts: 1,
20
+ },
21
+ });
22
+ function recordNodeArtifact(nodeId, node, result, artifacts) {
23
+ const artifactValue = result.output ?? result.response ?? result.responses;
24
+ artifacts[nodeId] = artifactValue;
25
+ if (node.output) {
26
+ artifacts[node.output] = artifactValue;
27
+ }
28
+ if (result.outputs) {
29
+ for (const [name, value] of Object.entries(result.outputs)) {
30
+ artifacts[name] = value;
31
+ }
32
+ }
33
+ }
34
+ function recordWorkflowNodeResult(nodeId, node, result, nodes, artifacts) {
35
+ result.status ??= 'success';
36
+ nodes[nodeId] = result;
37
+ if (result.status !== 'skipped') {
38
+ recordNodeArtifact(nodeId, node, result, artifacts);
39
+ }
40
+ }
41
+ function buildWorkflowStatusSnapshot(input, context, runningNodeIds, isCancelled) {
42
+ const nodes = {};
43
+ for (const [nodeId, node] of Object.entries(input.plan.nodes)) {
44
+ const result = context.nodes[nodeId];
45
+ nodes[nodeId] = {
46
+ id: nodeId,
47
+ status: runningNodeIds.has(nodeId) ? 'running' : (result?.status ?? 'pending'),
48
+ action: node.action,
49
+ agent: node.agent,
50
+ control: node.control,
51
+ };
52
+ }
53
+ const info = workflowInfo();
54
+ return {
55
+ workflow: input.plan.workflowName,
56
+ workflowId: info.workflowId,
57
+ runId: info.runId,
58
+ cancelled: isCancelled,
59
+ nodes,
60
+ runningNodeIds: [...runningNodeIds],
61
+ completedNodeIds: Object.keys(context.nodes),
62
+ };
63
+ }
64
+ function buildArtifactsSnapshot(context) {
65
+ const artifactRefs = {};
66
+ for (const [key, value] of Object.entries(context.artifacts)) {
67
+ if (isArtifactRef(value)) {
68
+ artifactRefs[key] = value;
69
+ }
70
+ }
71
+ return {
72
+ artifactKeys: Object.keys(context.artifacts),
73
+ artifactRefs,
74
+ };
75
+ }
76
+ function createActivityIdempotencyContext(nodeId) {
77
+ const info = workflowInfo();
78
+ return {
79
+ workflowId: info.workflowId,
80
+ runId: info.runId,
81
+ nodeId,
82
+ idempotencyKey: `${info.workflowId}:${info.runId}:${nodeId}`,
83
+ };
84
+ }
85
+ async function runTemporalWorkflowNodeActivity(input, nodeId, node, context) {
86
+ const activityInput = {
87
+ workingDir: input.workingDir,
88
+ nodeId,
89
+ node,
90
+ context,
91
+ options: input.options,
92
+ idempotencyContext: createActivityIdempotencyContext(nodeId),
93
+ offloadArtifacts: true,
94
+ };
95
+ if (getTemporalNodeRetryMode(node) === 'no-retry') {
96
+ return runWorkflowNodeNoRetryActivity(activityInput);
97
+ }
98
+ return runWorkflowNodeActivity(activityInput);
99
+ }
100
+ /**
101
+ * Extract artifact keys referenced by a template/expression string.
102
+ *
103
+ * Scans for `{{artifacts.KEY}}` template references and bare `artifacts.KEY`
104
+ * path references, collecting only the first path segment after `artifacts.`
105
+ * (the key in `context.artifacts`). Subsequent dotted segments are sub-paths
106
+ * within the resolved value and are resolved at evaluation time.
107
+ */
108
+ function extractArtifactKeysFromExpression(expression, keys) {
109
+ for (const match of expression.matchAll(/\{\{\s*artifacts\.([A-Za-z0-9_-]+)/g)) {
110
+ keys.add(match[1] ?? '');
111
+ }
112
+ const stripped = expression.replace(/\{\{[^}]+\}\}/g, '');
113
+ for (const match of stripped.matchAll(/(?:^|[^A-Za-z0-9_.])artifacts\.([A-Za-z0-9_-]+)/g)) {
114
+ keys.add(match[1] ?? '');
115
+ }
116
+ keys.delete('');
117
+ }
118
+ /**
119
+ * Resolve only the artifact refs needed for upcoming control-flow evaluation.
120
+ *
121
+ * Returns a shallow-copy evaluation context with the requested keys resolved.
122
+ * The original `context.artifacts` is never mutated, so large values that are
123
+ * not needed for branching stay as refs in workflow state and never enter
124
+ * Temporal event history. Activities self-hydrate from their own deserialized
125
+ * copy, so node execution is unaffected.
126
+ */
127
+ async function resolveEvaluationArtifacts(input, context, keys) {
128
+ if (keys.size === 0)
129
+ return context;
130
+ const refsToResolve = {};
131
+ for (const key of keys) {
132
+ const value = context.artifacts[key];
133
+ if (isArtifactRef(value)) {
134
+ refsToResolve[key] = value;
135
+ }
136
+ }
137
+ if (Object.keys(refsToResolve).length === 0)
138
+ return context;
139
+ const resolved = await resolveArtifactRefsActivity({
140
+ workingDir: input.workingDir,
141
+ refs: refsToResolve,
142
+ });
143
+ return {
144
+ ...context,
145
+ artifacts: { ...context.artifacts, ...resolved },
146
+ };
147
+ }
148
+ /**
149
+ * Build an evaluation context for a set of runnable DAG nodes by resolving
150
+ * only the artifact refs referenced by their `if` conditions.
151
+ */
152
+ async function resolveDagEvaluationContext(input, context, runnableNodeIds) {
153
+ const keys = new Set();
154
+ for (const nodeId of runnableNodeIds) {
155
+ const node = input.plan.nodes[nodeId];
156
+ if (node?.if) {
157
+ extractArtifactKeysFromExpression(node.if, keys);
158
+ }
159
+ }
160
+ return resolveEvaluationArtifacts(input, context, keys);
161
+ }
162
+ /**
163
+ * Build an evaluation context for a control node by resolving only the
164
+ * artifact refs referenced by its `if`, `value` (switch), or `maxIterations`
165
+ * (loop) expressions.
166
+ */
167
+ async function resolveControlEvaluationContext(input, context, node) {
168
+ const keys = new Set();
169
+ if (node.if) {
170
+ extractArtifactKeysFromExpression(node.if, keys);
171
+ }
172
+ if (node.control === 'switch' && node.value) {
173
+ extractArtifactKeysFromExpression(node.value, keys);
174
+ }
175
+ if (node.control === 'loop' && typeof node.maxIterations === 'string') {
176
+ extractArtifactKeysFromExpression(node.maxIterations, keys);
177
+ }
178
+ return resolveEvaluationArtifacts(input, context, keys);
179
+ }
180
+ async function runTemporalDagNodes(input, nodeIds, activeNodeIds, context, runningNodeIds) {
181
+ const { plan } = input;
182
+ const completed = new Set();
183
+ const segmentNodeIds = new Set(nodeIds);
184
+ if (activeNodeIds) {
185
+ for (const nodeId of nodeIds) {
186
+ if (!activeNodeIds.has(nodeId)) {
187
+ completed.add(nodeId);
188
+ context.nodes[nodeId] ??= createSkippedWorkflowNodeResult(nodeId);
189
+ }
190
+ }
191
+ }
192
+ while (completed.size < nodeIds.length) {
193
+ const runnable = nodeIds.filter((nodeId) => {
194
+ if (completed.has(nodeId))
195
+ return false;
196
+ const node = plan.nodes[nodeId];
197
+ if (!node)
198
+ return false;
199
+ return getNodeNeeds(node).every((dependency) => completed.has(dependency) || !segmentNodeIds.has(dependency));
200
+ });
201
+ if (runnable.length === 0) {
202
+ const incomplete = nodeIds.filter((nodeId) => !completed.has(nodeId));
203
+ throw new Error(`Workflow control runner could not make progress in a DAG segment. Pending nodes: ${incomplete.join(', ')}.`);
204
+ }
205
+ const evalContext = await resolveDagEvaluationContext(input, context, runnable);
206
+ const results = await Promise.all(runnable.map(async (nodeId) => {
207
+ const node = plan.nodes[nodeId];
208
+ if (!node) {
209
+ throw new Error(`Workflow references unknown node "${nodeId}".`);
210
+ }
211
+ const skipReason = getWorkflowNodeSkipReason(node, evalContext);
212
+ if (skipReason) {
213
+ return { nodeId, node, result: createSkippedWorkflowNodeResult(nodeId) };
214
+ }
215
+ runningNodeIds.add(nodeId);
216
+ try {
217
+ const result = await runTemporalWorkflowNodeActivity(input, nodeId, node, context);
218
+ return { nodeId, node, result };
219
+ }
220
+ finally {
221
+ runningNodeIds.delete(nodeId);
222
+ }
223
+ }));
224
+ for (const { nodeId, node, result } of results) {
225
+ completed.add(nodeId);
226
+ recordWorkflowNodeResult(nodeId, node, result, context.nodes, context.artifacts);
227
+ }
228
+ }
229
+ }
230
+ function toWorkflowSegments(compiledSegments) {
231
+ return compiledSegments.map((segment) => segment.type === 'control'
232
+ ? { type: 'control', nodeId: segment.nodeId }
233
+ : {
234
+ type: 'dag',
235
+ nodeIds: [...segment.nodeIds],
236
+ ...(segment.activeNodeIds ? { activeNodeIds: new Set(segment.activeNodeIds) } : {}),
237
+ });
238
+ }
239
+ async function runTemporalControlWorkflow(input, context, runningNodeIds) {
240
+ const { plan } = input;
241
+ const segments = toWorkflowSegments(plan.segments);
242
+ let segmentIndex = 0;
243
+ while (segmentIndex < segments.length) {
244
+ const segment = segments[segmentIndex];
245
+ if (segment.type === 'dag') {
246
+ await runTemporalDagNodes(input, segment.nodeIds, segment.activeNodeIds, context, runningNodeIds);
247
+ segmentIndex += 1;
248
+ continue;
249
+ }
250
+ const node = plan.nodes[segment.nodeId];
251
+ if (!node) {
252
+ throw new Error(`Workflow references unknown node "${segment.nodeId}".`);
253
+ }
254
+ const evalContext = await resolveControlEvaluationContext(input, context, node);
255
+ const skipReason = getWorkflowNodeSkipReason(node, evalContext);
256
+ const { result, nextNodeId, ended } = skipReason
257
+ ? { result: createSkippedWorkflowNodeResult(segment.nodeId) }
258
+ : runControlWorkflowNode(segment.nodeId, node, evalContext);
259
+ recordWorkflowNodeResult(segment.nodeId, node, result, context.nodes, context.artifacts);
260
+ if (ended) {
261
+ return;
262
+ }
263
+ if (!nextNodeId) {
264
+ segmentIndex += 1;
265
+ continue;
266
+ }
267
+ const targetIndex = findWorkflowSegmentIndex(segments, nextNodeId);
268
+ if (targetIndex < 0) {
269
+ throw new Error(`Workflow control node "${segment.nodeId}" targets unknown node "${nextNodeId}".`);
270
+ }
271
+ if (node.control !== 'loop' && targetIndex <= segmentIndex) {
272
+ throw new Error(`Workflow control node "${segment.nodeId}" cannot jump backward to "${nextNodeId}". Use control: loop with maxIterations for repeated execution.`);
273
+ }
274
+ const targetSegment = segments[targetIndex];
275
+ if (targetSegment.type === 'dag') {
276
+ targetSegment.activeNodeIds = computeActiveWorkflowNodes(plan.nodes, targetSegment.nodeIds, nextNodeId, !(node.control === 'loop' && nextNodeId === node.target));
277
+ }
278
+ segmentIndex = targetIndex;
279
+ }
280
+ }
281
+ async function runTemporalDagWorkflow(input, context, runningNodeIds) {
282
+ for (const wave of input.plan.waves) {
283
+ await runTemporalDagNodes(input, wave, undefined, context, runningNodeIds);
284
+ }
285
+ }
286
+ export async function drsWorkflow(input) {
287
+ const { plan } = input;
288
+ const info = workflowInfo();
289
+ const executionInput = input.workspace
290
+ ? {
291
+ ...input,
292
+ workingDir: (await prepareWorkspaceActivity({
293
+ workspace: input.workspace,
294
+ workflowId: info.workflowId,
295
+ runId: info.runId,
296
+ })).workingDir,
297
+ }
298
+ : input;
299
+ const nodes = {};
300
+ const artifacts = {};
301
+ const runningNodeIds = new Set();
302
+ let isCancelled = false;
303
+ const context = {
304
+ inputs: input.inputs,
305
+ nodes,
306
+ artifacts,
307
+ loop: {},
308
+ };
309
+ setHandler(workflowStatusQuery, () => buildWorkflowStatusSnapshot(input, context, runningNodeIds, isCancelled));
310
+ setHandler(workflowLoopStateQuery, () => context.loop);
311
+ setHandler(workflowArtifactsQuery, () => buildArtifactsSnapshot(context));
312
+ try {
313
+ if (plan.hasControlNodes) {
314
+ await runTemporalControlWorkflow(executionInput, context, runningNodeIds);
315
+ }
316
+ else {
317
+ await runTemporalDagWorkflow(executionInput, context, runningNodeIds);
318
+ }
319
+ }
320
+ catch (error) {
321
+ if (isCancellation(error)) {
322
+ isCancelled = true;
323
+ runningNodeIds.clear();
324
+ }
325
+ throw error;
326
+ }
327
+ const lastNode = plan.nodes[plan.lastNodeId];
328
+ const outputKey = plan.output ?? lastNode?.output ?? plan.lastNodeId;
329
+ return {
330
+ // Deterministic timestamp: derive from workflowInfo().runStartTime (set by
331
+ // the Temporal server and replayed) instead of new Date(), which would be a
332
+ // determinism violation in workflow code.
333
+ timestamp: info.runStartTime.toISOString(),
334
+ workflow: plan.workflowName,
335
+ inputs: input.inputs,
336
+ nodes,
337
+ artifacts,
338
+ loop: context.loop,
339
+ output: artifacts[outputKey],
340
+ };
341
+ }
342
+ //# sourceMappingURL=workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/temporal/workflows.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diff-review-system/drs",
3
- "version": "4.0.0-rc.4",
3
+ "version": "4.1.0",
4
4
  "description": "Workflow-first AI code maintenance for reviews, changelogs, docs, and repository upkeep.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,19 +11,25 @@
11
11
  "build": "tsc",
12
12
  "build:watch": "tsc --watch",
13
13
  "dev": "tsx watch src/cli/index.ts",
14
+ "dev:cli": "tsx src/cli/index.ts",
14
15
  "start": "node dist/cli/index.js",
15
16
  "test": "vitest run",
17
+ "test:temporal:smoke": "DRS_TEMPORAL_SMOKE=1 vitest run src/temporal/smoke.test.ts",
16
18
  "test:e2e": "DRS_E2E_LIVE=1 vitest run src/cli/review-local.live.e2e.test.ts",
17
19
  "lint": "eslint 'src/**/*.ts'",
18
20
  "lint:fix": "eslint 'src/**/*.ts' --fix",
19
- "format": "prettier --write 'src/**/*.{ts,json}'",
20
- "format:check": "prettier --check 'src/**/*.{ts,json}'",
21
+ "format": "prettier --write 'src/**/*.{ts,json}' 'package.json' '.pi/**/*.{yaml,yml}'",
22
+ "format:check": "prettier --check 'src/**/*.{ts,json}' 'package.json' '.pi/**/*.{yaml,yml}'",
21
23
  "check:all": "npm run format && npm run lint:fix && npm run build && npm test && npm run format:check && npm run lint",
22
24
  "type-check": "tsc --noEmit",
25
+ "prek:install": "prek install",
26
+ "prek:run": "prek run --all-files",
27
+ "prek:uninstall": "prek uninstall",
23
28
  "prepublishOnly": "npm run build"
24
29
  },
25
30
  "files": [
26
31
  "dist",
32
+ "!dist/**/*.test.*",
27
33
  "README.md",
28
34
  "LICENSE",
29
35
  ".pi"
@@ -50,29 +56,34 @@
50
56
  "author": "",
51
57
  "license": "Apache-2.0",
52
58
  "dependencies": {
59
+ "@earendil-works/pi-coding-agent": "^0.79.6",
53
60
  "@gitbeaker/node": "^35.8.1",
54
- "@mariozechner/pi-coding-agent": "^0.73.1",
55
61
  "@octokit/rest": "^21.0.0",
56
- "ajv": "^8.17.1",
62
+ "@sinclair/typebox": "^0.34.49",
63
+ "@temporalio/activity": "^1.18.1",
64
+ "@temporalio/client": "^1.18.1",
65
+ "@temporalio/worker": "^1.18.1",
66
+ "@temporalio/workflow": "^1.18.1",
67
+ "ajv": "^8.20.0",
57
68
  "chalk": "^5.3.0",
58
69
  "commander": "^12.0.0",
59
70
  "dotenv": "^16.0.0",
60
- "simple-git": "^3.22.0",
61
- "yaml": "^2.3.0"
71
+ "simple-git": "^3.36.0",
72
+ "yaml": "^2.9.0"
62
73
  },
63
74
  "devDependencies": {
64
- "@types/node": "^22.19.7",
65
- "@typescript-eslint/eslint-plugin": "^6.19.0",
66
- "@typescript-eslint/parser": "^6.19.0",
75
+ "@types/node": "^22.19.21",
76
+ "@typescript-eslint/eslint-plugin": "^8.61.1",
77
+ "@typescript-eslint/parser": "^8.61.1",
67
78
  "eslint": "^8.56.0",
68
79
  "eslint-config-prettier": "^10.1.8",
69
- "eslint-plugin-prettier": "^5.5.4",
70
- "prettier": "^3.7.4",
71
- "tsx": "^4.7.0",
80
+ "eslint-plugin-prettier": "^5.5.6",
81
+ "prettier": "^3.8.4",
82
+ "tsx": "^4.22.4",
72
83
  "typescript": "^5.3.0",
73
- "vitest": "^1.2.0"
84
+ "vitest": "^4.1.9"
74
85
  },
75
86
  "engines": {
76
- "node": ">=20.0.0"
87
+ "node": ">=22.19.0"
77
88
  }
78
89
  }
@@ -1,24 +0,0 @@
1
- name: github-pr-describe-post
2
- description: Generate and post a GitHub pull request description
3
- inputs:
4
- owner: ""
5
- repo: ""
6
- pr: ""
7
- nodes:
8
- change:
9
- action: change-source
10
- with:
11
- type: github-pr
12
- owner: "{{inputs.owner}}"
13
- repo: "{{inputs.repo}}"
14
- pr: "{{inputs.pr}}"
15
- output: change
16
-
17
- describe:
18
- action: describe
19
- needs:
20
- - change
21
- with:
22
- source: change
23
- post: true
24
- output: description
@@ -1,22 +0,0 @@
1
- name: gitlab-mr-describe-post
2
- description: Generate and post a GitLab merge request description
3
- inputs:
4
- project: ""
5
- mr: ""
6
- nodes:
7
- change:
8
- action: change-source
9
- with:
10
- type: gitlab-mr
11
- project: "{{inputs.project}}"
12
- mr: "{{inputs.mr}}"
13
- output: change
14
-
15
- describe:
16
- action: describe
17
- needs:
18
- - change
19
- with:
20
- source: change
21
- post: true
22
- output: description
@@ -1,31 +0,0 @@
1
- name: gitlab-mr-review-code-quality
2
- description: Review a GitLab merge request and write a GitLab Code Quality report
3
- inputs:
4
- project: ""
5
- mr: ""
6
- codeQualityReport: gl-code-quality-report.json
7
- nodes:
8
- change:
9
- action: change-source
10
- with:
11
- type: gitlab-mr
12
- project: "{{inputs.project}}"
13
- mr: "{{inputs.mr}}"
14
- output: change
15
-
16
- review:
17
- action: review
18
- needs:
19
- - change
20
- with:
21
- source: change
22
- output: review
23
-
24
- code-quality:
25
- action: code-quality-report
26
- needs:
27
- - review
28
- with:
29
- review: review
30
- path: "{{inputs.codeQualityReport}}"
31
- output: codeQualityReport
@@ -1,40 +0,0 @@
1
- name: gitlab-mr-review-post-code-quality
2
- description: Review a GitLab merge request, post DRS comments, and write a GitLab Code Quality report
3
- inputs:
4
- project: ""
5
- mr: ""
6
- codeQualityReport: gl-code-quality-report.json
7
- nodes:
8
- change:
9
- action: change-source
10
- with:
11
- type: gitlab-mr
12
- project: "{{inputs.project}}"
13
- mr: "{{inputs.mr}}"
14
- output: change
15
-
16
- review:
17
- action: review
18
- needs:
19
- - change
20
- with:
21
- source: change
22
- output: review
23
-
24
- post-comments:
25
- action: post-review-comments
26
- needs:
27
- - review
28
- with:
29
- source: change
30
- review: review
31
- output: postedReview
32
-
33
- code-quality:
34
- action: code-quality-report
35
- needs:
36
- - review
37
- with:
38
- review: review
39
- path: "{{inputs.codeQualityReport}}"
40
- output: codeQualityReport
@@ -1,30 +0,0 @@
1
- name: gitlab-mr-review-post
2
- description: Review a GitLab merge request and post DRS comments
3
- inputs:
4
- project: ""
5
- mr: ""
6
- nodes:
7
- change:
8
- action: change-source
9
- with:
10
- type: gitlab-mr
11
- project: "{{inputs.project}}"
12
- mr: "{{inputs.mr}}"
13
- output: change
14
-
15
- review:
16
- action: review
17
- needs:
18
- - change
19
- with:
20
- source: change
21
- output: review
22
-
23
- post-comments:
24
- action: post-review-comments
25
- needs:
26
- - review
27
- with:
28
- source: change
29
- review: review
30
- output: postedReview