night-orch 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -0
- package/dist/cli/commands/cleanup.d.ts +14 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/cleanup.js +62 -0
- package/dist/cli/commands/cleanup.js.map +1 -0
- package/dist/cli/commands/continue.d.ts +9 -0
- package/dist/cli/commands/continue.d.ts.map +1 -0
- package/dist/cli/commands/continue.js +70 -0
- package/dist/cli/commands/continue.js.map +1 -0
- package/dist/cli/commands/cost-override.d.ts +11 -0
- package/dist/cli/commands/cost-override.d.ts.map +1 -0
- package/dist/cli/commands/cost-override.js +76 -0
- package/dist/cli/commands/cost-override.js.map +1 -0
- package/dist/cli/commands/daily-cost-override.d.ts +11 -0
- package/dist/cli/commands/daily-cost-override.d.ts.map +1 -0
- package/dist/cli/commands/daily-cost-override.js +71 -0
- package/dist/cli/commands/daily-cost-override.js.map +1 -0
- package/dist/cli/commands/delete-entry.d.ts +12 -0
- package/dist/cli/commands/delete-entry.d.ts.map +1 -0
- package/dist/cli/commands/delete-entry.js +68 -0
- package/dist/cli/commands/delete-entry.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +9 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +227 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +73 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/labels-init.d.ts +9 -0
- package/dist/cli/commands/labels-init.d.ts.map +1 -0
- package/dist/cli/commands/labels-init.js +52 -0
- package/dist/cli/commands/labels-init.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +9 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +52 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/monitoring-init.d.ts +2 -0
- package/dist/cli/commands/monitoring-init.d.ts.map +1 -0
- package/dist/cli/commands/monitoring-init.js +43 -0
- package/dist/cli/commands/monitoring-init.js.map +1 -0
- package/dist/cli/commands/notify-test.d.ts +9 -0
- package/dist/cli/commands/notify-test.d.ts.map +1 -0
- package/dist/cli/commands/notify-test.js +41 -0
- package/dist/cli/commands/notify-test.js.map +1 -0
- package/dist/cli/commands/rebase.d.ts +9 -0
- package/dist/cli/commands/rebase.d.ts.map +1 -0
- package/dist/cli/commands/rebase.js +63 -0
- package/dist/cli/commands/rebase.js.map +1 -0
- package/dist/cli/commands/retry.d.ts +14 -0
- package/dist/cli/commands/retry.d.ts.map +1 -0
- package/dist/cli/commands/retry.js +52 -0
- package/dist/cli/commands/retry.js.map +1 -0
- package/dist/cli/commands/run-once.d.ts +9 -0
- package/dist/cli/commands/run-once.d.ts.map +1 -0
- package/dist/cli/commands/run-once.js +62 -0
- package/dist/cli/commands/run-once.js.map +1 -0
- package/dist/cli/commands/run.d.ts +9 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +142 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +14 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +51 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/settings.d.ts +10 -0
- package/dist/cli/commands/settings.d.ts.map +1 -0
- package/dist/cli/commands/settings.js +100 -0
- package/dist/cli/commands/settings.js.map +1 -0
- package/dist/cli/commands/status.d.ts +8 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +153 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +9 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +60 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/update.d.ts +4 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +29 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +9 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +56 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/commands/web.d.ts +16 -0
- package/dist/cli/commands/web.d.ts.map +1 -0
- package/dist/cli/commands/web.js +206 -0
- package/dist/cli/commands/web.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +213 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init/detector.d.ts +7 -0
- package/dist/cli/init/detector.d.ts.map +1 -0
- package/dist/cli/init/detector.js +40 -0
- package/dist/cli/init/detector.js.map +1 -0
- package/dist/cli/init/templates.d.ts +10 -0
- package/dist/cli/init/templates.d.ts.map +1 -0
- package/dist/cli/init/templates.js +30 -0
- package/dist/cli/init/templates.js.map +1 -0
- package/dist/cli/tui/actions-bar.d.ts +21 -0
- package/dist/cli/tui/actions-bar.d.ts.map +1 -0
- package/dist/cli/tui/actions-bar.js +91 -0
- package/dist/cli/tui/actions-bar.js.map +1 -0
- package/dist/cli/tui/active-runs.d.ts +9 -0
- package/dist/cli/tui/active-runs.d.ts.map +1 -0
- package/dist/cli/tui/active-runs.js +23 -0
- package/dist/cli/tui/active-runs.js.map +1 -0
- package/dist/cli/tui/agent-stream.d.ts +10 -0
- package/dist/cli/tui/agent-stream.d.ts.map +1 -0
- package/dist/cli/tui/agent-stream.js +83 -0
- package/dist/cli/tui/agent-stream.js.map +1 -0
- package/dist/cli/tui/app.d.ts +40 -0
- package/dist/cli/tui/app.d.ts.map +1 -0
- package/dist/cli/tui/app.js +995 -0
- package/dist/cli/tui/app.js.map +1 -0
- package/dist/cli/tui/constants.d.ts +15 -0
- package/dist/cli/tui/constants.d.ts.map +1 -0
- package/dist/cli/tui/constants.js +102 -0
- package/dist/cli/tui/constants.js.map +1 -0
- package/dist/cli/tui/cost-bar.d.ts +10 -0
- package/dist/cli/tui/cost-bar.d.ts.map +1 -0
- package/dist/cli/tui/cost-bar.js +17 -0
- package/dist/cli/tui/cost-bar.js.map +1 -0
- package/dist/cli/tui/data.d.ts +56 -0
- package/dist/cli/tui/data.d.ts.map +1 -0
- package/dist/cli/tui/data.js +296 -0
- package/dist/cli/tui/data.js.map +1 -0
- package/dist/cli/tui/format.d.ts +11 -0
- package/dist/cli/tui/format.d.ts.map +1 -0
- package/dist/cli/tui/format.js +83 -0
- package/dist/cli/tui/format.js.map +1 -0
- package/dist/cli/tui/header.d.ts +16 -0
- package/dist/cli/tui/header.d.ts.map +1 -0
- package/dist/cli/tui/header.js +22 -0
- package/dist/cli/tui/header.js.map +1 -0
- package/dist/cli/tui/logs-view.d.ts +19 -0
- package/dist/cli/tui/logs-view.d.ts.map +1 -0
- package/dist/cli/tui/logs-view.js +63 -0
- package/dist/cli/tui/logs-view.js.map +1 -0
- package/dist/cli/tui/merge-queue-panel.d.ts +9 -0
- package/dist/cli/tui/merge-queue-panel.d.ts.map +1 -0
- package/dist/cli/tui/merge-queue-panel.js +14 -0
- package/dist/cli/tui/merge-queue-panel.js.map +1 -0
- package/dist/cli/tui/projects-view.d.ts +25 -0
- package/dist/cli/tui/projects-view.d.ts.map +1 -0
- package/dist/cli/tui/projects-view.js +145 -0
- package/dist/cli/tui/projects-view.js.map +1 -0
- package/dist/cli/tui/recent-runs.d.ts +9 -0
- package/dist/cli/tui/recent-runs.d.ts.map +1 -0
- package/dist/cli/tui/recent-runs.js +20 -0
- package/dist/cli/tui/recent-runs.js.map +1 -0
- package/dist/cli/tui/runs-view.d.ts +22 -0
- package/dist/cli/tui/runs-view.d.ts.map +1 -0
- package/dist/cli/tui/runs-view.js +48 -0
- package/dist/cli/tui/runs-view.js.map +1 -0
- package/dist/cli/tui/settings-view.d.ts +9 -0
- package/dist/cli/tui/settings-view.d.ts.map +1 -0
- package/dist/cli/tui/settings-view.js +21 -0
- package/dist/cli/tui/settings-view.js.map +1 -0
- package/dist/cli/tui/stats-view.d.ts +11 -0
- package/dist/cli/tui/stats-view.d.ts.map +1 -0
- package/dist/cli/tui/stats-view.js +48 -0
- package/dist/cli/tui/stats-view.js.map +1 -0
- package/dist/cli/tui/titles.d.ts +36 -0
- package/dist/cli/tui/titles.d.ts.map +1 -0
- package/dist/cli/tui/titles.js +50 -0
- package/dist/cli/tui/titles.js.map +1 -0
- package/dist/cli/tui/types.d.ts +10 -0
- package/dist/cli/tui/types.d.ts.map +1 -0
- package/dist/cli/tui/types.js +2 -0
- package/dist/cli/tui/types.js.map +1 -0
- package/dist/cli/tui/view-model.d.ts +20 -0
- package/dist/cli/tui/view-model.d.ts.map +1 -0
- package/dist/cli/tui/view-model.js +80 -0
- package/dist/cli/tui/view-model.js.map +1 -0
- package/dist/components/button/button.tui.d.ts +4 -0
- package/dist/components/button/button.tui.d.ts.map +1 -0
- package/dist/components/button/button.tui.js +16 -0
- package/dist/components/button/button.tui.js.map +1 -0
- package/dist/components/button/button.web.d.ts +4 -0
- package/dist/components/button/button.web.d.ts.map +1 -0
- package/dist/components/button/button.web.js +7 -0
- package/dist/components/button/button.web.js.map +1 -0
- package/dist/components/button/index.d.ts +5 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +4 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/button/types.d.ts +28 -0
- package/dist/components/button/types.d.ts.map +1 -0
- package/dist/components/button/types.js +2 -0
- package/dist/components/button/types.js.map +1 -0
- package/dist/components/button/view-model.d.ts +3 -0
- package/dist/components/button/view-model.d.ts.map +1 -0
- package/dist/components/button/view-model.js +53 -0
- package/dist/components/button/view-model.js.map +1 -0
- package/dist/components/card/card.tui.d.ts +4 -0
- package/dist/components/card/card.tui.d.ts.map +1 -0
- package/dist/components/card/card.tui.js +41 -0
- package/dist/components/card/card.tui.js.map +1 -0
- package/dist/components/card/card.web.d.ts +4 -0
- package/dist/components/card/card.web.d.ts.map +1 -0
- package/dist/components/card/card.web.js +12 -0
- package/dist/components/card/card.web.js.map +1 -0
- package/dist/components/card/index.d.ts +5 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +4 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/card/types.d.ts +22 -0
- package/dist/components/card/types.d.ts.map +1 -0
- package/dist/components/card/types.js +2 -0
- package/dist/components/card/types.js.map +1 -0
- package/dist/components/card/view-model.d.ts +3 -0
- package/dist/components/card/view-model.d.ts.map +1 -0
- package/dist/components/card/view-model.js +35 -0
- package/dist/components/card/view-model.js.map +1 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/issue-row/index.d.ts +5 -0
- package/dist/components/issue-row/index.d.ts.map +1 -0
- package/dist/components/issue-row/index.js +4 -0
- package/dist/components/issue-row/index.js.map +1 -0
- package/dist/components/issue-row/issue-row.tui.d.ts +4 -0
- package/dist/components/issue-row/issue-row.tui.d.ts.map +1 -0
- package/dist/components/issue-row/issue-row.tui.js +15 -0
- package/dist/components/issue-row/issue-row.tui.js.map +1 -0
- package/dist/components/issue-row/issue-row.web.d.ts +4 -0
- package/dist/components/issue-row/issue-row.web.d.ts.map +1 -0
- package/dist/components/issue-row/issue-row.web.js +14 -0
- package/dist/components/issue-row/issue-row.web.js.map +1 -0
- package/dist/components/issue-row/types.d.ts +18 -0
- package/dist/components/issue-row/types.d.ts.map +1 -0
- package/dist/components/issue-row/types.js +2 -0
- package/dist/components/issue-row/types.js.map +1 -0
- package/dist/components/issue-row/view-model.d.ts +3 -0
- package/dist/components/issue-row/view-model.d.ts.map +1 -0
- package/dist/components/issue-row/view-model.js +31 -0
- package/dist/components/issue-row/view-model.js.map +1 -0
- package/dist/components/modal/index.d.ts +3 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js +2 -0
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/modal/modal.web.d.ts +16 -0
- package/dist/components/modal/modal.web.d.ts.map +1 -0
- package/dist/components/modal/modal.web.js +92 -0
- package/dist/components/modal/modal.web.js.map +1 -0
- package/dist/components/modal/types.d.ts +15 -0
- package/dist/components/modal/types.d.ts.map +1 -0
- package/dist/components/modal/types.js +2 -0
- package/dist/components/modal/types.js.map +1 -0
- package/dist/config/loader.d.ts +23 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +136 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/paths.d.ts +6 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +24 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/schema.d.ts +3088 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +328 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/discovery/commands.d.ts +33 -0
- package/dist/discovery/commands.d.ts.map +1 -0
- package/dist/discovery/commands.js +82 -0
- package/dist/discovery/commands.js.map +1 -0
- package/dist/discovery/decomposer.d.ts +6 -0
- package/dist/discovery/decomposer.d.ts.map +1 -0
- package/dist/discovery/decomposer.js +102 -0
- package/dist/discovery/decomposer.js.map +1 -0
- package/dist/discovery/discover.d.ts +21 -0
- package/dist/discovery/discover.d.ts.map +1 -0
- package/dist/discovery/discover.js +98 -0
- package/dist/discovery/discover.js.map +1 -0
- package/dist/discovery/followup.d.ts +14 -0
- package/dist/discovery/followup.d.ts.map +1 -0
- package/dist/discovery/followup.js +27 -0
- package/dist/discovery/followup.js.map +1 -0
- package/dist/discovery/roles.d.ts +15 -0
- package/dist/discovery/roles.d.ts.map +1 -0
- package/dist/discovery/roles.js +36 -0
- package/dist/discovery/roles.js.map +1 -0
- package/dist/discovery/selector.d.ts +13 -0
- package/dist/discovery/selector.d.ts.map +1 -0
- package/dist/discovery/selector.js +27 -0
- package/dist/discovery/selector.js.map +1 -0
- package/dist/discovery/triage.d.ts +29 -0
- package/dist/discovery/triage.d.ts.map +1 -0
- package/dist/discovery/triage.js +61 -0
- package/dist/discovery/triage.js.map +1 -0
- package/dist/environment/bootstrap.d.ts +19 -0
- package/dist/environment/bootstrap.d.ts.map +1 -0
- package/dist/environment/bootstrap.js +89 -0
- package/dist/environment/bootstrap.js.map +1 -0
- package/dist/environment/dedicated.d.ts +17 -0
- package/dist/environment/dedicated.d.ts.map +1 -0
- package/dist/environment/dedicated.js +68 -0
- package/dist/environment/dedicated.js.map +1 -0
- package/dist/environment/env-file.d.ts +16 -0
- package/dist/environment/env-file.d.ts.map +1 -0
- package/dist/environment/env-file.js +74 -0
- package/dist/environment/env-file.js.map +1 -0
- package/dist/environment/manager.d.ts +33 -0
- package/dist/environment/manager.d.ts.map +1 -0
- package/dist/environment/manager.js +113 -0
- package/dist/environment/manager.js.map +1 -0
- package/dist/environment/port.d.ts +15 -0
- package/dist/environment/port.d.ts.map +1 -0
- package/dist/environment/port.js +21 -0
- package/dist/environment/port.js.map +1 -0
- package/dist/environment/shared.d.ts +6 -0
- package/dist/environment/shared.d.ts.map +1 -0
- package/dist/environment/shared.js +30 -0
- package/dist/environment/shared.js.map +1 -0
- package/dist/events/bus.d.ts +18 -0
- package/dist/events/bus.d.ts.map +1 -0
- package/dist/events/bus.js +70 -0
- package/dist/events/bus.js.map +1 -0
- package/dist/events/observability.d.ts +32 -0
- package/dist/events/observability.d.ts.map +1 -0
- package/dist/events/observability.js +155 -0
- package/dist/events/observability.js.map +1 -0
- package/dist/events/types.d.ts +18 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +2 -0
- package/dist/events/types.js.map +1 -0
- package/dist/forge/bot-comment.d.ts +17 -0
- package/dist/forge/bot-comment.d.ts.map +1 -0
- package/dist/forge/bot-comment.js +30 -0
- package/dist/forge/bot-comment.js.map +1 -0
- package/dist/forge/factory.d.ts +4 -0
- package/dist/forge/factory.d.ts.map +1 -0
- package/dist/forge/factory.js +31 -0
- package/dist/forge/factory.js.map +1 -0
- package/dist/forge/forgejo-client.d.ts +20 -0
- package/dist/forge/forgejo-client.d.ts.map +1 -0
- package/dist/forge/forgejo-client.js +114 -0
- package/dist/forge/forgejo-client.js.map +1 -0
- package/dist/forge/forgejo-labels.d.ts +13 -0
- package/dist/forge/forgejo-labels.d.ts.map +1 -0
- package/dist/forge/forgejo-labels.js +51 -0
- package/dist/forge/forgejo-labels.js.map +1 -0
- package/dist/forge/forgejo.d.ts +31 -0
- package/dist/forge/forgejo.d.ts.map +1 -0
- package/dist/forge/forgejo.js +264 -0
- package/dist/forge/forgejo.js.map +1 -0
- package/dist/forge/github.d.ts +31 -0
- package/dist/forge/github.d.ts.map +1 -0
- package/dist/forge/github.js +438 -0
- package/dist/forge/github.js.map +1 -0
- package/dist/forge/status-comment.d.ts +19 -0
- package/dist/forge/status-comment.d.ts.map +1 -0
- package/dist/forge/status-comment.js +44 -0
- package/dist/forge/status-comment.js.map +1 -0
- package/dist/forge/types.d.ts +118 -0
- package/dist/forge/types.d.ts.map +1 -0
- package/dist/forge/types.js +2 -0
- package/dist/forge/types.js.map +1 -0
- package/dist/git/process.d.ts +15 -0
- package/dist/git/process.d.ts.map +1 -0
- package/dist/git/process.js +38 -0
- package/dist/git/process.js.map +1 -0
- package/dist/git/repo.d.ts +64 -0
- package/dist/git/repo.d.ts.map +1 -0
- package/dist/git/repo.js +158 -0
- package/dist/git/repo.js.map +1 -0
- package/dist/git/slug.d.ts +13 -0
- package/dist/git/slug.d.ts.map +1 -0
- package/dist/git/slug.js +28 -0
- package/dist/git/slug.js.map +1 -0
- package/dist/git/worktree.d.ts +23 -0
- package/dist/git/worktree.d.ts.map +1 -0
- package/dist/git/worktree.js +200 -0
- package/dist/git/worktree.js.map +1 -0
- package/dist/labels/bootstrap.d.ts +12 -0
- package/dist/labels/bootstrap.d.ts.map +1 -0
- package/dist/labels/bootstrap.js +101 -0
- package/dist/labels/bootstrap.js.map +1 -0
- package/dist/labels/config.d.ts +6 -0
- package/dist/labels/config.d.ts.map +1 -0
- package/dist/labels/config.js +56 -0
- package/dist/labels/config.js.map +1 -0
- package/dist/labels/manager.d.ts +10 -0
- package/dist/labels/manager.d.ts.map +1 -0
- package/dist/labels/manager.js +30 -0
- package/dist/labels/manager.js.map +1 -0
- package/dist/labels/transitions.d.ts +33 -0
- package/dist/labels/transitions.d.ts.map +1 -0
- package/dist/labels/transitions.js +81 -0
- package/dist/labels/transitions.js.map +1 -0
- package/dist/loop/checkpoint.d.ts +60 -0
- package/dist/loop/checkpoint.d.ts.map +1 -0
- package/dist/loop/checkpoint.js +226 -0
- package/dist/loop/checkpoint.js.map +1 -0
- package/dist/loop/commit.d.ts +17 -0
- package/dist/loop/commit.d.ts.map +1 -0
- package/dist/loop/commit.js +65 -0
- package/dist/loop/commit.js.map +1 -0
- package/dist/loop/context.d.ts +11 -0
- package/dist/loop/context.d.ts.map +1 -0
- package/dist/loop/context.js +26 -0
- package/dist/loop/context.js.map +1 -0
- package/dist/loop/cost.d.ts +79 -0
- package/dist/loop/cost.d.ts.map +1 -0
- package/dist/loop/cost.js +223 -0
- package/dist/loop/cost.js.map +1 -0
- package/dist/loop/decision.d.ts +22 -0
- package/dist/loop/decision.d.ts.map +1 -0
- package/dist/loop/decision.js +118 -0
- package/dist/loop/decision.js.map +1 -0
- package/dist/loop/diff-guard.d.ts +21 -0
- package/dist/loop/diff-guard.d.ts.map +1 -0
- package/dist/loop/diff-guard.js +52 -0
- package/dist/loop/diff-guard.js.map +1 -0
- package/dist/loop/engine.d.ts +32 -0
- package/dist/loop/engine.d.ts.map +1 -0
- package/dist/loop/engine.js +376 -0
- package/dist/loop/engine.js.map +1 -0
- package/dist/loop/parallel.d.ts +20 -0
- package/dist/loop/parallel.d.ts.map +1 -0
- package/dist/loop/parallel.js +144 -0
- package/dist/loop/parallel.js.map +1 -0
- package/dist/loop/plan-summary-comment.d.ts +5 -0
- package/dist/loop/plan-summary-comment.d.ts.map +1 -0
- package/dist/loop/plan-summary-comment.js +89 -0
- package/dist/loop/plan-summary-comment.js.map +1 -0
- package/dist/loop/pricing.d.ts +23 -0
- package/dist/loop/pricing.d.ts.map +1 -0
- package/dist/loop/pricing.js +64 -0
- package/dist/loop/pricing.js.map +1 -0
- package/dist/loop/review-feedback.d.ts +12 -0
- package/dist/loop/review-feedback.d.ts.map +1 -0
- package/dist/loop/review-feedback.js +55 -0
- package/dist/loop/review-feedback.js.map +1 -0
- package/dist/loop/step-executor.d.ts +70 -0
- package/dist/loop/step-executor.d.ts.map +1 -0
- package/dist/loop/step-executor.js +328 -0
- package/dist/loop/step-executor.js.map +1 -0
- package/dist/loop/supervisor.d.ts +9 -0
- package/dist/loop/supervisor.d.ts.map +1 -0
- package/dist/loop/supervisor.js +22 -0
- package/dist/loop/supervisor.js.map +1 -0
- package/dist/loop/types.d.ts +66 -0
- package/dist/loop/types.d.ts.map +1 -0
- package/dist/loop/types.js +2 -0
- package/dist/loop/types.js.map +1 -0
- package/dist/loop/verifier.d.ts +9 -0
- package/dist/loop/verifier.d.ts.map +1 -0
- package/dist/loop/verifier.js +59 -0
- package/dist/loop/verifier.js.map +1 -0
- package/dist/loop/workflow.d.ts +38 -0
- package/dist/loop/workflow.d.ts.map +1 -0
- package/dist/loop/workflow.js +64 -0
- package/dist/loop/workflow.js.map +1 -0
- package/dist/mcp/http.d.ts +8 -0
- package/dist/mcp/http.d.ts.map +1 -0
- package/dist/mcp/http.js +76 -0
- package/dist/mcp/http.js.map +1 -0
- package/dist/mcp/resources/index.d.ts +11 -0
- package/dist/mcp/resources/index.d.ts.map +1 -0
- package/dist/mcp/resources/index.js +137 -0
- package/dist/mcp/resources/index.js.map +1 -0
- package/dist/mcp/server.d.ts +16 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +54 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +19 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +847 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mentions/manager.d.ts +12 -0
- package/dist/mentions/manager.d.ts.map +1 -0
- package/dist/mentions/manager.js +50 -0
- package/dist/mentions/manager.js.map +1 -0
- package/dist/mentions/resolver.d.ts +12 -0
- package/dist/mentions/resolver.d.ts.map +1 -0
- package/dist/mentions/resolver.js +26 -0
- package/dist/mentions/resolver.js.map +1 -0
- package/dist/mentions/tracker.d.ts +8 -0
- package/dist/mentions/tracker.d.ts.map +1 -0
- package/dist/mentions/tracker.js +18 -0
- package/dist/mentions/tracker.js.map +1 -0
- package/dist/merge-queue/batch.d.ts +19 -0
- package/dist/merge-queue/batch.d.ts.map +1 -0
- package/dist/merge-queue/batch.js +100 -0
- package/dist/merge-queue/batch.js.map +1 -0
- package/dist/merge-queue/bisect.d.ts +10 -0
- package/dist/merge-queue/bisect.d.ts.map +1 -0
- package/dist/merge-queue/bisect.js +18 -0
- package/dist/merge-queue/bisect.js.map +1 -0
- package/dist/merge-queue/eligibility.d.ts +25 -0
- package/dist/merge-queue/eligibility.d.ts.map +1 -0
- package/dist/merge-queue/eligibility.js +125 -0
- package/dist/merge-queue/eligibility.js.map +1 -0
- package/dist/merge-queue/finalize.d.ts +7 -0
- package/dist/merge-queue/finalize.d.ts.map +1 -0
- package/dist/merge-queue/finalize.js +36 -0
- package/dist/merge-queue/finalize.js.map +1 -0
- package/dist/merge-queue/runner.d.ts +13 -0
- package/dist/merge-queue/runner.d.ts.map +1 -0
- package/dist/merge-queue/runner.js +246 -0
- package/dist/merge-queue/runner.js.map +1 -0
- package/dist/merge-queue/staging.d.ts +13 -0
- package/dist/merge-queue/staging.d.ts.map +1 -0
- package/dist/merge-queue/staging.js +88 -0
- package/dist/merge-queue/staging.js.map +1 -0
- package/dist/merge-queue/types.d.ts +23 -0
- package/dist/merge-queue/types.d.ts.map +1 -0
- package/dist/merge-queue/types.js +2 -0
- package/dist/merge-queue/types.js.map +1 -0
- package/dist/metrics/collectors.d.ts +24 -0
- package/dist/metrics/collectors.d.ts.map +1 -0
- package/dist/metrics/collectors.js +132 -0
- package/dist/metrics/collectors.js.map +1 -0
- package/dist/metrics/server.d.ts +8 -0
- package/dist/metrics/server.d.ts.map +1 -0
- package/dist/metrics/server.js +41 -0
- package/dist/metrics/server.js.map +1 -0
- package/dist/metrics/service.d.ts +26 -0
- package/dist/metrics/service.d.ts.map +1 -0
- package/dist/metrics/service.js +161 -0
- package/dist/metrics/service.js.map +1 -0
- package/dist/notify/channels/console.d.ts +10 -0
- package/dist/notify/channels/console.d.ts.map +1 -0
- package/dist/notify/channels/console.js +17 -0
- package/dist/notify/channels/console.js.map +1 -0
- package/dist/notify/channels/discord.d.ts +13 -0
- package/dist/notify/channels/discord.d.ts.map +1 -0
- package/dist/notify/channels/discord.js +183 -0
- package/dist/notify/channels/discord.js.map +1 -0
- package/dist/notify/channels/github-comment.d.ts +13 -0
- package/dist/notify/channels/github-comment.d.ts.map +1 -0
- package/dist/notify/channels/github-comment.js +52 -0
- package/dist/notify/channels/github-comment.js.map +1 -0
- package/dist/notify/channels/smtp.d.ts +17 -0
- package/dist/notify/channels/smtp.d.ts.map +1 -0
- package/dist/notify/channels/smtp.js +65 -0
- package/dist/notify/channels/smtp.js.map +1 -0
- package/dist/notify/channels/webhook-common.d.ts +19 -0
- package/dist/notify/channels/webhook-common.d.ts.map +1 -0
- package/dist/notify/channels/webhook-common.js +111 -0
- package/dist/notify/channels/webhook-common.js.map +1 -0
- package/dist/notify/channels/webhook.d.ts +13 -0
- package/dist/notify/channels/webhook.d.ts.map +1 -0
- package/dist/notify/channels/webhook.js +72 -0
- package/dist/notify/channels/webhook.js.map +1 -0
- package/dist/notify/dispatcher.d.ts +11 -0
- package/dist/notify/dispatcher.d.ts.map +1 -0
- package/dist/notify/dispatcher.js +66 -0
- package/dist/notify/dispatcher.js.map +1 -0
- package/dist/notify/factory.d.ts +5 -0
- package/dist/notify/factory.d.ts.map +1 -0
- package/dist/notify/factory.js +46 -0
- package/dist/notify/factory.js.map +1 -0
- package/dist/notify/payload.d.ts +8 -0
- package/dist/notify/payload.d.ts.map +1 -0
- package/dist/notify/payload.js +37 -0
- package/dist/notify/payload.js.map +1 -0
- package/dist/notify/types.d.ts +34 -0
- package/dist/notify/types.d.ts.map +1 -0
- package/dist/notify/types.js +2 -0
- package/dist/notify/types.js.map +1 -0
- package/dist/ops/auto-cleanup.d.ts +14 -0
- package/dist/ops/auto-cleanup.d.ts.map +1 -0
- package/dist/ops/auto-cleanup.js +58 -0
- package/dist/ops/auto-cleanup.js.map +1 -0
- package/dist/ops/cleanup.d.ts +32 -0
- package/dist/ops/cleanup.d.ts.map +1 -0
- package/dist/ops/cleanup.js +208 -0
- package/dist/ops/cleanup.js.map +1 -0
- package/dist/ops/continue.d.ts +12 -0
- package/dist/ops/continue.d.ts.map +1 -0
- package/dist/ops/continue.js +240 -0
- package/dist/ops/continue.js.map +1 -0
- package/dist/ops/cost-override.d.ts +16 -0
- package/dist/ops/cost-override.d.ts.map +1 -0
- package/dist/ops/cost-override.js +28 -0
- package/dist/ops/cost-override.js.map +1 -0
- package/dist/ops/daily-cost-override.d.ts +15 -0
- package/dist/ops/daily-cost-override.d.ts.map +1 -0
- package/dist/ops/daily-cost-override.js +23 -0
- package/dist/ops/daily-cost-override.js.map +1 -0
- package/dist/ops/delete-entry.d.ts +44 -0
- package/dist/ops/delete-entry.d.ts.map +1 -0
- package/dist/ops/delete-entry.js +381 -0
- package/dist/ops/delete-entry.js.map +1 -0
- package/dist/ops/labels-init.d.ts +43 -0
- package/dist/ops/labels-init.d.ts.map +1 -0
- package/dist/ops/labels-init.js +149 -0
- package/dist/ops/labels-init.js.map +1 -0
- package/dist/ops/rebase-and-check.d.ts +34 -0
- package/dist/ops/rebase-and-check.d.ts.map +1 -0
- package/dist/ops/rebase-and-check.js +110 -0
- package/dist/ops/rebase-and-check.js.map +1 -0
- package/dist/ops/rebase.d.ts +18 -0
- package/dist/ops/rebase.d.ts.map +1 -0
- package/dist/ops/rebase.js +67 -0
- package/dist/ops/rebase.js.map +1 -0
- package/dist/ops/retention.d.ts +29 -0
- package/dist/ops/retention.d.ts.map +1 -0
- package/dist/ops/retention.js +120 -0
- package/dist/ops/retention.js.map +1 -0
- package/dist/ops/retry.d.ts +19 -0
- package/dist/ops/retry.d.ts.map +1 -0
- package/dist/ops/retry.js +106 -0
- package/dist/ops/retry.js.map +1 -0
- package/dist/ops/summary.d.ts +42 -0
- package/dist/ops/summary.d.ts.map +1 -0
- package/dist/ops/summary.js +86 -0
- package/dist/ops/summary.js.map +1 -0
- package/dist/ops/sync.d.ts +47 -0
- package/dist/ops/sync.d.ts.map +1 -0
- package/dist/ops/sync.js +445 -0
- package/dist/ops/sync.js.map +1 -0
- package/dist/planning/mode.d.ts +14 -0
- package/dist/planning/mode.d.ts.map +1 -0
- package/dist/planning/mode.js +33 -0
- package/dist/planning/mode.js.map +1 -0
- package/dist/poller/control.d.ts +21 -0
- package/dist/poller/control.d.ts.map +1 -0
- package/dist/poller/control.js +42 -0
- package/dist/poller/control.js.map +1 -0
- package/dist/poller/shutdown.d.ts +20 -0
- package/dist/poller/shutdown.d.ts.map +1 -0
- package/dist/poller/shutdown.js +94 -0
- package/dist/poller/shutdown.js.map +1 -0
- package/dist/publishing/pr-body.d.ts +25 -0
- package/dist/publishing/pr-body.d.ts.map +1 -0
- package/dist/publishing/pr-body.js +119 -0
- package/dist/publishing/pr-body.js.map +1 -0
- package/dist/publishing/publisher.d.ts +19 -0
- package/dist/publishing/publisher.d.ts.map +1 -0
- package/dist/publishing/publisher.js +116 -0
- package/dist/publishing/publisher.js.map +1 -0
- package/dist/publishing/push.d.ts +13 -0
- package/dist/publishing/push.d.ts.map +1 -0
- package/dist/publishing/push.js +56 -0
- package/dist/publishing/push.js.map +1 -0
- package/dist/reactions/handler.d.ts +20 -0
- package/dist/reactions/handler.d.ts.map +1 -0
- package/dist/reactions/handler.js +50 -0
- package/dist/reactions/handler.js.map +1 -0
- package/dist/reactions/scanner.d.ts +13 -0
- package/dist/reactions/scanner.d.ts.map +1 -0
- package/dist/reactions/scanner.js +141 -0
- package/dist/reactions/scanner.js.map +1 -0
- package/dist/reactions/types.d.ts +41 -0
- package/dist/reactions/types.d.ts.map +1 -0
- package/dist/reactions/types.js +2 -0
- package/dist/reactions/types.js.map +1 -0
- package/dist/runner/poller.d.ts +19 -0
- package/dist/runner/poller.d.ts.map +1 -0
- package/dist/runner/poller.js +1358 -0
- package/dist/runner/poller.js.map +1 -0
- package/dist/settings/registry.d.ts +37 -0
- package/dist/settings/registry.d.ts.map +1 -0
- package/dist/settings/registry.js +299 -0
- package/dist/settings/registry.js.map +1 -0
- package/dist/settings/runtime.d.ts +33 -0
- package/dist/settings/runtime.d.ts.map +1 -0
- package/dist/settings/runtime.js +148 -0
- package/dist/settings/runtime.js.map +1 -0
- package/dist/state/db.d.ts +3 -0
- package/dist/state/db.d.ts.map +1 -0
- package/dist/state/db.js +80 -0
- package/dist/state/db.js.map +1 -0
- package/dist/state/issues.d.ts +47 -0
- package/dist/state/issues.d.ts.map +1 -0
- package/dist/state/issues.js +188 -0
- package/dist/state/issues.js.map +1 -0
- package/dist/state/leases.d.ts +27 -0
- package/dist/state/leases.d.ts.map +1 -0
- package/dist/state/leases.js +75 -0
- package/dist/state/leases.js.map +1 -0
- package/dist/state/migrations/001-initial.d.ts +3 -0
- package/dist/state/migrations/001-initial.d.ts.map +1 -0
- package/dist/state/migrations/001-initial.js +70 -0
- package/dist/state/migrations/001-initial.js.map +1 -0
- package/dist/state/migrations/002-placeholder.d.ts +7 -0
- package/dist/state/migrations/002-placeholder.d.ts.map +1 -0
- package/dist/state/migrations/002-placeholder.js +8 -0
- package/dist/state/migrations/002-placeholder.js.map +1 -0
- package/dist/state/migrations/003-mention-tracking.d.ts +3 -0
- package/dist/state/migrations/003-mention-tracking.d.ts.map +1 -0
- package/dist/state/migrations/003-mention-tracking.js +13 -0
- package/dist/state/migrations/003-mention-tracking.js.map +1 -0
- package/dist/state/migrations/004-command-tracking.d.ts +3 -0
- package/dist/state/migrations/004-command-tracking.d.ts.map +1 -0
- package/dist/state/migrations/004-command-tracking.js +13 -0
- package/dist/state/migrations/004-command-tracking.js.map +1 -0
- package/dist/state/migrations/005-block-reason.d.ts +3 -0
- package/dist/state/migrations/005-block-reason.d.ts.map +1 -0
- package/dist/state/migrations/005-block-reason.js +4 -0
- package/dist/state/migrations/005-block-reason.js.map +1 -0
- package/dist/state/migrations/006-parent-run.d.ts +3 -0
- package/dist/state/migrations/006-parent-run.d.ts.map +1 -0
- package/dist/state/migrations/006-parent-run.js +4 -0
- package/dist/state/migrations/006-parent-run.js.map +1 -0
- package/dist/state/migrations/007-merge-queue.d.ts +3 -0
- package/dist/state/migrations/007-merge-queue.d.ts.map +1 -0
- package/dist/state/migrations/007-merge-queue.js +21 -0
- package/dist/state/migrations/007-merge-queue.js.map +1 -0
- package/dist/state/migrations/008-agent-events.d.ts +3 -0
- package/dist/state/migrations/008-agent-events.d.ts.map +1 -0
- package/dist/state/migrations/008-agent-events.js +15 -0
- package/dist/state/migrations/008-agent-events.js.map +1 -0
- package/dist/state/migrations/009-run-titles.d.ts +3 -0
- package/dist/state/migrations/009-run-titles.d.ts.map +1 -0
- package/dist/state/migrations/009-run-titles.js +11 -0
- package/dist/state/migrations/009-run-titles.js.map +1 -0
- package/dist/state/migrations/010-issues.d.ts +9 -0
- package/dist/state/migrations/010-issues.d.ts.map +1 -0
- package/dist/state/migrations/010-issues.js +193 -0
- package/dist/state/migrations/010-issues.js.map +1 -0
- package/dist/state/migrations/011-rebuild-issues-from-latest-run.d.ts +8 -0
- package/dist/state/migrations/011-rebuild-issues-from-latest-run.d.ts.map +1 -0
- package/dist/state/migrations/011-rebuild-issues-from-latest-run.js +125 -0
- package/dist/state/migrations/011-rebuild-issues-from-latest-run.js.map +1 -0
- package/dist/state/migrations/012-settings-overrides.d.ts +3 -0
- package/dist/state/migrations/012-settings-overrides.d.ts.map +1 -0
- package/dist/state/migrations/012-settings-overrides.js +14 -0
- package/dist/state/migrations/012-settings-overrides.js.map +1 -0
- package/dist/state/migrations/013-token-usage.d.ts +3 -0
- package/dist/state/migrations/013-token-usage.d.ts.map +1 -0
- package/dist/state/migrations/013-token-usage.js +21 -0
- package/dist/state/migrations/013-token-usage.js.map +1 -0
- package/dist/state/migrations/014-daily-run-usage.d.ts +3 -0
- package/dist/state/migrations/014-daily-run-usage.d.ts.map +1 -0
- package/dist/state/migrations/014-daily-run-usage.js +14 -0
- package/dist/state/migrations/014-daily-run-usage.js.map +1 -0
- package/dist/state/migrations/015-run-cost-override.d.ts +11 -0
- package/dist/state/migrations/015-run-cost-override.d.ts.map +1 -0
- package/dist/state/migrations/015-run-cost-override.js +20 -0
- package/dist/state/migrations/015-run-cost-override.js.map +1 -0
- package/dist/state/migrations/016-daily-cost-cap-override.d.ts +15 -0
- package/dist/state/migrations/016-daily-cost-cap-override.d.ts.map +1 -0
- package/dist/state/migrations/016-daily-cost-cap-override.js +24 -0
- package/dist/state/migrations/016-daily-cost-cap-override.js.map +1 -0
- package/dist/state/migrations/017-merge-batch-merged-prs.d.ts +13 -0
- package/dist/state/migrations/017-merge-batch-merged-prs.d.ts.map +1 -0
- package/dist/state/migrations/017-merge-batch-merged-prs.js +22 -0
- package/dist/state/migrations/017-merge-batch-merged-prs.js.map +1 -0
- package/dist/state/migrations/018-run-retry-count.d.ts +13 -0
- package/dist/state/migrations/018-run-retry-count.d.ts.map +1 -0
- package/dist/state/migrations/018-run-retry-count.js +22 -0
- package/dist/state/migrations/018-run-retry-count.js.map +1 -0
- package/dist/state/migrations/019-runs-active-index-top-level.d.ts +16 -0
- package/dist/state/migrations/019-runs-active-index-top-level.d.ts.map +1 -0
- package/dist/state/migrations/019-runs-active-index-top-level.js +23 -0
- package/dist/state/migrations/019-runs-active-index-top-level.js.map +1 -0
- package/dist/state/runs.d.ts +100 -0
- package/dist/state/runs.d.ts.map +1 -0
- package/dist/state/runs.js +321 -0
- package/dist/state/runs.js.map +1 -0
- package/dist/state/settings.d.ts +16 -0
- package/dist/state/settings.d.ts.map +1 -0
- package/dist/state/settings.js +55 -0
- package/dist/state/settings.js.map +1 -0
- package/dist/state/stats.d.ts +133 -0
- package/dist/state/stats.d.ts.map +1 -0
- package/dist/state/stats.js +419 -0
- package/dist/state/stats.js.map +1 -0
- package/dist/supervisor/health.d.ts +24 -0
- package/dist/supervisor/health.d.ts.map +1 -0
- package/dist/supervisor/health.js +186 -0
- package/dist/supervisor/health.js.map +1 -0
- package/dist/supervisor/index.d.ts +31 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +387 -0
- package/dist/supervisor/index.js.map +1 -0
- package/dist/supervisor/status.d.ts +18 -0
- package/dist/supervisor/status.d.ts.map +1 -0
- package/dist/supervisor/status.js +30 -0
- package/dist/supervisor/status.js.map +1 -0
- package/dist/supervisor/updater.d.ts +18 -0
- package/dist/supervisor/updater.d.ts.map +1 -0
- package/dist/supervisor/updater.js +108 -0
- package/dist/supervisor/updater.js.map +1 -0
- package/dist/utils/build-info.d.ts +6 -0
- package/dist/utils/build-info.d.ts.map +1 -0
- package/dist/utils/build-info.js +56 -0
- package/dist/utils/build-info.js.map +1 -0
- package/dist/utils/command.d.ts +8 -0
- package/dist/utils/command.d.ts.map +1 -0
- package/dist/utils/command.js +71 -0
- package/dist/utils/command.js.map +1 -0
- package/dist/utils/ids.d.ts +4 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +17 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/install-method.d.ts +4 -0
- package/dist/utils/install-method.d.ts.map +1 -0
- package/dist/utils/install-method.js +13 -0
- package/dist/utils/install-method.js.map +1 -0
- package/dist/utils/issue-repo.d.ts +2 -0
- package/dist/utils/issue-repo.d.ts.map +1 -0
- package/dist/utils/issue-repo.js +7 -0
- package/dist/utils/issue-repo.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +63 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/project-root.d.ts +8 -0
- package/dist/utils/project-root.d.ts.map +1 -0
- package/dist/utils/project-root.js +22 -0
- package/dist/utils/project-root.js.map +1 -0
- package/dist/utils/sanitize-error.d.ts +36 -0
- package/dist/utils/sanitize-error.d.ts.map +1 -0
- package/dist/utils/sanitize-error.js +89 -0
- package/dist/utils/sanitize-error.js.map +1 -0
- package/dist/utils/time.d.ts +7 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +47 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/web/server.d.ts +14 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +1185 -0
- package/dist/web/server.js.map +1 -0
- package/dist/workers/acp.d.ts +9 -0
- package/dist/workers/acp.d.ts.map +1 -0
- package/dist/workers/acp.js +190 -0
- package/dist/workers/acp.js.map +1 -0
- package/dist/workers/acpx-imports.d.ts +18 -0
- package/dist/workers/acpx-imports.d.ts.map +1 -0
- package/dist/workers/acpx-imports.js +43 -0
- package/dist/workers/acpx-imports.js.map +1 -0
- package/dist/workers/claude.d.ts +9 -0
- package/dist/workers/claude.d.ts.map +1 -0
- package/dist/workers/claude.js +341 -0
- package/dist/workers/claude.js.map +1 -0
- package/dist/workers/codex.d.ts +21 -0
- package/dist/workers/codex.d.ts.map +1 -0
- package/dist/workers/codex.js +337 -0
- package/dist/workers/codex.js.map +1 -0
- package/dist/workers/command.d.ts +6 -0
- package/dist/workers/command.d.ts.map +1 -0
- package/dist/workers/command.js +15 -0
- package/dist/workers/command.js.map +1 -0
- package/dist/workers/env.d.ts +18 -0
- package/dist/workers/env.d.ts.map +1 -0
- package/dist/workers/env.js +172 -0
- package/dist/workers/env.js.map +1 -0
- package/dist/workers/events.d.ts +7 -0
- package/dist/workers/events.d.ts.map +1 -0
- package/dist/workers/events.js +30 -0
- package/dist/workers/events.js.map +1 -0
- package/dist/workers/factory.d.ts +6 -0
- package/dist/workers/factory.d.ts.map +1 -0
- package/dist/workers/factory.js +13 -0
- package/dist/workers/factory.js.map +1 -0
- package/dist/workers/parsers/coder.d.ts +6 -0
- package/dist/workers/parsers/coder.d.ts.map +1 -0
- package/dist/workers/parsers/coder.js +59 -0
- package/dist/workers/parsers/coder.js.map +1 -0
- package/dist/workers/parsers/decomposer.d.ts +16 -0
- package/dist/workers/parsers/decomposer.d.ts.map +1 -0
- package/dist/workers/parsers/decomposer.js +35 -0
- package/dist/workers/parsers/decomposer.js.map +1 -0
- package/dist/workers/parsers/extract.d.ts +41 -0
- package/dist/workers/parsers/extract.d.ts.map +1 -0
- package/dist/workers/parsers/extract.js +231 -0
- package/dist/workers/parsers/extract.js.map +1 -0
- package/dist/workers/parsers/planner.d.ts +6 -0
- package/dist/workers/parsers/planner.d.ts.map +1 -0
- package/dist/workers/parsers/planner.js +77 -0
- package/dist/workers/parsers/planner.js.map +1 -0
- package/dist/workers/parsers/reviewer.d.ts +6 -0
- package/dist/workers/parsers/reviewer.d.ts.map +1 -0
- package/dist/workers/parsers/reviewer.js +105 -0
- package/dist/workers/parsers/reviewer.js.map +1 -0
- package/dist/workers/prompt/compiler.d.ts +11 -0
- package/dist/workers/prompt/compiler.d.ts.map +1 -0
- package/dist/workers/prompt/compiler.js +199 -0
- package/dist/workers/prompt/compiler.js.map +1 -0
- package/dist/workers/prompt/templates.d.ts +13 -0
- package/dist/workers/prompt/templates.d.ts.map +1 -0
- package/dist/workers/prompt/templates.js +110 -0
- package/dist/workers/prompt/templates.js.map +1 -0
- package/dist/workers/registry.d.ts +9 -0
- package/dist/workers/registry.d.ts.map +1 -0
- package/dist/workers/registry.js +21 -0
- package/dist/workers/registry.js.map +1 -0
- package/dist/workers/streaming-exec.d.ts +26 -0
- package/dist/workers/streaming-exec.d.ts.map +1 -0
- package/dist/workers/streaming-exec.js +166 -0
- package/dist/workers/streaming-exec.js.map +1 -0
- package/dist/workers/timeout.d.ts +17 -0
- package/dist/workers/timeout.d.ts.map +1 -0
- package/dist/workers/timeout.js +37 -0
- package/dist/workers/timeout.js.map +1 -0
- package/dist/workers/types.d.ts +120 -0
- package/dist/workers/types.d.ts.map +1 -0
- package/dist/workers/types.js +2 -0
- package/dist/workers/types.js.map +1 -0
- package/docker-compose.example.yaml +29 -0
- package/examples/config.example.yaml +256 -0
- package/examples/night-orch.service +40 -0
- package/monitoring/grafana/dashboards/night-orch.json +140 -0
- package/monitoring/grafana/provisioning/dashboards/dashboards.yml +10 -0
- package/monitoring/grafana/provisioning/datasources/prometheus.yml +9 -0
- package/monitoring/prometheus.yml +8 -0
- package/package.json +104 -0
- package/web/dist/assets/index-CBFNqVuV.js +9 -0
- package/web/dist/assets/index-RCNGmuI2.css +1 -0
- package/web/dist/icon.svg +10 -0
- package/web/dist/index.html +22 -0
- package/web/dist/manifest.webmanifest +16 -0
- package/web/dist/sw.js +58 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import type { ForgeAdapter } from '../forge/types.js';
|
|
3
|
+
import type { RepoConfig } from '../config/schema.js';
|
|
4
|
+
/**
|
|
5
|
+
* Process the merge queue for a single repo.
|
|
6
|
+
* Called once per poll cycle, after reaction scanning.
|
|
7
|
+
*
|
|
8
|
+
* Flow:
|
|
9
|
+
* 1. Check for active batch → if testing, check CI status
|
|
10
|
+
* 2. If no active batch → scan for eligible PRs, form new batch
|
|
11
|
+
*/
|
|
12
|
+
export declare function processMergeQueue(db: Database.Database, forge: ForgeAdapter, repoConfig: RepoConfig): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/merge-queue/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAqBrD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { runGit } from '../git/process.js';
|
|
2
|
+
import { MergeBatchManager } from './batch.js';
|
|
3
|
+
import { findMergeEligiblePRs } from './eligibility.js';
|
|
4
|
+
import { buildStagingBranch } from './staging.js';
|
|
5
|
+
import { finalizeMerge } from './finalize.js';
|
|
6
|
+
import { bisectBatch, isCulpritIdentified } from './bisect.js';
|
|
7
|
+
import { logger } from '../utils/logger.js';
|
|
8
|
+
import { RunManager } from '../state/runs.js';
|
|
9
|
+
import { nowUtcIso } from '../utils/time.js';
|
|
10
|
+
/**
|
|
11
|
+
* Batches left in `building` longer than this are considered stuck and
|
|
12
|
+
* reset to `failed` on the next cycle. A crash between `buildStagingBranch`
|
|
13
|
+
* kickoff and its completion would otherwise leave the queue wedged
|
|
14
|
+
* forever, because `building` is non-terminal but `handleActiveBatch` skips
|
|
15
|
+
* it by design.
|
|
16
|
+
*/
|
|
17
|
+
const STUCK_BUILDING_MS = 30 * 60 * 1000;
|
|
18
|
+
/**
|
|
19
|
+
* Process the merge queue for a single repo.
|
|
20
|
+
* Called once per poll cycle, after reaction scanning.
|
|
21
|
+
*
|
|
22
|
+
* Flow:
|
|
23
|
+
* 1. Check for active batch → if testing, check CI status
|
|
24
|
+
* 2. If no active batch → scan for eligible PRs, form new batch
|
|
25
|
+
*/
|
|
26
|
+
export async function processMergeQueue(db, forge, repoConfig) {
|
|
27
|
+
if (!repoConfig.mergeQueue.enabled)
|
|
28
|
+
return;
|
|
29
|
+
const batchManager = new MergeBatchManager(db);
|
|
30
|
+
const activeBatch = batchManager.getActiveBatch(repoConfig.repo);
|
|
31
|
+
if (activeBatch) {
|
|
32
|
+
await handleActiveBatch(db, forge, repoConfig, batchManager, activeBatch);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
await formNewBatch(db, forge, repoConfig, batchManager);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function handleActiveBatch(db, forge, repoConfig, batchManager, batch) {
|
|
39
|
+
if (batch.status === 'pending') {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (batch.status === 'building') {
|
|
43
|
+
// Building is set synchronously before buildStagingBranch runs. If a
|
|
44
|
+
// previous cycle crashed mid-build we would otherwise deadlock here —
|
|
45
|
+
// detect stuck-building by age and fail the batch so a new one can form.
|
|
46
|
+
if (isBatchStuckBuilding(batch)) {
|
|
47
|
+
logger.warn({ repo: repoConfig.repo, batchId: batch.id, updatedAt: batch.updatedAt }, 'Merge batch stuck in building — marking failed for retry');
|
|
48
|
+
batchManager.update(batch.id, { status: 'failed' });
|
|
49
|
+
}
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (batch.status === 'testing') {
|
|
53
|
+
// Check CI on the staging branch
|
|
54
|
+
if (!batch.stagingSha || !forge.getRefCheckStatus) {
|
|
55
|
+
logger.warn({ repo: repoConfig.repo, batchId: batch.id }, 'Cannot check staging CI — missing SHA or forge method');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const ciStatus = await forge.getRefCheckStatus(repoConfig.repo, batch.stagingSha);
|
|
59
|
+
if (ciStatus.overall === 'success') {
|
|
60
|
+
// Finalize merge FIRST, then mark the batch passed. If finalizeMerge
|
|
61
|
+
// throws, the batch stays in 'testing' so the next cycle can retry
|
|
62
|
+
// rather than burying a half-completed merge in a terminal state.
|
|
63
|
+
// Only close the PRs that actually made it into staging —
|
|
64
|
+
// `merged_pr_numbers` was captured at staging time and excludes
|
|
65
|
+
// conflict-ejected PRs.
|
|
66
|
+
const mergedPrNumbers = batch.mergedPrNumbers ?? batch.prNumbers;
|
|
67
|
+
logger.info({ repo: repoConfig.repo, batchId: batch.id, prs: mergedPrNumbers }, 'Merge batch CI passed — finalizing');
|
|
68
|
+
try {
|
|
69
|
+
await finalizeMerge(forge, repoConfig.repo, repoConfig.baseBranch, batch.stagingSha, mergedPrNumbers, batch.stagingBranch ?? '', repoConfig.localPath);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
logger.error({ repo: repoConfig.repo, batchId: batch.id, err }, 'Merge batch finalize failed — marking batch failed for bisect/quarantine');
|
|
73
|
+
batchManager.update(batch.id, { status: 'failed' });
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
batchManager.update(batch.id, { status: 'passed' });
|
|
77
|
+
transitionMergedRuns(db, repoConfig.repo, mergedPrNumbers);
|
|
78
|
+
}
|
|
79
|
+
else if (ciStatus.overall === 'failure') {
|
|
80
|
+
logger.warn({ repo: repoConfig.repo, batchId: batch.id }, 'Merge batch CI failed — bisecting');
|
|
81
|
+
batchManager.update(batch.id, { status: 'failed' });
|
|
82
|
+
// Retry once if configured
|
|
83
|
+
if (repoConfig.mergeQueue.retryFlakyOnce && batch.retryCount === 0) {
|
|
84
|
+
batchManager.update(batch.id, { status: 'testing', retryCount: 1 });
|
|
85
|
+
logger.info({ repo: repoConfig.repo, batchId: batch.id }, 'Retrying batch once for flaky CI');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Bisect
|
|
89
|
+
if (isCulpritIdentified(batch.prNumbers)) {
|
|
90
|
+
// Single PR failed — it's the culprit
|
|
91
|
+
const culprit = batch.prNumbers[0];
|
|
92
|
+
logger.warn({ repo: repoConfig.repo, prNumber: culprit }, 'Merge culprit identified');
|
|
93
|
+
await quarantineCulpritPR(db, forge, repoConfig, culprit);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const [left, right] = bisectBatch(batch.prNumbers);
|
|
97
|
+
const mid = left.length;
|
|
98
|
+
const leftShas = batch.approvedShas.slice(0, mid);
|
|
99
|
+
const rightShas = batch.approvedShas.slice(mid);
|
|
100
|
+
// Create two sub-batches
|
|
101
|
+
for (const [prs, shas] of [[left, leftShas], [right, rightShas]]) {
|
|
102
|
+
const subBatch = batchManager.create({
|
|
103
|
+
repo: repoConfig.repo,
|
|
104
|
+
baseBranch: repoConfig.baseBranch,
|
|
105
|
+
baseSha: batch.baseSha,
|
|
106
|
+
prNumbers: prs,
|
|
107
|
+
approvedShas: shas,
|
|
108
|
+
});
|
|
109
|
+
batchManager.update(subBatch.id, { parentBatchId: batch.id, status: 'building' });
|
|
110
|
+
// Build staging for sub-batch. Wrap in try/catch so a crash in
|
|
111
|
+
// staging does not leave the sub-batch wedged in 'building'.
|
|
112
|
+
try {
|
|
113
|
+
const staging = await buildStagingBranch(repoConfig.localPath, repoConfig.baseBranch, prs, forge, repoConfig.repo, repoConfig.mergeQueue.stagingBranchPrefix);
|
|
114
|
+
batchManager.update(subBatch.id, {
|
|
115
|
+
status: 'testing',
|
|
116
|
+
stagingBranch: staging.stagingBranch,
|
|
117
|
+
stagingSha: staging.stagingSha,
|
|
118
|
+
mergedPrNumbers: staging.merged,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
logger.error({ repo: repoConfig.repo, subBatchId: subBatch.id, err }, 'Staging build threw for bisect sub-batch — marking failed');
|
|
123
|
+
batchManager.update(subBatch.id, { status: 'failed' });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// If pending — CI still running, wait for next cycle
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function isBatchStuckBuilding(batch) {
|
|
132
|
+
if (batch.status !== 'building')
|
|
133
|
+
return false;
|
|
134
|
+
const updatedAtMs = Date.parse(batch.updatedAt);
|
|
135
|
+
if (Number.isNaN(updatedAtMs))
|
|
136
|
+
return false;
|
|
137
|
+
return Date.now() - updatedAtMs > STUCK_BUILDING_MS;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Transition runs associated with successfully merged PRs out of
|
|
141
|
+
* `review_ready` and into `completed`. Without this, successful merges
|
|
142
|
+
* leave their runs stuck in `review_ready` forever — only the failure
|
|
143
|
+
* path (`quarantineCulpritPR`) previously updated run state.
|
|
144
|
+
*/
|
|
145
|
+
function transitionMergedRuns(db, repo, mergedPrNumbers) {
|
|
146
|
+
if (mergedPrNumbers.length === 0)
|
|
147
|
+
return;
|
|
148
|
+
const placeholders = mergedPrNumbers.map(() => '?').join(', ');
|
|
149
|
+
const rows = db
|
|
150
|
+
.prepare(`SELECT id, pr_number
|
|
151
|
+
FROM runs
|
|
152
|
+
WHERE repo = ?
|
|
153
|
+
AND pr_number IN (${placeholders})
|
|
154
|
+
AND status = 'review_ready'`)
|
|
155
|
+
.all(repo, ...mergedPrNumbers);
|
|
156
|
+
if (rows.length === 0)
|
|
157
|
+
return;
|
|
158
|
+
const runManager = new RunManager(db);
|
|
159
|
+
const endedAt = nowUtcIso();
|
|
160
|
+
for (const row of rows) {
|
|
161
|
+
try {
|
|
162
|
+
runManager.update(row.id, { status: 'completed', endedAt });
|
|
163
|
+
logger.info({ repo, runId: row.id, prNumber: row.pr_number }, 'Transitioned run out of review_ready after successful merge');
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
logger.warn({ repo, runId: row.id, prNumber: row.pr_number, err }, 'Failed to transition run to completed after merge');
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async function formNewBatch(db, forge, repoConfig, batchManager) {
|
|
171
|
+
const candidates = await findMergeEligiblePRs(db, forge, repoConfig);
|
|
172
|
+
if (candidates.length === 0)
|
|
173
|
+
return;
|
|
174
|
+
// Take up to batchSize candidates
|
|
175
|
+
const batchCandidates = candidates.slice(0, repoConfig.mergeQueue.batchSize);
|
|
176
|
+
const prNumbers = batchCandidates.map(c => c.prNumber);
|
|
177
|
+
const approvedShas = batchCandidates.map(c => c.headSha);
|
|
178
|
+
logger.info({ repo: repoConfig.repo, prNumbers }, 'Forming new merge batch');
|
|
179
|
+
// Get current base SHA
|
|
180
|
+
const baseResult = await runGit(['rev-parse', `origin/${repoConfig.baseBranch}`], { cwd: repoConfig.localPath });
|
|
181
|
+
const baseSha = baseResult.stdout.trim();
|
|
182
|
+
// Create batch record
|
|
183
|
+
const batch = batchManager.create({
|
|
184
|
+
repo: repoConfig.repo,
|
|
185
|
+
baseBranch: repoConfig.baseBranch,
|
|
186
|
+
baseSha,
|
|
187
|
+
prNumbers,
|
|
188
|
+
approvedShas,
|
|
189
|
+
});
|
|
190
|
+
batchManager.update(batch.id, { status: 'building' });
|
|
191
|
+
// Build staging branch. Wrap in try/catch so a crash here does not wedge
|
|
192
|
+
// the batch in 'building' (handleActiveBatch will also recover stuck
|
|
193
|
+
// builds by age as a belt-and-braces fallback).
|
|
194
|
+
let staging;
|
|
195
|
+
try {
|
|
196
|
+
staging = await buildStagingBranch(repoConfig.localPath, repoConfig.baseBranch, prNumbers, forge, repoConfig.repo, repoConfig.mergeQueue.stagingBranchPrefix);
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
logger.error({ repo: repoConfig.repo, batchId: batch.id, err }, 'Staging build threw — marking batch failed');
|
|
200
|
+
batchManager.update(batch.id, { status: 'failed' });
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
batchManager.update(batch.id, {
|
|
204
|
+
status: 'testing',
|
|
205
|
+
stagingBranch: staging.stagingBranch,
|
|
206
|
+
stagingSha: staging.stagingSha,
|
|
207
|
+
mergedPrNumbers: staging.merged,
|
|
208
|
+
});
|
|
209
|
+
if (staging.ejected.length > 0) {
|
|
210
|
+
logger.warn({ repo: repoConfig.repo, ejected: staging.ejected }, 'Some PRs ejected from batch due to conflicts');
|
|
211
|
+
}
|
|
212
|
+
logger.info({ repo: repoConfig.repo, batchId: batch.id, merged: staging.merged.length, testing: true }, 'Merge batch staged and pushed');
|
|
213
|
+
}
|
|
214
|
+
async function quarantineCulpritPR(db, forge, repoConfig, prNumber) {
|
|
215
|
+
try {
|
|
216
|
+
await forge.addLabels(repoConfig.repo, prNumber, [repoConfig.labels.mergeFailed]);
|
|
217
|
+
}
|
|
218
|
+
catch (err) {
|
|
219
|
+
logger.warn({ repo: repoConfig.repo, prNumber, err }, 'Failed to add merge-failed label to culprit PR');
|
|
220
|
+
}
|
|
221
|
+
try {
|
|
222
|
+
await forge.removeLabels(repoConfig.repo, prNumber, [repoConfig.labels.mergeQueued, repoConfig.labels.merging]);
|
|
223
|
+
}
|
|
224
|
+
catch (err) {
|
|
225
|
+
logger.warn({ repo: repoConfig.repo, prNumber, err }, 'Failed to clear merge queue labels from culprit PR');
|
|
226
|
+
}
|
|
227
|
+
const rows = db
|
|
228
|
+
.prepare(`SELECT id
|
|
229
|
+
FROM runs
|
|
230
|
+
WHERE repo = ?
|
|
231
|
+
AND pr_number = ?
|
|
232
|
+
AND status = 'review_ready'`)
|
|
233
|
+
.all(repoConfig.repo, prNumber);
|
|
234
|
+
if (rows.length === 0)
|
|
235
|
+
return;
|
|
236
|
+
const runManager = new RunManager(db);
|
|
237
|
+
const endedAt = nowUtcIso();
|
|
238
|
+
for (const row of rows) {
|
|
239
|
+
runManager.update(row.id, {
|
|
240
|
+
status: 'blocked',
|
|
241
|
+
blockReason: 'merge_conflict',
|
|
242
|
+
endedAt,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/merge-queue/runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAExC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAqB,EACrB,KAAmB,EACnB,UAAsB;IAEtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO;QAAE,OAAM;IAE1C,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAEhE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;IAC3E,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,EAAqB,EACrB,KAAmB,EACnB,UAAsB,EACtB,YAA+B,EAC/B,KAAuB;IAEvB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAM;IACR,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAChC,qEAAqE;QACrE,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EACxE,0DAA0D,CAC3D,CAAA;YACD,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,OAAM;IACR,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,iCAAiC;QACjC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,uDAAuD,CAAC,CAAA;YAClH,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;QAEjF,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,qEAAqE;YACrE,mEAAmE;YACnE,kEAAkE;YAClE,0DAA0D;YAC1D,gEAAgE;YAChE,wBAAwB;YACxB,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,SAAS,CAAA;YAChE,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,EAClE,oCAAoC,CACrC,CAAA;YAED,IAAI,CAAC;gBACH,MAAM,aAAa,CACjB,KAAK,EACL,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,UAAU,EACrB,KAAK,CAAC,UAAU,EAChB,eAAe,EACf,KAAK,CAAC,aAAa,IAAI,EAAE,EACzB,UAAU,CAAC,SAAS,CACrB,CAAA;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,EACjD,0EAA0E,CAC3E,CAAA;gBACD,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACnD,OAAM;YACR,CAAC;YAED,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YACnD,oBAAoB,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAC5D,CAAC;aAAM,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,mCAAmC,CAAC,CAAA;YAC9F,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YAEnD,2BAA2B;YAC3B,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACnE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;gBACnE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,kCAAkC,CAAC,CAAA;gBAC7F,OAAM;YACR,CAAC;YAED,SAAS;YACT,IAAI,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,sCAAsC;gBACtC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAE,CAAA;gBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,0BAA0B,CAAC,CAAA;gBACrF,MAAM,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;gBAClD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;gBACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACjD,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAE/C,yBAAyB;gBACzB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAA2B,EAAE,CAAC;oBAC3F,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;wBACnC,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,UAAU,EAAE,UAAU,CAAC,UAAU;wBACjC,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,SAAS,EAAE,GAAG;wBACd,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAA;oBACF,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;oBAEjF,+DAA+D;oBAC/D,6DAA6D;oBAC7D,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACtC,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,UAAU,EACrB,GAAG,EACH,KAAK,EACL,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAC1C,CAAA;wBACD,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;4BAC/B,MAAM,EAAE,SAAS;4BACjB,aAAa,EAAE,OAAO,CAAC,aAAa;4BACpC,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,eAAe,EAAE,OAAO,CAAC,MAAM;yBAChC,CAAC,CAAA;oBACJ,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,EACvD,2DAA2D,CAC5D,CAAA;wBACD,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,qDAAqD;IACvD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAuB;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,KAAK,CAAA;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC/C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,iBAAiB,CAAA;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,EAAqB,EACrB,IAAY,EACZ,eAAyB;IAEzB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IACxC,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;6BAGuB,YAAY;qCACJ,CAChC;SACA,GAAG,CAAC,IAAI,EAAE,GAAG,eAAe,CAA6C,CAAA;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAE7B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;YAC3D,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,EAChD,6DAA6D,CAC9D,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,EACrD,mDAAmD,CACpD,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,EAAqB,EACrB,KAAmB,EACnB,UAAsB,EACtB,YAA+B;IAE/B,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;IACpE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAEnC,kCAAkC;IAClC,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IAC5E,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACtD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAExD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,yBAAyB,CAAC,CAAA;IAE5E,uBAAuB;IACvB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,UAAU,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAA;IAChH,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAExC,sBAAsB;IACtB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;QAChC,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,OAAO;QACP,SAAS;QACT,YAAY;KACb,CAAC,CAAA;IAEF,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IAErD,yEAAyE;IACzE,qEAAqE;IACrE,gDAAgD;IAChD,IAAI,OAAuD,CAAA;IAC3D,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,kBAAkB,CAChC,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,UAAU,EACrB,SAAS,EACT,KAAK,EACL,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAC1C,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,EACjD,4CAA4C,CAC7C,CAAA;QACD,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnD,OAAM;IACR,CAAC;IAED,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;QAC5B,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,eAAe,EAAE,OAAO,CAAC,MAAM;KAChC,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,8CAA8C,CAAC,CAAA;IAClH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,+BAA+B,CAAC,CAAA;AAC1I,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,EAAqB,EACrB,KAAmB,EACnB,UAAsB,EACtB,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IACnF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,gDAAgD,CAAC,CAAA;IACzG,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,YAAY,CACtB,UAAU,CAAC,IAAI,EACf,QAAQ,EACR,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAC3D,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,oDAAoD,CAAC,CAAA;IAC7G,CAAC;IAED,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;;qCAI+B,CAChC;SACA,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAA0B,CAAA;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAE7B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;YACxB,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,gBAAgB;YAC7B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ForgeAdapter } from '../forge/types.js';
|
|
2
|
+
export interface StagingResult {
|
|
3
|
+
stagingSha: string;
|
|
4
|
+
merged: number[];
|
|
5
|
+
ejected: number[];
|
|
6
|
+
stagingBranch: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Build a staging branch by sequentially merging PR head branches.
|
|
10
|
+
* Ejects conflicting PRs and continues with the rest.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildStagingBranch(repoLocalPath: string, baseBranch: string, prNumbers: number[], forge: ForgeAdapter, repo: string, stagingBranchPrefix: string): Promise<StagingResult>;
|
|
13
|
+
//# sourceMappingURL=staging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staging.d.ts","sourceRoot":"","sources":["../../src/merge-queue/staging.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,aAAa,CAAC,CAgDxB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { mkdtemp, rm } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { getHeadSha, mergeNoFF, abortMerge } from '../git/repo.js';
|
|
5
|
+
import { runGit } from '../git/process.js';
|
|
6
|
+
import { logger } from '../utils/logger.js';
|
|
7
|
+
/**
|
|
8
|
+
* Build a staging branch by sequentially merging PR head branches.
|
|
9
|
+
* Ejects conflicting PRs and continues with the rest.
|
|
10
|
+
*/
|
|
11
|
+
export async function buildStagingBranch(repoLocalPath, baseBranch, prNumbers, forge, repo, stagingBranchPrefix) {
|
|
12
|
+
const stagingBranch = `${stagingBranchPrefix}/${Date.now()}`;
|
|
13
|
+
const merged = [];
|
|
14
|
+
const ejected = [];
|
|
15
|
+
const stagingWorktreePath = await createStagingWorktree(repoLocalPath, baseBranch, stagingBranch);
|
|
16
|
+
try {
|
|
17
|
+
for (const prNumber of prNumbers) {
|
|
18
|
+
try {
|
|
19
|
+
// Get PR to find head branch
|
|
20
|
+
const pr = forge.getPR
|
|
21
|
+
? await forge.getPR(repo, prNumber)
|
|
22
|
+
: await forge.findPRByBranch(repo, ''); // fallback — won't work well
|
|
23
|
+
if (!pr) {
|
|
24
|
+
logger.warn({ repo, prNumber }, 'Could not find PR for merge — ejecting');
|
|
25
|
+
ejected.push(prNumber);
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
// Fetch the PR branch
|
|
29
|
+
await runGit(['fetch', 'origin', pr.headBranch], { cwd: stagingWorktreePath });
|
|
30
|
+
// Try to merge
|
|
31
|
+
const mergeResult = await mergeNoFF(stagingWorktreePath, `origin/${pr.headBranch}`);
|
|
32
|
+
if (mergeResult.success) {
|
|
33
|
+
merged.push(prNumber);
|
|
34
|
+
logger.info({ repo, prNumber, branch: pr.headBranch }, 'Merged PR into staging');
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
await abortMerge(stagingWorktreePath);
|
|
38
|
+
ejected.push(prNumber);
|
|
39
|
+
logger.warn({ repo, prNumber, branch: pr.headBranch, error: mergeResult.error }, 'Merge conflict — ejecting PR');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
ejected.push(prNumber);
|
|
44
|
+
logger.warn({ repo, prNumber, err }, 'Failed to merge PR into staging — ejecting');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const stagingSha = await getHeadSha(stagingWorktreePath);
|
|
48
|
+
// Push staging branch
|
|
49
|
+
await runGit(['push', 'origin', stagingBranch, '--force-with-lease'], { cwd: stagingWorktreePath });
|
|
50
|
+
return { stagingSha, merged, ejected, stagingBranch };
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
await cleanupStagingWorktree(repoLocalPath, stagingWorktreePath);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function createStagingWorktree(repoLocalPath, baseBranch, stagingBranch) {
|
|
57
|
+
await runGit(['fetch', 'origin'], { cwd: repoLocalPath });
|
|
58
|
+
const stagingWorktreePath = await mkdtemp(join(tmpdir(), 'night-orch-staging-'));
|
|
59
|
+
await runGit(['worktree', 'add', '--force', '-B', stagingBranch, stagingWorktreePath, `origin/${baseBranch}`], { cwd: repoLocalPath });
|
|
60
|
+
return stagingWorktreePath;
|
|
61
|
+
}
|
|
62
|
+
async function cleanupStagingWorktree(repoLocalPath, stagingWorktreePath) {
|
|
63
|
+
try {
|
|
64
|
+
await runGit(['worktree', 'remove', stagingWorktreePath, '--force'], {
|
|
65
|
+
cwd: repoLocalPath,
|
|
66
|
+
reject: false,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
logger.debug({ repoLocalPath, stagingWorktreePath, err }, 'Failed to remove staging worktree');
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
await runGit(['worktree', 'prune'], {
|
|
74
|
+
cwd: repoLocalPath,
|
|
75
|
+
reject: false,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
logger.debug({ repoLocalPath, err }, 'Failed to prune worktrees after staging cleanup');
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
await rm(stagingWorktreePath, { recursive: true, force: true });
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// best-effort cleanup
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=staging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staging.js","sourceRoot":"","sources":["../../src/merge-queue/staging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type MergeBatchStatus = 'pending' | 'building' | 'testing' | 'passed' | 'failed' | 'bisecting';
|
|
2
|
+
export interface MergeBatchRecord {
|
|
3
|
+
id: string;
|
|
4
|
+
repo: string;
|
|
5
|
+
baseBranch: string;
|
|
6
|
+
baseSha: string;
|
|
7
|
+
status: MergeBatchStatus;
|
|
8
|
+
stagingBranch: string | null;
|
|
9
|
+
stagingSha: string | null;
|
|
10
|
+
prNumbers: number[];
|
|
11
|
+
/**
|
|
12
|
+
* PRs actually merged into the staging branch. `null` before staging runs
|
|
13
|
+
* or for pre-migration batches; callers that finalize/close PRs must
|
|
14
|
+
* prefer this over `prNumbers` so ejected PRs are not closed as merged.
|
|
15
|
+
*/
|
|
16
|
+
mergedPrNumbers: number[] | null;
|
|
17
|
+
approvedShas: string[];
|
|
18
|
+
retryCount: number;
|
|
19
|
+
parentBatchId: string | null;
|
|
20
|
+
createdAt: string;
|
|
21
|
+
updatedAt: string;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/merge-queue/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAA;AAErG,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,gBAAgB,CAAA;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB;;;;OAIG;IACH,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAChC,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/merge-queue/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Counter, Histogram, Gauge, Registry } from 'prom-client';
|
|
2
|
+
export declare function createMetricsRegistry(): {
|
|
3
|
+
registry: Registry<"text/plain; version=0.0.4; charset=utf-8">;
|
|
4
|
+
runsTotal: Counter<"status">;
|
|
5
|
+
issuesProcessed: Counter<"repo">;
|
|
6
|
+
loopIterations: Counter<"repo">;
|
|
7
|
+
agentInvocations: Counter<"role" | "adapter">;
|
|
8
|
+
prOperations: Counter<"type">;
|
|
9
|
+
verifyRunsTotal: Counter<"result">;
|
|
10
|
+
notificationsTotal: Counter<"result" | "channel">;
|
|
11
|
+
errorsTotal: Counter<"repo" | "error_type">;
|
|
12
|
+
activeRuns: Gauge<string>;
|
|
13
|
+
queuedIssues: Gauge<string>;
|
|
14
|
+
blockedIssues: Gauge<string>;
|
|
15
|
+
dailyCostUsd: Gauge<string>;
|
|
16
|
+
eligibleIssues: Gauge<"repo">;
|
|
17
|
+
runDuration: Histogram<string>;
|
|
18
|
+
phaseDuration: Histogram<"phase">;
|
|
19
|
+
agentDuration: Histogram<"role" | "adapter">;
|
|
20
|
+
verifyDuration: Histogram<string>;
|
|
21
|
+
estimatedCost: Counter<"repo" | "agent">;
|
|
22
|
+
};
|
|
23
|
+
export type Metrics = ReturnType<typeof createMetricsRegistry>;
|
|
24
|
+
//# sourceMappingURL=collectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectors.d.ts","sourceRoot":"","sources":["../../src/metrics/collectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEjE,wBAAgB,qBAAqB;;;;;;;;;;;;;;;;;;;;EAoJpC;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Counter, Histogram, Gauge, Registry } from 'prom-client';
|
|
2
|
+
export function createMetricsRegistry() {
|
|
3
|
+
const registry = new Registry();
|
|
4
|
+
const runsTotal = new Counter({
|
|
5
|
+
name: 'night_orch_runs_total',
|
|
6
|
+
help: 'Total runs by outcome',
|
|
7
|
+
labelNames: ['status'],
|
|
8
|
+
registers: [registry],
|
|
9
|
+
});
|
|
10
|
+
const issuesProcessed = new Counter({
|
|
11
|
+
name: 'night_orch_issues_processed_total',
|
|
12
|
+
help: 'Issues processed',
|
|
13
|
+
labelNames: ['repo'],
|
|
14
|
+
registers: [registry],
|
|
15
|
+
});
|
|
16
|
+
const loopIterations = new Counter({
|
|
17
|
+
name: 'night_orch_loop_iterations_total',
|
|
18
|
+
help: 'Plan/code/review iterations',
|
|
19
|
+
labelNames: ['repo'],
|
|
20
|
+
registers: [registry],
|
|
21
|
+
});
|
|
22
|
+
const agentInvocations = new Counter({
|
|
23
|
+
name: 'night_orch_agent_invocations_total',
|
|
24
|
+
help: 'Agent calls by role and adapter',
|
|
25
|
+
labelNames: ['role', 'adapter'],
|
|
26
|
+
registers: [registry],
|
|
27
|
+
});
|
|
28
|
+
const prOperations = new Counter({
|
|
29
|
+
name: 'night_orch_pr_operations_total',
|
|
30
|
+
help: 'PR operations by type',
|
|
31
|
+
labelNames: ['type'],
|
|
32
|
+
registers: [registry],
|
|
33
|
+
});
|
|
34
|
+
const verifyRunsTotal = new Counter({
|
|
35
|
+
name: 'night_orch_verify_runs_total',
|
|
36
|
+
help: 'Verification runs by result',
|
|
37
|
+
labelNames: ['result'],
|
|
38
|
+
registers: [registry],
|
|
39
|
+
});
|
|
40
|
+
const notificationsTotal = new Counter({
|
|
41
|
+
name: 'night_orch_notifications_total',
|
|
42
|
+
help: 'Notifications sent by channel and result',
|
|
43
|
+
labelNames: ['channel', 'result'],
|
|
44
|
+
registers: [registry],
|
|
45
|
+
});
|
|
46
|
+
const errorsTotal = new Counter({
|
|
47
|
+
name: 'night_orch_errors_total',
|
|
48
|
+
help: 'Errors by category',
|
|
49
|
+
labelNames: ['repo', 'error_type'],
|
|
50
|
+
registers: [registry],
|
|
51
|
+
});
|
|
52
|
+
const activeRuns = new Gauge({
|
|
53
|
+
name: 'night_orch_active_runs',
|
|
54
|
+
help: 'Currently running',
|
|
55
|
+
registers: [registry],
|
|
56
|
+
});
|
|
57
|
+
const queuedIssues = new Gauge({
|
|
58
|
+
name: 'night_orch_queued_issues',
|
|
59
|
+
help: 'Eligible issues waiting',
|
|
60
|
+
registers: [registry],
|
|
61
|
+
});
|
|
62
|
+
const blockedIssues = new Gauge({
|
|
63
|
+
name: 'night_orch_blocked_issues',
|
|
64
|
+
help: 'Blocked issues',
|
|
65
|
+
registers: [registry],
|
|
66
|
+
});
|
|
67
|
+
const dailyCostUsd = new Gauge({
|
|
68
|
+
name: 'night_orch_daily_cost_usd',
|
|
69
|
+
help: 'Estimated daily API cost in USD',
|
|
70
|
+
registers: [registry],
|
|
71
|
+
});
|
|
72
|
+
const eligibleIssues = new Gauge({
|
|
73
|
+
name: 'night_orch_eligible_issues',
|
|
74
|
+
help: 'Eligible issues by repo',
|
|
75
|
+
labelNames: ['repo'],
|
|
76
|
+
registers: [registry],
|
|
77
|
+
});
|
|
78
|
+
const runDuration = new Histogram({
|
|
79
|
+
name: 'night_orch_run_duration_seconds',
|
|
80
|
+
help: 'Time per run',
|
|
81
|
+
buckets: [60, 300, 600, 1200, 1800, 3600, 7200],
|
|
82
|
+
registers: [registry],
|
|
83
|
+
});
|
|
84
|
+
const phaseDuration = new Histogram({
|
|
85
|
+
name: 'night_orch_phase_duration_seconds',
|
|
86
|
+
help: 'Time per loop phase',
|
|
87
|
+
labelNames: ['phase'],
|
|
88
|
+
buckets: [10, 30, 60, 120, 300, 600, 1800],
|
|
89
|
+
registers: [registry],
|
|
90
|
+
});
|
|
91
|
+
const agentDuration = new Histogram({
|
|
92
|
+
name: 'night_orch_agent_duration_seconds',
|
|
93
|
+
help: 'Time per agent call',
|
|
94
|
+
labelNames: ['role', 'adapter'],
|
|
95
|
+
buckets: [30, 60, 120, 300, 600, 1200, 1800],
|
|
96
|
+
registers: [registry],
|
|
97
|
+
});
|
|
98
|
+
const verifyDuration = new Histogram({
|
|
99
|
+
name: 'night_orch_verify_duration_seconds',
|
|
100
|
+
help: 'Time per verification run',
|
|
101
|
+
buckets: [5, 15, 30, 60, 120, 300],
|
|
102
|
+
registers: [registry],
|
|
103
|
+
});
|
|
104
|
+
const estimatedCost = new Counter({
|
|
105
|
+
name: 'night_orch_estimated_cost_dollars',
|
|
106
|
+
help: 'Estimated API cost',
|
|
107
|
+
labelNames: ['repo', 'agent'],
|
|
108
|
+
registers: [registry],
|
|
109
|
+
});
|
|
110
|
+
return {
|
|
111
|
+
registry,
|
|
112
|
+
runsTotal,
|
|
113
|
+
issuesProcessed,
|
|
114
|
+
loopIterations,
|
|
115
|
+
agentInvocations,
|
|
116
|
+
prOperations,
|
|
117
|
+
verifyRunsTotal,
|
|
118
|
+
notificationsTotal,
|
|
119
|
+
errorsTotal,
|
|
120
|
+
activeRuns,
|
|
121
|
+
queuedIssues,
|
|
122
|
+
blockedIssues,
|
|
123
|
+
dailyCostUsd,
|
|
124
|
+
eligibleIssues,
|
|
125
|
+
runDuration,
|
|
126
|
+
phaseDuration,
|
|
127
|
+
agentDuration,
|
|
128
|
+
verifyDuration,
|
|
129
|
+
estimatedCost,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=collectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectors.js","sourceRoot":"","sources":["../../src/metrics/collectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Server } from 'node:http';
|
|
2
|
+
import type { Metrics } from './collectors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Start an HTTP server serving Prometheus metrics on /metrics
|
|
5
|
+
* and a JSON summary on /api/stats.
|
|
6
|
+
*/
|
|
7
|
+
export declare function startMetricsServer(metrics: Metrics, host: string, port: number): Server;
|
|
8
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/metrics/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAG9C;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,MAAM,CA+BR"}
|