@openagt/dashboard 0.8.0 → 0.10.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 +14 -17
- package/dist/agent-view.d.ts +3 -3
- package/dist/bridge-browser.d.ts +4 -4
- package/dist/bridge-browser.d.ts.map +1 -1
- package/dist/bridge-browser.js +8 -8
- package/dist/bridge-browser.js.map +1 -1
- package/dist/built-in.d.ts +45 -14
- package/dist/built-in.d.ts.map +1 -1
- package/dist/built-in.js +122 -27
- package/dist/built-in.js.map +1 -1
- package/dist/chrome-extension/background.js +11 -11
- package/dist/chrome-extension/content.js +37 -37
- package/dist/chrome-extension/driver-plan.js +1 -1
- package/dist/chrome-extension/fingerprint.js +1 -1
- package/dist/chrome-extension/manifest.json +3 -3
- package/dist/chrome-extension/options.html +4 -4
- package/dist/chrome-extension/options.js +4 -4
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +7 -7
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +2 -2
- package/dist/cloud-run-state.d.ts +1 -1
- package/dist/cloud-scratch-refs.js +7 -7
- package/dist/cloud-scratch-refs.js.map +1 -1
- package/dist/cloud-work.js +2 -2
- package/dist/daemon-runtime.d.ts +5 -4
- package/dist/daemon-runtime.d.ts.map +1 -1
- package/dist/daemon-runtime.js +59 -10
- package/dist/daemon-runtime.js.map +1 -1
- package/dist/daemon-services.d.ts +4 -3
- package/dist/daemon-services.d.ts.map +1 -1
- package/dist/daemon-services.js +14 -8
- package/dist/daemon-services.js.map +1 -1
- package/dist/daemon-tick.js +1 -1
- package/dist/daemon.d.ts +1 -12
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +9 -32
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/agent-handoff.d.ts +4 -4
- package/dist/dashboard/agent-handoff.js +7 -7
- package/dist/dashboard/agent-handoff.js.map +1 -1
- package/dist/dashboard/bridge-endpoints.d.ts +3 -3
- package/dist/dashboard/bridge-endpoints.js +3 -3
- package/dist/dashboard/content-type.js +1 -1
- package/dist/dashboard/docs.d.ts +1 -1
- package/dist/dashboard/docs.js +1 -1
- package/dist/dashboard/git-status.d.ts +1 -1
- package/dist/dashboard/index.d.ts +1 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/interventions.d.ts +2 -2
- package/dist/dashboard/open-in-app.d.ts +3 -3
- package/dist/dashboard/open-in-app.js +4 -4
- package/dist/dashboard/open-questions.d.ts +2 -2
- package/dist/dashboard/projects.d.ts +6 -5
- package/dist/dashboard/projects.d.ts.map +1 -1
- package/dist/dashboard/projects.js.map +1 -1
- package/dist/dashboard/pull-requests.d.ts +5 -5
- package/dist/dashboard/pull-requests.d.ts.map +1 -1
- package/dist/dashboard/pull-requests.js +2 -2
- package/dist/dashboard/pull-requests.js.map +1 -1
- package/dist/dashboard/relay-endpoints.d.ts +3 -3
- package/dist/dashboard/relay-endpoints.js +1 -1
- package/dist/dashboard/remote-run.d.ts +5 -5
- package/dist/dashboard/remote-run.js +3 -3
- package/dist/dashboard/rpc-serve.d.ts +7 -4
- package/dist/dashboard/rpc-serve.d.ts.map +1 -1
- package/dist/dashboard/rpc-serve.js.map +1 -1
- package/dist/dashboard/run-inbox.d.ts +2 -2
- package/dist/dashboard/run-inbox.js +4 -4
- package/dist/dashboard/run-inbox.js.map +1 -1
- package/dist/dashboard/server.d.ts +6 -4
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +3 -2
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard/start-branch.d.ts +32 -0
- package/dist/dashboard/start-branch.d.ts.map +1 -0
- package/dist/dashboard/start-branch.js +47 -0
- package/dist/dashboard/start-branch.js.map +1 -0
- package/dist/dashboard/static.js +1 -1
- package/dist/dashboard/types.d.ts +29 -3
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/dashboard/web-start-endpoints.d.ts +1 -1
- package/dist/dashboard/web-start-endpoints.d.ts.map +1 -1
- package/dist/dashboard/web-start-endpoints.js +1 -1
- package/dist/dashboard/web-start-endpoints.js.map +1 -1
- package/dist/dashboard-bundle/assets/main-Q7JMdMJI.css +2 -0
- package/dist/dashboard-bundle/assets/main-fDZWGOub.js +140 -0
- package/dist/dashboard-bundle/assets/{module-jASZmfSB.js → module-gKz-ZvkG.js} +4 -4
- package/dist/dashboard-bundle/host/module.js +1 -1
- package/dist/dashboard-bundle/index.html +6 -6
- package/dist/dashboard-rpc/context.d.ts +2 -0
- package/dist/dashboard-rpc/context.d.ts.map +1 -1
- package/dist/dashboard-rpc/context.js +4 -0
- package/dist/dashboard-rpc/context.js.map +1 -1
- package/dist/dashboard-rpc/control.d.ts +1 -1
- package/dist/dashboard-rpc/control.js +3 -3
- package/dist/dashboard-rpc/control.js.map +1 -1
- package/dist/dashboard-rpc/events.d.ts +3 -3
- package/dist/dashboard-rpc/index.d.ts +2 -1
- package/dist/dashboard-rpc/index.d.ts.map +1 -1
- package/dist/dashboard-rpc/index.js +4 -2
- package/dist/dashboard-rpc/index.js.map +1 -1
- package/dist/dashboard-rpc/modules.d.ts +8 -6
- package/dist/dashboard-rpc/modules.d.ts.map +1 -1
- package/dist/dashboard-rpc/modules.js +8 -6
- package/dist/dashboard-rpc/modules.js.map +1 -1
- package/dist/dashboard-rpc/preferences.d.ts +2 -2
- package/dist/dashboard-rpc/preferences.d.ts.map +1 -1
- package/dist/dashboard-rpc/preferences.js +2 -2
- package/dist/dashboard-rpc/preferences.js.map +1 -1
- package/dist/dashboard-rpc/projects.d.ts +29 -3
- package/dist/dashboard-rpc/projects.d.ts.map +1 -1
- package/dist/dashboard-rpc/projects.js +57 -8
- package/dist/dashboard-rpc/projects.js.map +1 -1
- package/dist/dashboard-rpc/reads.d.ts +3 -3
- package/dist/dashboard-rpc/reads.js +1 -1
- package/dist/dashboard-rpc/skills.d.ts +80 -0
- package/dist/dashboard-rpc/skills.d.ts.map +1 -0
- package/dist/dashboard-rpc/skills.js +84 -0
- package/dist/dashboard-rpc/skills.js.map +1 -0
- package/dist/dashboard-rpc/test-context.d.ts.map +1 -1
- package/dist/dashboard-rpc/test-context.js +4 -3
- package/dist/dashboard-rpc/test-context.js.map +1 -1
- package/dist/event-stream.d.ts +1 -1
- package/dist/event-stream.js +1 -1
- package/dist/events.d.ts +8 -8
- package/dist/events.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/install.d.ts +9 -7
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +28 -14
- package/dist/install.js.map +1 -1
- package/dist/module-server.d.ts +1 -1
- package/dist/module-types/dashboard/components/ui/switch.d.ts +7 -0
- package/dist/module-types/dashboard/lib/route.d.ts +2 -1
- package/dist/module-types/dashboard/lib/use-modules.d.ts +4 -3
- package/dist/module-types/dashboard/module/index.d.ts +6 -5
- package/dist/module-types/src/agent-view.d.ts +3 -3
- package/dist/module-types/src/bridge-browser.d.ts +4 -4
- package/dist/module-types/src/built-in.d.ts +45 -14
- package/dist/module-types/src/client.d.ts +1 -1
- package/dist/module-types/src/cloud-run-state.d.ts +1 -1
- package/dist/module-types/src/dashboard/agent-handoff.d.ts +4 -4
- package/dist/module-types/src/dashboard/bridge-endpoints.d.ts +3 -3
- package/dist/module-types/src/dashboard/docs.d.ts +1 -1
- package/dist/module-types/src/dashboard/git-status.d.ts +1 -1
- package/dist/module-types/src/dashboard/interventions.d.ts +2 -2
- package/dist/module-types/src/dashboard/open-in-app.d.ts +3 -3
- package/dist/module-types/src/dashboard/open-questions.d.ts +2 -2
- package/dist/module-types/src/dashboard/projects.d.ts +6 -5
- package/dist/module-types/src/dashboard/pull-requests.d.ts +5 -5
- package/dist/module-types/src/dashboard/remote-run.d.ts +5 -5
- package/dist/module-types/src/dashboard/rpc-serve.d.ts +7 -4
- package/dist/module-types/src/dashboard/run-inbox.d.ts +2 -2
- package/dist/module-types/src/dashboard/start-branch.d.ts +31 -0
- package/dist/module-types/src/dashboard/types.d.ts +29 -3
- package/dist/module-types/src/dashboard-rpc/context.d.ts +2 -0
- package/dist/module-types/src/dashboard-rpc/control.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/events.d.ts +3 -3
- package/dist/module-types/src/dashboard-rpc/index.d.ts +2 -1
- package/dist/module-types/src/dashboard-rpc/modules.d.ts +8 -6
- package/dist/module-types/src/dashboard-rpc/preferences.d.ts +2 -2
- package/dist/module-types/src/dashboard-rpc/projects.d.ts +29 -3
- package/dist/module-types/src/dashboard-rpc/reads.d.ts +3 -3
- package/dist/module-types/src/dashboard-rpc/skills.d.ts +79 -0
- package/dist/module-types/src/event-stream.d.ts +1 -1
- package/dist/module-types/src/events.d.ts +8 -8
- package/dist/module-types/src/index.d.ts +3 -2
- package/dist/module-types/src/open-choices.d.ts +2 -2
- package/dist/module-types/src/openagent-dir.d.ts +8 -0
- package/dist/module-types/src/openagent-gitignore.d.ts +11 -0
- package/dist/module-types/src/project-commands.d.ts +5 -1
- package/dist/module-types/src/project-errors.d.ts +11 -7
- package/dist/module-types/src/project-hooks.d.ts +12 -9
- package/dist/module-types/src/project-modules.d.ts +9 -7
- package/dist/module-types/src/project-presets.d.ts +4 -4
- package/dist/module-types/src/project.d.ts +6 -6
- package/dist/module-types/src/publish-levels.d.ts +4 -4
- package/dist/module-types/src/quota-boundary.d.ts +2 -2
- package/dist/module-types/src/registry.d.ts +13 -7
- package/dist/module-types/src/store/agent-checkout.d.ts +1 -1
- package/dist/module-types/src/store/agent-store.d.ts +6 -6
- package/dist/module-types/src/store/branches.d.ts +8 -8
- package/dist/module-types/src/store/git-host.d.ts +8 -8
- package/dist/module-types/src/store/provided.d.ts +3 -3
- package/dist/module-types/src/store/queue.d.ts +9 -9
- package/dist/module-types/src/store/repository.d.ts +2 -2
- package/dist/module-types/src/store/run-record.d.ts +10 -10
- package/dist/module-types/src/store/runs.d.ts +7 -7
- package/dist/module-types/src/store/tickets.d.ts +8 -8
- package/dist/module-types/src/terminal.d.ts +3 -3
- package/dist/open-choices.d.ts +2 -2
- package/dist/openagent-dir.d.ts +9 -0
- package/dist/openagent-dir.d.ts.map +1 -0
- package/dist/openagent-dir.js +9 -0
- package/dist/openagent-dir.js.map +1 -0
- package/dist/openagent-gitignore.d.ts +12 -0
- package/dist/openagent-gitignore.d.ts.map +1 -0
- package/dist/openagent-gitignore.js +19 -0
- package/dist/openagent-gitignore.js.map +1 -0
- package/dist/pick-directory.js +2 -2
- package/dist/pick-directory.js.map +1 -1
- package/dist/project-commands.d.ts +5 -1
- package/dist/project-commands.d.ts.map +1 -1
- package/dist/project-commands.js +1 -1
- package/dist/project-commands.js.map +1 -1
- package/dist/project-errors.d.ts +11 -7
- package/dist/project-errors.d.ts.map +1 -1
- package/dist/project-errors.js +10 -8
- package/dist/project-errors.js.map +1 -1
- package/dist/project-hooks.d.ts +12 -9
- package/dist/project-hooks.d.ts.map +1 -1
- package/dist/project-hooks.js +17 -14
- package/dist/project-hooks.js.map +1 -1
- package/dist/project-modules.d.ts +9 -7
- package/dist/project-modules.d.ts.map +1 -1
- package/dist/project-modules.js +7 -13
- package/dist/project-modules.js.map +1 -1
- package/dist/project-presets.d.ts +4 -4
- package/dist/project-presets.d.ts.map +1 -1
- package/dist/project-presets.js +9 -9
- package/dist/project-presets.js.map +1 -1
- package/dist/project.d.ts +6 -6
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +6 -7
- package/dist/project.js.map +1 -1
- package/dist/publish-levels.d.ts +4 -4
- package/dist/publish-levels.d.ts.map +1 -1
- package/dist/publish-levels.js +7 -5
- package/dist/publish-levels.js.map +1 -1
- package/dist/quota-boundary.d.ts +2 -2
- package/dist/quota-boundary.js +2 -2
- package/dist/registry.d.ts +13 -7
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +19 -3
- package/dist/registry.js.map +1 -1
- package/dist/remove-files.d.ts +24 -0
- package/dist/remove-files.d.ts.map +1 -0
- package/dist/remove-files.js +98 -0
- package/dist/remove-files.js.map +1 -0
- package/dist/store/agent-checkout.d.ts +1 -1
- package/dist/store/agent-checkout.js +3 -3
- package/dist/store/agent-checkout.js.map +1 -1
- package/dist/store/agent-store.d.ts +6 -6
- package/dist/store/agent-store.js +8 -8
- package/dist/store/agent-store.js.map +1 -1
- package/dist/store/branches.d.ts +8 -8
- package/dist/store/branches.d.ts.map +1 -1
- package/dist/store/branches.js +2 -2
- package/dist/store/branches.js.map +1 -1
- package/dist/store/git-host.d.ts +8 -8
- package/dist/store/git-host.d.ts.map +1 -1
- package/dist/store/git-host.js +3 -3
- package/dist/store/git-host.js.map +1 -1
- package/dist/store/provided.d.ts +3 -3
- package/dist/store/provided.d.ts.map +1 -1
- package/dist/store/provided.js +3 -3
- package/dist/store/provided.js.map +1 -1
- package/dist/store/queue.d.ts +9 -9
- package/dist/store/queue.d.ts.map +1 -1
- package/dist/store/queue.js +2 -2
- package/dist/store/queue.js.map +1 -1
- package/dist/store/repository.d.ts +2 -2
- package/dist/store/run-record.d.ts +10 -10
- package/dist/store/run-record.d.ts.map +1 -1
- package/dist/store/run-record.js +7 -7
- package/dist/store/run-record.js.map +1 -1
- package/dist/store/runs.d.ts +7 -7
- package/dist/store/runs.d.ts.map +1 -1
- package/dist/store/runs.js +3 -3
- package/dist/store/runs.js.map +1 -1
- package/dist/store/test-branches.d.ts +0 -8
- package/dist/store/test-branches.d.ts.map +1 -1
- package/dist/store/test-branches.js +0 -24
- package/dist/store/test-branches.js.map +1 -1
- package/dist/store/tickets.d.ts +8 -8
- package/dist/store/tickets.d.ts.map +1 -1
- package/dist/store/tickets.js +2 -2
- package/dist/store/tickets.js.map +1 -1
- package/dist/terminal.d.ts +3 -3
- package/dist/terminal.js +3 -3
- package/package.json +23 -20
- package/dist/agent-archive.d.ts +0 -35
- package/dist/agent-archive.d.ts.map +0 -1
- package/dist/agent-archive.js +0 -67
- package/dist/agent-archive.js.map +0 -1
- package/dist/agent-commit.d.ts +0 -140
- package/dist/agent-commit.d.ts.map +0 -1
- package/dist/agent-commit.js +0 -254
- package/dist/agent-commit.js.map +0 -1
- package/dist/agent-driver.d.ts +0 -28
- package/dist/agent-driver.d.ts.map +0 -1
- package/dist/agent-driver.js +0 -18
- package/dist/agent-driver.js.map +0 -1
- package/dist/agent-location.d.ts +0 -11
- package/dist/agent-location.d.ts.map +0 -1
- package/dist/agent-location.js +0 -10
- package/dist/agent-location.js.map +0 -1
- package/dist/agent-messages.d.ts +0 -55
- package/dist/agent-messages.d.ts.map +0 -1
- package/dist/agent-messages.js +0 -73
- package/dist/agent-messages.js.map +0 -1
- package/dist/agent-names.d.ts +0 -24
- package/dist/agent-names.d.ts.map +0 -1
- package/dist/agent-names.js +0 -33
- package/dist/agent-names.js.map +0 -1
- package/dist/agent-options.d.ts +0 -45
- package/dist/agent-options.d.ts.map +0 -1
- package/dist/agent-options.js +0 -83
- package/dist/agent-options.js.map +0 -1
- package/dist/agent-spec.d.ts +0 -56
- package/dist/agent-spec.d.ts.map +0 -1
- package/dist/agent-spec.js +0 -56
- package/dist/agent-spec.js.map +0 -1
- package/dist/agent-telemetry.d.ts +0 -88
- package/dist/agent-telemetry.d.ts.map +0 -1
- package/dist/agent-telemetry.js +0 -97
- package/dist/agent-telemetry.js.map +0 -1
- package/dist/agent.d.ts +0 -113
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js +0 -168
- package/dist/agent.js.map +0 -1
- package/dist/archived-agent-patch.d.ts +0 -14
- package/dist/archived-agent-patch.d.ts.map +0 -1
- package/dist/archived-agent-patch.js +0 -22
- package/dist/archived-agent-patch.js.map +0 -1
- package/dist/auto-pm.d.ts +0 -538
- package/dist/auto-pm.d.ts.map +0 -1
- package/dist/auto-pm.js +0 -707
- package/dist/auto-pm.js.map +0 -1
- package/dist/await-gate.d.ts +0 -184
- package/dist/await-gate.d.ts.map +0 -1
- package/dist/await-gate.js +0 -252
- package/dist/await-gate.js.map +0 -1
- package/dist/branch-links-pass.d.ts +0 -15
- package/dist/branch-links-pass.d.ts.map +0 -1
- package/dist/branch-links-pass.js +0 -13
- package/dist/branch-links-pass.js.map +0 -1
- package/dist/branch-links.d.ts +0 -53
- package/dist/branch-links.d.ts.map +0 -1
- package/dist/branch-links.js +0 -94
- package/dist/branch-links.js.map +0 -1
- package/dist/branch-names.d.ts +0 -57
- package/dist/branch-names.d.ts.map +0 -1
- package/dist/branch-names.js +0 -72
- package/dist/branch-names.js.map +0 -1
- package/dist/ci-watch.d.ts +0 -123
- package/dist/ci-watch.d.ts.map +0 -1
- package/dist/ci-watch.js +0 -228
- package/dist/ci-watch.js.map +0 -1
- package/dist/claude-trust.d.ts +0 -16
- package/dist/claude-trust.d.ts.map +0 -1
- package/dist/claude-trust.js +0 -72
- package/dist/claude-trust.js.map +0 -1
- package/dist/cli-exec.d.ts +0 -36
- package/dist/cli-exec.d.ts.map +0 -1
- package/dist/cli-exec.js +0 -44
- package/dist/cli-exec.js.map +0 -1
- package/dist/closing-keywords.d.ts +0 -28
- package/dist/closing-keywords.d.ts.map +0 -1
- package/dist/closing-keywords.js +0 -49
- package/dist/closing-keywords.js.map +0 -1
- package/dist/config-layers.d.ts +0 -62
- package/dist/config-layers.d.ts.map +0 -1
- package/dist/config-layers.js +0 -70
- package/dist/config-layers.js.map +0 -1
- package/dist/config.d.ts +0 -54
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -78
- package/dist/config.js.map +0 -1
- package/dist/consumption-guard.d.ts +0 -53
- package/dist/consumption-guard.d.ts.map +0 -1
- package/dist/consumption-guard.js +0 -69
- package/dist/consumption-guard.js.map +0 -1
- package/dist/control.d.ts +0 -75
- package/dist/control.d.ts.map +0 -1
- package/dist/control.js +0 -68
- package/dist/control.js.map +0 -1
- package/dist/conversation-commit.d.ts +0 -166
- package/dist/conversation-commit.d.ts.map +0 -1
- package/dist/conversation-commit.js +0 -309
- package/dist/conversation-commit.js.map +0 -1
- package/dist/conversations.d.ts +0 -93
- package/dist/conversations.d.ts.map +0 -1
- package/dist/conversations.js +0 -176
- package/dist/conversations.js.map +0 -1
- package/dist/daemon-writes.d.ts +0 -33
- package/dist/daemon-writes.d.ts.map +0 -1
- package/dist/daemon-writes.js +0 -45
- package/dist/daemon-writes.js.map +0 -1
- package/dist/dashboard/agent-tree.d.ts +0 -106
- package/dist/dashboard/agent-tree.d.ts.map +0 -1
- package/dist/dashboard/agent-tree.js +0 -180
- package/dist/dashboard/agent-tree.js.map +0 -1
- package/dist/dashboard/browser-proxy.d.ts +0 -41
- package/dist/dashboard/browser-proxy.d.ts.map +0 -1
- package/dist/dashboard/browser-proxy.js +0 -96
- package/dist/dashboard/browser-proxy.js.map +0 -1
- package/dist/dashboard/discord-webhook.d.ts +0 -17
- package/dist/dashboard/discord-webhook.d.ts.map +0 -1
- package/dist/dashboard/discord-webhook.js +0 -36
- package/dist/dashboard/discord-webhook.js.map +0 -1
- package/dist/dashboard/file-diff.d.ts +0 -67
- package/dist/dashboard/file-diff.d.ts.map +0 -1
- package/dist/dashboard/file-diff.js +0 -132
- package/dist/dashboard/file-diff.js.map +0 -1
- package/dist/dashboard/file-read.d.ts +0 -42
- package/dist/dashboard/file-read.d.ts.map +0 -1
- package/dist/dashboard/file-read.js +0 -69
- package/dist/dashboard/file-read.js.map +0 -1
- package/dist/dashboard/file-status.d.ts +0 -21
- package/dist/dashboard/file-status.d.ts.map +0 -1
- package/dist/dashboard/file-status.js +0 -37
- package/dist/dashboard/file-status.js.map +0 -1
- package/dist/dashboard/gh.d.ts +0 -131
- package/dist/dashboard/gh.d.ts.map +0 -1
- package/dist/dashboard/gh.js +0 -150
- package/dist/dashboard/gh.js.map +0 -1
- package/dist/dashboard/github.d.ts +0 -11
- package/dist/dashboard/github.d.ts.map +0 -1
- package/dist/dashboard/github.js +0 -33
- package/dist/dashboard/github.js.map +0 -1
- package/dist/dashboard/run-handoff.d.ts +0 -311
- package/dist/dashboard/run-handoff.d.ts.map +0 -1
- package/dist/dashboard/run-handoff.js +0 -485
- package/dist/dashboard/run-handoff.js.map +0 -1
- package/dist/dashboard/scheduler-state.d.ts +0 -73
- package/dist/dashboard/scheduler-state.d.ts.map +0 -1
- package/dist/dashboard/scheduler-state.js +0 -120
- package/dist/dashboard/scheduler-state.js.map +0 -1
- package/dist/dashboard/subagent-settings.d.ts +0 -26
- package/dist/dashboard/subagent-settings.d.ts.map +0 -1
- package/dist/dashboard/subagent-settings.js +0 -52
- package/dist/dashboard/subagent-settings.js.map +0 -1
- package/dist/dashboard/telefunc-serve.d.ts +0 -118
- package/dist/dashboard/telefunc-serve.d.ts.map +0 -1
- package/dist/dashboard/telefunc-serve.js +0 -108
- package/dist/dashboard/telefunc-serve.js.map +0 -1
- package/dist/dashboard/tickets.d.ts +0 -29
- package/dist/dashboard/tickets.d.ts.map +0 -1
- package/dist/dashboard/tickets.js +0 -38
- package/dist/dashboard/tickets.js.map +0 -1
- package/dist/dashboard/widget-serve.d.ts +0 -15
- package/dist/dashboard/widget-serve.d.ts.map +0 -1
- package/dist/dashboard/widget-serve.js +0 -45
- package/dist/dashboard/widget-serve.js.map +0 -1
- package/dist/dashboard-bundle/assets/main-B3HghPQy.css +0 -2
- package/dist/dashboard-bundle/assets/main-om0WOAku.js +0 -140
- package/dist/dashboard-client/assets/chunks/chunk-BF9pJudf.js +0 -4
- package/dist/dashboard-client/assets/entries/entry-client-routing.CT1e9F0o.js +0 -1
- package/dist/dashboard-client/assets/entries/pages_index.CkW5JQ8X.js +0 -428
- package/dist/dashboard-client/assets/static/layouts_tailwind-00e65532.8OjKGAbA.css +0 -2
- package/dist/dashboard-client/index.html +0 -27
- package/dist/dashboard-client/index.pageContext.json +0 -1
- package/dist/dashboard-client/logo-animated.svg +0 -34
- package/dist/dashboard-client/logo.svg +0 -16
- package/dist/dashboard-rpc/control.telefunc.d.ts +0 -176
- package/dist/dashboard-rpc/control.telefunc.d.ts.map +0 -1
- package/dist/dashboard-rpc/control.telefunc.js +0 -373
- package/dist/dashboard-rpc/control.telefunc.js.map +0 -1
- package/dist/dashboard-rpc/devices.telefunc.d.ts +0 -9
- package/dist/dashboard-rpc/devices.telefunc.d.ts.map +0 -1
- package/dist/dashboard-rpc/devices.telefunc.js +0 -12
- package/dist/dashboard-rpc/devices.telefunc.js.map +0 -1
- package/dist/dashboard-rpc/events.telefunc.d.ts +0 -36
- package/dist/dashboard-rpc/events.telefunc.d.ts.map +0 -1
- package/dist/dashboard-rpc/events.telefunc.js +0 -70
- package/dist/dashboard-rpc/events.telefunc.js.map +0 -1
- package/dist/dashboard-rpc/preferences.telefunc.d.ts +0 -97
- package/dist/dashboard-rpc/preferences.telefunc.d.ts.map +0 -1
- package/dist/dashboard-rpc/preferences.telefunc.js +0 -157
- package/dist/dashboard-rpc/preferences.telefunc.js.map +0 -1
- package/dist/dashboard-rpc/projects.telefunc.d.ts +0 -56
- package/dist/dashboard-rpc/projects.telefunc.d.ts.map +0 -1
- package/dist/dashboard-rpc/projects.telefunc.js +0 -96
- package/dist/dashboard-rpc/projects.telefunc.js.map +0 -1
- package/dist/dashboard-rpc/quota.telefunc.d.ts +0 -40
- package/dist/dashboard-rpc/quota.telefunc.d.ts.map +0 -1
- package/dist/dashboard-rpc/quota.telefunc.js +0 -84
- package/dist/dashboard-rpc/quota.telefunc.js.map +0 -1
- package/dist/dashboard-rpc/reads.telefunc.d.ts +0 -197
- package/dist/dashboard-rpc/reads.telefunc.d.ts.map +0 -1
- package/dist/dashboard-rpc/reads.telefunc.js +0 -403
- package/dist/dashboard-rpc/reads.telefunc.js.map +0 -1
- package/dist/dashboard-rpc/register.d.ts +0 -18
- package/dist/dashboard-rpc/register.d.ts.map +0 -1
- package/dist/dashboard-rpc/register.js +0 -66
- package/dist/dashboard-rpc/register.js.map +0 -1
- package/dist/dashboard-rpc/relay-run.d.ts +0 -9
- package/dist/dashboard-rpc/relay-run.d.ts.map +0 -1
- package/dist/dashboard-rpc/relay-run.js +0 -21
- package/dist/dashboard-rpc/relay-run.js.map +0 -1
- package/dist/dashboard-rpc/stream-channel.d.ts +0 -23
- package/dist/dashboard-rpc/stream-channel.d.ts.map +0 -1
- package/dist/dashboard-rpc/stream-channel.js +0 -52
- package/dist/dashboard-rpc/stream-channel.js.map +0 -1
- package/dist/dashboard-rpc/subagents.d.ts +0 -12
- package/dist/dashboard-rpc/subagents.d.ts.map +0 -1
- package/dist/dashboard-rpc/subagents.js +0 -13
- package/dist/dashboard-rpc/subagents.js.map +0 -1
- package/dist/dashboard-rpc/widgets.d.ts +0 -33
- package/dist/dashboard-rpc/widgets.d.ts.map +0 -1
- package/dist/dashboard-rpc/widgets.js +0 -54
- package/dist/dashboard-rpc/widgets.js.map +0 -1
- package/dist/data-branch.d.ts +0 -120
- package/dist/data-branch.d.ts.map +0 -1
- package/dist/data-branch.js +0 -319
- package/dist/data-branch.js.map +0 -1
- package/dist/discord/bot.d.ts +0 -61
- package/dist/discord/bot.d.ts.map +0 -1
- package/dist/discord/bot.js +0 -94
- package/dist/discord/bot.js.map +0 -1
- package/dist/discord/gateway.d.ts +0 -137
- package/dist/discord/gateway.d.ts.map +0 -1
- package/dist/discord/gateway.js +0 -315
- package/dist/discord/gateway.js.map +0 -1
- package/dist/discord/live-run.d.ts +0 -31
- package/dist/discord/live-run.d.ts.map +0 -1
- package/dist/discord/live-run.js +0 -57
- package/dist/discord/live-run.js.map +0 -1
- package/dist/discord/reply-mirror.d.ts +0 -83
- package/dist/discord/reply-mirror.d.ts.map +0 -1
- package/dist/discord/reply-mirror.js +0 -84
- package/dist/discord/reply-mirror.js.map +0 -1
- package/dist/discord/rest.d.ts +0 -20
- package/dist/discord/rest.d.ts.map +0 -1
- package/dist/discord/rest.js +0 -41
- package/dist/discord/rest.js.map +0 -1
- package/dist/discord/routing.d.ts +0 -81
- package/dist/discord/routing.d.ts.map +0 -1
- package/dist/discord/routing.js +0 -91
- package/dist/discord/routing.js.map +0 -1
- package/dist/discord-credentials-store.d.ts +0 -14
- package/dist/discord-credentials-store.d.ts.map +0 -1
- package/dist/discord-credentials-store.js +0 -53
- package/dist/discord-credentials-store.js.map +0 -1
- package/dist/discord-credentials.d.ts +0 -80
- package/dist/discord-credentials.d.ts.map +0 -1
- package/dist/discord-credentials.js +0 -55
- package/dist/discord-credentials.js.map +0 -1
- package/dist/driver/actions-zip.d.ts +0 -2
- package/dist/driver/actions-zip.d.ts.map +0 -1
- package/dist/driver/actions-zip.js +0 -70
- package/dist/driver/actions-zip.js.map +0 -1
- package/dist/driver/actions.d.ts +0 -130
- package/dist/driver/actions.d.ts.map +0 -1
- package/dist/driver/actions.js +0 -261
- package/dist/driver/actions.js.map +0 -1
- package/dist/driver/agent-cli.d.ts +0 -57
- package/dist/driver/agent-cli.d.ts.map +0 -1
- package/dist/driver/agent-cli.js +0 -134
- package/dist/driver/agent-cli.js.map +0 -1
- package/dist/driver/child-registry.d.ts +0 -25
- package/dist/driver/child-registry.d.ts.map +0 -1
- package/dist/driver/child-registry.js +0 -53
- package/dist/driver/child-registry.js.map +0 -1
- package/dist/driver/claude-code-quota.d.ts +0 -40
- package/dist/driver/claude-code-quota.d.ts.map +0 -1
- package/dist/driver/claude-code-quota.js +0 -144
- package/dist/driver/claude-code-quota.js.map +0 -1
- package/dist/driver/claude-code.d.ts +0 -104
- package/dist/driver/claude-code.d.ts.map +0 -1
- package/dist/driver/claude-code.js +0 -314
- package/dist/driver/claude-code.js.map +0 -1
- package/dist/driver/cli-session.d.ts +0 -57
- package/dist/driver/cli-session.d.ts.map +0 -1
- package/dist/driver/cli-session.js +0 -134
- package/dist/driver/cli-session.js.map +0 -1
- package/dist/driver/cloud.d.ts +0 -109
- package/dist/driver/cloud.d.ts.map +0 -1
- package/dist/driver/cloud.js +0 -232
- package/dist/driver/cloud.js.map +0 -1
- package/dist/driver/codex.d.ts +0 -99
- package/dist/driver/codex.d.ts.map +0 -1
- package/dist/driver/codex.js +0 -190
- package/dist/driver/codex.js.map +0 -1
- package/dist/driver/fake.d.ts +0 -54
- package/dist/driver/fake.d.ts.map +0 -1
- package/dist/driver/fake.js +0 -73
- package/dist/driver/fake.js.map +0 -1
- package/dist/driver/index.d.ts +0 -10
- package/dist/driver/index.d.ts.map +0 -1
- package/dist/driver/index.js +0 -14
- package/dist/driver/index.js.map +0 -1
- package/dist/driver/session-support.d.ts +0 -14
- package/dist/driver/session-support.d.ts.map +0 -1
- package/dist/driver/session-support.js +0 -37
- package/dist/driver/session-support.js.map +0 -1
- package/dist/driver/types.d.ts +0 -310
- package/dist/driver/types.d.ts.map +0 -1
- package/dist/driver/types.js +0 -5
- package/dist/driver/types.js.map +0 -1
- package/dist/driver-cli.d.ts +0 -61
- package/dist/driver-cli.d.ts.map +0 -1
- package/dist/driver-cli.js +0 -66
- package/dist/driver-cli.js.map +0 -1
- package/dist/fake-script.d.ts +0 -15
- package/dist/fake-script.d.ts.map +0 -1
- package/dist/fake-script.js +0 -58
- package/dist/fake-script.js.map +0 -1
- package/dist/framework-dir.d.ts +0 -11
- package/dist/framework-dir.d.ts.map +0 -1
- package/dist/framework-dir.js +0 -11
- package/dist/framework-dir.js.map +0 -1
- package/dist/framework-gitignore.d.ts +0 -12
- package/dist/framework-gitignore.d.ts.map +0 -1
- package/dist/framework-gitignore.js +0 -19
- package/dist/framework-gitignore.js.map +0 -1
- package/dist/gate-keepalive.d.ts +0 -47
- package/dist/gate-keepalive.d.ts.map +0 -1
- package/dist/gate-keepalive.js +0 -62
- package/dist/gate-keepalive.js.map +0 -1
- package/dist/git-exclude.d.ts +0 -11
- package/dist/git-exclude.d.ts.map +0 -1
- package/dist/git-exclude.js +0 -23
- package/dist/git-exclude.js.map +0 -1
- package/dist/handoff-level.d.ts +0 -56
- package/dist/handoff-level.d.ts.map +0 -1
- package/dist/handoff-level.js +0 -62
- package/dist/handoff-level.js.map +0 -1
- package/dist/host-exec.d.ts +0 -21
- package/dist/host-exec.d.ts.map +0 -1
- package/dist/host-exec.js +0 -30
- package/dist/host-exec.js.map +0 -1
- package/dist/layout.d.ts +0 -41
- package/dist/layout.d.ts.map +0 -1
- package/dist/layout.js +0 -69
- package/dist/layout.js.map +0 -1
- package/dist/logs.d.ts +0 -73
- package/dist/logs.d.ts.map +0 -1
- package/dist/logs.js +0 -218
- package/dist/logs.js.map +0 -1
- package/dist/maintenance.d.ts +0 -90
- package/dist/maintenance.d.ts.map +0 -1
- package/dist/maintenance.js +0 -141
- package/dist/maintenance.js.map +0 -1
- package/dist/merged-worktrees.d.ts +0 -74
- package/dist/merged-worktrees.d.ts.map +0 -1
- package/dist/merged-worktrees.js +0 -84
- package/dist/merged-worktrees.js.map +0 -1
- package/dist/module-types/src/dashboard/agent-tree.d.ts +0 -105
- package/dist/module-types/src/dashboard/file-diff.d.ts +0 -66
- package/dist/module-types/src/dashboard/file-read.d.ts +0 -41
- package/dist/module-types/src/dashboard/file-status.d.ts +0 -20
- package/dist/module-types/src/dashboard/scheduler-state.d.ts +0 -72
- package/dist/module-types/src/dashboard/subagent-settings.d.ts +0 -25
- package/dist/module-types/src/dashboard-rpc/subagents.d.ts +0 -11
- package/dist/module-types/src/framework-dir.d.ts +0 -10
- package/dist/module-types/src/framework-gitignore.d.ts +0 -11
- package/dist/module-types/src/subagent-settings.d.ts +0 -26
- package/dist/on-before-mergeable-prompt.d.ts +0 -32
- package/dist/on-before-mergeable-prompt.d.ts.map +0 -1
- package/dist/on-before-mergeable-prompt.js +0 -26
- package/dist/on-before-mergeable-prompt.js.map +0 -1
- package/dist/planned-quick-wins.d.ts +0 -102
- package/dist/planned-quick-wins.d.ts.map +0 -1
- package/dist/planned-quick-wins.js +0 -171
- package/dist/planned-quick-wins.js.map +0 -1
- package/dist/preflight.d.ts +0 -77
- package/dist/preflight.d.ts.map +0 -1
- package/dist/preflight.js +0 -91
- package/dist/preflight.js.map +0 -1
- package/dist/preset-catalog.d.ts +0 -98
- package/dist/preset-catalog.d.ts.map +0 -1
- package/dist/preset-catalog.js +0 -129
- package/dist/preset-catalog.js.map +0 -1
- package/dist/preset-prompt.d.ts +0 -81
- package/dist/preset-prompt.d.ts.map +0 -1
- package/dist/preset-prompt.js +0 -51
- package/dist/preset-prompt.js.map +0 -1
- package/dist/preset-registry.d.ts +0 -32
- package/dist/preset-registry.d.ts.map +0 -1
- package/dist/preset-registry.js +0 -35
- package/dist/preset-registry.js.map +0 -1
- package/dist/presets.d.ts +0 -20
- package/dist/presets.d.ts.map +0 -1
- package/dist/presets.js +0 -33
- package/dist/presets.js.map +0 -1
- package/dist/preview-runtime.d.ts +0 -33
- package/dist/preview-runtime.d.ts.map +0 -1
- package/dist/preview-runtime.js +0 -96
- package/dist/preview-runtime.js.map +0 -1
- package/dist/preview.d.ts +0 -78
- package/dist/preview.d.ts.map +0 -1
- package/dist/preview.js +0 -301
- package/dist/preview.js.map +0 -1
- package/dist/project-widgets.d.ts +0 -46
- package/dist/project-widgets.d.ts.map +0 -1
- package/dist/project-widgets.js +0 -93
- package/dist/project-widgets.js.map +0 -1
- package/dist/prompt-run.d.ts +0 -104
- package/dist/prompt-run.d.ts.map +0 -1
- package/dist/prompt-run.js +0 -112
- package/dist/prompt-run.js.map +0 -1
- package/dist/prompt-template.d.ts +0 -16
- package/dist/prompt-template.d.ts.map +0 -1
- package/dist/prompt-template.js +0 -56
- package/dist/prompt-template.js.map +0 -1
- package/dist/prompts.generated.d.ts +0 -53
- package/dist/prompts.generated.d.ts.map +0 -1
- package/dist/prompts.generated.js +0 -55
- package/dist/prompts.generated.js.map +0 -1
- package/dist/queue-promote.d.ts +0 -70
- package/dist/queue-promote.d.ts.map +0 -1
- package/dist/queue-promote.js +0 -118
- package/dist/queue-promote.js.map +0 -1
- package/dist/relay.d.ts +0 -84
- package/dist/relay.d.ts.map +0 -1
- package/dist/relay.js +0 -199
- package/dist/relay.js.map +0 -1
- package/dist/repos-directory.d.ts +0 -19
- package/dist/repos-directory.d.ts.map +0 -1
- package/dist/repos-directory.js +0 -23
- package/dist/repos-directory.js.map +0 -1
- package/dist/retired-project-settings.d.ts +0 -43
- package/dist/retired-project-settings.d.ts.map +0 -1
- package/dist/retired-project-settings.js +0 -125
- package/dist/retired-project-settings.js.map +0 -1
- package/dist/routine-locks.d.ts +0 -53
- package/dist/routine-locks.d.ts.map +0 -1
- package/dist/routine-locks.js +0 -125
- package/dist/routine-locks.js.map +0 -1
- package/dist/run-driver.d.ts +0 -26
- package/dist/run-driver.d.ts.map +0 -1
- package/dist/run-driver.js +0 -17
- package/dist/run-driver.js.map +0 -1
- package/dist/run-locks.d.ts +0 -3
- package/dist/run-locks.d.ts.map +0 -1
- package/dist/run-locks.js +0 -39
- package/dist/run-locks.js.map +0 -1
- package/dist/run-messages.d.ts +0 -64
- package/dist/run-messages.d.ts.map +0 -1
- package/dist/run-messages.js +0 -76
- package/dist/run-messages.js.map +0 -1
- package/dist/run-options.d.ts +0 -53
- package/dist/run-options.d.ts.map +0 -1
- package/dist/run-options.js +0 -110
- package/dist/run-options.js.map +0 -1
- package/dist/run-telemetry.d.ts +0 -115
- package/dist/run-telemetry.d.ts.map +0 -1
- package/dist/run-telemetry.js +0 -137
- package/dist/run-telemetry.js.map +0 -1
- package/dist/run-view.d.ts +0 -109
- package/dist/run-view.d.ts.map +0 -1
- package/dist/run-view.js +0 -118
- package/dist/run-view.js.map +0 -1
- package/dist/run.d.ts +0 -261
- package/dist/run.d.ts.map +0 -1
- package/dist/run.js +0 -420
- package/dist/run.js.map +0 -1
- package/dist/runtime-keys.d.ts +0 -17
- package/dist/runtime-keys.d.ts.map +0 -1
- package/dist/runtime-keys.js +0 -17
- package/dist/runtime-keys.js.map +0 -1
- package/dist/sandbox.d.ts +0 -27
- package/dist/sandbox.d.ts.map +0 -1
- package/dist/sandbox.js +0 -63
- package/dist/sandbox.js.map +0 -1
- package/dist/session-link.d.ts +0 -19
- package/dist/session-link.d.ts.map +0 -1
- package/dist/session-link.js +0 -26
- package/dist/session-link.js.map +0 -1
- package/dist/sessions.d.ts +0 -77
- package/dist/sessions.d.ts.map +0 -1
- package/dist/sessions.js +0 -146
- package/dist/sessions.js.map +0 -1
- package/dist/spike-locks.d.ts +0 -75
- package/dist/spike-locks.d.ts.map +0 -1
- package/dist/spike-locks.js +0 -208
- package/dist/spike-locks.js.map +0 -1
- package/dist/stale-branch.d.ts +0 -21
- package/dist/stale-branch.d.ts.map +0 -1
- package/dist/stale-branch.js +0 -32
- package/dist/stale-branch.js.map +0 -1
- package/dist/steps.d.ts +0 -9
- package/dist/steps.d.ts.map +0 -1
- package/dist/steps.js +0 -13
- package/dist/steps.js.map +0 -1
- package/dist/store/forge.d.ts +0 -110
- package/dist/store/forge.d.ts.map +0 -1
- package/dist/store/forge.js +0 -97
- package/dist/store/forge.js.map +0 -1
- package/dist/store/run-checkout.d.ts +0 -33
- package/dist/store/run-checkout.d.ts.map +0 -1
- package/dist/store/run-checkout.js +0 -59
- package/dist/store/run-checkout.js.map +0 -1
- package/dist/store/run-store.d.ts +0 -501
- package/dist/store/run-store.d.ts.map +0 -1
- package/dist/store/run-store.js +0 -806
- package/dist/store/run-store.js.map +0 -1
- package/dist/store/suspend.d.ts +0 -38
- package/dist/store/suspend.d.ts.map +0 -1
- package/dist/store/suspend.js +0 -45
- package/dist/store/suspend.js.map +0 -1
- package/dist/store/worktree-deps.d.ts +0 -30
- package/dist/store/worktree-deps.d.ts.map +0 -1
- package/dist/store/worktree-deps.js +0 -115
- package/dist/store/worktree-deps.js.map +0 -1
- package/dist/store/worktree.d.ts +0 -194
- package/dist/store/worktree.d.ts.map +0 -1
- package/dist/store/worktree.js +0 -331
- package/dist/store/worktree.js.map +0 -1
- package/dist/subagent-settings.d.ts +0 -27
- package/dist/subagent-settings.d.ts.map +0 -1
- package/dist/subagent-settings.js +0 -35
- package/dist/subagent-settings.js.map +0 -1
- package/dist/system-prompt-file.d.ts +0 -18
- package/dist/system-prompt-file.d.ts.map +0 -1
- package/dist/system-prompt-file.js +0 -28
- package/dist/system-prompt-file.js.map +0 -1
- package/dist/system-prompt.d.ts +0 -148
- package/dist/system-prompt.d.ts.map +0 -1
- package/dist/system-prompt.js +0 -170
- package/dist/system-prompt.js.map +0 -1
- package/dist/target-driver.d.ts +0 -28
- package/dist/target-driver.d.ts.map +0 -1
- package/dist/target-driver.js +0 -18
- package/dist/target-driver.js.map +0 -1
- package/dist/ticket-locks.d.ts +0 -61
- package/dist/ticket-locks.d.ts.map +0 -1
- package/dist/ticket-locks.js +0 -137
- package/dist/ticket-locks.js.map +0 -1
- package/dist/tickets-file.d.ts +0 -7
- package/dist/tickets-file.d.ts.map +0 -1
- package/dist/tickets-file.js +0 -21
- package/dist/tickets-file.js.map +0 -1
- package/dist/tickets.d.ts +0 -18
- package/dist/tickets.d.ts.map +0 -1
- package/dist/tickets.js +0 -23
- package/dist/tickets.js.map +0 -1
- package/dist/todo-loop.d.ts +0 -110
- package/dist/todo-loop.d.ts.map +0 -1
- package/dist/todo-loop.js +0 -175
- package/dist/todo-loop.js.map +0 -1
- package/dist/turn-gate.d.ts +0 -144
- package/dist/turn-gate.d.ts.map +0 -1
- package/dist/turn-gate.js +0 -217
- package/dist/turn-gate.js.map +0 -1
- package/dist/usage.d.ts +0 -32
- package/dist/usage.d.ts.map +0 -1
- package/dist/usage.js +0 -46
- package/dist/usage.js.map +0 -1
- package/dist/widget-types/dashboard/components/LinkActions.d.ts +0 -26
- package/dist/widget-types/dashboard/components/Markdown.d.ts +0 -4
- package/dist/widget-types/dashboard/components/StartAgentButton.d.ts +0 -39
- package/dist/widget-types/dashboard/components/ui/badge.d.ts +0 -2
- package/dist/widget-types/dashboard/components/ui/button.d.ts +0 -10
- package/dist/widget-types/dashboard/components/ui/card.d.ts +0 -5
- package/dist/widget-types/dashboard/components/ui/checkbox.d.ts +0 -7
- package/dist/widget-types/dashboard/components/ui/dropdown-menu.d.ts +0 -16
- package/dist/widget-types/dashboard/components/ui/input.d.ts +0 -2
- package/dist/widget-types/dashboard/components/ui/option-label.d.ts +0 -4
- package/dist/widget-types/dashboard/components/ui/popover.d.ts +0 -8
- package/dist/widget-types/dashboard/components/ui/scroll-area.d.ts +0 -10
- package/dist/widget-types/dashboard/components/ui/separator.d.ts +0 -3
- package/dist/widget-types/dashboard/components/ui/skeleton.d.ts +0 -2
- package/dist/widget-types/dashboard/components/ui/slider.d.ts +0 -9
- package/dist/widget-types/dashboard/components/ui/tooltip.d.ts +0 -11
- package/dist/widget-types/dashboard/lib/draft-handoff.d.ts +0 -15
- package/dist/widget-types/dashboard/lib/format-date.d.ts +0 -51
- package/dist/widget-types/dashboard/lib/host-services.d.ts +0 -12
- package/dist/widget-types/dashboard/lib/route.d.ts +0 -24
- package/dist/widget-types/dashboard/lib/rpc.d.ts +0 -31
- package/dist/widget-types/dashboard/lib/use-action.d.ts +0 -25
- package/dist/widget-types/dashboard/lib/use-async.d.ts +0 -39
- package/dist/widget-types/dashboard/lib/use-widgets.d.ts +0 -42
- package/dist/widget-types/dashboard/lib/utils.d.ts +0 -3
- package/dist/widget-types/dashboard/rpc/widgets.d.ts +0 -4
- package/dist/widget-types/dashboard/widget/index.d.ts +0 -207
- package/dist/widget-types/src/agent-id.d.ts +0 -12
- package/dist/widget-types/src/agent-locks.d.ts +0 -2
- package/dist/widget-types/src/agent-view.d.ts +0 -38
- package/dist/widget-types/src/bridge-browser.d.ts +0 -216
- package/dist/widget-types/src/browser-stream.d.ts +0 -19
- package/dist/widget-types/src/browser.d.ts +0 -15
- package/dist/widget-types/src/cli-exec.d.ts +0 -35
- package/dist/widget-types/src/cloud-run-state.d.ts +0 -26
- package/dist/widget-types/src/dashboard/activity.d.ts +0 -40
- package/dist/widget-types/src/dashboard/agent-handoff.d.ts +0 -211
- package/dist/widget-types/src/dashboard/agent-tree.d.ts +0 -105
- package/dist/widget-types/src/dashboard/bridge-endpoints.d.ts +0 -157
- package/dist/widget-types/src/dashboard/bridge-question.d.ts +0 -32
- package/dist/widget-types/src/dashboard/bridge-store.d.ts +0 -178
- package/dist/widget-types/src/dashboard/cache.d.ts +0 -46
- package/dist/widget-types/src/dashboard/content-type.d.ts +0 -2
- package/dist/widget-types/src/dashboard/dashboard.d.ts +0 -37
- package/dist/widget-types/src/dashboard/discord-webhook.d.ts +0 -16
- package/dist/widget-types/src/dashboard/docs.d.ts +0 -38
- package/dist/widget-types/src/dashboard/file-diff.d.ts +0 -66
- package/dist/widget-types/src/dashboard/file-read.d.ts +0 -41
- package/dist/widget-types/src/dashboard/file-status.d.ts +0 -20
- package/dist/widget-types/src/dashboard/gh.d.ts +0 -130
- package/dist/widget-types/src/dashboard/git-status.d.ts +0 -32
- package/dist/widget-types/src/dashboard/github.d.ts +0 -10
- package/dist/widget-types/src/dashboard/http.d.ts +0 -28
- package/dist/widget-types/src/dashboard/interventions.d.ts +0 -66
- package/dist/widget-types/src/dashboard/keys.d.ts +0 -30
- package/dist/widget-types/src/dashboard/models.d.ts +0 -24
- package/dist/widget-types/src/dashboard/open-in-app.d.ts +0 -42
- package/dist/widget-types/src/dashboard/open-questions.d.ts +0 -52
- package/dist/widget-types/src/dashboard/overview.d.ts +0 -77
- package/dist/widget-types/src/dashboard/projects.d.ts +0 -89
- package/dist/widget-types/src/dashboard/pull-requests.d.ts +0 -126
- package/dist/widget-types/src/dashboard/queue.d.ts +0 -16
- package/dist/widget-types/src/dashboard/quota.d.ts +0 -59
- package/dist/widget-types/src/dashboard/remote-run.d.ts +0 -94
- package/dist/widget-types/src/dashboard/rpc-serve.d.ts +0 -102
- package/dist/widget-types/src/dashboard/run-inbox.d.ts +0 -30
- package/dist/widget-types/src/dashboard/scheduler-state.d.ts +0 -64
- package/dist/widget-types/src/dashboard/tickets.d.ts +0 -28
- package/dist/widget-types/src/dashboard/types.d.ts +0 -99
- package/dist/widget-types/src/dashboard/widget-serve.d.ts +0 -14
- package/dist/widget-types/src/dashboard-rpc/context.d.ts +0 -53
- package/dist/widget-types/src/dashboard-rpc/control.d.ts +0 -108
- package/dist/widget-types/src/dashboard-rpc/devices.d.ts +0 -8
- package/dist/widget-types/src/dashboard-rpc/events-tail.d.ts +0 -53
- package/dist/widget-types/src/dashboard-rpc/events.d.ts +0 -29
- package/dist/widget-types/src/dashboard-rpc/index.d.ts +0 -28
- package/dist/widget-types/src/dashboard-rpc/models.d.ts +0 -3
- package/dist/widget-types/src/dashboard-rpc/preferences.d.ts +0 -40
- package/dist/widget-types/src/dashboard-rpc/projects.d.ts +0 -54
- package/dist/widget-types/src/dashboard-rpc/quota.d.ts +0 -26
- package/dist/widget-types/src/dashboard-rpc/reads.d.ts +0 -227
- package/dist/widget-types/src/dashboard-rpc/relay-agent.d.ts +0 -8
- package/dist/widget-types/src/dashboard-rpc/stream-forward.d.ts +0 -16
- package/dist/widget-types/src/dashboard-rpc/widgets.d.ts +0 -32
- package/dist/widget-types/src/discord-credentials.d.ts +0 -79
- package/dist/widget-types/src/driver-names.d.ts +0 -21
- package/dist/widget-types/src/error-message.d.ts +0 -7
- package/dist/widget-types/src/event-stream.d.ts +0 -32
- package/dist/widget-types/src/events.d.ts +0 -235
- package/dist/widget-types/src/framework-dir.d.ts +0 -10
- package/dist/widget-types/src/framework-gitignore.d.ts +0 -11
- package/dist/widget-types/src/index.d.ts +0 -42
- package/dist/widget-types/src/jsonl-tail.d.ts +0 -54
- package/dist/widget-types/src/loopback-host.d.ts +0 -19
- package/dist/widget-types/src/node-fs.d.ts +0 -32
- package/dist/widget-types/src/open-choices.d.ts +0 -14
- package/dist/widget-types/src/pick-directory.d.ts +0 -29
- package/dist/widget-types/src/preference-defaults.d.ts +0 -53
- package/dist/widget-types/src/project-commands.d.ts +0 -23
- package/dist/widget-types/src/project-errors.d.ts +0 -43
- package/dist/widget-types/src/project-hooks.d.ts +0 -133
- package/dist/widget-types/src/project-presets.d.ts +0 -29
- package/dist/widget-types/src/project-widgets.d.ts +0 -45
- package/dist/widget-types/src/project.d.ts +0 -28
- package/dist/widget-types/src/quota-boundary.d.ts +0 -115
- package/dist/widget-types/src/quota-poller.d.ts +0 -82
- package/dist/widget-types/src/registry.d.ts +0 -210
- package/dist/widget-types/src/store/agent-checkout.d.ts +0 -46
- package/dist/widget-types/src/store/agent-store.d.ts +0 -237
- package/dist/widget-types/src/store/branches.d.ts +0 -133
- package/dist/widget-types/src/store/forge.d.ts +0 -109
- package/dist/widget-types/src/store/git-host.d.ts +0 -111
- package/dist/widget-types/src/store/index.d.ts +0 -9
- package/dist/widget-types/src/store/provided.d.ts +0 -16
- package/dist/widget-types/src/store/queue.d.ts +0 -45
- package/dist/widget-types/src/store/run-record.d.ts +0 -21
- package/dist/widget-types/src/store/runs.d.ts +0 -101
- package/dist/widget-types/src/store/tickets.d.ts +0 -72
- package/dist/widget-types/src/tickets.d.ts +0 -17
- package/dist/widget-types/src/worktrees.d.ts +0 -89
- package/dist/widget.css +0 -50
|
@@ -1,485 +0,0 @@
|
|
|
1
|
-
import { nodeGitRunner } from '../project.js';
|
|
2
|
-
import { cachedPrsForBranch, forgetBranchPrs, forgetPr, ghMergePr, ghPrsForBranch, nodeGhRunner, pickRunPr, } from './gh.js';
|
|
3
|
-
import { parseNumstat } from './file-diff.js';
|
|
4
|
-
import { parsePorcelain } from './file-status.js';
|
|
5
|
-
import { errorMessage } from '../error-message.js';
|
|
6
|
-
import { commitPendingWork, currentBranch, startedAtFromRunId, FRAMEWORK_DIR } from '../store/index.js';
|
|
7
|
-
/**
|
|
8
|
-
* The branch a run's work is on.
|
|
9
|
-
*
|
|
10
|
-
* Prefers what was recorded while the worktree existed (#799), because the #326 prompt lets the
|
|
11
|
-
* agent name its own branch, which makes both derivations below a guess. They stay as a fallback
|
|
12
|
-
* for runs archived before the branch was recorded.
|
|
13
|
-
*/
|
|
14
|
-
export function runBranchFor(run) {
|
|
15
|
-
if (run.branch)
|
|
16
|
-
return run.branch;
|
|
17
|
-
return run.sessionName ? `${SESSION_BRANCH_PREFIX}${run.sessionName}` : `${SESSION_BRANCH_PREFIX}run-${run.id}`;
|
|
18
|
-
}
|
|
19
|
-
/** What every branch a session creates for itself is named under. */
|
|
20
|
-
const SESSION_BRANCH_PREFIX = 'the-framework/';
|
|
21
|
-
/**
|
|
22
|
-
* The branch's PR as it applies to *this* run: the injected seam when the caller gave one, else
|
|
23
|
-
* the cached history filtered through {@link pickRunPr} with the run's start time (#1251).
|
|
24
|
-
*/
|
|
25
|
-
async function lookupRunPr(cwd, branch, deps) {
|
|
26
|
-
if (deps.pr)
|
|
27
|
-
return { value: await deps.pr(cwd, branch).catch(() => undefined), pending: false };
|
|
28
|
-
const prs = await cachedPrsForBranch(cwd, branch).catch(() => ({ value: undefined, pending: false }));
|
|
29
|
-
return { value: prs.value ? pickRunPr(prs.value, deps.since) : undefined, pending: prs.pending };
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* The PR that belongs to a run, tried across every branch name the run may have worked under
|
|
33
|
-
* (#1251/#1255): the recorded branch, the session-name branch, then the run-id branch.
|
|
34
|
-
*
|
|
35
|
-
* The ladder is what makes a hands-off web run resolvable: its local worktree is torn down (or
|
|
36
|
-
* never existed), its meta may carry only a session name whose branch is a reused pin, but the
|
|
37
|
-
* cloud session pushed the run-id branch, which no other run can ever have. Each candidate is
|
|
38
|
-
* filtered through {@link pickRunPr} with the run's start time, so a predecessor's PR on a shared
|
|
39
|
-
* branch name is never the answer. `pending` only when nothing was found and a lookup is still
|
|
40
|
-
* running, so the caller can ask again rather than render "no PR".
|
|
41
|
-
*/
|
|
42
|
-
export async function resolveRunPr(cwd, run, prs = cachedPrsForBranch) {
|
|
43
|
-
const since = run.startedAt ?? startedAtFromRunId(run.id);
|
|
44
|
-
const candidates = runBranchCandidates(run);
|
|
45
|
-
let pending = false;
|
|
46
|
-
for (const branch of candidates) {
|
|
47
|
-
const read = await prs(cwd, branch).catch(() => ({ value: undefined, pending: false }));
|
|
48
|
-
if (read.pending)
|
|
49
|
-
pending = true;
|
|
50
|
-
const pr = read.value ? pickRunPr(read.value, since) : undefined;
|
|
51
|
-
if (pr)
|
|
52
|
-
return { value: pr, pending: false };
|
|
53
|
-
}
|
|
54
|
-
return { value: undefined, pending };
|
|
55
|
-
}
|
|
56
|
-
/** Every branch name a run may have worked under, in trust order — {@link resolveRunPr}'s ladder. */
|
|
57
|
-
function runBranchCandidates(run) {
|
|
58
|
-
return [
|
|
59
|
-
...new Set([
|
|
60
|
-
...(run.branch ? [run.branch] : []),
|
|
61
|
-
...(run.sessionName ? [`${SESSION_BRANCH_PREFIX}${run.sessionName}`] : []),
|
|
62
|
-
`${SESSION_BRANCH_PREFIX}run-${run.id}`,
|
|
63
|
-
]),
|
|
64
|
-
];
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Merge a finished session's open PR (#1391): the Merge action, pressed by a human.
|
|
68
|
-
*
|
|
69
|
-
* The direct answer to the withheld-merge ending (#1363): a session whose agent never signalled
|
|
70
|
-
* ready-for-merge leaves a draft PR behind, and this is the human saying "it's good, land it".
|
|
71
|
-
* `ghMergePr` marks a draft ready on the way, for exactly that case. Refuses when the run has no
|
|
72
|
-
* PR or it is no longer open — "already merged" is an answer, not an action.
|
|
73
|
-
*/
|
|
74
|
-
export async function mergeSessionPr(cwd, run, deps = {}) {
|
|
75
|
-
const pr = (await resolveRunPr(cwd, run, deps.prs)).value;
|
|
76
|
-
if (!pr)
|
|
77
|
-
return { ok: false, error: 'this session has no pull request to merge' };
|
|
78
|
-
if (pr.state !== 'OPEN')
|
|
79
|
-
return { ok: false, error: `this session's PR is already ${pr.state.toLowerCase()}` };
|
|
80
|
-
const merged = await ghMergePr(cwd, pr.number, deps.gh);
|
|
81
|
-
if (merged.outcome === 'failed')
|
|
82
|
-
return { ok: false, error: merged.error };
|
|
83
|
-
// The PR's cached state just changed under every branch name the lookup tries: forget them all,
|
|
84
|
-
// or the bar keeps offering a merge for a PR that landed (#1028).
|
|
85
|
-
for (const branch of runBranchCandidates(run)) {
|
|
86
|
-
forgetPr(cwd, branch);
|
|
87
|
-
forgetBranchPrs(cwd, branch);
|
|
88
|
-
}
|
|
89
|
-
return { ok: true, url: pr.url };
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Whether a branch is one a session made, rather than one the user did.
|
|
93
|
-
*
|
|
94
|
-
* Only a naming convention, so it is a guess for the case #326 allows — the agent picking its own
|
|
95
|
-
* branch name. Every caller uses it to decide how loudly to surface something, never to act.
|
|
96
|
-
*/
|
|
97
|
-
export function isSessionBranch(branch) {
|
|
98
|
-
return Boolean(branch?.startsWith(SESSION_BRANCH_PREFIX));
|
|
99
|
-
}
|
|
100
|
-
/** `git` that resolves to '' instead of rejecting, for reads where "no answer" is a fine answer. */
|
|
101
|
-
function soft(git, cwd) {
|
|
102
|
-
return args => git(args, cwd).catch(() => '');
|
|
103
|
-
}
|
|
104
|
-
/** The repo's default branch: what the remote points HEAD at, else the first local conventional one. */
|
|
105
|
-
async function detectBase(run) {
|
|
106
|
-
const head = (await run(['symbolic-ref', '--short', 'refs/remotes/origin/HEAD'])).trim();
|
|
107
|
-
if (head)
|
|
108
|
-
return head;
|
|
109
|
-
for (const name of ['main', 'master']) {
|
|
110
|
-
if ((await run(['rev-parse', '--verify', '--quiet', `refs/heads/${name}`])).trim())
|
|
111
|
-
return name;
|
|
112
|
-
}
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
/** A subject can hold anything, so the fields are unit-separated rather than space-split. */
|
|
116
|
-
const SEP = String.fromCharCode(31);
|
|
117
|
-
/** Parse `git log --format=%H%x1f%s`. */
|
|
118
|
-
function parseCommits(out) {
|
|
119
|
-
return out
|
|
120
|
-
.split('\n')
|
|
121
|
-
.filter(line => line.includes(SEP))
|
|
122
|
-
.map(line => {
|
|
123
|
-
const [sha = '', subject = ''] = line.split(SEP);
|
|
124
|
-
return { sha, short: sha.slice(0, 7), subject };
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
/** `git diff --numstat` as {@link HandoffFile}s, via the shared parser in file-diff.ts. */
|
|
128
|
-
function parseHandoffFiles(out) {
|
|
129
|
-
return parseNumstat(out).map(({ path, added, removed, binary }) => ({ path, insertions: added, deletions: removed, binary }));
|
|
130
|
-
}
|
|
131
|
-
/** The framework's own paper trail (#1291): conversation records, LOGS, session archives. */
|
|
132
|
-
function isBookkeepingPath(path) {
|
|
133
|
-
return path === FRAMEWORK_DIR || path.startsWith(`${FRAMEWORK_DIR}/`);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Read what a finished session left behind, from the project repo, for `branch`.
|
|
137
|
-
*
|
|
138
|
-
* Returns undefined only when `cwd` is not a git repo at all. A branch that no longer exists
|
|
139
|
-
* still returns a handoff (with `exists: false`), because "that branch is gone" is itself the
|
|
140
|
-
* answer the dashboard needs to show.
|
|
141
|
-
*/
|
|
142
|
-
export async function readRunHandoff(cwd, branch, deps = {}) {
|
|
143
|
-
const git = deps.git ?? nodeGitRunner();
|
|
144
|
-
const run = soft(git, cwd);
|
|
145
|
-
// Not a repo (or git is unusable): nothing here is answerable.
|
|
146
|
-
if (!(await git(['rev-parse', '--git-dir'], cwd).then(() => true).catch(() => false)))
|
|
147
|
-
return undefined;
|
|
148
|
-
const tip = (await run(['rev-parse', '--verify', '--quiet', `refs/heads/${branch}`])).trim();
|
|
149
|
-
const hasRemote = (await run(['remote'])).trim().length > 0;
|
|
150
|
-
const pending = await countPendingWork(git, deps.checkout);
|
|
151
|
-
if (!tip) {
|
|
152
|
-
// The branch being gone locally does not mean the work is: a hands-off web run pushes its
|
|
153
|
-
// branch and opens its PR remotely, and a merged branch gets deleted. The PR is a remote
|
|
154
|
-
// question, so it is still answerable — and it is the one thing left worth showing (#1255).
|
|
155
|
-
const pr = await lookupRunPr(cwd, branch, deps);
|
|
156
|
-
return {
|
|
157
|
-
branch,
|
|
158
|
-
exists: false,
|
|
159
|
-
commits: [],
|
|
160
|
-
files: [],
|
|
161
|
-
insertions: 0,
|
|
162
|
-
deletions: 0,
|
|
163
|
-
empty: true,
|
|
164
|
-
hasRemote,
|
|
165
|
-
pushed: false,
|
|
166
|
-
merged: false,
|
|
167
|
-
...(pr.value ? { pr: pr.value } : {}),
|
|
168
|
-
...(pr.pending ? { prPending: true } : {}),
|
|
169
|
-
...pending,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
const base = await detectBase(run);
|
|
173
|
-
// Two ranges, because git's two spellings mean opposite things here and only one is right for
|
|
174
|
-
// each question (#1164/#1173).
|
|
175
|
-
//
|
|
176
|
-
// `base..branch` is the branch's OWN commits, which is what "what did this session produce"
|
|
177
|
-
// asks. `base...branch` in `git log` is the SYMMETRIC difference, so it also lists commits that
|
|
178
|
-
// are only on the base — exactly the thing the comment below says not to count. A session whose
|
|
179
|
-
// work is already merged then reported commits it did not make, `empty` stayed false, and the
|
|
180
|
-
// dashboard offered an Open PR that GitHub refuses with "No commits between main and <branch>".
|
|
181
|
-
//
|
|
182
|
-
// For the diff the three-dot form IS the right one: it is the change since the branch point,
|
|
183
|
-
// rather than a comparison against a base that has moved on since.
|
|
184
|
-
const logRange = base ? `${base}..${branch}` : undefined;
|
|
185
|
-
const diffRange = base ? `${base}...${branch}` : undefined;
|
|
186
|
-
const [commitsOut, numstatOut, remoteTip, mergedOut] = await Promise.all([
|
|
187
|
-
logRange ? run(['log', '--format=%H%x1f%s', logRange]) : Promise.resolve(''),
|
|
188
|
-
diffRange ? run(['diff', '--numstat', diffRange]) : Promise.resolve(''),
|
|
189
|
-
hasRemote ? run(['rev-parse', '--verify', '--quiet', `refs/remotes/origin/${branch}`]) : Promise.resolve(''),
|
|
190
|
-
base ? run(['branch', '--list', '--merged', base, branch]) : Promise.resolve(''),
|
|
191
|
-
]);
|
|
192
|
-
const commits = parseCommits(commitsOut);
|
|
193
|
-
const files = parseHandoffFiles(numstatOut);
|
|
194
|
-
// Read through the cache and allowed to arrive late (#1028): the commits, the files and
|
|
195
|
-
// whether the branch is pushed are all local git, and none of them should wait on `gh`.
|
|
196
|
-
const pr = await lookupRunPr(cwd, branch, deps);
|
|
197
|
-
return {
|
|
198
|
-
branch,
|
|
199
|
-
exists: true,
|
|
200
|
-
...(base ? { base } : {}),
|
|
201
|
-
commits,
|
|
202
|
-
files,
|
|
203
|
-
insertions: files.reduce((sum, f) => sum + f.insertions, 0),
|
|
204
|
-
deletions: files.reduce((sum, f) => sum + f.deletions, 0),
|
|
205
|
-
// A session that changed nothing is a real outcome, not an error: it gets said, not shown as
|
|
206
|
-
// an empty branch with buttons that would push nothing. Bookkeeping-only counts as nothing
|
|
207
|
-
// (#1291): every run's branch carries the framework's own records — the #326 pre-work commit
|
|
208
|
-
// sweeps in the conversation file the daemon just wrote — and publishing those alone produced
|
|
209
|
-
// junk PRs of pure paper trail. The files decide, not the commits: a branch of bookkeeping
|
|
210
|
-
// sweeps has commits and still nothing to hand off.
|
|
211
|
-
empty: commits.length === 0 || files.every(file => isBookkeepingPath(file.path)),
|
|
212
|
-
hasRemote,
|
|
213
|
-
pushed: remoteTip.trim() === tip,
|
|
214
|
-
merged: mergedOut.trim().length > 0,
|
|
215
|
-
...(pr.value ? { pr: pr.value } : {}),
|
|
216
|
-
...(pr.pending ? { prPending: true } : {}),
|
|
217
|
-
...pending,
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* The files the session left uncommitted in its own checkout, as a spreadable field.
|
|
222
|
-
*
|
|
223
|
-
* Absent rather than `[]` when no checkout was given (or git could not answer): "nobody asked" and
|
|
224
|
-
* "asked, nothing pending" are different answers, and only the second one may be shown as a clean
|
|
225
|
-
* tree.
|
|
226
|
-
*/
|
|
227
|
-
async function countPendingWork(git, checkout) {
|
|
228
|
-
if (!checkout)
|
|
229
|
-
return {};
|
|
230
|
-
const status = await git(['status', '--porcelain'], checkout).catch(() => undefined);
|
|
231
|
-
if (status === undefined)
|
|
232
|
-
return {};
|
|
233
|
-
return { pendingFiles: parsePorcelain(status).map(entry => entry.path) };
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Commit what a session left uncommitted, so what it did is what gets handed off (#1173).
|
|
237
|
-
*
|
|
238
|
-
* The automatic handoff commits the session's leftovers on the run's way out, but that happens
|
|
239
|
-
* when the run process exits, and the finishing step is offered as soon as the agent settles
|
|
240
|
-
* (#1178), which for a session left open for another turn is much earlier. Pressing the button is
|
|
241
|
-
* the same instruction given by hand, so it sweeps the same leftovers into what it publishes. The
|
|
242
|
-
* button only shows for a branch that already carries commits (#1173): a no-diff branch names its
|
|
243
|
-
* uncommitted work instead of offering a step, so this never turns "nothing committed" into a PR
|
|
244
|
-
* by itself.
|
|
245
|
-
*
|
|
246
|
-
* Two guards, because both failure modes end with the user's own work committed for them: the
|
|
247
|
-
* checkout has to be the session's own (#453) rather than the project root that `resolveRunCheckout`
|
|
248
|
-
* falls back to once a worktree is gone, and it has to be sitting on the session's branch.
|
|
249
|
-
*
|
|
250
|
-
* Returns whether the handoff may go ahead: true when there was nothing to do, when the guards say
|
|
251
|
-
* this is not ours to commit, or when the commit succeeded.
|
|
252
|
-
*/
|
|
253
|
-
export async function commitSessionWork(checkout, projectCwd, branch, git = nodeGitRunner()) {
|
|
254
|
-
if (checkout === projectCwd)
|
|
255
|
-
return true;
|
|
256
|
-
if ((await currentBranch(checkout, git)) !== branch)
|
|
257
|
-
return true;
|
|
258
|
-
return commitPendingWork(checkout, git);
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Push a finished session's branch to `origin`.
|
|
262
|
-
*
|
|
263
|
-
* Publishing the agent's work under the user's name is the user's call, but since #1102 that call
|
|
264
|
-
* is made once, up front, by a checkbox that is armed by default, rather than re-taken by hand at
|
|
265
|
-
* the end of every session. The click is still here for a session that opted out, and it is what
|
|
266
|
-
* a failed auto-push falls back to.
|
|
267
|
-
*/
|
|
268
|
-
export async function pushRunBranch(cwd, branch, git = nodeGitRunner()) {
|
|
269
|
-
try {
|
|
270
|
-
await git(['push', '--set-upstream', 'origin', branch], cwd);
|
|
271
|
-
return { ok: true };
|
|
272
|
-
}
|
|
273
|
-
catch (err) {
|
|
274
|
-
return { ok: false, error: gitReason(err) };
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* {@link RunHandoff.base} as a base a PR can actually be opened against.
|
|
279
|
-
*
|
|
280
|
-
* The field holds a git ref, because that is what every other use of it needs: `detectBase` reads
|
|
281
|
-
* `refs/remotes/origin/HEAD`, so it is `origin/main`, and the log range and merged check are both
|
|
282
|
-
* asking git a question about a remote-tracking ref. `gh pr create --base` is asking GitHub for a
|
|
283
|
-
* *branch on the remote*, and rejects `origin/main` with "Base ref must be a branch".
|
|
284
|
-
*
|
|
285
|
-
* So the conversion belongs at the `gh` boundary rather than in the field. Stripping `origin/`
|
|
286
|
-
* matches what the rest of this module already assumes: the remote is `origin` (`pushRunBranch`
|
|
287
|
-
* pushes there, `detectBase` reads its HEAD).
|
|
288
|
-
*/
|
|
289
|
-
export function prBaseName(base) {
|
|
290
|
-
return base.startsWith('origin/') ? base.slice('origin/'.length) : base;
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* The line of a failed git invocation worth showing.
|
|
294
|
-
*
|
|
295
|
-
* `execFile` rejects with "Command failed: git push ..." and buries git's own `fatal:` line
|
|
296
|
-
* further down, which in a one-line panel means the user reads the command back instead of the
|
|
297
|
-
* reason it failed.
|
|
298
|
-
*/
|
|
299
|
-
export function gitReason(err) {
|
|
300
|
-
const message = errorMessage(err);
|
|
301
|
-
const lines = message.split('\n').map(line => line.trim()).filter(Boolean);
|
|
302
|
-
return lines.find(line => /^(fatal|error|remote):/i.test(line)) ?? lines[0] ?? 'git failed';
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Open a PR for a finished session's branch, pushing it first when the remote does not have it.
|
|
306
|
-
*
|
|
307
|
-
* The button opens it ready for review, because a PR a human asked for by name is asking for
|
|
308
|
-
* review. {@link PullRequestDraft.draft} is the auto-handoff case, which is not.
|
|
309
|
-
*/
|
|
310
|
-
export async function openRunPullRequest(cwd, branch, draft, deps = {}) {
|
|
311
|
-
const git = deps.git ?? nodeGitRunner();
|
|
312
|
-
const gh = deps.gh ?? nodeGhRunner();
|
|
313
|
-
// gh refuses to open a PR for a branch the remote has never seen, so the push is part of the
|
|
314
|
-
// action rather than a thing the user has to remember to do first.
|
|
315
|
-
const pushed = await pushRunBranch(cwd, branch, git);
|
|
316
|
-
if (!pushed.ok)
|
|
317
|
-
return pushed;
|
|
318
|
-
try {
|
|
319
|
-
const args = ['pr', 'create', '--head', branch, '--title', draft.title, '--body', draft.body];
|
|
320
|
-
if (draft.base)
|
|
321
|
-
args.push('--base', prBaseName(draft.base));
|
|
322
|
-
if (draft.draft)
|
|
323
|
-
args.push('--draft');
|
|
324
|
-
const out = (await gh(args, cwd)).trim();
|
|
325
|
-
// The branch has a PR now, so the cached "no PR" must go or the bar would keep offering to
|
|
326
|
-
// open one for the next minute (#1028). Both caches: the single-PR view and the history.
|
|
327
|
-
forgetPr(cwd, branch);
|
|
328
|
-
forgetBranchPrs(cwd, branch);
|
|
329
|
-
// gh prints the new PR's URL as its last line.
|
|
330
|
-
const url = out.split('\n').filter(Boolean).at(-1);
|
|
331
|
-
return url ? { ok: true, url } : { ok: true };
|
|
332
|
-
}
|
|
333
|
-
catch (err) {
|
|
334
|
-
return { ok: false, error: errorMessage(err) };
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Open a PR for a finished session, deciding from what the run recorded which cases should not
|
|
339
|
-
* open one. Reads the branch's handoff first: a branch that no longer exists, or a session that
|
|
340
|
-
* changed nothing, is a clear error rather than an empty PR, and a branch that already has a PR
|
|
341
|
-
* returns that one. Title is the session name (else the intent's first line, else the id); body
|
|
342
|
-
* is the intent plus which session did it. This is the handoff decision the dashboard's
|
|
343
|
-
* open-PR button offers; the RPC layer only resolves which run it is about.
|
|
344
|
-
*/
|
|
345
|
-
export async function openSessionPullRequest(cwd, run, options = {}) {
|
|
346
|
-
const branch = runBranchFor(run);
|
|
347
|
-
const handoff = await readRunHandoff(cwd, branch, { since: run.startedAt }).catch(() => undefined);
|
|
348
|
-
// The run's PR first, even when its branch is gone locally: a hands-off web run's branch only
|
|
349
|
-
// ever existed on the remote, and its PR is the answer the button exists to give (#1255).
|
|
350
|
-
if (handoff?.pr)
|
|
351
|
-
return { ok: true, url: handoff.pr.url };
|
|
352
|
-
if (handoff && !handoff.exists)
|
|
353
|
-
return { ok: false, error: `branch ${branch} no longer exists` };
|
|
354
|
-
// Refuse rather than open an empty PR: a session that changed nothing has nothing to hand off.
|
|
355
|
-
if (handoff?.empty)
|
|
356
|
-
return { ok: false, error: 'this session produced no commits to open a PR for' };
|
|
357
|
-
return openRunPullRequest(cwd, branch, {
|
|
358
|
-
title: sessionPrTitle(run),
|
|
359
|
-
body: sessionPrBody(run),
|
|
360
|
-
...(handoff?.base ? { base: handoff.base } : {}),
|
|
361
|
-
...(options.draft ? { draft: true } : {}),
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
/** Both halves armed — the default a session starts from. */
|
|
365
|
-
const ARMED_HANDOFF = { push: true, pr: true };
|
|
366
|
-
/**
|
|
367
|
-
* Whether an armed merge may actually run (#1363), and if not, why.
|
|
368
|
-
*
|
|
369
|
-
* The rule settled on #1390: config *arms* the merge, the agent *authorizes* it. Landing on the
|
|
370
|
-
* default branch unattended takes (a) the agent having declared the session done via
|
|
371
|
-
* setReadyForMerge() — the same signal the on-before-mergeable step requires — and (b) the
|
|
372
|
-
* framework not already knowing of work pending in this session (its own TODO file; never the
|
|
373
|
-
* global queue, which is decoupled from sessions). A withheld merge is not a failed handoff:
|
|
374
|
-
* push and PR go ahead, the PR just opens as a draft for a human.
|
|
375
|
-
*
|
|
376
|
-
* (b) is a temporary safety belt: the agent's word should ultimately be enough. Deleting it means
|
|
377
|
-
* deleting `sessionTodoOpen` here and `sessionTodoPending` in todo-loop.ts.
|
|
378
|
-
*/
|
|
379
|
-
export function withheldMerge(deps) {
|
|
380
|
-
if (!deps.readyForMerge)
|
|
381
|
-
return 'not-ready-for-merge';
|
|
382
|
-
if (deps.sessionTodoOpen)
|
|
383
|
-
return 'session-todo-open';
|
|
384
|
-
return undefined;
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* Do the end-of-session handoff a session was left armed for (#1102): push the branch, open a
|
|
388
|
-
* draft PR for it, or both.
|
|
389
|
-
*
|
|
390
|
-
* Reads the branch first and refuses on everything that is not a clean hand-off — a branch that is
|
|
391
|
-
* gone, a session that committed nothing, a repo with no remote, a branch that already has a PR.
|
|
392
|
-
* Those are the cases where doing it anyway would produce a confusing artefact rather than help.
|
|
393
|
-
*
|
|
394
|
-
* The PR is a draft on purpose. Opening one by itself at the end of every session must not put a
|
|
395
|
-
* review request in anyone's inbox, and the interventions queue keeps listing a session's draft
|
|
396
|
-
* so the work still comes back to the human.
|
|
397
|
-
*/
|
|
398
|
-
export async function runAutoHandoff(cwd, run, intent, deps = {}) {
|
|
399
|
-
if (!intent.push && !intent.pr)
|
|
400
|
-
return { outcome: 'skipped', reason: 'not-armed' };
|
|
401
|
-
const branch = runBranchFor(run);
|
|
402
|
-
const since = run.startedAt ?? startedAtFromRunId(run.id);
|
|
403
|
-
const { gh, ...readDeps } = deps;
|
|
404
|
-
// The UNcached PR lookup, deliberately. The dashboard's cache answers `prPending` rather than
|
|
405
|
-
// yes-or-no (#1028), which is right for a panel repainting every 15s and wrong here: "not known
|
|
406
|
-
// yet" would read as "no PR" and this would open a second one. Proved against a real remote —
|
|
407
|
-
// only `gh` refusing the duplicate stopped it. This runs once, at the end of a session, so it
|
|
408
|
-
// can afford to wait for a real answer. Filtered by the run's start time (#1251): a merged PR
|
|
409
|
-
// from an earlier run on the same branch name must not stop this run from opening its own.
|
|
410
|
-
const runPr = async (c, b) => pickRunPr(await ghPrsForBranch(c, b), since);
|
|
411
|
-
const state = await readRunHandoff(cwd, branch, { pr: runPr, ...readDeps }).catch(() => undefined);
|
|
412
|
-
if (!state || !state.exists)
|
|
413
|
-
return { outcome: 'skipped', reason: 'branch-gone' };
|
|
414
|
-
if (state.empty)
|
|
415
|
-
return { outcome: 'skipped', reason: 'no-commits' };
|
|
416
|
-
if (!state.hasRemote)
|
|
417
|
-
return { outcome: 'skipped', reason: 'no-remote' };
|
|
418
|
-
// A PR already covers both halves: it means the branch is published and the human has a place
|
|
419
|
-
// to answer. Opening a second one is the one mistake this must never make. An armed merge
|
|
420
|
-
// (#1216) still applies to the open PR — this is a rerun or a restart finding the PR its
|
|
421
|
-
// predecessor opened, and the merge is the half that has not happened yet.
|
|
422
|
-
if (state.pr) {
|
|
423
|
-
if (intent.merge && state.pr.state === 'OPEN') {
|
|
424
|
-
// `watch` mode (#1418), like the freshly-opened path below: an auto merge must wait for the
|
|
425
|
-
// PR's checks rather than land on the direct fallback before they run (#1406).
|
|
426
|
-
return { outcome: 'skipped', reason: 'already-open', merge: await ghMergePr(cwd, state.pr.number, gh, { whenUnarmed: 'watch' }) };
|
|
427
|
-
}
|
|
428
|
-
return { outcome: 'skipped', reason: 'already-open' };
|
|
429
|
-
}
|
|
430
|
-
if (intent.pr) {
|
|
431
|
-
// `openRunPullRequest` pushes first, so the PR half subsumes the push half.
|
|
432
|
-
const opened = await openRunPullRequest(cwd, branch, {
|
|
433
|
-
title: sessionPrTitle(run),
|
|
434
|
-
body: sessionPrBody(run),
|
|
435
|
-
// GitHub refuses to merge or auto-merge a draft, so an armed merge (#1216) opens the PR
|
|
436
|
-
// ready: its review happened on the queue before the run, which is the same reason the
|
|
437
|
-
// merge is armed at all. Draft stays the default for PRs a human is meant to look at.
|
|
438
|
-
draft: !intent.merge,
|
|
439
|
-
...(state.base ? { base: state.base } : {}),
|
|
440
|
-
}, { ...(readDeps.git ? { git: readDeps.git } : {}), ...(gh ? { gh } : {}) });
|
|
441
|
-
if (!opened.ok)
|
|
442
|
-
return { outcome: 'failed', step: 'pr', error: opened.error };
|
|
443
|
-
// The merge half (#1216), only after the PR half succeeded. The number comes off the URL gh
|
|
444
|
-
// just printed; the lookup is the fallback for a gh that answered without one. Failing to
|
|
445
|
-
// resolve a number is a reported merge failure, never a failed handoff — the PR is there.
|
|
446
|
-
const merge = intent.merge
|
|
447
|
-
? await (async () => {
|
|
448
|
-
const lookup = readDeps.pr ?? runPr;
|
|
449
|
-
const number = prNumberFromUrl(opened.url) ?? (await lookup(cwd, branch).catch(() => undefined))?.number;
|
|
450
|
-
// `watch` mode (#1418): where GitHub cannot arm the merge, a just-opened PR defers to
|
|
451
|
-
// the daemon's CI watch instead of the direct fallback that landed it before its first
|
|
452
|
-
// check ran (#1406).
|
|
453
|
-
return number !== undefined
|
|
454
|
-
? ghMergePr(cwd, number, gh, { whenUnarmed: 'watch' })
|
|
455
|
-
: { outcome: 'failed', error: 'could not resolve the PR number to merge' };
|
|
456
|
-
})()
|
|
457
|
-
: undefined;
|
|
458
|
-
return { outcome: 'done', pushed: true, ...(opened.url ? { url: opened.url } : {}), ...(merge ? { merge } : {}) };
|
|
459
|
-
}
|
|
460
|
-
if (state.pushed)
|
|
461
|
-
return { outcome: 'skipped', reason: 'already-pushed' };
|
|
462
|
-
const pushed = await pushRunBranch(cwd, branch, readDeps.git);
|
|
463
|
-
if (!pushed.ok)
|
|
464
|
-
return { outcome: 'failed', step: 'push', error: pushed.error };
|
|
465
|
-
return { outcome: 'done', pushed: true };
|
|
466
|
-
}
|
|
467
|
-
/** The PR title for a session (#1102), with the ticket's issue reference riding along (#1334). */
|
|
468
|
-
function sessionPrTitle(run) {
|
|
469
|
-
const title = run.sessionName ?? run.intent?.split('\n')[0]?.slice(0, 72) ?? `Session ${run.id}`;
|
|
470
|
-
return run.fixes ? `${title} (fix ${run.fixes})` : title;
|
|
471
|
-
}
|
|
472
|
-
/** The PR number out of the URL `gh pr create` prints, e.g. `…/pull/123` (#1216). */
|
|
473
|
-
function prNumberFromUrl(url) {
|
|
474
|
-
const match = url?.match(/\/pull\/(\d+)(?:$|[/?#])/);
|
|
475
|
-
return match ? Number(match[1]) : undefined;
|
|
476
|
-
}
|
|
477
|
-
/** The PR body: what was asked for, and which session did it. */
|
|
478
|
-
function sessionPrBody(run) {
|
|
479
|
-
const lines = [];
|
|
480
|
-
if (run.intent)
|
|
481
|
-
lines.push(run.intent.trim(), '');
|
|
482
|
-
lines.push(`Opened from The Framework session \`${run.sessionName ?? run.id}\`.`);
|
|
483
|
-
return lines.join('\n');
|
|
484
|
-
}
|
|
485
|
-
//# sourceMappingURL=run-handoff.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-handoff.js","sourceRoot":"","sources":["../../src/dashboard/run-handoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { ProjectSummary } from './projects.js';
|
|
2
|
-
import { type PublishLevel, type PublishPick } from '../publish-levels.js';
|
|
3
|
-
import { type GitHostFor } from '../store/git-host.js';
|
|
4
|
-
/** The file the scheduler keeps its state in, at the project's root; per user, hidden from git by the tool. */
|
|
5
|
-
export declare const SCHEDULER_STATE_FILE = ".agent-scheduler/state.json";
|
|
6
|
-
/** What the last tick decided for one scheduled command, one line for a person. */
|
|
7
|
-
export interface SchedulerDecision {
|
|
8
|
-
command: string;
|
|
9
|
-
outcome: string;
|
|
10
|
-
/** The run's id when the tick started one: the same id the agent's record and checkout carry. */
|
|
11
|
-
run?: string;
|
|
12
|
-
}
|
|
13
|
-
/** The last tick as the state file remembers it. */
|
|
14
|
-
export interface SchedulerTick {
|
|
15
|
-
/** ISO timestamp. */
|
|
16
|
-
at: string;
|
|
17
|
-
decisions: SchedulerDecision[];
|
|
18
|
-
/** Why the tick decided nothing, when it could not. */
|
|
19
|
-
note?: string;
|
|
20
|
-
}
|
|
21
|
-
/** One command of the project's schedule, as the scheduler's last tick read it, with this machine's switch and publish pick. */
|
|
22
|
-
export interface SchedulerCommand {
|
|
23
|
-
command: string;
|
|
24
|
-
/** How often at most, as written (`1d`). */
|
|
25
|
-
every?: string;
|
|
26
|
-
/** The check, when the line has one. */
|
|
27
|
-
when?: string;
|
|
28
|
-
/** Whether it runs on this machine: the machine's switch, else what the line says. */
|
|
29
|
-
on: boolean;
|
|
30
|
-
/** How far a run of the command publishes its work, when the line says: `branch`, `pr` or `merge`. A line that says nothing publishes nothing. */
|
|
31
|
-
publish?: PublishLevel;
|
|
32
|
-
/** This machine's publish pick for the command, which stands in for the line's level; absent when nobody picked here. */
|
|
33
|
-
publishPick?: PublishPick;
|
|
34
|
-
}
|
|
35
|
-
/** A project's scheduler as the card shows it. */
|
|
36
|
-
export interface SchedulerState {
|
|
37
|
-
/** Whether the state file exists and parses: a project without it has no scheduler set up. */
|
|
38
|
-
present: boolean;
|
|
39
|
-
/** Whether ticks start agents. */
|
|
40
|
-
on: boolean;
|
|
41
|
-
/** Whether the scheduler's process outlives the dashboard that started it. */
|
|
42
|
-
keepAlive: boolean;
|
|
43
|
-
/** Whether the scheduler's own process is alive on this machine. */
|
|
44
|
-
running: boolean;
|
|
45
|
-
/** The model every run starts on. */
|
|
46
|
-
model?: string;
|
|
47
|
-
/** How far past the quota boundary this project's unattended runs may start, in percentage points. */
|
|
48
|
-
spendOffset?: number;
|
|
49
|
-
lastTick?: SchedulerTick;
|
|
50
|
-
/** The schedule's commands with their switches; empty until the scheduler has ticked once with a schedule. */
|
|
51
|
-
commands: SchedulerCommand[];
|
|
52
|
-
}
|
|
53
|
-
export interface ProjectScheduler extends SchedulerState {
|
|
54
|
-
projectId: string;
|
|
55
|
-
projectName: string;
|
|
56
|
-
/** Whether one of the project's packages provides a git host; without one no pull request can be opened, so a publish pick stops at the branch. */
|
|
57
|
-
gitHost: boolean;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Read one project's scheduler state. `isAlive` is the process probe; injectable so a test can
|
|
61
|
-
* decide what "running" means without holding a process.
|
|
62
|
-
*/
|
|
63
|
-
export declare function readSchedulerState(cwd: string, isAlive?: (pid: number) => boolean): Promise<SchedulerState>;
|
|
64
|
-
/** Every registered project's scheduler, one row per project in registry order, a failing read as not set up. */
|
|
65
|
-
export declare function collectSchedulers(projects: ProjectSummary[], read?: (cwd: string) => Promise<SchedulerState>, gitHost?: GitHostFor): Promise<ProjectScheduler[]>;
|
|
66
|
-
/**
|
|
67
|
-
* The spend offset the usage panel draws (#960), read off the projects' schedulers: the loosest
|
|
68
|
-
* one, since it is the one that lets unattended work spend the furthest; `undefined` when no
|
|
69
|
-
* scheduler names one. The panel's slider writes it back through each project's `offset` hook,
|
|
70
|
-
* so the schedulers agree unless one was set by hand.
|
|
71
|
-
*/
|
|
72
|
-
export declare function loosestSpendOffset(states: readonly SchedulerState[]): number | undefined;
|
|
73
|
-
//# sourceMappingURL=scheduler-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler-state.d.ts","sourceRoot":"","sources":["../../src/dashboard/scheduler-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAiC,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACzG,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAYtE,+GAA+G;AAC/G,eAAO,MAAM,oBAAoB,gCAAgC,CAAA;AAEjE,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,iGAAiG;IACjG,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,gIAAgI;AAChI,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sFAAsF;IACtF,EAAE,EAAE,OAAO,CAAA;IACX,kJAAkJ;IAClJ,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,yHAAyH;IACzH,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,8FAA8F;IAC9F,OAAO,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,EAAE,EAAE,OAAO,CAAA;IACX,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAA;IAChB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sGAAsG;IACtG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,8GAA8G;IAC9G,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,mJAAmJ;IACnJ,OAAO,EAAE,OAAO,CAAA;CACjB;AAID;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkC7H;AAqCD,iHAAiH;AACjH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EAAE,EAC1B,IAAI,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAsB,EACnE,OAAO,GAAE,UAA2B,GACnC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQ7B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,GAAG,SAAS,CAGxF"}
|