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
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ExecutorConfig } from "../engine/
|
|
1
|
+
import type { ExecutorConfig } 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 ApprovalGateConfig, type RunnerCallbacks, type WorkflowResult } from "./runner.js";
|
|
5
5
|
/**
|
|
6
6
|
* Lightweight invocation request for any agent workflow. The runner handles
|
|
@@ -39,7 +39,71 @@ export interface SimpleWorkflowRequest {
|
|
|
39
39
|
* pr-fix workflow's failedChecks/branch/prNumber payload.
|
|
40
40
|
*/
|
|
41
41
|
extra?: Record<string, unknown>;
|
|
42
|
+
/**
|
|
43
|
+
* When set, the harness pre-clones the repo at this branch into the
|
|
44
|
+
* sandbox workspace before the agent starts. Used by pr-review /
|
|
45
|
+
* pr-fix so the agent enters a workspace already checked out at the
|
|
46
|
+
* PR's head ref — saves a redundant `clone_repo` call inside the
|
|
47
|
+
* session.
|
|
48
|
+
*/
|
|
49
|
+
prePopulateBranch?: string;
|
|
42
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Workflows whose workspace is keyed by **(repo, PR)** rather than per-run.
|
|
53
|
+
* For these the taskId drops the run-id suffix so re-reviews of the same PR
|
|
54
|
+
* (push → `synchronize`, cron PR-review fanout) reuse one sandbox dir — a
|
|
55
|
+
* warm `node_modules` + an incremental `git fetch` instead of a fresh
|
|
56
|
+
* 1.3G clone + full install each time, and N dirs/PR collapse to 1 (issue
|
|
57
|
+
* #107, cutting the #106 churn at its source). Concurrency is held off by
|
|
58
|
+
* the dispatcher's `isRunning(skill, triggerId)` guard plus
|
|
59
|
+
* `runs.getByTrigger` reuse — two runs never share the dir live; the
|
|
60
|
+
* cross-run refresh in `prePopulateWorkspace` resets it cleanly between them.
|
|
61
|
+
* `build` is excluded — it creates a new branch per run and must not reuse.
|
|
62
|
+
*/
|
|
63
|
+
export declare const PER_TARGET_REUSE_WORKFLOWS: Set<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Workflows that synthesize their own `lastlight/N-slug` branch (which doesn't
|
|
66
|
+
* exist on the remote at dispatch time) yet should still pre-populate the
|
|
67
|
+
* sandbox: the agent's cwd becomes the repo root (no `git clone`/`cd`), and —
|
|
68
|
+
* for the read-only `verify`/`qa-test` runs — server-mode artifacts the agent
|
|
69
|
+
* writes to `.lastlight/<key>/` (e.g. browser-QA screenshots) land where
|
|
70
|
+
* `serverArtifacts()` harvests them instead of being orphaned a level up.
|
|
71
|
+
* `build` was the original member; verify/qa-test were added for the harvest
|
|
72
|
+
* fix, and `demo` for the same reason (its `demo.mp4` is written under
|
|
73
|
+
* `.lastlight/<key>/` and harvested into the Artifacts store). The dispatcher
|
|
74
|
+
* leaves `prePopulateBranch` unset for all of them; the missing-branch fallback
|
|
75
|
+
* in `prePopulateWorkspace` clones the default branch.
|
|
76
|
+
*/
|
|
77
|
+
export declare const PREPOPULATE_SYNTH_WORKFLOWS: Set<string>;
|
|
78
|
+
export declare function workflowScopedTaskId(repo: string, number: number | undefined, workflowName: string, workflowId: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Resolve the `{{branch}}` template var (and the matching sandbox
|
|
81
|
+
* `prePopulateBranch`) for a dispatch.
|
|
82
|
+
*
|
|
83
|
+
* The branch a build-style run creates and pushes is `lastlight/N-<title-slug>`,
|
|
84
|
+
* derived from the issue title at **first** dispatch. Every later re-entry of the
|
|
85
|
+
* same run — an approval-gate resume, a retry — comes through `runSimpleWorkflow`
|
|
86
|
+
* again, but the resume event carries an **empty** issue title, so a naive
|
|
87
|
+
* recompute collapses to the `lastlight/N-issue-N` fallback. That drifted name
|
|
88
|
+
* is harmless for phases that `git push origin HEAD` (the persisted workspace is
|
|
89
|
+
* still on the real branch) but fatal for the PR phase, whose prompt feeds
|
|
90
|
+
* `{{branch}}` straight into `github_create_pull_request`'s `head` — GitHub 422s
|
|
91
|
+
* because the fallback ref was never pushed.
|
|
92
|
+
*
|
|
93
|
+
* So when reusing an existing run we pin to the branch stored on the run row at
|
|
94
|
+
* creation, mirroring `resume.ts`'s `stored.branch ?? …` precedence. `stored`
|
|
95
|
+
* is `undefined` for a fresh run (no row yet).
|
|
96
|
+
*/
|
|
97
|
+
export declare function resolveRunBranch(args: {
|
|
98
|
+
stored?: Record<string, unknown>;
|
|
99
|
+
requestPrePopulateBranch?: string;
|
|
100
|
+
issueNumber?: number;
|
|
101
|
+
issueTitle?: string;
|
|
102
|
+
workflowName: string;
|
|
103
|
+
}): {
|
|
104
|
+
branch: string;
|
|
105
|
+
prePopulateBranch: string | undefined;
|
|
106
|
+
};
|
|
43
107
|
/**
|
|
44
108
|
* Run a named agent workflow against a target.
|
|
45
109
|
*
|
|
@@ -48,4 +112,4 @@ export interface SimpleWorkflowRequest {
|
|
|
48
112
|
* phase — including the paused/approved/rejected paths. Otherwise we create a
|
|
49
113
|
* fresh row so the dashboard sees it immediately.
|
|
50
114
|
*/
|
|
51
|
-
export declare function runSimpleWorkflow(workflowName: string, request: SimpleWorkflowRequest, config: ExecutorConfig, callbacks: RunnerCallbacks, db: StateDb, models?: ModelConfig, approvalConfig?: ApprovalGateConfig, bootstrapLabel?: string): Promise<WorkflowResult>;
|
|
115
|
+
export declare function runSimpleWorkflow(workflowName: string, request: SimpleWorkflowRequest, config: ExecutorConfig, callbacks: RunnerCallbacks, db: StateDb, models?: ModelConfig, approvalConfig?: ApprovalGateConfig, bootstrapLabel?: string, variants?: VariantConfig): Promise<WorkflowResult>;
|
package/dist/workflows/simple.js
CHANGED
|
@@ -1,13 +1,86 @@
|
|
|
1
1
|
import { randomUUID } from "crypto";
|
|
2
2
|
import { getWorkflow } from "./loader.js";
|
|
3
|
-
import { runWorkflow,
|
|
3
|
+
import { runWorkflow, } from "./runner.js";
|
|
4
|
+
import { PhaseRef } from "./phase-ref.js";
|
|
4
5
|
import { slugify } from "./templates.js";
|
|
5
|
-
|
|
6
|
+
import { wrapUntrusted } from "../engine/screen.js";
|
|
7
|
+
import { buildProgressModel, runDashboardUrl } from "../notify/model.js";
|
|
8
|
+
import { buildAssetIssueKey } from "../state/build-assets.js";
|
|
9
|
+
/**
|
|
10
|
+
* Workflows whose workspace is keyed by **(repo, PR)** rather than per-run.
|
|
11
|
+
* For these the taskId drops the run-id suffix so re-reviews of the same PR
|
|
12
|
+
* (push → `synchronize`, cron PR-review fanout) reuse one sandbox dir — a
|
|
13
|
+
* warm `node_modules` + an incremental `git fetch` instead of a fresh
|
|
14
|
+
* 1.3G clone + full install each time, and N dirs/PR collapse to 1 (issue
|
|
15
|
+
* #107, cutting the #106 churn at its source). Concurrency is held off by
|
|
16
|
+
* the dispatcher's `isRunning(skill, triggerId)` guard plus
|
|
17
|
+
* `runs.getByTrigger` reuse — two runs never share the dir live; the
|
|
18
|
+
* cross-run refresh in `prePopulateWorkspace` resets it cleanly between them.
|
|
19
|
+
* `build` is excluded — it creates a new branch per run and must not reuse.
|
|
20
|
+
*/
|
|
21
|
+
export const PER_TARGET_REUSE_WORKFLOWS = new Set(["pr-review", "pr-fix"]);
|
|
22
|
+
/**
|
|
23
|
+
* Workflows that synthesize their own `lastlight/N-slug` branch (which doesn't
|
|
24
|
+
* exist on the remote at dispatch time) yet should still pre-populate the
|
|
25
|
+
* sandbox: the agent's cwd becomes the repo root (no `git clone`/`cd`), and —
|
|
26
|
+
* for the read-only `verify`/`qa-test` runs — server-mode artifacts the agent
|
|
27
|
+
* writes to `.lastlight/<key>/` (e.g. browser-QA screenshots) land where
|
|
28
|
+
* `serverArtifacts()` harvests them instead of being orphaned a level up.
|
|
29
|
+
* `build` was the original member; verify/qa-test were added for the harvest
|
|
30
|
+
* fix, and `demo` for the same reason (its `demo.mp4` is written under
|
|
31
|
+
* `.lastlight/<key>/` and harvested into the Artifacts store). The dispatcher
|
|
32
|
+
* leaves `prePopulateBranch` unset for all of them; the missing-branch fallback
|
|
33
|
+
* in `prePopulateWorkspace` clones the default branch.
|
|
34
|
+
*/
|
|
35
|
+
export const PREPOPULATE_SYNTH_WORKFLOWS = new Set(["build", "verify", "qa-test", "demo"]);
|
|
36
|
+
export function workflowScopedTaskId(repo, number, workflowName, workflowId) {
|
|
37
|
+
// Reusable per-PR workspaces are keyed by (repo, PR) only — no run suffix.
|
|
38
|
+
if (number !== undefined && PER_TARGET_REUSE_WORKFLOWS.has(workflowName)) {
|
|
39
|
+
return `${repo}-${number}-${workflowName}`;
|
|
40
|
+
}
|
|
6
41
|
const suffix = workflowId.slice(0, 8);
|
|
7
42
|
return number !== undefined
|
|
8
43
|
? `${repo}-${number}-${workflowName}-${suffix}`
|
|
9
44
|
: `${repo}-${workflowName}-${suffix}`;
|
|
10
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolve the `{{branch}}` template var (and the matching sandbox
|
|
48
|
+
* `prePopulateBranch`) for a dispatch.
|
|
49
|
+
*
|
|
50
|
+
* The branch a build-style run creates and pushes is `lastlight/N-<title-slug>`,
|
|
51
|
+
* derived from the issue title at **first** dispatch. Every later re-entry of the
|
|
52
|
+
* same run — an approval-gate resume, a retry — comes through `runSimpleWorkflow`
|
|
53
|
+
* again, but the resume event carries an **empty** issue title, so a naive
|
|
54
|
+
* recompute collapses to the `lastlight/N-issue-N` fallback. That drifted name
|
|
55
|
+
* is harmless for phases that `git push origin HEAD` (the persisted workspace is
|
|
56
|
+
* still on the real branch) but fatal for the PR phase, whose prompt feeds
|
|
57
|
+
* `{{branch}}` straight into `github_create_pull_request`'s `head` — GitHub 422s
|
|
58
|
+
* because the fallback ref was never pushed.
|
|
59
|
+
*
|
|
60
|
+
* So when reusing an existing run we pin to the branch stored on the run row at
|
|
61
|
+
* creation, mirroring `resume.ts`'s `stored.branch ?? …` precedence. `stored`
|
|
62
|
+
* is `undefined` for a fresh run (no row yet).
|
|
63
|
+
*/
|
|
64
|
+
export function resolveRunBranch(args) {
|
|
65
|
+
const { stored, requestPrePopulateBranch, issueNumber, issueTitle, workflowName } = args;
|
|
66
|
+
const storedBranch = typeof stored?.branch === "string" && stored.branch ? stored.branch : undefined;
|
|
67
|
+
const storedPrePopulate = typeof stored?.prePopulateBranch === "string" && stored.prePopulateBranch
|
|
68
|
+
? stored.prePopulateBranch
|
|
69
|
+
: undefined;
|
|
70
|
+
const branch = storedBranch
|
|
71
|
+
?? requestPrePopulateBranch
|
|
72
|
+
?? (issueNumber !== undefined
|
|
73
|
+
? `lastlight/${issueNumber}-${slugify(issueTitle || `issue-${issueNumber}`)}`
|
|
74
|
+
: `lastlight/${workflowName}`);
|
|
75
|
+
// Pre-populate (clone into the sandbox, cwd = repo root) for the workflows in
|
|
76
|
+
// PREPOPULATE_SYNTH_WORKFLOWS even though they synthesize a not-yet-pushed
|
|
77
|
+
// branch — see that const's doc comment for why (the verify/qa-test harvest
|
|
78
|
+
// fix in particular).
|
|
79
|
+
const prePopulateBranch = storedPrePopulate
|
|
80
|
+
?? requestPrePopulateBranch
|
|
81
|
+
?? (PREPOPULATE_SYNTH_WORKFLOWS.has(workflowName) ? branch : undefined);
|
|
82
|
+
return { branch, prePopulateBranch };
|
|
83
|
+
}
|
|
11
84
|
/**
|
|
12
85
|
* Run a named agent workflow against a target.
|
|
13
86
|
*
|
|
@@ -16,7 +89,15 @@ function workflowScopedTaskId(repo, number, workflowName, workflowId) {
|
|
|
16
89
|
* phase — including the paused/approved/rejected paths. Otherwise we create a
|
|
17
90
|
* fresh row so the dashboard sees it immediately.
|
|
18
91
|
*/
|
|
19
|
-
export async function runSimpleWorkflow(workflowName, request, config, callbacks, db, models, approvalConfig, bootstrapLabel = "lastlight:bootstrap") {
|
|
92
|
+
export async function runSimpleWorkflow(workflowName, request, config, callbacks, db, models, approvalConfig, bootstrapLabel = "lastlight:bootstrap", variants) {
|
|
93
|
+
// Kill switch — if an admin has disabled this workflow in the dashboard,
|
|
94
|
+
// skip every trigger source (cron, webhooks, mentions, Slack) without
|
|
95
|
+
// creating a workflow_runs row. Returning success=true keeps callers
|
|
96
|
+
// (router, cron tick, etc.) from treating this as an error.
|
|
97
|
+
if (!db.isWorkflowEnabled(workflowName)) {
|
|
98
|
+
console.log(`[workflow] skipped "${workflowName}" — disabled in admin dashboard`);
|
|
99
|
+
return { success: true, phases: [] };
|
|
100
|
+
}
|
|
20
101
|
const definition = getWorkflow(workflowName);
|
|
21
102
|
const { owner, repo, issueNumber, prNumber } = request;
|
|
22
103
|
const notify = callbacks.postComment || (async () => { });
|
|
@@ -28,14 +109,26 @@ export async function runSimpleWorkflow(workflowName, request, config, callbacks
|
|
|
28
109
|
?? (number !== undefined
|
|
29
110
|
? `${owner}/${repo}#${number}`
|
|
30
111
|
: `${owner}/${repo}::${workflowName}`);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
112
|
+
// When the dispatcher passes `prePopulateBranch` (set for pr-review /
|
|
113
|
+
// pr-fix from the actual PR head ref), use that as the `branch` template
|
|
114
|
+
// var too — the agent's workspace is going to be checked out at that
|
|
115
|
+
// ref, so the prompt should reflect reality rather than a lastlight/N-slug
|
|
116
|
+
// name that doesn't exist. Build-style workflows still get the synthesized
|
|
117
|
+
// lastlight/N-slug branch they create themselves.
|
|
118
|
+
// `let`, not `const`: when we reuse an existing run below the resolution is
|
|
119
|
+
// redone with the run's stored context so the branch can't drift off the
|
|
120
|
+
// already-pushed name on resume — see `resolveRunBranch`.
|
|
121
|
+
let { branch, prePopulateBranch: effectivePrePopulateBranch } = resolveRunBranch({
|
|
122
|
+
requestPrePopulateBranch: request.prePopulateBranch,
|
|
123
|
+
issueNumber: number,
|
|
124
|
+
issueTitle: request.issueTitle,
|
|
125
|
+
workflowName,
|
|
126
|
+
});
|
|
34
127
|
// ── Resume handling ────────────────────────────────────────────────────────
|
|
35
128
|
//
|
|
36
129
|
// If a workflow_run already exists for this trigger, reuse its id. The
|
|
37
|
-
// runner
|
|
38
|
-
//
|
|
130
|
+
// runner re-runs from the top and the executions ledger (`shouldRunPhase`)
|
|
131
|
+
// skips already-completed phases — no per-workflow branching needed.
|
|
39
132
|
// Only reuse a workflow_run row when the existing run is still live
|
|
40
133
|
// (running/paused). `getWorkflowRunByTrigger` already filters out
|
|
41
134
|
// completed rows — a fresh re-trigger for a succeeded run falls through
|
|
@@ -44,7 +137,7 @@ export async function runSimpleWorkflow(workflowName, request, config, callbacks
|
|
|
44
137
|
let workflowId;
|
|
45
138
|
let taskId;
|
|
46
139
|
let issueDir;
|
|
47
|
-
const existingRun = db.
|
|
140
|
+
const existingRun = db.runs.getByTrigger(triggerId);
|
|
48
141
|
if (existingRun && existingRun.workflowName === workflowName) {
|
|
49
142
|
workflowId = existingRun.id;
|
|
50
143
|
const stored = (existingRun.context || {});
|
|
@@ -53,9 +146,20 @@ export async function runSimpleWorkflow(workflowName, request, config, callbacks
|
|
|
53
146
|
// Recover issueDir from stored context so resumed runs use the same
|
|
54
147
|
// workspace path as the original.
|
|
55
148
|
issueDir = stored.issueDir
|
|
56
|
-
|| (number
|
|
57
|
-
|
|
58
|
-
|
|
149
|
+
|| `.lastlight/${buildAssetIssueKey(workflowName, number, workflowId)}`;
|
|
150
|
+
// Re-resolve the branch with the run's stored context. A resume event (e.g.
|
|
151
|
+
// an approval response) carries an empty issue title, so the fresh
|
|
152
|
+
// computation above drifts to the `lastlight/N-issue-N` fallback — but the
|
|
153
|
+
// executor already pushed under the original title-slug name. Pinning to the
|
|
154
|
+
// stored branch keeps every re-entered phase's `{{branch}}` correct, most
|
|
155
|
+
// critically the PR phase's `head:` ref (otherwise GitHub 422s on create).
|
|
156
|
+
({ branch, prePopulateBranch: effectivePrePopulateBranch } = resolveRunBranch({
|
|
157
|
+
stored,
|
|
158
|
+
requestPrePopulateBranch: request.prePopulateBranch,
|
|
159
|
+
issueNumber: number,
|
|
160
|
+
issueTitle: request.issueTitle,
|
|
161
|
+
workflowName,
|
|
162
|
+
}));
|
|
59
163
|
const handled = await handleExistingRun(existingRun, definition, notify, db);
|
|
60
164
|
if (handled)
|
|
61
165
|
return handled;
|
|
@@ -66,10 +170,8 @@ export async function runSimpleWorkflow(workflowName, request, config, callbacks
|
|
|
66
170
|
// Issue-scoped workflows share a dir by issue number; non-issue
|
|
67
171
|
// workflows (explore, health, etc.) get a run-scoped dir so
|
|
68
172
|
// concurrent sessions never overlap.
|
|
69
|
-
issueDir = number
|
|
70
|
-
|
|
71
|
-
: `.lastlight/${workflowName}-${workflowId.slice(0, 8)}`;
|
|
72
|
-
db.createWorkflowRun({
|
|
173
|
+
issueDir = `.lastlight/${buildAssetIssueKey(workflowName, number, workflowId)}`;
|
|
174
|
+
db.runs.createRun({
|
|
73
175
|
id: workflowId,
|
|
74
176
|
workflowName,
|
|
75
177
|
triggerId,
|
|
@@ -83,16 +185,80 @@ export async function runSimpleWorkflow(workflowName, request, config, callbacks
|
|
|
83
185
|
branch,
|
|
84
186
|
taskId,
|
|
85
187
|
issueDir,
|
|
188
|
+
prePopulateBranch: effectivePrePopulateBranch,
|
|
86
189
|
models: models,
|
|
190
|
+
variants: variants,
|
|
87
191
|
...request.extra,
|
|
88
192
|
},
|
|
89
193
|
startedAt: new Date().toISOString(),
|
|
90
194
|
});
|
|
91
195
|
console.log(`[simple] Created workflow run ${workflowId} (${workflowName})`);
|
|
92
196
|
}
|
|
197
|
+
// Surface the run id to the dispatch layer as soon as it's known (either
|
|
198
|
+
// fresh or reused). Fire-and-forget so a slow/broken downstream hook can't
|
|
199
|
+
// stall the workflow.
|
|
200
|
+
if (callbacks.onRunStart) {
|
|
201
|
+
callbacks.onRunStart(workflowId).catch((err) => {
|
|
202
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
203
|
+
console.warn(`[simple] onRunStart callback threw: ${msg}`);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
// ── Seed the in-place progress checklist ───────────────────────────────────
|
|
207
|
+
//
|
|
208
|
+
// For workflows that opt into `status_checklist`, build the task-list model
|
|
209
|
+
// from the definition's phases and publish the initial surface (one GitHub
|
|
210
|
+
// comment / one Slack message that subsequent phases edit in place). On a
|
|
211
|
+
// resumed run we re-seed the SAME surface (the transport re-attaches to the
|
|
212
|
+
// stored comment id / message ts) and mark already-completed phases done.
|
|
213
|
+
if (callbacks.reporter && definition.status_checklist) {
|
|
214
|
+
const completed = new Set((existingRun?.phaseHistory ?? []).map((h) => h.phase));
|
|
215
|
+
const model = buildProgressModel(definition, {
|
|
216
|
+
workflowName,
|
|
217
|
+
number,
|
|
218
|
+
issueTitle: request.issueTitle,
|
|
219
|
+
owner,
|
|
220
|
+
repo,
|
|
221
|
+
branch,
|
|
222
|
+
completed,
|
|
223
|
+
runUrl: runDashboardUrl(callbacks.publicUrl, workflowId, workflowName),
|
|
224
|
+
});
|
|
225
|
+
await callbacks.reporter.start(model).catch((err) => {
|
|
226
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
227
|
+
console.warn(`[simple] reporter.start threw: ${msg}`);
|
|
228
|
+
});
|
|
229
|
+
}
|
|
93
230
|
// ── Build template context ─────────────────────────────────────────────────
|
|
94
|
-
|
|
95
|
-
|
|
231
|
+
//
|
|
232
|
+
// The context snapshot is the agent's primary view of the task. All
|
|
233
|
+
// user-provided text is wrapped in <<<USER_CONTENT_UNTRUSTED>>> markers so
|
|
234
|
+
// the agent — anchored by agent-context/security.md — treats them as data
|
|
235
|
+
// rather than instructions. The trigger metadata (sender, branch, issue
|
|
236
|
+
// ref) sits outside the wrappers so identity is established out-of-band.
|
|
237
|
+
//
|
|
238
|
+
// For build/pr-fix/explore workflows the dispatch path (src/index.ts)
|
|
239
|
+
// pre-fetches the real issue body + full comment thread and stitches them
|
|
240
|
+
// into request.extra.combinedContext (one screening call). For everything
|
|
241
|
+
// else we fall back to whatever the envelope carried.
|
|
242
|
+
const combinedContext = request.extra?.combinedContext || "";
|
|
243
|
+
const issueRef = `${owner}/${repo}${issueNumber ? `#${issueNumber}` : ""}`;
|
|
244
|
+
const hasAnyUserContent = !!(combinedContext || request.issueBody || request.commentBody);
|
|
245
|
+
const contextSnapshot = hasAnyUserContent
|
|
246
|
+
? [
|
|
247
|
+
`Repo: ${issueRef}`,
|
|
248
|
+
`Issue title: ${request.issueTitle || "(none)"}`,
|
|
249
|
+
request.commentBody
|
|
250
|
+
? `Triggering comment:\n${wrapUntrusted(request.commentBody, { source: "github-comment", author: request.sender })}`
|
|
251
|
+
: "",
|
|
252
|
+
`Requested by: ${request.sender}`,
|
|
253
|
+
`Branch: ${branch}`,
|
|
254
|
+
combinedContext
|
|
255
|
+
? `Issue body and full thread:\n${wrapUntrusted(combinedContext, { source: "github-issue-thread" })}`
|
|
256
|
+
: request.issueBody
|
|
257
|
+
? `Issue body:\n${wrapUntrusted(request.issueBody, { source: "github-issue-body" })}`
|
|
258
|
+
: "",
|
|
259
|
+
]
|
|
260
|
+
.filter(Boolean)
|
|
261
|
+
.join("\n\n")
|
|
96
262
|
: "";
|
|
97
263
|
const ctx = {
|
|
98
264
|
owner,
|
|
@@ -106,9 +272,33 @@ export async function runSimpleWorkflow(workflowName, request, config, callbacks
|
|
|
106
272
|
branch,
|
|
107
273
|
taskId,
|
|
108
274
|
issueDir,
|
|
275
|
+
// True only in server mode — prompts gate their `git add .lastlight/ &&
|
|
276
|
+
// commit` behind `{{#if !externalizeArtifacts}}` so the handoff docs are
|
|
277
|
+
// never committed into the target repo (they're harvested to the server
|
|
278
|
+
// store instead). Absent/false ⇒ repo behaviour (commit the docs).
|
|
279
|
+
externalizeArtifacts: config.buildAssets === "server",
|
|
280
|
+
// Dashboard base URL for the {{artifactUrl}} helper (server-mode doc links).
|
|
281
|
+
publicUrl: callbacks.publicUrl,
|
|
282
|
+
// Public, unauthenticated, image-only base URL for inline screenshot embeds
|
|
283
|
+
// in the browser-QA comment (so GitHub's image proxy can fetch them without
|
|
284
|
+
// a login). The agent appends `/<name>.png` per screenshot it saves. Empty
|
|
285
|
+
// when no PUBLIC_URL is configured — the prompt then falls back to
|
|
286
|
+
// filename-only references via `{{#if !artifactBaseUrl}}`. issueKey is
|
|
287
|
+
// issueDir minus the `.lastlight/` prefix.
|
|
288
|
+
artifactBaseUrl: callbacks.publicUrl
|
|
289
|
+
? `${String(callbacks.publicUrl).replace(/\/+$/, "")}/admin/api/public/artifacts/${owner}/${repo}/${issueDir.replace(/^\.lastlight\//, "")}`
|
|
290
|
+
: "",
|
|
109
291
|
bootstrapLabel,
|
|
110
292
|
contextSnapshot,
|
|
293
|
+
// Forwarded to the executor (via gitSandboxAccessForWorkflow) so the
|
|
294
|
+
// harness pre-clones this branch into the sandbox workspace before
|
|
295
|
+
// the agent starts. Stored on the workflow_run row above; also lives
|
|
296
|
+
// on ctx so the runner can read it without an extra DB lookup.
|
|
297
|
+
prePopulateBranch: effectivePrePopulateBranch,
|
|
111
298
|
models: models,
|
|
299
|
+
// Reasoning-effort overrides per phase. Empty/undefined entries skip
|
|
300
|
+
// the --variant flag (model uses its default effort).
|
|
301
|
+
variants: variants,
|
|
112
302
|
// Slack-initiated runs need the runner to pause/resume on the thread id,
|
|
113
303
|
// not on owner/repo#N. Passing the override through here keeps the
|
|
114
304
|
// runner's triggerId derivation in one place.
|
|
@@ -118,19 +308,36 @@ export async function runSimpleWorkflow(workflowName, request, config, callbacks
|
|
|
118
308
|
// them directly via {{failedChecks}} etc.
|
|
119
309
|
...(request.extra || {}),
|
|
120
310
|
};
|
|
311
|
+
// In server mode, tag the run's config with its artifact identity so the
|
|
312
|
+
// executor's stage-in/harvest seam can locate this run's docs in the store
|
|
313
|
+
// at `<buildAssetsDir>/<owner>/<repo>/<issueKey>/`. issueKey is issueDir
|
|
314
|
+
// without the `.lastlight/` prefix, so it tracks however issueDir was formed
|
|
315
|
+
// (fresh derivation or recovered-from-context on resume).
|
|
316
|
+
const runConfig = config.buildAssets === "server"
|
|
317
|
+
? {
|
|
318
|
+
...config,
|
|
319
|
+
buildAssetsKey: {
|
|
320
|
+
owner,
|
|
321
|
+
repo,
|
|
322
|
+
issueKey: issueDir.replace(/^\.lastlight\//, ""),
|
|
323
|
+
},
|
|
324
|
+
}
|
|
325
|
+
: config;
|
|
121
326
|
try {
|
|
122
|
-
const result = await runWorkflow(definition, ctx,
|
|
327
|
+
const result = await runWorkflow(definition, ctx, runConfig, callbacks, db, models, approvalConfig, workflowId, variants);
|
|
123
328
|
if (result.success && !result.paused) {
|
|
124
|
-
db.
|
|
329
|
+
db.runs.finishRun(workflowId, "succeeded");
|
|
125
330
|
}
|
|
126
331
|
else if (!result.success && !result.paused) {
|
|
127
|
-
db.
|
|
332
|
+
db.runs.finishRun(workflowId, "failed", {
|
|
333
|
+
error: result.phases.find((p) => !p.success)?.error || "workflow failed",
|
|
334
|
+
});
|
|
128
335
|
}
|
|
129
336
|
return result;
|
|
130
337
|
}
|
|
131
338
|
catch (err) {
|
|
132
339
|
const msg = err instanceof Error ? err.message : String(err);
|
|
133
|
-
db.
|
|
340
|
+
db.runs.finishRun(workflowId, "failed", { error: msg });
|
|
134
341
|
throw err;
|
|
135
342
|
}
|
|
136
343
|
}
|
|
@@ -140,53 +347,31 @@ export async function runSimpleWorkflow(workflowName, request, config, callbacks
|
|
|
140
347
|
* paused), or `null` to continue into `runWorkflow` for normal resume.
|
|
141
348
|
*/
|
|
142
349
|
async function handleExistingRun(run, definition, notify, db) {
|
|
143
|
-
// Workflow already completed
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
//
|
|
350
|
+
// Workflow already completed: currentPhase is a terminal set_phase marker
|
|
351
|
+
// (e.g. "complete") — i.e. not a declared phase, not a generated loop label
|
|
352
|
+
// (`*_fix_N` / `*_recheck_N` / `*_iter_N`), and not the synthetic
|
|
353
|
+
// "waiting_approval" pause marker. Don't re-run.
|
|
147
354
|
if (run.currentPhase &&
|
|
148
355
|
run.currentPhase !== "waiting_approval" &&
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
};
|
|
157
|
-
}
|
|
356
|
+
!definition.phases.some((p) => p.name === run.currentPhase) &&
|
|
357
|
+
PhaseRef.parse(run.currentPhase).kind === "phase") {
|
|
358
|
+
await notify(`Workflow \`${run.workflowName}\` is already complete for this trigger.`);
|
|
359
|
+
return {
|
|
360
|
+
success: true,
|
|
361
|
+
phases: [{ phase: "resume", success: true, output: "Already complete" }],
|
|
362
|
+
};
|
|
158
363
|
}
|
|
159
364
|
// Paused awaiting approval — see if a human has responded.
|
|
160
365
|
if (run.status === "paused" && run.currentPhase === "waiting_approval") {
|
|
161
|
-
const pendingApproval = db.
|
|
366
|
+
const pendingApproval = db.approvals.getPendingForWorkflow(run.id);
|
|
162
367
|
if (pendingApproval?.status === "approved") {
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
//
|
|
168
|
-
const owningPhase = findPhaseOwningLoopGate(definition, pendingApproval.gate)
|
|
169
|
-
?? findPhaseOwningGate(definition, pendingApproval.gate);
|
|
170
|
-
if (owningPhase && pendingApproval.kind === "reply") {
|
|
171
|
-
const ownIdx = definition.phases.findIndex((p) => p.name === owningPhase);
|
|
172
|
-
const priorPhase = ownIdx > 0 ? definition.phases[ownIdx - 1].name : "";
|
|
173
|
-
db.updateWorkflowPhase(run.id, priorPhase || owningPhase, {
|
|
174
|
-
phase: priorPhase || owningPhase,
|
|
175
|
-
timestamp: new Date().toISOString(),
|
|
176
|
-
success: true,
|
|
177
|
-
summary: `Resumed after reply on gate: ${pendingApproval.gate}`,
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
else if (owningPhase) {
|
|
181
|
-
db.updateWorkflowPhase(run.id, owningPhase, {
|
|
182
|
-
phase: owningPhase,
|
|
183
|
-
timestamp: new Date().toISOString(),
|
|
184
|
-
success: true,
|
|
185
|
-
summary: `Resumed after gate approval: ${pendingApproval.gate}`,
|
|
186
|
-
});
|
|
187
|
-
}
|
|
368
|
+
// Resume is ledger-driven: the runner re-runs from the top and every
|
|
369
|
+
// completed phase skips via `shouldRunPhase` (the executions ledger).
|
|
370
|
+
// No currentPhase manipulation is needed — for an approve gate the
|
|
371
|
+
// gated phase is already `done` so the runner proceeds past it; for a
|
|
372
|
+
// reply gate the loop node resumes from `scratch.iteration`.
|
|
188
373
|
console.log(`[simple] ${pendingApproval.kind === "reply" ? "Reply" : "Approval"} received for gate ${pendingApproval.gate} — resuming ${run.workflowName}`);
|
|
189
|
-
db.
|
|
374
|
+
db.runs.setRunning(run.id);
|
|
190
375
|
if (pendingApproval.kind !== "reply") {
|
|
191
376
|
await notify(`**Approval received** — resuming \`${run.workflowName}\`.`);
|
|
192
377
|
}
|
|
@@ -194,7 +379,7 @@ async function handleExistingRun(run, definition, notify, db) {
|
|
|
194
379
|
}
|
|
195
380
|
else if (pendingApproval?.status === "rejected") {
|
|
196
381
|
const reason = pendingApproval.response || "no reason given";
|
|
197
|
-
db.
|
|
382
|
+
db.runs.finishRun(run.id, "failed", { error: `Rejected: ${reason}` });
|
|
198
383
|
await notify(`Workflow \`${run.workflowName}\` was rejected. Reason: ${reason}`);
|
|
199
384
|
return {
|
|
200
385
|
success: false,
|
|
@@ -210,28 +395,4 @@ async function handleExistingRun(run, definition, notify, db) {
|
|
|
210
395
|
console.log(`[simple] Resuming ${run.workflowName} for ${run.triggerId} (last phase: ${run.currentPhase})`);
|
|
211
396
|
return null;
|
|
212
397
|
}
|
|
213
|
-
/** Walk definition.phases and return the phase that declares this gate. */
|
|
214
|
-
function findPhaseOwningGate(definition, gateName) {
|
|
215
|
-
for (const p of definition.phases) {
|
|
216
|
-
if (p.approval_gate === gateName)
|
|
217
|
-
return p.name;
|
|
218
|
-
if (p.loop?.approval_gate === gateName)
|
|
219
|
-
return p.name;
|
|
220
|
-
}
|
|
221
|
-
return null;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Generic-loop gates are named `${phaseName}_iter_${N}`, so walk the phases
|
|
225
|
-
* with `generic_loop` set and match by prefix. Used for reply-gate resume
|
|
226
|
-
* where the gate name isn't declared up front.
|
|
227
|
-
*/
|
|
228
|
-
function findPhaseOwningLoopGate(definition, gateName) {
|
|
229
|
-
for (const p of definition.phases) {
|
|
230
|
-
if (!p.generic_loop)
|
|
231
|
-
continue;
|
|
232
|
-
if (gateName.startsWith(`${p.name}_iter_`))
|
|
233
|
-
return p.name;
|
|
234
|
-
}
|
|
235
|
-
return null;
|
|
236
|
-
}
|
|
237
398
|
//# sourceMappingURL=simple.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/workflows/simple.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/workflows/simple.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|