lastlight 0.15.0 → 0.16.1

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 (382) hide show
  1. package/README.md +71 -692
  2. package/dist/cli-config.js.map +1 -0
  3. package/dist/cli-format.js.map +1 -0
  4. package/dist/{cli/cli-server.d.ts → cli-server.d.ts} +26 -1
  5. package/dist/{cli/cli-server.js → cli-server.js} +40 -5
  6. package/dist/cli-server.js.map +1 -0
  7. package/dist/cli-timeline.js.map +1 -0
  8. package/dist/{cli/cli.js → cli.js} +4 -3
  9. package/dist/cli.js.map +1 -0
  10. package/dist/{cli/fork-cli.d.ts → fork-cli.d.ts} +3 -3
  11. package/dist/{cli/fork-cli.js → fork-cli.js} +28 -27
  12. package/dist/fork-cli.js.map +1 -0
  13. package/dist/{cli/oauth-cli.js → oauth-cli.js} +1 -1
  14. package/dist/oauth-cli.js.map +1 -0
  15. package/dist/{cli/setup.js → setup.js} +10 -4
  16. package/dist/setup.js.map +1 -0
  17. package/dist/{cli/skills-install.d.ts → skills-install.d.ts} +6 -0
  18. package/dist/{cli/skills-install.js → skills-install.js} +6 -2
  19. package/dist/skills-install.js.map +1 -0
  20. package/package.json +20 -65
  21. package/plugins/lastlight/.claude-plugin/plugin.json +1 -1
  22. package/agent-context/rules.md +0 -80
  23. package/agent-context/security.md +0 -69
  24. package/agent-context/soul.md +0 -21
  25. package/config/default.yaml +0 -119
  26. package/deploy/.env.production.example +0 -100
  27. package/deploy/entrypoint.sh +0 -82
  28. package/deploy/native/README.md +0 -160
  29. package/deploy/native/install.sh +0 -110
  30. package/deploy/native/lastlight.env.example +0 -95
  31. package/deploy/native/lastlight.service +0 -50
  32. package/deploy/sandbox-entrypoint.sh +0 -93
  33. package/dist/admin/auth.d.ts +0 -51
  34. package/dist/admin/auth.js +0 -121
  35. package/dist/admin/auth.js.map +0 -1
  36. package/dist/admin/chat-session-reader.d.ts +0 -39
  37. package/dist/admin/chat-session-reader.js +0 -84
  38. package/dist/admin/chat-session-reader.js.map +0 -1
  39. package/dist/admin/docker.d.ts +0 -61
  40. package/dist/admin/docker.js +0 -187
  41. package/dist/admin/docker.js.map +0 -1
  42. package/dist/admin/index.d.ts +0 -9
  43. package/dist/admin/index.js +0 -59
  44. package/dist/admin/index.js.map +0 -1
  45. package/dist/admin/routes.d.ts +0 -81
  46. package/dist/admin/routes.js +0 -1381
  47. package/dist/admin/routes.js.map +0 -1
  48. package/dist/admin/sessions.d.ts +0 -89
  49. package/dist/admin/sessions.js +0 -204
  50. package/dist/admin/sessions.js.map +0 -1
  51. package/dist/admin/tail.d.ts +0 -12
  52. package/dist/admin/tail.js +0 -145
  53. package/dist/admin/tail.js.map +0 -1
  54. package/dist/admin/version.d.ts +0 -22
  55. package/dist/admin/version.js +0 -92
  56. package/dist/admin/version.js.map +0 -1
  57. package/dist/cli/cli-config.js.map +0 -1
  58. package/dist/cli/cli-format.js.map +0 -1
  59. package/dist/cli/cli-server.js.map +0 -1
  60. package/dist/cli/cli-timeline.js.map +0 -1
  61. package/dist/cli/cli.js.map +0 -1
  62. package/dist/cli/fork-cli.js.map +0 -1
  63. package/dist/cli/oauth-cli.js.map +0 -1
  64. package/dist/cli/setup.js.map +0 -1
  65. package/dist/cli/skills-install.js.map +0 -1
  66. package/dist/config/config-resolve.d.ts +0 -28
  67. package/dist/config/config-resolve.js +0 -47
  68. package/dist/config/config-resolve.js.map +0 -1
  69. package/dist/config/config.d.ts +0 -157
  70. package/dist/config/config.js +0 -581
  71. package/dist/config/config.js.map +0 -1
  72. package/dist/config/core-pin.d.ts +0 -16
  73. package/dist/config/core-pin.js +0 -85
  74. package/dist/config/core-pin.js.map +0 -1
  75. package/dist/config/overlay-assets.d.ts +0 -20
  76. package/dist/config/overlay-assets.js +0 -114
  77. package/dist/config/overlay-assets.js.map +0 -1
  78. package/dist/config/overlay-bootstrap.d.ts +0 -44
  79. package/dist/config/overlay-bootstrap.js +0 -304
  80. package/dist/config/overlay-bootstrap.js.map +0 -1
  81. package/dist/connectors/github-webhook.d.ts +0 -45
  82. package/dist/connectors/github-webhook.js +0 -321
  83. package/dist/connectors/github-webhook.js.map +0 -1
  84. package/dist/connectors/index.d.ts +0 -18
  85. package/dist/connectors/index.js +0 -41
  86. package/dist/connectors/index.js.map +0 -1
  87. package/dist/connectors/messaging/base.d.ts +0 -42
  88. package/dist/connectors/messaging/base.js +0 -139
  89. package/dist/connectors/messaging/base.js.map +0 -1
  90. package/dist/connectors/messaging/delivery.d.ts +0 -14
  91. package/dist/connectors/messaging/delivery.js +0 -38
  92. package/dist/connectors/messaging/delivery.js.map +0 -1
  93. package/dist/connectors/messaging/index.d.ts +0 -4
  94. package/dist/connectors/messaging/index.js +0 -4
  95. package/dist/connectors/messaging/index.js.map +0 -1
  96. package/dist/connectors/messaging/session-manager.d.ts +0 -53
  97. package/dist/connectors/messaging/session-manager.js +0 -255
  98. package/dist/connectors/messaging/session-manager.js.map +0 -1
  99. package/dist/connectors/messaging/types.d.ts +0 -58
  100. package/dist/connectors/messaging/types.js +0 -7
  101. package/dist/connectors/messaging/types.js.map +0 -1
  102. package/dist/connectors/slack/connector.d.ts +0 -100
  103. package/dist/connectors/slack/connector.js +0 -341
  104. package/dist/connectors/slack/connector.js.map +0 -1
  105. package/dist/connectors/slack/index.d.ts +0 -2
  106. package/dist/connectors/slack/index.js +0 -3
  107. package/dist/connectors/slack/index.js.map +0 -1
  108. package/dist/connectors/slack/mrkdwn.d.ts +0 -8
  109. package/dist/connectors/slack/mrkdwn.js +0 -123
  110. package/dist/connectors/slack/mrkdwn.js.map +0 -1
  111. package/dist/connectors/types.d.ts +0 -61
  112. package/dist/connectors/types.js +0 -2
  113. package/dist/connectors/types.js.map +0 -1
  114. package/dist/cron/fanout.d.ts +0 -33
  115. package/dist/cron/fanout.js +0 -55
  116. package/dist/cron/fanout.js.map +0 -1
  117. package/dist/cron/jobs.d.ts +0 -18
  118. package/dist/cron/jobs.js +0 -37
  119. package/dist/cron/jobs.js.map +0 -1
  120. package/dist/cron/scheduler.d.ts +0 -45
  121. package/dist/cron/scheduler.js +0 -105
  122. package/dist/cron/scheduler.js.map +0 -1
  123. package/dist/engine/agent-executor.d.ts +0 -34
  124. package/dist/engine/agent-executor.js +0 -246
  125. package/dist/engine/agent-executor.js.map +0 -1
  126. package/dist/engine/chat/chat-runner.d.ts +0 -132
  127. package/dist/engine/chat/chat-runner.js +0 -424
  128. package/dist/engine/chat/chat-runner.js.map +0 -1
  129. package/dist/engine/chat/chat-skills.d.ts +0 -45
  130. package/dist/engine/chat/chat-skills.js +0 -184
  131. package/dist/engine/chat/chat-skills.js.map +0 -1
  132. package/dist/engine/chat/chat.d.ts +0 -54
  133. package/dist/engine/chat/chat.js +0 -316
  134. package/dist/engine/chat/chat.js.map +0 -1
  135. package/dist/engine/chat/message-batcher.d.ts +0 -32
  136. package/dist/engine/chat/message-batcher.js +0 -109
  137. package/dist/engine/chat/message-batcher.js.map +0 -1
  138. package/dist/engine/dispatcher.d.ts +0 -73
  139. package/dist/engine/dispatcher.js +0 -663
  140. package/dist/engine/dispatcher.js.map +0 -1
  141. package/dist/engine/event-shim.d.ts +0 -117
  142. package/dist/engine/event-shim.js +0 -435
  143. package/dist/engine/event-shim.js.map +0 -1
  144. package/dist/engine/executors/orchestrator.d.ts +0 -81
  145. package/dist/engine/executors/orchestrator.js +0 -365
  146. package/dist/engine/executors/orchestrator.js.map +0 -1
  147. package/dist/engine/executors/shared.d.ts +0 -189
  148. package/dist/engine/executors/shared.js +0 -616
  149. package/dist/engine/executors/shared.js.map +0 -1
  150. package/dist/engine/github/git-auth.d.ts +0 -62
  151. package/dist/engine/github/git-auth.js +0 -161
  152. package/dist/engine/github/git-auth.js.map +0 -1
  153. package/dist/engine/github/github-app-client.d.ts +0 -23
  154. package/dist/engine/github/github-app-client.js +0 -33
  155. package/dist/engine/github/github-app-client.js.map +0 -1
  156. package/dist/engine/github/github-tools.d.ts +0 -18
  157. package/dist/engine/github/github-tools.js +0 -263
  158. package/dist/engine/github/github-tools.js.map +0 -1
  159. package/dist/engine/github/github.d.ts +0 -1193
  160. package/dist/engine/github/github.js +0 -357
  161. package/dist/engine/github/github.js.map +0 -1
  162. package/dist/engine/github/profiles.d.ts +0 -279
  163. package/dist/engine/github/profiles.js +0 -42
  164. package/dist/engine/github/profiles.js.map +0 -1
  165. package/dist/engine/github/review-poster.d.ts +0 -98
  166. package/dist/engine/github/review-poster.js +0 -177
  167. package/dist/engine/github/review-poster.js.map +0 -1
  168. package/dist/engine/llm.d.ts +0 -79
  169. package/dist/engine/llm.js +0 -269
  170. package/dist/engine/llm.js.map +0 -1
  171. package/dist/engine/oauth.d.ts +0 -43
  172. package/dist/engine/oauth.js +0 -103
  173. package/dist/engine/oauth.js.map +0 -1
  174. package/dist/engine/router.d.ts +0 -29
  175. package/dist/engine/router.js +0 -680
  176. package/dist/engine/router.js.map +0 -1
  177. package/dist/engine/screen/classifier.d.ts +0 -93
  178. package/dist/engine/screen/classifier.js +0 -215
  179. package/dist/engine/screen/classifier.js.map +0 -1
  180. package/dist/engine/screen/screen.d.ts +0 -41
  181. package/dist/engine/screen/screen.js +0 -93
  182. package/dist/engine/screen/screen.js.map +0 -1
  183. package/dist/evals-api.d.ts +0 -24
  184. package/dist/evals-api.js +0 -22
  185. package/dist/evals-api.js.map +0 -1
  186. package/dist/index.d.ts +0 -1
  187. package/dist/index.js +0 -923
  188. package/dist/index.js.map +0 -1
  189. package/dist/managed-repos.d.ts +0 -30
  190. package/dist/managed-repos.js +0 -72
  191. package/dist/managed-repos.js.map +0 -1
  192. package/dist/notify/index.d.ts +0 -15
  193. package/dist/notify/index.js +0 -6
  194. package/dist/notify/index.js.map +0 -1
  195. package/dist/notify/model.d.ts +0 -57
  196. package/dist/notify/model.js +0 -89
  197. package/dist/notify/model.js.map +0 -1
  198. package/dist/notify/notifier.d.ts +0 -17
  199. package/dist/notify/notifier.js +0 -87
  200. package/dist/notify/notifier.js.map +0 -1
  201. package/dist/notify/render.d.ts +0 -21
  202. package/dist/notify/render.js +0 -59
  203. package/dist/notify/render.js.map +0 -1
  204. package/dist/notify/transports/github.d.ts +0 -26
  205. package/dist/notify/transports/github.js +0 -26
  206. package/dist/notify/transports/github.js.map +0 -1
  207. package/dist/notify/transports/slack.d.ts +0 -26
  208. package/dist/notify/transports/slack.js +0 -28
  209. package/dist/notify/transports/slack.js.map +0 -1
  210. package/dist/notify/types.d.ts +0 -95
  211. package/dist/notify/types.js +0 -16
  212. package/dist/notify/types.js.map +0 -1
  213. package/dist/providers.d.ts +0 -125
  214. package/dist/providers.js +0 -279
  215. package/dist/providers.js.map +0 -1
  216. package/dist/sandbox/docker.d.ts +0 -180
  217. package/dist/sandbox/docker.js +0 -517
  218. package/dist/sandbox/docker.js.map +0 -1
  219. package/dist/sandbox/egress-allowlist.d.ts +0 -74
  220. package/dist/sandbox/egress-allowlist.js +0 -164
  221. package/dist/sandbox/egress-allowlist.js.map +0 -1
  222. package/dist/sandbox/egress-firewall-config.d.ts +0 -127
  223. package/dist/sandbox/egress-firewall-config.js +0 -434
  224. package/dist/sandbox/egress-firewall-config.js.map +0 -1
  225. package/dist/sandbox/images.d.ts +0 -23
  226. package/dist/sandbox/images.js +0 -55
  227. package/dist/sandbox/images.js.map +0 -1
  228. package/dist/sandbox/index.d.ts +0 -112
  229. package/dist/sandbox/index.js +0 -332
  230. package/dist/sandbox/index.js.map +0 -1
  231. package/dist/sandbox/sandbox.d.ts +0 -214
  232. package/dist/sandbox/sandbox.js +0 -453
  233. package/dist/sandbox/sandbox.js.map +0 -1
  234. package/dist/sandbox/smol.d.ts +0 -162
  235. package/dist/sandbox/smol.js +0 -485
  236. package/dist/sandbox/smol.js.map +0 -1
  237. package/dist/session-log.d.ts +0 -63
  238. package/dist/session-log.js +0 -290
  239. package/dist/session-log.js.map +0 -1
  240. package/dist/state/approval-store.d.ts +0 -88
  241. package/dist/state/approval-store.js +0 -149
  242. package/dist/state/approval-store.js.map +0 -1
  243. package/dist/state/build-assets.d.ts +0 -50
  244. package/dist/state/build-assets.js +0 -154
  245. package/dist/state/build-assets.js.map +0 -1
  246. package/dist/state/db.d.ts +0 -81
  247. package/dist/state/db.js +0 -155
  248. package/dist/state/db.js.map +0 -1
  249. package/dist/state/execution-store.d.ts +0 -257
  250. package/dist/state/execution-store.js +0 -527
  251. package/dist/state/execution-store.js.map +0 -1
  252. package/dist/state/migrate.d.ts +0 -15
  253. package/dist/state/migrate.js +0 -175
  254. package/dist/state/migrate.js.map +0 -1
  255. package/dist/state/workflow-run-store.d.ts +0 -216
  256. package/dist/state/workflow-run-store.js +0 -403
  257. package/dist/state/workflow-run-store.js.map +0 -1
  258. package/dist/telemetry/index.d.ts +0 -38
  259. package/dist/telemetry/index.js +0 -253
  260. package/dist/telemetry/index.js.map +0 -1
  261. package/dist/telemetry/pi-events.d.ts +0 -12
  262. package/dist/telemetry/pi-events.js +0 -134
  263. package/dist/telemetry/pi-events.js.map +0 -1
  264. package/dist/workflows/dag.d.ts +0 -37
  265. package/dist/workflows/dag.js +0 -118
  266. package/dist/workflows/dag.js.map +0 -1
  267. package/dist/workflows/loader.d.ts +0 -53
  268. package/dist/workflows/loader.js +0 -421
  269. package/dist/workflows/loader.js.map +0 -1
  270. package/dist/workflows/loop-eval.d.ts +0 -28
  271. package/dist/workflows/loop-eval.js +0 -74
  272. package/dist/workflows/loop-eval.js.map +0 -1
  273. package/dist/workflows/phase-executor.d.ts +0 -215
  274. package/dist/workflows/phase-executor.js +0 -1144
  275. package/dist/workflows/phase-executor.js.map +0 -1
  276. package/dist/workflows/phase-ref.d.ts +0 -50
  277. package/dist/workflows/phase-ref.js +0 -91
  278. package/dist/workflows/phase-ref.js.map +0 -1
  279. package/dist/workflows/resume.d.ts +0 -58
  280. package/dist/workflows/resume.js +0 -313
  281. package/dist/workflows/resume.js.map +0 -1
  282. package/dist/workflows/runner.d.ts +0 -63
  283. package/dist/workflows/runner.js +0 -364
  284. package/dist/workflows/runner.js.map +0 -1
  285. package/dist/workflows/schema.d.ts +0 -344
  286. package/dist/workflows/schema.js +0 -460
  287. package/dist/workflows/schema.js.map +0 -1
  288. package/dist/workflows/simple.d.ts +0 -90
  289. package/dist/workflows/simple.js +0 -393
  290. package/dist/workflows/simple.js.map +0 -1
  291. package/dist/workflows/target-policy.d.ts +0 -74
  292. package/dist/workflows/target-policy.js +0 -80
  293. package/dist/workflows/target-policy.js.map +0 -1
  294. package/dist/workflows/templates.d.ts +0 -88
  295. package/dist/workflows/templates.js +0 -127
  296. package/dist/workflows/templates.js.map +0 -1
  297. package/dist/workflows/triggers.d.ts +0 -21
  298. package/dist/workflows/triggers.js +0 -45
  299. package/dist/workflows/triggers.js.map +0 -1
  300. package/dist/workflows/verdict.d.ts +0 -19
  301. package/dist/workflows/verdict.js +0 -30
  302. package/dist/workflows/verdict.js.map +0 -1
  303. package/dist/worktree/manager.d.ts +0 -43
  304. package/dist/worktree/manager.js +0 -127
  305. package/dist/worktree/manager.js.map +0 -1
  306. package/docker-compose.yml +0 -274
  307. package/sandbox.Dockerfile +0 -68
  308. package/skills/README.md +0 -42
  309. package/skills/browser-qa/SKILL.md +0 -208
  310. package/skills/browser-qa/scripts/agent-browser.mjs +0 -531
  311. package/skills/building/SKILL.md +0 -95
  312. package/skills/chat/SKILL.md +0 -36
  313. package/skills/code-review/SKILL.md +0 -82
  314. package/skills/debug-production/SKILL.md +0 -108
  315. package/skills/demo/SKILL.md +0 -228
  316. package/skills/demo/scripts/compose-demo.sh +0 -243
  317. package/skills/issue-answer/SKILL.md +0 -91
  318. package/skills/issue-comment/SKILL.md +0 -49
  319. package/skills/issue-triage/SKILL.md +0 -149
  320. package/skills/issue-triage/references/AGENT-BRIEF.md +0 -65
  321. package/skills/pr-comment/SKILL.md +0 -64
  322. package/skills/pr-review/SKILL.md +0 -148
  323. package/skills/pr-review/references/findings-schema.md +0 -89
  324. package/skills/qa-test/SKILL.md +0 -97
  325. package/skills/repo-health/SKILL.md +0 -67
  326. package/skills/security-feedback/SKILL.md +0 -173
  327. package/skills/security-feedback/references/templates.md +0 -77
  328. package/skills/security-review/SKILL.md +0 -215
  329. package/skills/security-review/references/issue-format.md +0 -302
  330. package/skills/verify/SKILL.md +0 -118
  331. package/workflows/answer.yaml +0 -44
  332. package/workflows/build.yaml +0 -129
  333. package/workflows/cron-health.yaml +0 -6
  334. package/workflows/cron-review.yaml +0 -8
  335. package/workflows/cron-security.yaml +0 -6
  336. package/workflows/cron-triage.yaml +0 -8
  337. package/workflows/demo.yaml +0 -62
  338. package/workflows/examples/bash-smoke.yaml +0 -41
  339. package/workflows/examples/parallel-review.yaml +0 -36
  340. package/workflows/examples/tdd-loop.yaml +0 -17
  341. package/workflows/explore.yaml +0 -80
  342. package/workflows/issue-comment.yaml +0 -15
  343. package/workflows/issue-triage.yaml +0 -22
  344. package/workflows/pr-comment.yaml +0 -16
  345. package/workflows/pr-fix.yaml +0 -17
  346. package/workflows/pr-review.yaml +0 -50
  347. package/workflows/prompts/answer.md +0 -68
  348. package/workflows/prompts/architect.md +0 -44
  349. package/workflows/prompts/classifier.md +0 -60
  350. package/workflows/prompts/classify-adds-info.md +0 -17
  351. package/workflows/prompts/demo.md +0 -125
  352. package/workflows/prompts/executor.md +0 -42
  353. package/workflows/prompts/explore-ask.md +0 -99
  354. package/workflows/prompts/explore-publish.md +0 -31
  355. package/workflows/prompts/explore-read.md +0 -120
  356. package/workflows/prompts/explore-synthesize.md +0 -88
  357. package/workflows/prompts/fix.md +0 -18
  358. package/workflows/prompts/guardrails.md +0 -96
  359. package/workflows/prompts/pr-fix.md +0 -26
  360. package/workflows/prompts/pr.md +0 -39
  361. package/workflows/prompts/qa-browser.md +0 -95
  362. package/workflows/prompts/qa-synth.md +0 -44
  363. package/workflows/prompts/qa-test.md +0 -60
  364. package/workflows/prompts/re-reviewer.md +0 -33
  365. package/workflows/prompts/reviewer.md +0 -60
  366. package/workflows/prompts/verify-browser.md +0 -93
  367. package/workflows/prompts/verify-synth.md +0 -44
  368. package/workflows/prompts/verify.md +0 -63
  369. package/workflows/qa-test.yaml +0 -94
  370. package/workflows/repo-health.yaml +0 -15
  371. package/workflows/security-feedback.yaml +0 -25
  372. package/workflows/security-review.yaml +0 -37
  373. package/workflows/verify.yaml +0 -93
  374. /package/dist/{cli/cli-config.d.ts → cli-config.d.ts} +0 -0
  375. /package/dist/{cli/cli-config.js → cli-config.js} +0 -0
  376. /package/dist/{cli/cli-format.d.ts → cli-format.d.ts} +0 -0
  377. /package/dist/{cli/cli-format.js → cli-format.js} +0 -0
  378. /package/dist/{cli/cli-timeline.d.ts → cli-timeline.d.ts} +0 -0
  379. /package/dist/{cli/cli-timeline.js → cli-timeline.js} +0 -0
  380. /package/dist/{cli/cli.d.ts → cli.d.ts} +0 -0
  381. /package/dist/{cli/oauth-cli.d.ts → oauth-cli.d.ts} +0 -0
  382. /package/dist/{cli/setup.d.ts → setup.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/workflows/resume.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- import type { ExecutorConfig, GitAccessProfile, GitSandboxAccess } from "../engine/github/profiles.js";
2
- import type { StateDb } from "../state/db.js";
3
- import type { ModelConfig, VariantConfig } from "../config/config.js";
4
- import type { AgentWorkflowDefinition } from "./schema.js";
5
- import { type TemplateContext } from "./templates.js";
6
- import { isTerminated } from "./phase-executor.js";
7
- import type { ProgressReporter } from "../notify/types.js";
8
- export { isTerminated };
9
- /**
10
- * Map of approval gate name → enabled. Gate names are arbitrary strings
11
- * declared in YAML (`phase.approval_gate`, `phase.loop.approval_gate`); a
12
- * gate pauses only if the corresponding key is `true` here.
13
- */
14
- export type ApprovalGateConfig = Record<string, boolean>;
15
- export interface PhaseResult {
16
- phase: string;
17
- success: boolean;
18
- output: string;
19
- error?: string;
20
- }
21
- export interface RunnerCallbacks {
22
- onPhaseStart?: (phase: string) => Promise<void>;
23
- onPhaseEnd?: (phase: string, result: PhaseResult) => Promise<void>;
24
- postComment?: (body: string) => Promise<void>;
25
- /**
26
- * In-place "task list" progress surface. When set (workflows that opt in via
27
- * `status_checklist: true`), the runner drives this instead of posting a new
28
- * comment per phase. When unset, the runner falls back to `postComment`.
29
- */
30
- reporter?: ProgressReporter;
31
- /**
32
- * Fires once the workflow_runs row is known. Used by the Slack dispatch path
33
- * to post the "Starting <skill>" reply with a deep link to the run.
34
- */
35
- onRunStart?: (runId: string) => Promise<void>;
36
- /**
37
- * Public base URL of the admin dashboard (`config.publicUrl`). When set, the
38
- * progress checklist embeds a live-run deep link in its meta. Undefined when
39
- * no public URL is configured (the link is simply omitted).
40
- */
41
- publicUrl?: string;
42
- }
43
- export interface WorkflowResult {
44
- success: boolean;
45
- phases: PhaseResult[];
46
- prNumber?: number;
47
- paused?: boolean;
48
- }
49
- export declare function gitAccessProfileForWorkflow(workflowName: string): GitAccessProfile;
50
- export declare function gitSandboxAccessForWorkflow(workflowName: string, owner: string, repo: string, prePopulateBranch?: string, runId?: string): GitSandboxAccess;
51
- /**
52
- * Run an agent workflow defined by a YAML definition.
53
- *
54
- * Every workflow executes as a DAG: workflows that declare no `depends_on`
55
- * are run as a synthesized chain (each phase depends on the one before it),
56
- * reproducing the old linear semantics including the failure cascade. Ready
57
- * nodes are executed **one at a time in declaration order** (sequential).
58
- * Each node's body — context / standard agent / reviewer-loop / generic-loop,
59
- * plus approval and reply gates — lives in {@link PhaseExecutor}; the
60
- * scheduler here owns the DAG, the `phases[]`/`outputs{}` accumulation, and
61
- * the in-memory node status.
62
- */
63
- export declare function runWorkflow(definition: AgentWorkflowDefinition, ctx: TemplateContext, config: ExecutorConfig, callbacks: RunnerCallbacks, db?: StateDb, models?: ModelConfig, approvalConfig?: ApprovalGateConfig, workflowId?: string, variants?: VariantConfig): Promise<WorkflowResult>;
@@ -1,364 +0,0 @@
1
- import { resolveModel, resolveVariant } from "../config/config.js";
2
- import { loadPromptTemplate } from "./loader.js";
3
- import { renderTemplate } from "./templates.js";
4
- import { buildDag, getReadyNodes, getNodesToSkip, isComplete } from "./dag.js";
5
- import { PER_TARGET_RECREATE_WORKFLOWS } from "./target-policy.js";
6
- import { qaImageAvailable, SANDBOX_IMAGE_QA } from "../sandbox/images.js";
7
- import { PhaseExecutor, isTerminated, } from "./phase-executor.js";
8
- import { collapseDetail } from "../notify/render.js";
9
- // `isTerminated` used to live here; re-exported for API stability.
10
- export { isTerminated };
11
- export function gitAccessProfileForWorkflow(workflowName) {
12
- switch (workflowName) {
13
- case "build":
14
- case "pr-fix":
15
- return "repo-write";
16
- case "pr-review":
17
- return "review-write";
18
- case "issue-triage":
19
- case "issue-comment":
20
- case "pr-comment":
21
- case "explore":
22
- case "answer":
23
- case "security-review":
24
- // verify / qa-test / demo read the repo and post a findings/demo comment —
25
- // they never push code, so issues-write (contents:read + issues:write) is
26
- // enough.
27
- case "verify":
28
- case "qa-test":
29
- case "demo":
30
- return "issues-write";
31
- case "security-feedback":
32
- return "repo-write";
33
- default:
34
- return "read";
35
- }
36
- }
37
- export function gitSandboxAccessForWorkflow(workflowName, owner, repo, prePopulateBranch, runId) {
38
- const profile = gitAccessProfileForWorkflow(workflowName);
39
- return {
40
- owner,
41
- repo,
42
- profile,
43
- // Never forward the App PEM into sandboxes. The harness already mints a
44
- // profile-scoped token and forwards it as GITHUB_TOKEN, so the agent gets
45
- // github tools in static-token mode without the App private key ever
46
- // entering the sandbox.
47
- allowMcpAppAuth: false,
48
- prePopulateBranch,
49
- runId,
50
- // Read-only workflows never need git history — clone at --depth 1. Only
51
- // the code-pushing profiles (build / pr-fix / security-feedback) keep the
52
- // deeper clone for rebase/amend headroom.
53
- shallow: profile !== "repo-write",
54
- // `build` recreates its workspace from the default branch on a fresh run
55
- // (issue #153) rather than refreshing a possibly-stale feature branch.
56
- recreateFromBase: PER_TARGET_RECREATE_WORKFLOWS.has(workflowName),
57
- };
58
- }
59
- // ── Unified workflow scheduler ───────────────────────────────────────────────
60
- /**
61
- * Run an agent workflow defined by a YAML definition.
62
- *
63
- * Every workflow executes as a DAG: workflows that declare no `depends_on`
64
- * are run as a synthesized chain (each phase depends on the one before it),
65
- * reproducing the old linear semantics including the failure cascade. Ready
66
- * nodes are executed **one at a time in declaration order** (sequential).
67
- * Each node's body — context / standard agent / reviewer-loop / generic-loop,
68
- * plus approval and reply gates — lives in {@link PhaseExecutor}; the
69
- * scheduler here owns the DAG, the `phases[]`/`outputs{}` accumulation, and
70
- * the in-memory node status.
71
- */
72
- export async function runWorkflow(definition, ctx, config, callbacks, db, models, approvalConfig, workflowId, variants) {
73
- const phases = [];
74
- const outputs = {};
75
- const { taskId } = ctx;
76
- // Slack-originated runs carry an explicit `slack:` trigger id — everything
77
- // else (GitHub webhook, CLI) uses the legacy owner/repo#N shape.
78
- const triggerId = ctx.triggerIdOverride
79
- || `${ctx.owner}/${ctx.repo}#${ctx.issueNumber}`;
80
- // Load scratch state from the workflow run so generic loops can resume
81
- // iteration at the right index and templates can read {{scratch.*}}.
82
- const scratch = ctx.scratch
83
- ? { ...ctx.scratch }
84
- : (db && workflowId ? { ...(db.runs.getRun(workflowId)?.scratch ?? {}) } : {});
85
- ctx.scratch = scratch;
86
- const prePopulateBranch = typeof ctx.prePopulateBranch === "string"
87
- ? ctx.prePopulateBranch
88
- : undefined;
89
- const githubAccess = gitSandboxAccessForWorkflow(definition.name, ctx.owner, ctx.repo, prePopulateBranch, workflowId);
90
- const notify = callbacks.postComment || (async () => { });
91
- const reporter = callbacks.reporter;
92
- const onStart = callbacks.onPhaseStart || (async () => { });
93
- const onEnd = callbacks.onPhaseEnd || (async () => { });
94
- // Terminal step key — dynamic loop steps (re-review / fix cycles) are
95
- // inserted just above it so the checklist reads top-to-bottom in run order.
96
- const lastPhaseKey = [...definition.phases]
97
- .reverse()
98
- .find((p) => (p.type ?? "agent") !== "context")?.name;
99
- const modelFor = (taskType) => models ? resolveModel(models, taskType) : undefined;
100
- const variantFor = (taskType) => variants ? resolveVariant(variants, taskType) : undefined;
101
- /** Render a prompt template with current context + outputs. */
102
- const renderPrompt = (promptPath, extraCtx) => {
103
- const template = loadPromptTemplate(promptPath);
104
- return renderTemplate(template, { ...ctx, phaseOutputs: outputs, ...(extraCtx || {}) });
105
- };
106
- /**
107
- * Render a YAML message template and post it as a *standalone* message.
108
- * Routes through `reporter.note()` when the in-place checklist is active,
109
- * else the legacy `postComment`.
110
- */
111
- const notifyMessage = async (template, extraCtx) => {
112
- if (!template)
113
- return;
114
- const rendered = renderTemplate(template, { ...ctx, phaseOutputs: outputs, ...(extraCtx || {}) });
115
- if (!rendered.trim())
116
- return;
117
- if (reporter)
118
- await reporter.note(rendered);
119
- else
120
- await notify(rendered);
121
- };
122
- /** Post a pre-rendered standalone message (already-built string). */
123
- const postNote = async (text) => {
124
- if (!text.trim())
125
- return;
126
- if (reporter)
127
- await reporter.note(text);
128
- else
129
- await notify(text);
130
- };
131
- /** Transition a checklist step (and optionally render a YAML message detail). */
132
- const reportStep = async (key, status, template, extraCtx, opts) => {
133
- const rendered = template
134
- ? renderTemplate(template, { ...ctx, phaseOutputs: outputs, ...(extraCtx || {}) }).trim()
135
- : "";
136
- if (reporter) {
137
- const detail = collapseDetail(rendered);
138
- if (opts?.insert) {
139
- const step = { key, label: opts.label ?? key, status, detail };
140
- await reporter.insertStep(step, opts.insertBefore ?? lastPhaseKey);
141
- }
142
- else {
143
- await reporter.step(key, status, detail);
144
- }
145
- if (opts?.alsoNote && rendered)
146
- await reporter.note(rendered);
147
- }
148
- else if (rendered) {
149
- await notify(rendered);
150
- }
151
- };
152
- /** Persist a phase transition to the DB workflow run. */
153
- const persistPhase = (phase, summary) => {
154
- if (db && workflowId) {
155
- const entry = {
156
- phase,
157
- timestamp: new Date().toISOString(),
158
- success: true,
159
- summary,
160
- };
161
- db.runs.appendPhase(workflowId, phase, entry);
162
- }
163
- };
164
- /** Mark the workflow run as failed. */
165
- const failWorkflow = (errorMsg) => {
166
- if (db && workflowId) {
167
- db.runs.finishRun(workflowId, "failed", { error: errorMsg });
168
- }
169
- };
170
- /** Should an approval gate with this name actually pause the workflow? */
171
- const gateEnabled = (gateName) => !!gateName && approvalConfig?.[gateName] === true;
172
- // ── Collaborators ───────────────────────────────────────────────────────────
173
- const runScope = {
174
- definition,
175
- ctx,
176
- config,
177
- taskId,
178
- triggerId,
179
- githubAccess,
180
- scratch,
181
- db,
182
- workflowId,
183
- };
184
- const phaseReporter = {
185
- onStart,
186
- onEnd,
187
- step: reportStep,
188
- message: notifyMessage,
189
- postNote,
190
- persistPhase,
191
- failWorkflow,
192
- };
193
- const phaseResolver = {
194
- modelFor,
195
- variantFor,
196
- renderPrompt,
197
- gateEnabled,
198
- };
199
- const executor = new PhaseExecutor(runScope, phaseReporter, phaseResolver);
200
- // ── Schedule ─────────────────────────────────────────────────────────────────
201
- const dag = buildDag(definition.phases, { chainIfNoDeps: true });
202
- // Phase lookup + the backend this run is actually executing on. Used by the
203
- // `requires_sandbox` gate below — config.sandbox is undefined when no backend
204
- // override is set, which resolves to gondolin (see agent-executor).
205
- const phaseByName = new Map(definition.phases.map((p) => [p.name, p]));
206
- const activeBackend = config.sandbox ?? "gondolin";
207
- while (!isComplete(dag)) {
208
- // Honour a cancel that landed during the previous phase's execution.
209
- if (db && workflowId) {
210
- const latest = db.runs.getRun(workflowId);
211
- if (latest?.status === "cancelled") {
212
- console.log(`[runner] ${definition.name} cancelled — stopping`);
213
- return { success: false, phases };
214
- }
215
- }
216
- // Skip nodes whose trigger rule fails (deps terminal, rule unsatisfied).
217
- // This is how a failure cascades to the end of a chain as skips. Skips are
218
- // recorded in the executions ledger — the single source of truth the
219
- // dashboard derives phase status from.
220
- const toSkip = getNodesToSkip(dag);
221
- for (const node of toSkip) {
222
- node.status = "skipped";
223
- phases.push({ phase: node.name, success: true, output: "Skipped (trigger rule not satisfied)" });
224
- db?.executions.recordSkippedPhase(`${definition.name}:${node.name}`, triggerId, workflowId, githubAccess.repo);
225
- await reportStep(node.name, "skipped");
226
- }
227
- const ready = getReadyNodes(dag);
228
- // Capability gate: skip any ready node whose declared capability isn't
229
- // available on this host. Safe-by-default graceful degradation — a gated
230
- // phase (e.g. the browser-QA step that needs the docker image) silently
231
- // no-ops instead of failing the workflow. Two reasons trigger a skip:
232
- // 1. `requires_sandbox` names a backend other than the one running.
233
- // 2. `sandbox_image: qa` but the browser-QA image isn't built here (only
234
- // checked on docker — on other backends the field is inert).
235
- // Uses the same non-failing skip mechanics as the trigger-rule skip above,
236
- // plus the phase's `on_skipped_done` message so the user sees why.
237
- const gatedSkip = [];
238
- for (const node of ready) {
239
- const phaseDef = phaseByName.get(node.name);
240
- const req = phaseDef?.requires_sandbox;
241
- if (req !== undefined && req !== activeBackend) {
242
- gatedSkip.push({ node, reason: `requires ${req} sandbox; running ${activeBackend}` });
243
- }
244
- else if (phaseDef?.sandbox_image === "qa" &&
245
- activeBackend === "docker" &&
246
- !qaImageAvailable()) {
247
- gatedSkip.push({ node, reason: `requires the ${SANDBOX_IMAGE_QA} image, not built on this host` });
248
- }
249
- }
250
- if (gatedSkip.length > 0) {
251
- for (const { node, reason } of gatedSkip) {
252
- node.status = "skipped";
253
- const phaseDef = phaseByName.get(node.name);
254
- phases.push({
255
- phase: node.name,
256
- success: true,
257
- output: `Skipped (${reason})`,
258
- });
259
- db?.executions.recordSkippedPhase(`${definition.name}:${node.name}`, triggerId, workflowId, githubAccess.repo);
260
- await reportStep(node.name, "skipped", phaseDef?.messages?.on_skipped_done);
261
- }
262
- continue; // re-evaluate the DAG with these nodes now terminal
263
- }
264
- if (ready.length === 0) {
265
- if (toSkip.length === 0)
266
- break; // stuck (shouldn't happen in a valid DAG)
267
- continue; // only had skips — loop to process downstream
268
- }
269
- // Sequential: run the earliest-declared ready node, one at a time.
270
- // Resume is ledger-driven: a completed phase's `runPhase` call returns
271
- // skipped:done via `shouldRunPhase`, so re-running from the top is safe.
272
- const node = ready[0];
273
- node.status = "running";
274
- let outcome;
275
- try {
276
- outcome = await executor.execute(node, outputs);
277
- }
278
- catch (err) {
279
- // An agent call threw (OOM / unexpected). Mark the node failed so the
280
- // failure cascades to downstream skips, mirroring a normal failure.
281
- console.error(`[runner] Phase "${node.name}" threw unexpectedly:`, err);
282
- phases.push({ phase: node.name, success: false, error: String(err), output: "" });
283
- node.status = "failed";
284
- continue;
285
- }
286
- for (const r of outcome.results)
287
- phases.push(r);
288
- if (outcome.outputVars)
289
- Object.assign(outputs, outcome.outputVars);
290
- if (outcome.aborted) {
291
- // Dedup running-skip — another instance owns this phase. Stop without
292
- // cascading skips; this isn't a phase failure.
293
- return { success: false, phases };
294
- }
295
- if (outcome.paused) {
296
- return { success: true, phases, paused: true };
297
- }
298
- node.status = outcome.status;
299
- }
300
- // ── Workflow wrap-up ──────────────────────────────────────────────────────
301
- //
302
- // If the definition declares an `on_success.set_phase` terminal marker on any
303
- // phase, record it so the DB row shows the workflow as fully complete. Also
304
- // opportunistically extract a PR number from the terminal phase's output.
305
- const anyFailed = phases.some((p) => !p.success);
306
- const success = !anyFailed;
307
- let prNumber;
308
- let prUrl;
309
- const terminalPhase = [...definition.phases].reverse().find((p) => p.on_success?.set_phase);
310
- if (terminalPhase) {
311
- const terminalResult = phases.find((p) => p.phase === terminalPhase.name);
312
- const prMatch = terminalResult?.output?.match(/#(\d+)/);
313
- if (prMatch)
314
- prNumber = parseInt(prMatch[1], 10);
315
- const urlMatch = terminalResult?.output?.match(/https?:\/\/[^\s)]+\/pull\/\d+/);
316
- if (urlMatch)
317
- prUrl = urlMatch[0];
318
- }
319
- if (success) {
320
- if (db && workflowId) {
321
- // Fold the `on_success.set_phase` terminal marker into the same
322
- // transaction as the status flip so the dashboard never sees one
323
- // without the other.
324
- const terminalMarker = terminalPhase?.on_success?.set_phase
325
- ? { phase: terminalPhase.on_success.set_phase, summary: prNumber ? `PR #${prNumber}` : undefined }
326
- : undefined;
327
- db.runs.finishRun(workflowId, "succeeded", terminalMarker ? { terminalMarker } : {});
328
- }
329
- }
330
- else {
331
- const firstFailure = phases.find((p) => !p.success);
332
- failWorkflow(firstFailure?.error || "workflow failed");
333
- }
334
- // Single final update: render the workflow's `final_message` against the
335
- // accumulated outputs and deliver it once — folded into the checklist comment
336
- // as its footer when the in-place reporter is active, else posted as one
337
- // standalone comment. Empty render ⇒ no-op (e.g. the synthesizing phase was
338
- // skipped). This is what lets verify/qa-test end with a single combined
339
- // verdict instead of a comment per phase.
340
- if (success && definition.final_message) {
341
- const finalRendered = renderTemplate(definition.final_message, {
342
- ...ctx,
343
- phaseOutputs: outputs,
344
- }).trim();
345
- if (finalRendered) {
346
- if (reporter)
347
- await reporter.footer(finalRendered);
348
- else
349
- await notify(finalRendered);
350
- }
351
- }
352
- if (reporter) {
353
- if (success && prNumber && terminalPhase) {
354
- const link = prUrl ? `[PR #${prNumber}](${prUrl})` : `PR #${prNumber}`;
355
- await reporter.step(terminalPhase.name, "done", link);
356
- }
357
- const prSuffix = prNumber ? ` — PR #${prNumber}` : "";
358
- await reporter.noteTerminal(success
359
- ? `✅ **${definition.name} complete**${prSuffix}.`
360
- : `❌ **${definition.name} failed** — see the checklist above for the failing step.`);
361
- }
362
- return { success, phases, prNumber };
363
- }
364
- //# sourceMappingURL=runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"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"}