@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
package/dist/session-link.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-link.js","sourceRoot":"","sources":["../src/session-link.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,mFAAmF;AACnF,qFAAqF;AAErF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAA;AAEnD,kFAAkF;AAClF,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;AAClD,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,SAAiB;IACpE,OAAO,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAA"}
|
package/dist/sessions.d.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { SESSIONS_DIR, type StoreFs } from './store/index.js';
|
|
2
|
-
import { type GitRunner } from './project.js';
|
|
3
|
-
/**
|
|
4
|
-
* Committed session history (#1179): where a project's finished runs are archived so they survive
|
|
5
|
-
* the repo being cleaned.
|
|
6
|
-
*
|
|
7
|
-
* The bug this exists for: run state was written to `.the-framework/runs/`, which the install-time
|
|
8
|
-
* `.gitignore` keeps untracked, so `git clean -fdx` — an ordinary thing to do to a repo — deleted
|
|
9
|
-
* every session a project had ever run. Nothing was recoverable, because nothing had ever been
|
|
10
|
-
* committed.
|
|
11
|
-
*
|
|
12
|
-
* Scoped per user, as `.the-framework/<user>/sessions/`, rather than one shared directory. Two
|
|
13
|
-
* people working the same repo would otherwise write the same paths from different machines and
|
|
14
|
-
* conflict on every merge; under their own directory their histories simply sit side by side. The
|
|
15
|
-
* list being visible to the whole team is the intended outcome, not a leak — see the issue.
|
|
16
|
-
*
|
|
17
|
-
* The identity is the git `user.email` already configured in the repo, so there is nothing new to
|
|
18
|
-
* set up and the directory matches the name on the commits.
|
|
19
|
-
*/
|
|
20
|
-
/** The directory, under a user's own directory, that holds their archived runs. */
|
|
21
|
-
export { SESSIONS_DIR };
|
|
22
|
-
/** Where a run's history goes when git has no identity configured. */
|
|
23
|
-
export declare const ANONYMOUS_USER_DIR = "anonymous";
|
|
24
|
-
/**
|
|
25
|
-
* An email as a directory name: lowercased, with anything outside a conservative set replaced by
|
|
26
|
-
* `-`. The result must start with a letter or digit, which is what rules out `.`, `..` and dotfile
|
|
27
|
-
* names — this value comes from repo configuration and is joined onto a path, so a name that could
|
|
28
|
-
* climb out of the directory is the one thing that must be impossible. Anything that cannot be made
|
|
29
|
-
* to fit falls back to {@link ANONYMOUS_USER_DIR} rather than to a guess.
|
|
30
|
-
*/
|
|
31
|
-
export declare function userDirName(email: string | undefined): string;
|
|
32
|
-
/** The `.the-framework/<user>/sessions` directory under a project root. */
|
|
33
|
-
export declare function sessionsDir(cwd: string, user: string): string;
|
|
34
|
-
/**
|
|
35
|
-
* The `.the-framework/.gitignore` rules that make every user's sessions tracked. Three lines, not
|
|
36
|
-
* one: the seeded allow-list ignores everything with `*`, and git never descends into an ignored
|
|
37
|
-
* directory, so each directory on the way down has to be re-included before the files under it can
|
|
38
|
-
* be. Same shape as the conversations rules (#908), which this sits beside.
|
|
39
|
-
*
|
|
40
|
-
* User-agnostic on purpose (#1312). Naming each user meant every person who ever ran a session in
|
|
41
|
-
* the repo appended their own three lines to a *tracked* file: their checkout went dirty, the next
|
|
42
|
-
* safety commit swept the edit into a branch, and two machines doing it near each other conflicted.
|
|
43
|
-
* A glob covers everyone, including people who have not run anything yet, so the file is written
|
|
44
|
-
* once and then never again.
|
|
45
|
-
*
|
|
46
|
-
* A star matches one path segment and never a slash, so the sessions rule reaches exactly
|
|
47
|
-
* `<user>/sessions/` and not `worktrees/<run>/sessions/`. The transient siblings stay ignored
|
|
48
|
-
* either way: un-ignoring a directory only lets git descend into it, and the bare `*` still
|
|
49
|
-
* ignores every file it finds there.
|
|
50
|
-
*/
|
|
51
|
-
export declare function sessionsGitignore(): string;
|
|
52
|
-
/**
|
|
53
|
-
* Drop the per-user session rules, keeping every other line.
|
|
54
|
-
*
|
|
55
|
-
* Only users the file actually names a `sessions` rule for are stripped, and only those three
|
|
56
|
-
* exact lines. The conversations rules (#908) are a literal directory name rather than a user, so
|
|
57
|
-
* they never match, and a hand-written rule this does not recognize is left where it is.
|
|
58
|
-
*/
|
|
59
|
-
export declare function withoutPerUserRules(md: string): string;
|
|
60
|
-
/**
|
|
61
|
-
* Make sure `.the-framework/.gitignore` un-ignores archived sessions, returning whether it wrote.
|
|
62
|
-
* Done lazily on archive rather than at install time: the ignore file is seeded once and only when
|
|
63
|
-
* absent, so every repo activated before this feature carries the old allow-list.
|
|
64
|
-
*
|
|
65
|
-
* Writes at most twice in a repo's life, and usually once: a file already on the glob form is left
|
|
66
|
-
* alone, and a file still naming users is upgraded to the glob form in place — the per-user lines
|
|
67
|
-
* come out in the same write that puts the glob in, so the churn (#1312) ends rather than being
|
|
68
|
-
* added to. `user` no longer selects the rules; it stays because the caller has it and a future
|
|
69
|
-
* rule may need it again.
|
|
70
|
-
*
|
|
71
|
-
* Only a file we recognize is touched; anything hand-edited beyond recognition is left alone.
|
|
72
|
-
*/
|
|
73
|
-
export declare function ensureSessionsIgnored(cwd: string, _user: string, fs?: StoreFs): Promise<boolean>;
|
|
74
|
-
export declare function resolveUserDir(cwd: string, git?: GitRunner): Promise<string>;
|
|
75
|
-
/** Drop the {@link resolveUserDir} cache. For tests, and for a daemon that outlives a config change. */
|
|
76
|
-
export declare function forgetUserDirs(): void;
|
|
77
|
-
//# sourceMappingURL=sessions.d.ts.map
|
package/dist/sessions.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAE5D;;;;;;;;;;;;;;;;GAgBG;AAEH,mFAAmF;AACnF,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAQ7C;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ7D;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAUD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAE,OAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAarH;AAYD,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,SAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAOnG;AAED,wGAAwG;AACxG,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/dist/sessions.js
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
|
-
import { THE_FRAMEWORK_DIR } from './framework-dir.js';
|
|
3
|
-
import { gitignorePath, LOGS_GITIGNORE } from './logs.js';
|
|
4
|
-
import { nodeStoreFs, SESSIONS_DIR } from './store/index.js';
|
|
5
|
-
import { nodeGitRunner } from './project.js';
|
|
6
|
-
/**
|
|
7
|
-
* Committed session history (#1179): where a project's finished runs are archived so they survive
|
|
8
|
-
* the repo being cleaned.
|
|
9
|
-
*
|
|
10
|
-
* The bug this exists for: run state was written to `.the-framework/runs/`, which the install-time
|
|
11
|
-
* `.gitignore` keeps untracked, so `git clean -fdx` — an ordinary thing to do to a repo — deleted
|
|
12
|
-
* every session a project had ever run. Nothing was recoverable, because nothing had ever been
|
|
13
|
-
* committed.
|
|
14
|
-
*
|
|
15
|
-
* Scoped per user, as `.the-framework/<user>/sessions/`, rather than one shared directory. Two
|
|
16
|
-
* people working the same repo would otherwise write the same paths from different machines and
|
|
17
|
-
* conflict on every merge; under their own directory their histories simply sit side by side. The
|
|
18
|
-
* list being visible to the whole team is the intended outcome, not a leak — see the issue.
|
|
19
|
-
*
|
|
20
|
-
* The identity is the git `user.email` already configured in the repo, so there is nothing new to
|
|
21
|
-
* set up and the directory matches the name on the commits.
|
|
22
|
-
*/
|
|
23
|
-
/** The directory, under a user's own directory, that holds their archived runs. */
|
|
24
|
-
export { SESSIONS_DIR };
|
|
25
|
-
/** Where a run's history goes when git has no identity configured. */
|
|
26
|
-
export const ANONYMOUS_USER_DIR = 'anonymous';
|
|
27
|
-
/**
|
|
28
|
-
* Longest directory name we will make from an email. Well past any real address, and short enough
|
|
29
|
-
* that the archive paths under it stay inside the path limits of every platform we run on.
|
|
30
|
-
*/
|
|
31
|
-
const MAX_USER_DIR = 64;
|
|
32
|
-
/**
|
|
33
|
-
* An email as a directory name: lowercased, with anything outside a conservative set replaced by
|
|
34
|
-
* `-`. The result must start with a letter or digit, which is what rules out `.`, `..` and dotfile
|
|
35
|
-
* names — this value comes from repo configuration and is joined onto a path, so a name that could
|
|
36
|
-
* climb out of the directory is the one thing that must be impossible. Anything that cannot be made
|
|
37
|
-
* to fit falls back to {@link ANONYMOUS_USER_DIR} rather than to a guess.
|
|
38
|
-
*/
|
|
39
|
-
export function userDirName(email) {
|
|
40
|
-
const cleaned = (email ?? '')
|
|
41
|
-
.trim()
|
|
42
|
-
.toLowerCase()
|
|
43
|
-
.replace(/[^a-z0-9@._+-]/g, '-');
|
|
44
|
-
return cleaned.length > 0 && cleaned.length <= MAX_USER_DIR && /^[a-z0-9][a-z0-9@._+-]*$/.test(cleaned)
|
|
45
|
-
? cleaned
|
|
46
|
-
: ANONYMOUS_USER_DIR;
|
|
47
|
-
}
|
|
48
|
-
/** The `.the-framework/<user>/sessions` directory under a project root. */
|
|
49
|
-
export function sessionsDir(cwd, user) {
|
|
50
|
-
return join(cwd, THE_FRAMEWORK_DIR, user, SESSIONS_DIR);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* The `.the-framework/.gitignore` rules that make every user's sessions tracked. Three lines, not
|
|
54
|
-
* one: the seeded allow-list ignores everything with `*`, and git never descends into an ignored
|
|
55
|
-
* directory, so each directory on the way down has to be re-included before the files under it can
|
|
56
|
-
* be. Same shape as the conversations rules (#908), which this sits beside.
|
|
57
|
-
*
|
|
58
|
-
* User-agnostic on purpose (#1312). Naming each user meant every person who ever ran a session in
|
|
59
|
-
* the repo appended their own three lines to a *tracked* file: their checkout went dirty, the next
|
|
60
|
-
* safety commit swept the edit into a branch, and two machines doing it near each other conflicted.
|
|
61
|
-
* A glob covers everyone, including people who have not run anything yet, so the file is written
|
|
62
|
-
* once and then never again.
|
|
63
|
-
*
|
|
64
|
-
* A star matches one path segment and never a slash, so the sessions rule reaches exactly
|
|
65
|
-
* `<user>/sessions/` and not `worktrees/<run>/sessions/`. The transient siblings stay ignored
|
|
66
|
-
* either way: un-ignoring a directory only lets git descend into it, and the bare `*` still
|
|
67
|
-
* ignores every file it finds there.
|
|
68
|
-
*/
|
|
69
|
-
export function sessionsGitignore() {
|
|
70
|
-
return `!*/\n!*/${SESSIONS_DIR}/\n!*/${SESSIONS_DIR}/**\n`;
|
|
71
|
-
}
|
|
72
|
-
/** The glob rule whose presence means a file is already on the #1312 form. */
|
|
73
|
-
const GLOB_RULE = `!*/${SESSIONS_DIR}/**`;
|
|
74
|
-
/** `!<user>/`, `!<user>/sessions/` and `!<user>/sessions/**` for one named user. */
|
|
75
|
-
function perUserRules(user) {
|
|
76
|
-
return [`!${user}/`, `!${user}/${SESSIONS_DIR}/`, `!${user}/${SESSIONS_DIR}/**`];
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Drop the per-user session rules, keeping every other line.
|
|
80
|
-
*
|
|
81
|
-
* Only users the file actually names a `sessions` rule for are stripped, and only those three
|
|
82
|
-
* exact lines. The conversations rules (#908) are a literal directory name rather than a user, so
|
|
83
|
-
* they never match, and a hand-written rule this does not recognize is left where it is.
|
|
84
|
-
*/
|
|
85
|
-
export function withoutPerUserRules(md) {
|
|
86
|
-
const lines = md.split('\n');
|
|
87
|
-
const users = lines
|
|
88
|
-
.map(line => /^!(.+)\/sessions\/\*\*$/.exec(line.trim())?.[1])
|
|
89
|
-
.filter((user) => user !== undefined && user !== '*');
|
|
90
|
-
if (!users.length)
|
|
91
|
-
return md;
|
|
92
|
-
const drop = new Set(users.flatMap(perUserRules));
|
|
93
|
-
return lines.filter(line => !drop.has(line.trim())).join('\n');
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Make sure `.the-framework/.gitignore` un-ignores archived sessions, returning whether it wrote.
|
|
97
|
-
* Done lazily on archive rather than at install time: the ignore file is seeded once and only when
|
|
98
|
-
* absent, so every repo activated before this feature carries the old allow-list.
|
|
99
|
-
*
|
|
100
|
-
* Writes at most twice in a repo's life, and usually once: a file already on the glob form is left
|
|
101
|
-
* alone, and a file still naming users is upgraded to the glob form in place — the per-user lines
|
|
102
|
-
* come out in the same write that puts the glob in, so the churn (#1312) ends rather than being
|
|
103
|
-
* added to. `user` no longer selects the rules; it stays because the caller has it and a future
|
|
104
|
-
* rule may need it again.
|
|
105
|
-
*
|
|
106
|
-
* Only a file we recognize is touched; anything hand-edited beyond recognition is left alone.
|
|
107
|
-
*/
|
|
108
|
-
export async function ensureSessionsIgnored(cwd, _user, fs = nodeStoreFs()) {
|
|
109
|
-
const path = gitignorePath(cwd);
|
|
110
|
-
const rules = sessionsGitignore();
|
|
111
|
-
if (!(await fs.exists(path))) {
|
|
112
|
-
await fs.write(path, LOGS_GITIGNORE + rules);
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
const current = await fs.read(path);
|
|
116
|
-
if (current.includes(GLOB_RULE))
|
|
117
|
-
return false;
|
|
118
|
-
if (!current.includes('!LOGS.md'))
|
|
119
|
-
return false;
|
|
120
|
-
const pruned = withoutPerUserRules(current);
|
|
121
|
-
await fs.write(path, pruned.endsWith('\n') ? pruned + rules : pruned + '\n' + rules);
|
|
122
|
-
return true;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* The directory name for the identity this repo commits under, from `git config user.email`.
|
|
126
|
-
*
|
|
127
|
-
* Cached per repo for the process's life: it is read on every archive, it changes about as often
|
|
128
|
-
* as a git identity does, and a run that outlived a config change would only mean the next run
|
|
129
|
-
* files itself correctly. A missing or unreadable identity yields {@link ANONYMOUS_USER_DIR}, so
|
|
130
|
-
* history is still kept — filing it under a placeholder is strictly better than dropping it.
|
|
131
|
-
*/
|
|
132
|
-
const cache = new Map();
|
|
133
|
-
export async function resolveUserDir(cwd, git = nodeGitRunner()) {
|
|
134
|
-
const hit = cache.get(cwd);
|
|
135
|
-
if (hit !== undefined)
|
|
136
|
-
return hit;
|
|
137
|
-
const email = await git(['config', 'user.email'], cwd).catch(() => '');
|
|
138
|
-
const dir = userDirName(email.trim());
|
|
139
|
-
cache.set(cwd, dir);
|
|
140
|
-
return dir;
|
|
141
|
-
}
|
|
142
|
-
/** Drop the {@link resolveUserDir} cache. For tests, and for a daemon that outlives a config change. */
|
|
143
|
-
export function forgetUserDirs() {
|
|
144
|
-
cache.clear();
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=sessions.js.map
|
package/dist/sessions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/spike-locks.d.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { type GitRunner } from './project.js';
|
|
2
|
-
import type { SpikeAssignment } from './auto-pm.js';
|
|
3
|
-
/** The first line of a placeholder sibling: the claim, naming the agent that holds it. */
|
|
4
|
-
export declare const SPIKE_LOCK_PREFIX = "PENDING:";
|
|
5
|
-
/**
|
|
6
|
-
* How old a PENDING lock must be before it is presumed dead and released. Generous against the
|
|
7
|
-
* slowest live path — spiking and planning can take hours, on top of a cloud queue — because a
|
|
8
|
-
* lock released under a live agent re-opens the double-work window the lock exists to close,
|
|
9
|
-
* while a dead agent's ticket only waits one interval longer. This is a bug-recovery mechanism
|
|
10
|
-
* that ideally never fires (#1364 review), so erring long costs nearly nothing.
|
|
11
|
-
*/
|
|
12
|
-
export declare const SPIKE_LOCK_STALE_MS: number;
|
|
13
|
-
/** Whether a sibling's content is a PENDING placeholder rather than a real spike or plan. */
|
|
14
|
-
export declare function isSpikeLock(md: string): boolean;
|
|
15
|
-
/** What a lock file holds: the claim line and nothing else, so the check above stays trivial. */
|
|
16
|
-
export declare function spikeLockContent(agentId: string): string;
|
|
17
|
-
/** The commit a batch of locks lands as. Names the count so the history reads as what happened. */
|
|
18
|
-
export declare function lockMessage(count: number): string;
|
|
19
|
-
/** The commit a release lands as. */
|
|
20
|
-
export declare function releaseMessage(count: number): string;
|
|
21
|
-
/** Injectable seams so both operations are unit-testable off disk, git, and GitHub. */
|
|
22
|
-
export interface SpikeLockDeps {
|
|
23
|
-
git?: GitRunner;
|
|
24
|
-
/** Write one lock file (default `fs.writeFile`). */
|
|
25
|
-
write?: (path: string, content: string) => Promise<void>;
|
|
26
|
-
/** Read one sibling (default `fs.readFile`); a rejection reads as "not a lock". */
|
|
27
|
-
read?: (path: string) => Promise<string>;
|
|
28
|
-
/** Delete one lock file (default `fs.rm`). */
|
|
29
|
-
remove?: (path: string) => Promise<void>;
|
|
30
|
-
/** List `tickets/` (default `fs.readdir`); a rejection reads as an empty directory. */
|
|
31
|
-
list?: (dir: string) => Promise<string[]>;
|
|
32
|
-
/**
|
|
33
|
-
* Whether any open PR touches `file` (#1313's read, reused): a finished agent's PR carries the
|
|
34
|
-
* real sibling, so an open one keeps the lock however old it is. `undefined` means the answer
|
|
35
|
-
* could not be read, which also keeps the lock — releasing on a `gh` hiccup would re-open the
|
|
36
|
-
* double-work window over a network blip.
|
|
37
|
-
*/
|
|
38
|
-
prTouches?: (cwd: string, file: string) => Promise<boolean | undefined>;
|
|
39
|
-
/** Clock, injectable for tests. */
|
|
40
|
-
now?: () => number;
|
|
41
|
-
/** Override {@link SPIKE_LOCK_STALE_MS}. */
|
|
42
|
-
staleMs?: number;
|
|
43
|
-
/** Progress line. */
|
|
44
|
-
log?: (message: string) => void;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Claim `assignments`' tickets for their agents: write both placeholder siblings per ticket,
|
|
48
|
-
* commit the whole batch in one pathspec-scoped commit, and push it to origin's default branch
|
|
49
|
-
* ({@link pushLockCommit}). Resolves the subset actually locked — a ticket whose sibling appeared since the candidates
|
|
50
|
-
* were enumerated is skipped, not overwritten: an existing file is someone's claim or someone's
|
|
51
|
-
* work, and either outranks this batch.
|
|
52
|
-
*
|
|
53
|
-
* A batch whose commit failed is rolled back (the written files removed) and resolves `[]`:
|
|
54
|
-
* uncommitted placeholders in the user's checkout would be noise git blames on nobody. A batch
|
|
55
|
-
* whose *push* failed is kept and resolved as locked — the commit still guards every run forked
|
|
56
|
-
* from this checkout, which is the common case, and the sweep should not stand a healthy local
|
|
57
|
-
* fan-out down over a network blip. The push is what closes the cross-machine window (#1320), so
|
|
58
|
-
* its failure is logged rather than swallowed.
|
|
59
|
-
*
|
|
60
|
-
* Never throws: this runs on a background tick with nothing to catch it.
|
|
61
|
-
*/
|
|
62
|
-
export declare function acquireSpikeLocks(cwd: string, assignments: readonly SpikeAssignment[], deps?: SpikeLockDeps): Promise<SpikeAssignment[]>;
|
|
63
|
-
/**
|
|
64
|
-
* Release the PENDING locks whose agents are presumed dead, so a crashed spike does not brick its
|
|
65
|
-
* ticket forever. A lock is stale exactly when all three hold (#1327's rule): its content is still
|
|
66
|
-
* the placeholder, no open PR touches it (a finished agent's PR carries the real sibling — the
|
|
67
|
-
* #1313 claim takes over from here), and its last commit is older than {@link SPIKE_LOCK_STALE_MS}.
|
|
68
|
-
* An *uncommitted* placeholder is left alone: it is a batch being acquired right now, or a commit
|
|
69
|
-
* failure {@link acquireSpikeLocks} already rolled back.
|
|
70
|
-
*
|
|
71
|
-
* Deletions land as one pathspec-scoped commit, pushed best-effort like the acquisition.
|
|
72
|
-
* Resolves the released tickets' filenames. Never throws.
|
|
73
|
-
*/
|
|
74
|
-
export declare function releaseStaleSpikeLocks(cwd: string, deps?: SpikeLockDeps): Promise<string[]>;
|
|
75
|
-
//# sourceMappingURL=spike-locks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spike-locks.d.ts","sourceRoot":"","sources":["../src/spike-locks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAgBnD,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAAqB,CAAA;AAErD,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,iGAAiG;AACjG,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,qCAAqC;AACrC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,mFAAmF;IACnF,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,uFAAuF;IACvF,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACzC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IACvE,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qBAAqB;IACrB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AAmCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,SAAS,eAAe,EAAE,EACvC,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,EAAE,CAAC,CAqC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAyDrG"}
|
package/dist/spike-locks.js
DELETED
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { readdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { nodeGitRunner } from './project.js';
|
|
4
|
-
import { cachedOpenPrFilePatches } from './dashboard/gh.js';
|
|
5
|
-
import { TICKETS_DIR } from './tickets.js';
|
|
6
|
-
// The PENDING lock for concurrent spike agents (#1327).
|
|
7
|
-
//
|
|
8
|
-
// A batch of Spike & plan agents must not double-work a ticket, and the guard cannot be the
|
|
9
|
-
// daemon's memory: a hands-off web run's local process ends at the hand-off (#1253), another
|
|
10
|
-
// machine's daemon never shared this one's memory at all, and the #1313 PR-diff claims only start
|
|
11
|
-
// once a PR exists. So the claim is made where every agent already looks — the ticket's own
|
|
12
|
-
// sibling files. Before an agent starts, its `.spike.md` and `.plan.md` are created as
|
|
13
|
-
// placeholders reading `PENDING:<AGENT_ID>`, committed in one batch and pushed to the default
|
|
14
|
-
// branch. A file that exists is a spike the stock prompt skips, so the lock needs no cooperation
|
|
15
|
-
// from anyone who has not heard of it.
|
|
16
|
-
//
|
|
17
|
-
// The daemon writes and pushes the locks, never the agent (#1320): a cloud session has no push
|
|
18
|
-
// access, and a lock that only existed inside the run it protects would protect nothing.
|
|
19
|
-
/** The first line of a placeholder sibling: the claim, naming the agent that holds it. */
|
|
20
|
-
export const SPIKE_LOCK_PREFIX = 'PENDING:';
|
|
21
|
-
/**
|
|
22
|
-
* How old a PENDING lock must be before it is presumed dead and released. Generous against the
|
|
23
|
-
* slowest live path — spiking and planning can take hours, on top of a cloud queue — because a
|
|
24
|
-
* lock released under a live agent re-opens the double-work window the lock exists to close,
|
|
25
|
-
* while a dead agent's ticket only waits one interval longer. This is a bug-recovery mechanism
|
|
26
|
-
* that ideally never fires (#1364 review), so erring long costs nearly nothing.
|
|
27
|
-
*/
|
|
28
|
-
export const SPIKE_LOCK_STALE_MS = 6 * 60 * 60 * 1000;
|
|
29
|
-
/** Whether a sibling's content is a PENDING placeholder rather than a real spike or plan. */
|
|
30
|
-
export function isSpikeLock(md) {
|
|
31
|
-
return md.trimStart().startsWith(SPIKE_LOCK_PREFIX);
|
|
32
|
-
}
|
|
33
|
-
/** What a lock file holds: the claim line and nothing else, so the check above stays trivial. */
|
|
34
|
-
export function spikeLockContent(agentId) {
|
|
35
|
-
return `${SPIKE_LOCK_PREFIX}${agentId}\n`;
|
|
36
|
-
}
|
|
37
|
-
/** The commit a batch of locks lands as. Names the count so the history reads as what happened. */
|
|
38
|
-
export function lockMessage(count) {
|
|
39
|
-
return `[The Framework] lock ${count} ticket${count === 1 ? '' : 's'} for concurrent spike agents`;
|
|
40
|
-
}
|
|
41
|
-
/** The commit a release lands as. */
|
|
42
|
-
export function releaseMessage(count) {
|
|
43
|
-
return `[The Framework] release ${count} stale spike lock${count === 1 ? '' : 's'}`;
|
|
44
|
-
}
|
|
45
|
-
const defaultPrTouches = async (cwd, file) => {
|
|
46
|
-
const { value } = await cachedOpenPrFilePatches(cwd, file);
|
|
47
|
-
return value === undefined ? undefined : value.length > 0;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Push the just-made lock commit to origin's default branch — the branch other machines fork
|
|
51
|
-
* from, the only place a lock closes the cross-machine window (#1320, #1364 review). Pushed only
|
|
52
|
-
* when the checkout is *on* that branch: `HEAD:main` from anywhere else would carry the branch's
|
|
53
|
-
* own commits onto main, and the old `HEAD:<current branch>` published whatever branch the
|
|
54
|
-
* checkout happened to be on. Resolves false when the push was skipped for that reason; a failed
|
|
55
|
-
* push still throws, so each caller keeps its own log line.
|
|
56
|
-
*/
|
|
57
|
-
async function pushLockCommit(git, cwd) {
|
|
58
|
-
const current = (await git(['rev-parse', '--abbrev-ref', 'HEAD'], cwd)).trim();
|
|
59
|
-
// `origin/main` in almost every checkout; asked rather than assumed, with the assumption as
|
|
60
|
-
// the fallback for a clone whose origin/HEAD was never set.
|
|
61
|
-
const head = await git(['symbolic-ref', '--short', 'refs/remotes/origin/HEAD'], cwd).then(out => out.trim(), () => 'origin/main');
|
|
62
|
-
const target = head.replace(/^origin\//, '');
|
|
63
|
-
if (current !== target)
|
|
64
|
-
return false;
|
|
65
|
-
await git(['push', 'origin', `HEAD:${target}`], cwd);
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
/** A ticket filename's lock paths, relative to the repo root. */
|
|
69
|
-
function lockPaths(ticket) {
|
|
70
|
-
const stem = ticket.replace(/\.md$/, '');
|
|
71
|
-
return {
|
|
72
|
-
spike: `${TICKETS_DIR}/${stem}.spike.md`,
|
|
73
|
-
plan: `${TICKETS_DIR}/${stem}.plan.md`,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Claim `assignments`' tickets for their agents: write both placeholder siblings per ticket,
|
|
78
|
-
* commit the whole batch in one pathspec-scoped commit, and push it to origin's default branch
|
|
79
|
-
* ({@link pushLockCommit}). Resolves the subset actually locked — a ticket whose sibling appeared since the candidates
|
|
80
|
-
* were enumerated is skipped, not overwritten: an existing file is someone's claim or someone's
|
|
81
|
-
* work, and either outranks this batch.
|
|
82
|
-
*
|
|
83
|
-
* A batch whose commit failed is rolled back (the written files removed) and resolves `[]`:
|
|
84
|
-
* uncommitted placeholders in the user's checkout would be noise git blames on nobody. A batch
|
|
85
|
-
* whose *push* failed is kept and resolved as locked — the commit still guards every run forked
|
|
86
|
-
* from this checkout, which is the common case, and the sweep should not stand a healthy local
|
|
87
|
-
* fan-out down over a network blip. The push is what closes the cross-machine window (#1320), so
|
|
88
|
-
* its failure is logged rather than swallowed.
|
|
89
|
-
*
|
|
90
|
-
* Never throws: this runs on a background tick with nothing to catch it.
|
|
91
|
-
*/
|
|
92
|
-
export async function acquireSpikeLocks(cwd, assignments, deps = {}) {
|
|
93
|
-
const git = deps.git ?? nodeGitRunner();
|
|
94
|
-
const write = deps.write ?? ((path, content) => writeFile(path, content, 'utf8'));
|
|
95
|
-
const read = deps.read ?? (path => readFile(path, 'utf8'));
|
|
96
|
-
const remove = deps.remove ?? (path => rm(path));
|
|
97
|
-
const log = deps.log ?? (() => { });
|
|
98
|
-
const locked = [];
|
|
99
|
-
const files = [];
|
|
100
|
-
try {
|
|
101
|
-
for (const assignment of assignments) {
|
|
102
|
-
const { spike, plan } = lockPaths(assignment.ticket);
|
|
103
|
-
// Existence via a read, so one seam serves both operations. Either sibling present — real
|
|
104
|
-
// or placeholder — means the ticket is not this batch's to claim.
|
|
105
|
-
const taken = await Promise.all([read(join(cwd, spike)).then(() => true, () => false), read(join(cwd, plan)).then(() => true, () => false)]);
|
|
106
|
-
if (taken.some(Boolean))
|
|
107
|
-
continue;
|
|
108
|
-
await write(join(cwd, spike), spikeLockContent(assignment.agentId));
|
|
109
|
-
await write(join(cwd, plan), spikeLockContent(assignment.agentId));
|
|
110
|
-
locked.push(assignment);
|
|
111
|
-
files.push(spike, plan);
|
|
112
|
-
}
|
|
113
|
-
if (!locked.length)
|
|
114
|
-
return [];
|
|
115
|
-
await git(['add', '--', ...files], cwd);
|
|
116
|
-
await git(['commit', '-m', lockMessage(locked.length), '--', ...files], cwd);
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
// The claim is the *commit*: files that never reached one claim nothing, so they are removed
|
|
120
|
-
// rather than left as uncommitted noise, and the sweep falls back to a single unpinned agent.
|
|
121
|
-
await Promise.all(files.map(file => remove(join(cwd, file)).catch(() => undefined)));
|
|
122
|
-
return [];
|
|
123
|
-
}
|
|
124
|
-
try {
|
|
125
|
-
if (!(await pushLockCommit(git, cwd)))
|
|
126
|
-
log(`[framework] spike locks: the checkout is not on the default branch, so the lock commit was not pushed — agents on other machines cannot see these ${locked.length} claim(s)`);
|
|
127
|
-
}
|
|
128
|
-
catch {
|
|
129
|
-
log(`[framework] spike locks: the lock commit could not be pushed, so agents on other machines cannot see these ${locked.length} claim(s)`);
|
|
130
|
-
}
|
|
131
|
-
return locked;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Release the PENDING locks whose agents are presumed dead, so a crashed spike does not brick its
|
|
135
|
-
* ticket forever. A lock is stale exactly when all three hold (#1327's rule): its content is still
|
|
136
|
-
* the placeholder, no open PR touches it (a finished agent's PR carries the real sibling — the
|
|
137
|
-
* #1313 claim takes over from here), and its last commit is older than {@link SPIKE_LOCK_STALE_MS}.
|
|
138
|
-
* An *uncommitted* placeholder is left alone: it is a batch being acquired right now, or a commit
|
|
139
|
-
* failure {@link acquireSpikeLocks} already rolled back.
|
|
140
|
-
*
|
|
141
|
-
* Deletions land as one pathspec-scoped commit, pushed best-effort like the acquisition.
|
|
142
|
-
* Resolves the released tickets' filenames. Never throws.
|
|
143
|
-
*/
|
|
144
|
-
export async function releaseStaleSpikeLocks(cwd, deps = {}) {
|
|
145
|
-
const git = deps.git ?? nodeGitRunner();
|
|
146
|
-
const read = deps.read ?? (path => readFile(path, 'utf8'));
|
|
147
|
-
const remove = deps.remove ?? (path => rm(path));
|
|
148
|
-
const list = deps.list ?? (dir => readdir(dir));
|
|
149
|
-
const prTouches = deps.prTouches ?? defaultPrTouches;
|
|
150
|
-
const now = deps.now ?? (() => Date.now());
|
|
151
|
-
const staleMs = deps.staleMs ?? SPIKE_LOCK_STALE_MS;
|
|
152
|
-
const log = deps.log ?? (() => { });
|
|
153
|
-
try {
|
|
154
|
-
const names = await list(join(cwd, TICKETS_DIR)).catch(() => []);
|
|
155
|
-
const released = [];
|
|
156
|
-
const files = [];
|
|
157
|
-
for (const name of names) {
|
|
158
|
-
if (!/\.spike\.md$/.test(name))
|
|
159
|
-
continue;
|
|
160
|
-
const ticket = `${name.replace(/\.spike\.md$/, '')}.md`;
|
|
161
|
-
const { spike, plan } = lockPaths(ticket);
|
|
162
|
-
const [spikeMd, planMd] = await Promise.all([
|
|
163
|
-
read(join(cwd, spike)).catch(() => undefined),
|
|
164
|
-
read(join(cwd, plan)).catch(() => undefined),
|
|
165
|
-
]);
|
|
166
|
-
const pending = [
|
|
167
|
-
...(spikeMd !== undefined && isSpikeLock(spikeMd) ? [spike] : []),
|
|
168
|
-
...(planMd !== undefined && isSpikeLock(planMd) ? [plan] : []),
|
|
169
|
-
];
|
|
170
|
-
if (!pending.length)
|
|
171
|
-
continue;
|
|
172
|
-
// The newest lock commit is the claim's age. An empty answer is an uncommitted placeholder:
|
|
173
|
-
// a batch mid-acquisition, which is the opposite of stale.
|
|
174
|
-
const stamps = await Promise.all(pending.map(file => git(['log', '-1', '--format=%ct', '--', file], cwd).then(out => out.trim(), () => '')));
|
|
175
|
-
if (stamps.some(stamp => !stamp))
|
|
176
|
-
continue;
|
|
177
|
-
const newest = Math.max(...stamps.map(stamp => Number(stamp) * 1000));
|
|
178
|
-
if (!Number.isFinite(newest) || now() - newest < staleMs)
|
|
179
|
-
continue;
|
|
180
|
-
// Asked last because it is the expensive read, and only about the pending files: a stem
|
|
181
|
-
// whose real spike rode in on a PR while the plan stayed PENDING keeps the plan too.
|
|
182
|
-
const touched = await Promise.all(pending.map(file => prTouches(cwd, file)));
|
|
183
|
-
if (touched.some(t => t !== false))
|
|
184
|
-
continue;
|
|
185
|
-
for (const file of pending)
|
|
186
|
-
await remove(join(cwd, file));
|
|
187
|
-
files.push(...pending);
|
|
188
|
-
released.push(ticket);
|
|
189
|
-
}
|
|
190
|
-
if (!released.length)
|
|
191
|
-
return [];
|
|
192
|
-
await git(['add', '--', ...files], cwd);
|
|
193
|
-
await git(['commit', '-m', releaseMessage(files.length), '--', ...files], cwd);
|
|
194
|
-
try {
|
|
195
|
-
if (!(await pushLockCommit(git, cwd)))
|
|
196
|
-
log(`[framework] spike locks: the checkout is not on the default branch, so the release commit was not pushed`);
|
|
197
|
-
}
|
|
198
|
-
catch {
|
|
199
|
-
log(`[framework] spike locks: the release commit could not be pushed`);
|
|
200
|
-
}
|
|
201
|
-
log(`[framework] spike locks: released ${released.length} stale lock(s): ${released.join(', ')}`);
|
|
202
|
-
return released;
|
|
203
|
-
}
|
|
204
|
-
catch {
|
|
205
|
-
return [];
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
//# sourceMappingURL=spike-locks.js.map
|
package/dist/spike-locks.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spike-locks.js","sourceRoot":"","sources":["../src/spike-locks.ts"],"names":[],"mappings":"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"}
|
package/dist/stale-branch.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type GitRunner } from './project.js';
|
|
2
|
-
import { type LinkedPr } from './dashboard/gh.js';
|
|
3
|
-
/** What became of one pinned branch: gone already, genuinely busy, unprovable, or released. */
|
|
4
|
-
export type StaleBranchOutcome = 'absent' | 'pending' | 'unproven' | 'released';
|
|
5
|
-
/** Injectable seams so the release is unit-testable off disk and off GitHub. */
|
|
6
|
-
export interface StaleBranchDeps {
|
|
7
|
-
git?: GitRunner;
|
|
8
|
-
/** The branch's full PR history (default {@link ghPrsForBranch}). */
|
|
9
|
-
prs?: (cwd: string, branch: string) => Promise<LinkedPr[]>;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Delete a pinned routine branch whose PR is closed or merged, so the next firing proceeds.
|
|
13
|
-
*
|
|
14
|
-
* Deliberately conservative on the two unprovable cases: an open PR keeps the branch (that is a
|
|
15
|
-
* triage genuinely pending), and a branch with no PR history at all keeps it too — that is either
|
|
16
|
-
* an agent still working toward its handoff or a `gh` that could not answer, and deleting on a
|
|
17
|
-
* hiccup would discard work. Never throws: a release that could not happen leaves the routine
|
|
18
|
-
* exactly as jammed as it was, which the next tick retries.
|
|
19
|
-
*/
|
|
20
|
-
export declare function releaseStalePinnedBranch(cwd: string, branch: string, deps?: StaleBranchDeps): Promise<StaleBranchOutcome>;
|
|
21
|
-
//# sourceMappingURL=stale-branch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stale-branch.d.ts","sourceRoot":"","sources":["../src/stale-branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAsBjE,+FAA+F;AAC/F,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;AAE/E,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,qEAAqE;IACrE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;CAC3D;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAuB7B"}
|
package/dist/stale-branch.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { nodeGitRunner } from './project.js';
|
|
2
|
-
import { ghPrsForBranch } from './dashboard/gh.js';
|
|
3
|
-
/**
|
|
4
|
-
* Delete a pinned routine branch whose PR is closed or merged, so the next firing proceeds.
|
|
5
|
-
*
|
|
6
|
-
* Deliberately conservative on the two unprovable cases: an open PR keeps the branch (that is a
|
|
7
|
-
* triage genuinely pending), and a branch with no PR history at all keeps it too — that is either
|
|
8
|
-
* an agent still working toward its handoff or a `gh` that could not answer, and deleting on a
|
|
9
|
-
* hiccup would discard work. Never throws: a release that could not happen leaves the routine
|
|
10
|
-
* exactly as jammed as it was, which the next tick retries.
|
|
11
|
-
*/
|
|
12
|
-
export async function releaseStalePinnedBranch(cwd, branch, deps = {}) {
|
|
13
|
-
const git = deps.git ?? nodeGitRunner();
|
|
14
|
-
const prs = deps.prs ?? ghPrsForBranch;
|
|
15
|
-
const local = await git(['show-ref', '--verify', `refs/heads/${branch}`], cwd).then(() => true, () => false);
|
|
16
|
-
const remote = await git(['ls-remote', '--heads', 'origin', branch], cwd).then(out => out.trim() !== '', () => false);
|
|
17
|
-
if (!local && !remote)
|
|
18
|
-
return 'absent';
|
|
19
|
-
const history = await prs(cwd, branch).catch(() => []);
|
|
20
|
-
if (history.some(pr => pr.state === 'OPEN'))
|
|
21
|
-
return 'pending';
|
|
22
|
-
if (history.length === 0)
|
|
23
|
-
return 'unproven';
|
|
24
|
-
if (remote)
|
|
25
|
-
await git(['push', 'origin', '--delete', branch], cwd).catch(() => undefined);
|
|
26
|
-
// -D, not -d: a squash merge leaves the branch unmerged in git's eyes. And git refusing because
|
|
27
|
-
// a worktree still has the branch checked out is the in-flight guard working, not a failure.
|
|
28
|
-
if (local)
|
|
29
|
-
await git(['branch', '-D', branch], cwd).catch(() => undefined);
|
|
30
|
-
return 'released';
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=stale-branch.js.map
|
package/dist/stale-branch.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stale-branch.js","sourceRoot":"","sources":["../src/stale-branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAA;AAgCjE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAW,EACX,MAAc,EACd,OAAwB,EAAE;IAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,aAAa,EAAE,CAAA;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,cAAc,CAAA;IAEtC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CACjF,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAC5E,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EACxB,GAAG,EAAE,CAAC,KAAK,CACZ,CAAA;IACD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAA;IAEtC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IACtD,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAA;IAE3C,IAAI,MAAM;QAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACzF,gGAAgG;IAChG,6FAA6F;IAC7F,IAAI,KAAK;QAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC1E,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
package/dist/steps.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The opening prompt of a build session (`prompts/extend_prompt.md`): the work is delivered
|
|
3
|
-
* within the existing codebase (#185) — a project is a repo that already exists, so the old
|
|
4
|
-
* greenfield/scaffold framings are gone (#1683 review). The text lives in `prompts/` like every
|
|
5
|
-
* other agent-facing prompt (#551/#1347); this only fills the user's intent, under the same
|
|
6
|
-
* `tf.prompt` name the system prompt uses.
|
|
7
|
-
*/
|
|
8
|
-
export declare function extendPrompt(intent: string): string;
|
|
9
|
-
//# sourceMappingURL=steps.d.ts.map
|
package/dist/steps.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|