lastlight 0.1.15 → 0.2.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.
- package/README.md +265 -118
- package/agent-context/rules.md +62 -9
- package/agent-context/security.md +69 -0
- package/config/default.yaml +89 -0
- package/deploy/.env.production.example +20 -2
- package/deploy/entrypoint.sh +16 -17
- package/deploy/native/README.md +160 -0
- package/deploy/native/install.sh +110 -0
- package/deploy/native/lastlight.env.example +95 -0
- package/deploy/native/lastlight.service +50 -0
- package/deploy/sandbox-entrypoint.sh +59 -42
- package/dist/admin/auth.d.ts +1 -1
- package/dist/admin/auth.js +3 -1
- package/dist/admin/auth.js.map +1 -1
- package/dist/admin/chat-session-reader.d.ts +11 -14
- package/dist/admin/chat-session-reader.js +27 -51
- package/dist/admin/chat-session-reader.js.map +1 -1
- package/dist/admin/docker.d.ts +37 -0
- package/dist/admin/docker.js +86 -1
- package/dist/admin/docker.js.map +1 -1
- package/dist/admin/index.js +38 -3
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/log-search.test.d.ts +1 -0
- package/dist/admin/log-search.test.js +78 -0
- package/dist/admin/log-search.test.js.map +1 -0
- package/dist/admin/routes.d.ts +52 -3
- package/dist/admin/routes.js +780 -63
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/routes.test.js +680 -14
- package/dist/admin/routes.test.js.map +1 -1
- package/dist/admin/server-logs.test.d.ts +1 -0
- package/dist/admin/server-logs.test.js +58 -0
- package/dist/admin/server-logs.test.js.map +1 -0
- package/dist/admin/sessions.d.ts +26 -39
- package/dist/admin/sessions.js +86 -310
- package/dist/admin/sessions.js.map +1 -1
- package/dist/admin/sessions.test.d.ts +1 -0
- package/dist/admin/sessions.test.js +78 -0
- package/dist/admin/sessions.test.js.map +1 -0
- package/dist/admin/version.d.ts +15 -0
- package/dist/admin/version.js +73 -0
- package/dist/admin/version.js.map +1 -0
- package/dist/admin/version.test.d.ts +1 -0
- package/dist/admin/version.test.js +71 -0
- package/dist/admin/version.test.js.map +1 -0
- package/dist/cli-config.d.ts +55 -0
- package/dist/cli-config.js +119 -0
- package/dist/cli-config.js.map +1 -0
- package/dist/cli-config.test.d.ts +1 -0
- package/dist/cli-config.test.js +92 -0
- package/dist/cli-config.test.js.map +1 -0
- package/dist/cli-format.d.ts +19 -0
- package/dist/cli-format.js +107 -0
- package/dist/cli-format.js.map +1 -0
- package/dist/cli-server.d.ts +73 -0
- package/dist/cli-server.js +347 -0
- package/dist/cli-server.js.map +1 -0
- package/dist/cli-server.test.d.ts +1 -0
- package/dist/cli-server.test.js +38 -0
- package/dist/cli-server.test.js.map +1 -0
- package/dist/cli-timeline.d.ts +35 -0
- package/dist/cli-timeline.js +373 -0
- package/dist/cli-timeline.js.map +1 -0
- package/dist/cli-timeline.test.d.ts +1 -0
- package/dist/cli-timeline.test.js +104 -0
- package/dist/cli-timeline.test.js.map +1 -0
- package/dist/cli.d.ts +0 -19
- package/dist/cli.js +910 -194
- package/dist/cli.js.map +1 -1
- package/dist/config-overlay.test.d.ts +1 -0
- package/dist/config-overlay.test.js +112 -0
- package/dist/config-overlay.test.js.map +1 -0
- package/dist/config-resolve.d.ts +28 -0
- package/dist/config-resolve.js +47 -0
- package/dist/config-resolve.js.map +1 -0
- package/dist/config-resolve.test.d.ts +1 -0
- package/dist/config-resolve.test.js +68 -0
- package/dist/config-resolve.test.js.map +1 -0
- package/dist/config.d.ts +62 -49
- package/dist/config.js +452 -76
- package/dist/config.js.map +1 -1
- package/dist/config.test.js +201 -32
- package/dist/config.test.js.map +1 -1
- package/dist/connectors/github-webhook.js +83 -5
- package/dist/connectors/github-webhook.js.map +1 -1
- package/dist/connectors/github-webhook.test.d.ts +1 -0
- package/dist/connectors/github-webhook.test.js +156 -0
- package/dist/connectors/github-webhook.test.js.map +1 -0
- package/dist/connectors/messaging/session-manager.d.ts +18 -0
- package/dist/connectors/messaging/session-manager.js +83 -2
- package/dist/connectors/messaging/session-manager.js.map +1 -1
- package/dist/connectors/messaging/session-manager.test.d.ts +1 -0
- package/dist/connectors/messaging/session-manager.test.js +144 -0
- package/dist/connectors/messaging/session-manager.test.js.map +1 -0
- package/dist/connectors/slack/connector.d.ts +9 -0
- package/dist/connectors/slack/connector.js +15 -0
- package/dist/connectors/slack/connector.js.map +1 -1
- package/dist/connectors/slack/mrkdwn.js +81 -0
- package/dist/connectors/slack/mrkdwn.js.map +1 -1
- package/dist/connectors/slack/mrkdwn.test.js +49 -0
- package/dist/connectors/slack/mrkdwn.test.js.map +1 -1
- package/dist/connectors/types.d.ts +1 -1
- package/dist/cron/fanout.d.ts +33 -0
- package/dist/cron/fanout.js +55 -0
- package/dist/cron/fanout.js.map +1 -0
- package/dist/cron/fanout.test.d.ts +1 -0
- package/dist/cron/fanout.test.js +73 -0
- package/dist/cron/fanout.test.js.map +1 -0
- package/dist/cron/jobs.d.ts +5 -0
- package/dist/cron/jobs.js +10 -3
- package/dist/cron/jobs.js.map +1 -1
- package/dist/cron/scheduler.d.ts +12 -0
- package/dist/cron/scheduler.js +27 -1
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/engine/agent-executor.d.ts +158 -0
- package/dist/engine/agent-executor.js +1140 -0
- package/dist/engine/agent-executor.js.map +1 -0
- package/dist/engine/agent-executor.test.d.ts +1 -0
- package/dist/engine/agent-executor.test.js +395 -0
- package/dist/engine/agent-executor.test.js.map +1 -0
- package/dist/engine/chat-runner.d.ts +123 -0
- package/dist/engine/chat-runner.js +379 -0
- package/dist/engine/chat-runner.js.map +1 -0
- package/dist/engine/chat-runner.test.d.ts +1 -0
- package/dist/engine/chat-runner.test.js +104 -0
- package/dist/engine/chat-runner.test.js.map +1 -0
- package/dist/engine/chat-skills.d.ts +45 -0
- package/dist/engine/chat-skills.js +184 -0
- package/dist/engine/chat-skills.js.map +1 -0
- package/dist/engine/chat-skills.test.d.ts +1 -0
- package/dist/engine/chat-skills.test.js +20 -0
- package/dist/engine/chat-skills.test.js.map +1 -0
- package/dist/engine/chat.d.ts +20 -23
- package/dist/engine/chat.js +251 -155
- package/dist/engine/chat.js.map +1 -1
- package/dist/engine/chat.test.d.ts +1 -0
- package/dist/engine/chat.test.js +42 -0
- package/dist/engine/chat.test.js.map +1 -0
- package/dist/engine/classifier.d.ts +35 -2
- package/dist/engine/classifier.js +170 -31
- package/dist/engine/classifier.js.map +1 -1
- package/dist/engine/classifier.test.d.ts +1 -0
- package/dist/engine/classifier.test.js +115 -0
- package/dist/engine/classifier.test.js.map +1 -0
- package/dist/engine/dispatcher.d.ts +60 -0
- package/dist/engine/dispatcher.js +601 -0
- package/dist/engine/dispatcher.js.map +1 -0
- package/dist/engine/dispatcher.test.d.ts +1 -0
- package/dist/engine/dispatcher.test.js +511 -0
- package/dist/engine/dispatcher.test.js.map +1 -0
- package/dist/engine/event-shim.d.ts +117 -0
- package/dist/engine/event-shim.js +435 -0
- package/dist/engine/event-shim.js.map +1 -0
- package/dist/engine/event-shim.test.d.ts +1 -0
- package/dist/engine/event-shim.test.js +194 -0
- package/dist/engine/event-shim.test.js.map +1 -0
- package/dist/engine/git-auth.d.ts +13 -17
- package/dist/engine/git-auth.js +99 -42
- package/dist/engine/git-auth.js.map +1 -1
- package/dist/engine/git-auth.test.d.ts +1 -0
- package/dist/engine/git-auth.test.js +117 -0
- package/dist/engine/git-auth.test.js.map +1 -0
- package/dist/engine/github-app-client.d.ts +7 -0
- package/dist/engine/github-app-client.js +16 -0
- package/dist/engine/github-app-client.js.map +1 -0
- package/dist/engine/github-app-client.test.d.ts +1 -0
- package/dist/engine/github-app-client.test.js +44 -0
- package/dist/engine/github-app-client.test.js.map +1 -0
- package/dist/engine/github-tools.d.ts +12 -0
- package/dist/engine/github-tools.js +261 -0
- package/dist/engine/github-tools.js.map +1 -0
- package/dist/engine/github.d.ts +1027 -43
- package/dist/engine/github.js +153 -14
- package/dist/engine/github.js.map +1 -1
- package/dist/engine/llm.d.ts +47 -0
- package/dist/engine/llm.js +221 -0
- package/dist/engine/llm.js.map +1 -0
- package/dist/engine/llm.test.d.ts +1 -0
- package/dist/engine/llm.test.js +189 -0
- package/dist/engine/llm.test.js.map +1 -0
- package/dist/engine/profiles.d.ts +249 -0
- package/dist/engine/profiles.js +42 -0
- package/dist/engine/profiles.js.map +1 -0
- package/dist/engine/router.d.ts +12 -6
- package/dist/engine/router.js +339 -81
- package/dist/engine/router.js.map +1 -1
- package/dist/engine/router.test.js +428 -78
- package/dist/engine/router.test.js.map +1 -1
- package/dist/engine/screen.d.ts +41 -0
- package/dist/engine/screen.js +93 -0
- package/dist/engine/screen.js.map +1 -0
- package/dist/engine/screen.test.d.ts +1 -0
- package/dist/engine/screen.test.js +82 -0
- package/dist/engine/screen.test.js.map +1 -0
- package/dist/index.js +377 -432
- package/dist/index.js.map +1 -1
- package/dist/managed-repos.d.ts +7 -9
- package/dist/managed-repos.js +12 -15
- package/dist/managed-repos.js.map +1 -1
- package/dist/managed-repos.test.js +24 -19
- package/dist/managed-repos.test.js.map +1 -1
- package/dist/notify/index.d.ts +15 -0
- package/dist/notify/index.js +6 -0
- package/dist/notify/index.js.map +1 -0
- package/dist/notify/model.d.ts +57 -0
- package/dist/notify/model.js +89 -0
- package/dist/notify/model.js.map +1 -0
- package/dist/notify/model.test.d.ts +1 -0
- package/dist/notify/model.test.js +109 -0
- package/dist/notify/model.test.js.map +1 -0
- package/dist/notify/notifier.d.ts +17 -0
- package/dist/notify/notifier.js +87 -0
- package/dist/notify/notifier.js.map +1 -0
- package/dist/notify/notifier.test.d.ts +1 -0
- package/dist/notify/notifier.test.js +100 -0
- package/dist/notify/notifier.test.js.map +1 -0
- package/dist/notify/render.d.ts +21 -0
- package/dist/notify/render.js +59 -0
- package/dist/notify/render.js.map +1 -0
- package/dist/notify/render.test.d.ts +1 -0
- package/dist/notify/render.test.js +65 -0
- package/dist/notify/render.test.js.map +1 -0
- package/dist/notify/transports/github.d.ts +26 -0
- package/dist/notify/transports/github.js +26 -0
- package/dist/notify/transports/github.js.map +1 -0
- package/dist/notify/transports/slack.d.ts +26 -0
- package/dist/notify/transports/slack.js +28 -0
- package/dist/notify/transports/slack.js.map +1 -0
- package/dist/notify/transports.test.d.ts +1 -0
- package/dist/notify/transports.test.js +71 -0
- package/dist/notify/transports.test.js.map +1 -0
- package/dist/notify/types.d.ts +95 -0
- package/dist/notify/types.js +16 -0
- package/dist/notify/types.js.map +1 -0
- package/dist/sandbox/docker-compose.test.d.ts +1 -0
- package/dist/sandbox/docker-compose.test.js +128 -0
- package/dist/sandbox/docker-compose.test.js.map +1 -0
- package/dist/sandbox/docker.d.ts +97 -9
- package/dist/sandbox/docker.js +192 -41
- package/dist/sandbox/docker.js.map +1 -1
- package/dist/sandbox/docker.test.d.ts +1 -0
- package/dist/sandbox/docker.test.js +137 -0
- package/dist/sandbox/docker.test.js.map +1 -0
- package/dist/sandbox/egress-allowlist.d.ts +69 -0
- package/dist/sandbox/egress-allowlist.js +164 -0
- package/dist/sandbox/egress-allowlist.js.map +1 -0
- package/dist/sandbox/egress-allowlist.test.d.ts +1 -0
- package/dist/sandbox/egress-allowlist.test.js +65 -0
- package/dist/sandbox/egress-allowlist.test.js.map +1 -0
- package/dist/sandbox/egress-firewall-config.d.ts +127 -0
- package/dist/sandbox/egress-firewall-config.js +434 -0
- package/dist/sandbox/egress-firewall-config.js.map +1 -0
- package/dist/sandbox/egress-firewall-config.test.d.ts +1 -0
- package/dist/sandbox/egress-firewall-config.test.js +244 -0
- package/dist/sandbox/egress-firewall-config.test.js.map +1 -0
- package/dist/sandbox/images.d.ts +23 -0
- package/dist/sandbox/images.js +55 -0
- package/dist/sandbox/images.js.map +1 -0
- package/dist/sandbox/index.d.ts +82 -3
- package/dist/sandbox/index.js +223 -93
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/index.test.d.ts +1 -0
- package/dist/sandbox/index.test.js +157 -0
- package/dist/sandbox/index.test.js.map +1 -0
- package/dist/session-log.d.ts +63 -0
- package/dist/session-log.js +290 -0
- package/dist/session-log.js.map +1 -0
- package/dist/session-log.test.d.ts +1 -0
- package/dist/session-log.test.js +85 -0
- package/dist/session-log.test.js.map +1 -0
- package/dist/setup.d.ts +30 -1
- package/dist/setup.js +241 -25
- package/dist/setup.js.map +1 -1
- package/dist/setup.test.js +138 -6
- package/dist/setup.test.js.map +1 -1
- package/dist/state/approval-store.d.ts +86 -0
- package/dist/state/approval-store.js +140 -0
- package/dist/state/approval-store.js.map +1 -0
- package/dist/state/build-assets.d.ts +50 -0
- package/dist/state/build-assets.js +154 -0
- package/dist/state/build-assets.js.map +1 -0
- package/dist/state/build-assets.test.d.ts +1 -0
- package/dist/state/build-assets.test.js +106 -0
- package/dist/state/build-assets.test.js.map +1 -0
- package/dist/state/db.d.ts +65 -333
- package/dist/state/db.js +112 -835
- package/dist/state/db.js.map +1 -1
- package/dist/state/db.test.js +127 -91
- package/dist/state/db.test.js.map +1 -1
- package/dist/state/execution-store.d.ts +257 -0
- package/dist/state/execution-store.js +527 -0
- package/dist/state/execution-store.js.map +1 -0
- package/dist/state/migrate.d.ts +15 -0
- package/dist/state/migrate.js +175 -0
- package/dist/state/migrate.js.map +1 -0
- package/dist/state/workflow-run-store.d.ts +195 -0
- package/dist/state/workflow-run-store.js +363 -0
- package/dist/state/workflow-run-store.js.map +1 -0
- package/dist/state/workflow-run-store.test.d.ts +1 -0
- package/dist/state/workflow-run-store.test.js +264 -0
- package/dist/state/workflow-run-store.test.js.map +1 -0
- package/dist/telemetry/index.d.ts +38 -0
- package/dist/telemetry/index.js +253 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/index.test.d.ts +1 -0
- package/dist/telemetry/index.test.js +73 -0
- package/dist/telemetry/index.test.js.map +1 -0
- package/dist/telemetry/pi-events.d.ts +12 -0
- package/dist/telemetry/pi-events.js +134 -0
- package/dist/telemetry/pi-events.js.map +1 -0
- package/dist/telemetry/pi-events.test.d.ts +1 -0
- package/dist/telemetry/pi-events.test.js +69 -0
- package/dist/telemetry/pi-events.test.js.map +1 -0
- package/dist/workflows/dag.d.ts +13 -1
- package/dist/workflows/dag.js +7 -3
- package/dist/workflows/dag.js.map +1 -1
- package/dist/workflows/dag.test.js +22 -0
- package/dist/workflows/dag.test.js.map +1 -1
- package/dist/workflows/golden-build.test.d.ts +1 -0
- package/dist/workflows/golden-build.test.js +45 -0
- package/dist/workflows/golden-build.test.js.map +1 -0
- package/dist/workflows/loader-overlay.test.d.ts +1 -0
- package/dist/workflows/loader-overlay.test.js +101 -0
- package/dist/workflows/loader-overlay.test.js.map +1 -0
- package/dist/workflows/loader.d.ts +36 -11
- package/dist/workflows/loader.js +311 -87
- package/dist/workflows/loader.js.map +1 -1
- package/dist/workflows/loader.test.js +114 -10
- package/dist/workflows/loader.test.js.map +1 -1
- package/dist/workflows/loop-eval.js +2 -0
- package/dist/workflows/loop-eval.js.map +1 -1
- package/dist/workflows/loop-eval.test.js +14 -0
- package/dist/workflows/loop-eval.test.js.map +1 -1
- package/dist/workflows/phase-executor.d.ts +145 -0
- package/dist/workflows/phase-executor.js +691 -0
- package/dist/workflows/phase-executor.js.map +1 -0
- package/dist/workflows/phase-executor.test.d.ts +1 -0
- package/dist/workflows/phase-executor.test.js +434 -0
- package/dist/workflows/phase-executor.test.js.map +1 -0
- package/dist/workflows/phase-ref.d.ts +44 -0
- package/dist/workflows/phase-ref.js +78 -0
- package/dist/workflows/phase-ref.js.map +1 -0
- package/dist/workflows/phase-ref.test.d.ts +1 -0
- package/dist/workflows/phase-ref.test.js +24 -0
- package/dist/workflows/phase-ref.test.js.map +1 -0
- package/dist/workflows/resume.d.ts +5 -11
- package/dist/workflows/resume.js +88 -7
- package/dist/workflows/resume.js.map +1 -1
- package/dist/workflows/runner.d.ts +34 -27
- package/dist/workflows/runner.js +252 -930
- package/dist/workflows/runner.js.map +1 -1
- package/dist/workflows/runner.test.js +346 -35
- package/dist/workflows/runner.test.js.map +1 -1
- package/dist/workflows/schema.d.ts +52 -10
- package/dist/workflows/schema.js +147 -7
- package/dist/workflows/schema.js.map +1 -1
- package/dist/workflows/simple.d.ts +67 -3
- package/dist/workflows/simple.js +248 -87
- package/dist/workflows/simple.js.map +1 -1
- package/dist/workflows/simple.test.d.ts +1 -0
- package/dist/workflows/simple.test.js +107 -0
- package/dist/workflows/simple.test.js.map +1 -0
- package/dist/workflows/templates.d.ts +29 -0
- package/dist/workflows/templates.js +42 -4
- package/dist/workflows/templates.js.map +1 -1
- package/dist/workflows/templates.test.js +103 -0
- package/dist/workflows/templates.test.js.map +1 -1
- package/dist/workflows/triggers.d.ts +21 -0
- package/dist/workflows/triggers.js +44 -0
- package/dist/workflows/triggers.js.map +1 -0
- package/dist/workflows/verdict.d.ts +19 -0
- package/dist/workflows/verdict.js +30 -0
- package/dist/workflows/verdict.js.map +1 -0
- package/dist/workflows/verdict.test.d.ts +1 -0
- package/dist/workflows/verdict.test.js +44 -0
- package/dist/workflows/verdict.test.js.map +1 -0
- package/dist/worktree/manager.d.ts +1 -1
- package/dist/worktree/manager.js +14 -14
- package/dist/worktree/manager.js.map +1 -1
- package/dist/worktree/manager.test.d.ts +1 -0
- package/dist/worktree/manager.test.js +87 -0
- package/dist/worktree/manager.test.js.map +1 -0
- package/docker-compose.yml +206 -5
- package/package.json +19 -9
- package/sandbox.Dockerfile +97 -18
- package/skills/README.md +40 -0
- package/skills/browser-qa/SKILL.md +193 -0
- package/skills/browser-qa/scripts/agent-browser.mjs +380 -0
- package/skills/building/SKILL.md +95 -0
- package/skills/chat/SKILL.md +30 -11
- package/skills/code-review/SKILL.md +59 -0
- package/skills/debug-production/SKILL.md +108 -0
- package/skills/demo/SKILL.md +194 -0
- package/skills/demo/scripts/compose-demo.sh +205 -0
- package/skills/issue-answer/SKILL.md +90 -0
- package/skills/issue-comment/SKILL.md +38 -24
- package/skills/issue-triage/SKILL.md +103 -37
- package/skills/issue-triage/references/AGENT-BRIEF.md +61 -0
- package/skills/pr-comment/SKILL.md +64 -0
- package/skills/pr-review/SKILL.md +65 -49
- package/skills/qa-test/SKILL.md +97 -0
- package/skills/repo-health/SKILL.md +48 -45
- package/skills/security-feedback/SKILL.md +173 -0
- package/skills/security-feedback/references/templates.md +77 -0
- package/skills/security-review/SKILL.md +213 -0
- package/skills/security-review/references/issue-format.md +302 -0
- package/skills/verify/SKILL.md +118 -0
- package/workflows/answer.yaml +37 -0
- package/workflows/build.yaml +32 -22
- package/workflows/cron-security.yaml +6 -0
- package/workflows/demo.yaml +55 -0
- package/workflows/explore.yaml +9 -0
- package/workflows/pr-comment.yaml +16 -0
- package/workflows/pr-fix.yaml +3 -0
- package/workflows/pr-review.yaml +4 -1
- package/workflows/prompts/answer.md +67 -0
- package/workflows/prompts/architect.md +24 -7
- package/workflows/prompts/demo.md +100 -0
- package/workflows/prompts/executor.md +29 -20
- package/workflows/prompts/explore-ask.md +51 -22
- package/workflows/prompts/explore-publish.md +2 -2
- package/workflows/prompts/explore-read.md +24 -10
- package/workflows/prompts/explore-synthesize.md +15 -8
- package/workflows/prompts/fix.md +9 -10
- package/workflows/prompts/guardrails.md +26 -8
- package/workflows/prompts/pr-fix.md +6 -7
- package/workflows/prompts/pr.md +11 -10
- package/workflows/prompts/qa-browser.md +95 -0
- package/workflows/prompts/qa-synth.md +44 -0
- package/workflows/prompts/qa-test.md +60 -0
- package/workflows/prompts/re-reviewer.md +8 -9
- package/workflows/prompts/reviewer.md +10 -9
- package/workflows/prompts/verify-browser.md +93 -0
- package/workflows/prompts/verify-synth.md +44 -0
- package/workflows/prompts/verify.md +63 -0
- package/workflows/qa-test.yaml +87 -0
- package/workflows/security-feedback.yaml +25 -0
- package/workflows/security-review.yaml +29 -0
- package/workflows/verify.yaml +85 -0
- package/deploy/mcp-config.tmpl.json +0 -14
- package/dist/cron/rate-limits.d.ts +0 -26
- package/dist/cron/rate-limits.js +0 -193
- package/dist/cron/rate-limits.js.map +0 -1
- package/dist/engine/executor.d.ts +0 -75
- package/dist/engine/executor.js +0 -292
- package/dist/engine/executor.js.map +0 -1
- package/mcp-github-app/package.json +0 -18
- package/mcp-github-app/src/auth.js +0 -66
- package/mcp-github-app/src/github.js +0 -371
- package/mcp-github-app/src/index.js +0 -534
- package/skills/devops/webhook-subscriptions/SKILL.md +0 -180
- package/skills/github/DESCRIPTION.md +0 -3
- package/skills/github/codebase-inspection/SKILL.md +0 -115
- package/skills/github/github-auth/SKILL.md +0 -54
- package/skills/github/github-auth/scripts/gh-env.sh +0 -66
- package/skills/github/github-code-review/SKILL.md +0 -480
- package/skills/github/github-code-review/references/review-output-template.md +0 -74
- package/skills/github/github-issues/SKILL.md +0 -369
- package/skills/github/github-issues/templates/bug-report.md +0 -35
- package/skills/github/github-issues/templates/feature-request.md +0 -31
- package/skills/github/github-pr-workflow/SKILL.md +0 -395
- package/skills/github/github-pr-workflow/references/ci-troubleshooting.md +0 -183
- package/skills/github/github-pr-workflow/references/conventional-commits.md +0 -71
- package/skills/github/github-pr-workflow/templates/pr-body-bugfix.md +0 -35
- package/skills/github/github-pr-workflow/templates/pr-body-feature.md +0 -33
- package/skills/github/github-repo-management/SKILL.md +0 -515
- package/skills/github/github-repo-management/references/github-api-cheatsheet.md +0 -161
- package/skills/github-orchestrator/SKILL.md +0 -103
- package/skills/mcp/DESCRIPTION.md +0 -3
- package/skills/mcp/mcporter/SKILL.md +0 -122
- package/skills/mcp/native-mcp/SKILL.md +0 -356
- package/skills/software-development/architect/SKILL.md +0 -154
- package/skills/software-development/assure-guardrails/SKILL.md +0 -239
- package/skills/software-development/plan/SKILL.md +0 -64
- package/skills/software-development/requesting-code-review/SKILL.md +0 -291
- package/skills/software-development/subagent-driven-development/SKILL.md +0 -433
- package/skills/software-development/systematic-debugging/SKILL.md +0 -366
- package/skills/software-development/test-driven-development/SKILL.md +0 -342
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single authority for building and resolving the phase labels the runner
|
|
3
|
+
* generates for loop iterations.
|
|
4
|
+
*
|
|
5
|
+
* A workflow phase named in the YAML (e.g. `reviewer`) keeps that bare name for
|
|
6
|
+
* its initial run. When a reviewer loop fixes-and-rechecks, or a generic loop
|
|
7
|
+
* iterates, the runner mints a derived label. `PhaseRef.format()` is the ONLY
|
|
8
|
+
* place those derived strings are constructed, and `PhaseRef.parse()` resolves
|
|
9
|
+
* them back to their base phase + kind.
|
|
10
|
+
*
|
|
11
|
+
* Scheme (post-#93):
|
|
12
|
+
*
|
|
13
|
+
* initial review → reviewer
|
|
14
|
+
* cycle n fix → reviewer_fix_n
|
|
15
|
+
* cycle n re-review → reviewer_recheck_n
|
|
16
|
+
* generic-loop iteration n → reviewer_iter_n
|
|
17
|
+
*
|
|
18
|
+
* `n` is the 1-based cycle; `fix_k` and `recheck_k` pair within a cycle. The
|
|
19
|
+
* legacy bare-numeric re-review form (`reviewer_2`) is dropped entirely — it is
|
|
20
|
+
* neither produced nor recognized.
|
|
21
|
+
*/
|
|
22
|
+
export class PhaseRef {
|
|
23
|
+
base;
|
|
24
|
+
kind;
|
|
25
|
+
index;
|
|
26
|
+
constructor(base, kind = "phase", index) {
|
|
27
|
+
this.base = base;
|
|
28
|
+
this.kind = kind;
|
|
29
|
+
this.index = index;
|
|
30
|
+
}
|
|
31
|
+
/** The declared phase, run as-is (no derived suffix). */
|
|
32
|
+
static review(base) {
|
|
33
|
+
return new PhaseRef(base, "phase");
|
|
34
|
+
}
|
|
35
|
+
/** The executor fix run for cycle `n`. */
|
|
36
|
+
static fix(base, n) {
|
|
37
|
+
return new PhaseRef(base, "fix", n);
|
|
38
|
+
}
|
|
39
|
+
/** The reviewer re-review run for cycle `n`. */
|
|
40
|
+
static recheck(base, n) {
|
|
41
|
+
return new PhaseRef(base, "recheck", n);
|
|
42
|
+
}
|
|
43
|
+
/** The generic-loop iteration `n`. */
|
|
44
|
+
static iter(base, n) {
|
|
45
|
+
return new PhaseRef(base, "iter", n);
|
|
46
|
+
}
|
|
47
|
+
format() {
|
|
48
|
+
switch (this.kind) {
|
|
49
|
+
case "phase":
|
|
50
|
+
return this.base;
|
|
51
|
+
case "fix":
|
|
52
|
+
return `${this.base}_fix_${this.index}`;
|
|
53
|
+
case "recheck":
|
|
54
|
+
return `${this.base}_recheck_${this.index}`;
|
|
55
|
+
case "iter":
|
|
56
|
+
return `${this.base}_iter_${this.index}`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse a label back into a PhaseRef. Recognizes only the generated
|
|
61
|
+
* `_fix_N` / `_recheck_N` / `_iter_N` suffixes; anything else (including a
|
|
62
|
+
* bare declared name or the dropped legacy `_N` form) parses as a plain
|
|
63
|
+
* `phase` whose base is the whole string.
|
|
64
|
+
*/
|
|
65
|
+
static parse(label) {
|
|
66
|
+
let m = label.match(/^(.*)_fix_(\d+)$/);
|
|
67
|
+
if (m)
|
|
68
|
+
return new PhaseRef(m[1], "fix", Number(m[2]));
|
|
69
|
+
m = label.match(/^(.*)_recheck_(\d+)$/);
|
|
70
|
+
if (m)
|
|
71
|
+
return new PhaseRef(m[1], "recheck", Number(m[2]));
|
|
72
|
+
m = label.match(/^(.*)_iter_(\d+)$/);
|
|
73
|
+
if (m)
|
|
74
|
+
return new PhaseRef(m[1], "iter", Number(m[2]));
|
|
75
|
+
return new PhaseRef(label, "phase");
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=phase-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-ref.js","sourceRoot":"","sources":["../../src/workflows/phase-ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,OAAO,QAAQ;IAER;IACA;IACA;IAHX,YACW,IAAY,EACZ,OAAkB,OAAO,EACzB,KAAc;QAFd,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAqB;QACzB,UAAK,GAAL,KAAK,CAAS;IACtB,CAAC;IAEJ,yDAAyD;IACzD,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,0CAA0C;IAC1C,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,CAAS;QAChC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,CAAS;QACpC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,CAAS;QACjC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM;QACJ,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,KAAK;gBACR,OAAO,GAAG,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1C,KAAK,SAAS;gBACZ,OAAO,GAAG,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9C,KAAK,MAAM;gBACT,OAAO,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,KAAa;QACxB,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC;YAAE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACxC,IAAI,CAAC;YAAE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACrC,IAAI,CAAC;YAAE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { PhaseRef } from "./phase-ref.js";
|
|
3
|
+
describe("PhaseRef.format — the single label authority", () => {
|
|
4
|
+
it("pins the literal generated label strings", () => {
|
|
5
|
+
expect(PhaseRef.review("reviewer").format()).toBe("reviewer");
|
|
6
|
+
expect(PhaseRef.fix("reviewer", 1).format()).toBe("reviewer_fix_1");
|
|
7
|
+
expect(PhaseRef.recheck("reviewer", 1).format()).toBe("reviewer_recheck_1");
|
|
8
|
+
expect(PhaseRef.iter("reviewer", 1).format()).toBe("reviewer_iter_1");
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
describe("PhaseRef.parse — round-trips generated labels back to base + kind", () => {
|
|
12
|
+
it("parses each generated suffix", () => {
|
|
13
|
+
expect(PhaseRef.parse("reviewer_fix_2")).toMatchObject({ base: "reviewer", kind: "fix", index: 2 });
|
|
14
|
+
expect(PhaseRef.parse("reviewer_recheck_2")).toMatchObject({ base: "reviewer", kind: "recheck", index: 2 });
|
|
15
|
+
expect(PhaseRef.parse("reviewer_iter_3")).toMatchObject({ base: "reviewer", kind: "iter", index: 3 });
|
|
16
|
+
});
|
|
17
|
+
it("parses a bare declared name as a plain phase", () => {
|
|
18
|
+
expect(PhaseRef.parse("reviewer")).toMatchObject({ base: "reviewer", kind: "phase" });
|
|
19
|
+
});
|
|
20
|
+
it("parses the dropped legacy reviewer_2 form as a plain phase (not a recheck)", () => {
|
|
21
|
+
expect(PhaseRef.parse("reviewer_2")).toMatchObject({ base: "reviewer_2", kind: "phase" });
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=phase-ref.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-ref.test.js","sourceRoot":"","sources":["../../src/workflows/phase-ref.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC5D,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mEAAmE,EAAE,GAAG,EAAE;IACjF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACpG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5G,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import type { StateDb } from "../state/db.js";
|
|
2
|
-
import type { ExecutorConfig } from "../engine/
|
|
2
|
+
import type { ExecutorConfig } from "../engine/profiles.js";
|
|
3
3
|
import type { GitHubClient } from "../engine/github.js";
|
|
4
|
-
import type { ModelConfig } from "../config.js";
|
|
4
|
+
import type { ModelConfig, VariantConfig } from "../config.js";
|
|
5
5
|
import { type ApprovalGateConfig } from "./runner.js";
|
|
6
6
|
export interface ResumeOptions {
|
|
7
7
|
db: StateDb;
|
|
8
8
|
github: GitHubClient | null;
|
|
9
9
|
config: ExecutorConfig;
|
|
10
10
|
models?: ModelConfig;
|
|
11
|
+
variants?: VariantConfig;
|
|
11
12
|
approvalConfig?: ApprovalGateConfig;
|
|
12
13
|
bootstrapLabel?: string;
|
|
13
14
|
/** Post a message to a Slack channel/thread. Used to resume Slack-originated workflows. */
|
|
14
15
|
slackPoster?: (channelId: string, threadId: string, msg: string) => Promise<void>;
|
|
16
|
+
/** Public base URL of the admin dashboard — for the checklist's live-run link. */
|
|
17
|
+
publicUrl?: string;
|
|
15
18
|
}
|
|
16
19
|
/**
|
|
17
20
|
* Parse `cliftonc/drizby#18` (or `cliftonc/drizby::workflow-name`) into
|
|
@@ -32,13 +35,4 @@ export declare function parseSlackTriggerId(triggerId: string): {
|
|
|
32
35
|
channelId: string;
|
|
33
36
|
threadTs: string;
|
|
34
37
|
} | null;
|
|
35
|
-
/**
|
|
36
|
-
* Boot-time sweep: find every workflow run that was 'running' when the
|
|
37
|
-
* harness last shut down, mark its in-flight execution rows as stale (the
|
|
38
|
-
* Docker containers were already killed by cleanupOrphanedSandboxes), then
|
|
39
|
-
* re-dispatch each run so the runner can pick up where it left off.
|
|
40
|
-
*
|
|
41
|
-
* 'paused' runs are intentionally left alone — they're waiting for human
|
|
42
|
-
* approval and the dashboard / GitHub comment flow will resume them.
|
|
43
|
-
*/
|
|
44
38
|
export declare function resumeOrphanedWorkflows(opts: ResumeOptions): Promise<void>;
|
package/dist/workflows/resume.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { runWorkflow } from "./runner.js";
|
|
2
2
|
import { getWorkflow } from "./loader.js";
|
|
3
3
|
import { slugify } from "./templates.js";
|
|
4
|
+
import { ProgressNotifier, GitHubTransport, buildProgressModel, runDashboardUrl, } from "../notify/index.js";
|
|
4
5
|
/**
|
|
5
6
|
* Parse `cliftonc/drizby#18` (or `cliftonc/drizby::workflow-name`) into
|
|
6
7
|
* its components. Returns null for Slack/chat-originated trigger ids —
|
|
@@ -119,7 +120,7 @@ async function resumeSimpleRun(run, opts) {
|
|
|
119
120
|
catch (err) {
|
|
120
121
|
const msg = err instanceof Error ? err.message : String(err);
|
|
121
122
|
console.warn(`[resume] Skipping ${run.id}: workflow definition "${run.workflowName}" not found: ${msg}`);
|
|
122
|
-
opts.db.
|
|
123
|
+
opts.db.runs.finishRun(run.id, "failed", { error: `harness restarted; workflow definition not found` });
|
|
123
124
|
return;
|
|
124
125
|
}
|
|
125
126
|
const issue = issueNumber && owner && repo
|
|
@@ -148,8 +149,19 @@ async function resumeSimpleRun(run, opts) {
|
|
|
148
149
|
branch,
|
|
149
150
|
taskId,
|
|
150
151
|
issueDir,
|
|
152
|
+
// Mirror the fresh-dispatch context so a resumed server-mode run keeps
|
|
153
|
+
// externalizing (and linking docs to the dashboard) instead of silently
|
|
154
|
+
// reverting to committing them on the branch.
|
|
155
|
+
externalizeArtifacts: opts.config.buildAssets === "server",
|
|
156
|
+
publicUrl: opts.publicUrl,
|
|
151
157
|
bootstrapLabel: opts.bootstrapLabel || "lastlight:bootstrap",
|
|
152
158
|
contextSnapshot: "",
|
|
159
|
+
// Preserve the original prePopulateBranch so a resumed run still
|
|
160
|
+
// gets its workspace pre-cloned (matters for pr-fix re-entry after
|
|
161
|
+
// an approval gate, where the branch was resolved at first dispatch).
|
|
162
|
+
prePopulateBranch: typeof stored.prePopulateBranch === "string"
|
|
163
|
+
? stored.prePopulateBranch
|
|
164
|
+
: undefined,
|
|
153
165
|
models: opts.models,
|
|
154
166
|
triggerIdOverride: isSlack ? run.triggerId : undefined,
|
|
155
167
|
};
|
|
@@ -178,19 +190,70 @@ async function resumeSimpleRun(run, opts) {
|
|
|
178
190
|
};
|
|
179
191
|
}
|
|
180
192
|
}
|
|
193
|
+
let callbacks = slackCallbacks || makeCallbacks(opts.github, owner, repo, issueNumber, run.workflowName);
|
|
194
|
+
// Re-attach the in-place checklist on GitHub boot-recovery so a run that was
|
|
195
|
+
// mid-flight when the harness died keeps editing its original status comment
|
|
196
|
+
// instead of posting a fresh one. The stored comment id lives in
|
|
197
|
+
// scratch.notifier; completed phases are re-seeded from phase_history.
|
|
198
|
+
// (The Slack boot-recovery path only has a post function here — no
|
|
199
|
+
// chat.update — so it stays on legacy comments.)
|
|
200
|
+
if (!slackCallbacks && definition.status_checklist && opts.github && issueNumber) {
|
|
201
|
+
try {
|
|
202
|
+
const saved = ((run.scratch?.notifier) ?? {});
|
|
203
|
+
const github = opts.github;
|
|
204
|
+
const persist = (patch) => {
|
|
205
|
+
const cur = ((opts.db.runs.getRun(run.id)?.scratch?.notifier) ?? {});
|
|
206
|
+
opts.db.runs.mergeScratch(run.id, { notifier: { ...cur, ...patch } });
|
|
207
|
+
};
|
|
208
|
+
const transport = new GitHubTransport({
|
|
209
|
+
github,
|
|
210
|
+
owner,
|
|
211
|
+
repo,
|
|
212
|
+
issueNumber,
|
|
213
|
+
commentId: saved.githubCommentId,
|
|
214
|
+
save: (id) => persist({ githubCommentId: id }),
|
|
215
|
+
});
|
|
216
|
+
const notifier = new ProgressNotifier([transport]);
|
|
217
|
+
const completed = new Set(run.phaseHistory.map((h) => h.phase));
|
|
218
|
+
await notifier.start(buildProgressModel(definition, {
|
|
219
|
+
workflowName: run.workflowName,
|
|
220
|
+
number: issueNumber,
|
|
221
|
+
issueTitle: issue.title,
|
|
222
|
+
owner,
|
|
223
|
+
repo,
|
|
224
|
+
branch,
|
|
225
|
+
completed,
|
|
226
|
+
runUrl: runDashboardUrl(opts.publicUrl, run.id, run.workflowName),
|
|
227
|
+
}));
|
|
228
|
+
callbacks = { ...callbacks, reporter: notifier };
|
|
229
|
+
}
|
|
230
|
+
catch (err) {
|
|
231
|
+
const m = err instanceof Error ? err.message : String(err);
|
|
232
|
+
console.warn(`[resume] notifier setup failed: ${m}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// Server mode: tag the config with this run's artifact identity so the
|
|
236
|
+
// executor's stage-in/harvest seam targets the same store path the original
|
|
237
|
+
// dispatch used (issueKey = issueDir minus the `.lastlight/` prefix).
|
|
238
|
+
const runConfig = opts.config.buildAssets === "server"
|
|
239
|
+
? { ...opts.config, buildAssetsKey: { owner, repo, issueKey: issueDir.replace(/^\.lastlight\//, "") } }
|
|
240
|
+
: opts.config;
|
|
181
241
|
try {
|
|
182
|
-
const result = await runWorkflow(definition, ctx,
|
|
242
|
+
const result = await runWorkflow(definition, ctx, runConfig, callbacks, opts.db, opts.models, opts.approvalConfig, run.id, // <-- key bit: reuse the existing workflow run id
|
|
243
|
+
opts.variants);
|
|
183
244
|
if (result.success) {
|
|
184
|
-
opts.db.
|
|
245
|
+
opts.db.runs.finishRun(run.id, "succeeded");
|
|
185
246
|
}
|
|
186
247
|
else if (!result.paused) {
|
|
187
|
-
opts.db.
|
|
248
|
+
opts.db.runs.finishRun(run.id, "failed", {
|
|
249
|
+
error: result.phases.find((p) => !p.success)?.error || "workflow failed during resume",
|
|
250
|
+
});
|
|
188
251
|
}
|
|
189
252
|
}
|
|
190
253
|
catch (err) {
|
|
191
254
|
const msg = err instanceof Error ? err.message : String(err);
|
|
192
255
|
console.error(`[resume] ${run.workflowName} resume for ${run.id} threw: ${msg}`);
|
|
193
|
-
opts.db.
|
|
256
|
+
opts.db.runs.finishRun(run.id, "failed", { error: `resume threw: ${msg}` });
|
|
194
257
|
}
|
|
195
258
|
}
|
|
196
259
|
/**
|
|
@@ -202,8 +265,15 @@ async function resumeSimpleRun(run, opts) {
|
|
|
202
265
|
* 'paused' runs are intentionally left alone — they're waiting for human
|
|
203
266
|
* approval and the dashboard / GitHub comment flow will resume them.
|
|
204
267
|
*/
|
|
268
|
+
/**
|
|
269
|
+
* Maximum number of times a single workflow run can be resumed after a
|
|
270
|
+
* harness restart. Past this we mark the run failed and stop re-dispatching
|
|
271
|
+
* it, on the theory that a run that crashes the host three times in a row
|
|
272
|
+
* (agent OOM, infinite loop, etc.) needs a human, not another attempt.
|
|
273
|
+
*/
|
|
274
|
+
const MAX_RESTART_RESUMES = 3;
|
|
205
275
|
export async function resumeOrphanedWorkflows(opts) {
|
|
206
|
-
const active = opts.db.
|
|
276
|
+
const active = opts.db.runs.listActive();
|
|
207
277
|
const orphans = active.filter((r) => r.status === "running");
|
|
208
278
|
if (orphans.length === 0) {
|
|
209
279
|
console.log("[resume] No orphaned workflow runs to recover");
|
|
@@ -212,10 +282,21 @@ export async function resumeOrphanedWorkflows(opts) {
|
|
|
212
282
|
console.log(`[resume] Found ${orphans.length} orphaned workflow run(s) — recovering`);
|
|
213
283
|
for (const run of orphans) {
|
|
214
284
|
// Clear any "still running" execution rows so dedup works on resume.
|
|
215
|
-
const cleared = opts.db.markAllStaleForTrigger(run.triggerId, "stale: harness restarted");
|
|
285
|
+
const cleared = opts.db.executions.markAllStaleForTrigger(run.triggerId, "stale: harness restarted");
|
|
216
286
|
if (cleared > 0) {
|
|
217
287
|
console.log(`[resume] Cleared ${cleared} stale execution(s) for ${run.triggerId}`);
|
|
218
288
|
}
|
|
289
|
+
// Circuit breaker: bump the per-run restart counter, and if we've now
|
|
290
|
+
// resumed it more than MAX_RESTART_RESUMES times, mark it failed and
|
|
291
|
+
// move on. This is what stops an OOM-on-restart loop from churning
|
|
292
|
+
// forever.
|
|
293
|
+
const attempts = opts.db.runs.incrementRestartCount(run.id);
|
|
294
|
+
if (attempts > MAX_RESTART_RESUMES) {
|
|
295
|
+
const msg = `harness restarted ${attempts - 1}x while this run was active — giving up after ${MAX_RESTART_RESUMES} resume attempts`;
|
|
296
|
+
console.warn(`[resume] ${run.workflowName} run ${run.id}: ${msg}`);
|
|
297
|
+
opts.db.runs.finishRun(run.id, "failed", { error: msg });
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
219
300
|
// Dispatch in the background — we don't want one slow resume to block
|
|
220
301
|
// the others (or the rest of the boot sequence).
|
|
221
302
|
resumeSimpleRun(run, opts).catch((err) => console.error(`[resume] ${run.workflowName} run ${run.id} crashed:`, err));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/workflows/resume.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/workflows/resume.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAiD,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAwB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAgB5B;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;IACjF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAiB;IAEjB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,WAA+B,EAC/B,YAAoB,EACpB,aAAqB;IAErB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,WAAW,KAAK,SAAS;QAC9B,CAAC,CAAC,GAAG,IAAI,IAAI,WAAW,IAAI,YAAY,IAAI,MAAM,EAAE;QACpD,CAAC,CAAC,GAAG,IAAI,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CACzB,MAA2B,EAC3B,KAAa,EACb,IAAY,EACZ,WAAmB;IAEnB,MAAM,QAAQ,GAAG;QACf,KAAK,EAAE,UAAU,WAAW,EAAE;QAC9B,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAc;KACvB,CAAC;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9D,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;YACpC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,MAAM,EAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAuC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5E,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CACzC,CAAC,MAAM,CAAC,OAAO,CAAC;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,8BAA8B,KAAK,IAAI,IAAI,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC,CAAC;QACnF,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CACpB,MAA2B,EAC3B,KAAa,EACb,IAAY,EACZ,WAA+B,EAC/B,YAAoB;IAEpB,OAAO;QACL,WAAW,EAAE,MAAM,IAAI,WAAW;YAChC,CAAC,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;gBACpB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC3D,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YACH,CAAC,CAAC,SAAS;QACb,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,IAAI,KAAK,EAAE,CAAC;QACjF,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAClC,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,IAAI,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;KAC1F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,GAAgB,EAAE,IAAmB;IAClE,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IAE9D,mEAAmE;IACnE,oEAAoE;IACpE,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAK,MAAM,CAAC,KAA4B,IAAI,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE,6CAA6C,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACtG,OAAO;IACT,CAAC;IAED,IAAI,UAAU,CAAC;IACf,IAAI,CAAC;QACH,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE,0BAA0B,GAAG,CAAC,YAAY,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC,CAAC;QACxG,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,IAAI,KAAK,IAAI,IAAI;QACxC,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC;QAC3D,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAc,EAAE,CAAC;IAEpD,0EAA0E;IAC1E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,MAAM,GAAI,MAAM,CAAC,MAA6B;QAClD,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAI,MAAM,CAAC,MAA6B;QAClD,CAAC,WAAW;YACV,CAAC,CAAC,aAAa,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,WAAW,EAAE,CAAC,EAAE;YAC9E,CAAC,CAAC,aAAa,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAI,MAAM,CAAC,QAA+B;WACnD,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAE1F,MAAM,GAAG,GAAoB;QAC3B,KAAK;QACL,IAAI;QACJ,WAAW,EAAE,WAAW,IAAI,CAAC;QAC7B,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,eAAe;QACvB,MAAM;QACN,MAAM;QACN,QAAQ;QACR,uEAAuE;QACvE,wEAAwE;QACxE,8CAA8C;QAC9C,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ;QAC1D,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,qBAAqB;QAC5D,eAAe,EAAE,EAAE;QACnB,iEAAiE;QACjE,mEAAmE;QACnE,sEAAsE;QACtE,iBAAiB,EAAE,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ;YAC7D,CAAC,CAAC,MAAM,CAAC,iBAAiB;YAC1B,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,IAAI,CAAC,MAA4C;QACzD,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACvD,CAAC;IAEF,OAAO,CAAC,GAAG,CACT,2BAA2B,GAAG,CAAC,YAAY,QAAQ,GAAG,CAAC,SAAS,kBAAkB,GAAG,CAAC,YAAY,GAAG,CACtG,CAAC;IAEF,uEAAuE;IACvE,kEAAkE;IAClE,qBAAqB;IACrB,IAAI,cAAc,GAA2B,IAAI,CAAC;IAClD,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,CAAC,SAA+B,CAAC;QAClD,MAAM,EAAE,GAAG,MAAM,CAAC,QAA8B,CAAC;QACjD,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAChC,cAAc,GAAG;gBACf,WAAW,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;oBACjC,IAAI,CAAC;wBAAC,MAAM,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;oBAAC,CAAC;oBAClC,OAAO,GAAY,EAAE,CAAC;wBACpB,MAAM,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC3D,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,EAAE,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;gBACD,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC;gBACrF,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAClC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,YAAY,IAAI,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;aAC9F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GACX,cAAc,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAE3F,6EAA6E;IAC7E,6EAA6E;IAC7E,iEAAiE;IACjE,uEAAuE;IACvE,mEAAmE;IACnE,iDAAiD;IACjD,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;QACjF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAkB,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,OAAO,GAAG,CAAC,KAA6B,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAkB,CAAC;gBACtF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;gBACpC,MAAM;gBACN,KAAK;gBACL,IAAI;gBACJ,WAAW;gBACX,SAAS,EAAE,KAAK,CAAC,eAAe;gBAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;aAC/C,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,MAAM,QAAQ,CAAC,KAAK,CAClB,kBAAkB,CAAC,UAAU,EAAE;gBAC7B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE,KAAK,CAAC,KAAK;gBACvB,KAAK;gBACL,IAAI;gBACJ,MAAM;gBACN,SAAS;gBACT,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC;aAClE,CAAC,CACH,CAAC;YACF,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACnD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,sEAAsE;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ;QACpD,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;QACvG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,UAAU,EACV,GAAG,EACH,SAAS,EACT,SAAS,EACT,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc,EACnB,GAAG,CAAC,EAAE,EAAY,kDAAkD;QACpE,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE;gBACvC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,+BAA+B;aACvF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,YAAY,eAAe,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,iBAAiB,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAmB;IAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAE7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,MAAM,wCAAwC,CAAC,CAAC;IAEtF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,qEAAqE;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,sBAAsB,CACvD,GAAG,CAAC,SAAS,EACb,0BAA0B,CAC3B,CAAC;QACF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,2BAA2B,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,WAAW;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,GAAG,mBAAmB,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,qBAAqB,QAAQ,GAAG,CAAC,iDAAiD,mBAAmB,kBAAkB,CAAC;YACpI,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,YAAY,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACzD,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,iDAAiD;QACjD,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACvC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,YAAY,QAAQ,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import type { ExecutorConfig } from "../engine/
|
|
1
|
+
import type { ExecutorConfig, GitAccessProfile, GitSandboxAccess } from "../engine/profiles.js";
|
|
2
2
|
import type { StateDb } from "../state/db.js";
|
|
3
|
-
import type { ModelConfig } from "../config.js";
|
|
3
|
+
import type { ModelConfig, VariantConfig } from "../config.js";
|
|
4
4
|
import type { AgentWorkflowDefinition } from "./schema.js";
|
|
5
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 };
|
|
6
9
|
/**
|
|
7
10
|
* Map of approval gate name → enabled. Gate names are arbitrary strings
|
|
8
11
|
* declared in YAML (`phase.approval_gate`, `phase.loop.approval_gate`); a
|
|
@@ -19,6 +22,23 @@ export interface RunnerCallbacks {
|
|
|
19
22
|
onPhaseStart?: (phase: string) => Promise<void>;
|
|
20
23
|
onPhaseEnd?: (phase: string, result: PhaseResult) => Promise<void>;
|
|
21
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;
|
|
22
42
|
}
|
|
23
43
|
export interface WorkflowResult {
|
|
24
44
|
success: boolean;
|
|
@@ -26,31 +46,18 @@ export interface WorkflowResult {
|
|
|
26
46
|
prNumber?: number;
|
|
27
47
|
paused?: boolean;
|
|
28
48
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*/
|
|
32
|
-
export declare function isTerminated(error?: string): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Resolve a recorded phase name to its index in `definition.phases`.
|
|
35
|
-
* Handles the generated iteration labels the runner writes for looping phases:
|
|
36
|
-
*
|
|
37
|
-
* `${phase}_iter_${n}` — generic_loop iteration
|
|
38
|
-
* `${phase}_fix_${n}` — reviewer-style loop fix cycle
|
|
39
|
-
* `${phase}_${n}` — reviewer-style loop re-review cycle
|
|
40
|
-
*
|
|
41
|
-
* Returns -1 when the name doesn't match any phase (unknown/untracked labels
|
|
42
|
-
* like `waiting_approval` or user set_phase values such as `complete`).
|
|
43
|
-
*/
|
|
44
|
-
export declare function phaseIndexInDefinition(definition: AgentWorkflowDefinition, name: string): number;
|
|
45
|
-
/**
|
|
46
|
-
* Given the phase the runner last completed, return the name of the phase the
|
|
47
|
-
* runner should run next. Returns `null` when there is no next phase (i.e. the
|
|
48
|
-
* workflow is done).
|
|
49
|
-
*/
|
|
50
|
-
export declare function nextPhaseAfter(definition: AgentWorkflowDefinition, completedPhase: string): string | null;
|
|
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
51
|
/**
|
|
52
52
|
* Run an agent workflow defined by a YAML definition.
|
|
53
|
-
*
|
|
54
|
-
*
|
|
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.
|
|
55
62
|
*/
|
|
56
|
-
export declare function runWorkflow(definition: AgentWorkflowDefinition, ctx: TemplateContext, config: ExecutorConfig, callbacks: RunnerCallbacks, db?: StateDb, models?: ModelConfig, approvalConfig?: ApprovalGateConfig, workflowId?: string): Promise<WorkflowResult>;
|
|
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>;
|