@openagt/dashboard 0.0.0-stage → 0.8.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/LICENSE +21 -0
- package/README.md +125 -2
- package/dist/agent-archive.d.ts +35 -0
- package/dist/agent-archive.d.ts.map +1 -0
- package/dist/agent-archive.js +67 -0
- package/dist/agent-archive.js.map +1 -0
- package/dist/agent-commit.d.ts +140 -0
- package/dist/agent-commit.d.ts.map +1 -0
- package/dist/agent-commit.js +254 -0
- package/dist/agent-commit.js.map +1 -0
- package/dist/agent-driver.d.ts +28 -0
- package/dist/agent-driver.d.ts.map +1 -0
- package/dist/agent-driver.js +18 -0
- package/dist/agent-driver.js.map +1 -0
- package/dist/agent-id.d.ts +13 -0
- package/dist/agent-id.d.ts.map +1 -0
- package/dist/agent-id.js +20 -0
- package/dist/agent-id.js.map +1 -0
- package/dist/agent-location.d.ts +11 -0
- package/dist/agent-location.d.ts.map +1 -0
- package/dist/agent-location.js +10 -0
- package/dist/agent-location.js.map +1 -0
- package/dist/agent-locks.d.ts +3 -0
- package/dist/agent-locks.d.ts.map +1 -0
- package/dist/agent-locks.js +40 -0
- package/dist/agent-locks.js.map +1 -0
- package/dist/agent-messages.d.ts +55 -0
- package/dist/agent-messages.d.ts.map +1 -0
- package/dist/agent-messages.js +73 -0
- package/dist/agent-messages.js.map +1 -0
- package/dist/agent-names.d.ts +24 -0
- package/dist/agent-names.d.ts.map +1 -0
- package/dist/agent-names.js +33 -0
- package/dist/agent-names.js.map +1 -0
- package/dist/agent-options.d.ts +45 -0
- package/dist/agent-options.d.ts.map +1 -0
- package/dist/agent-options.js +83 -0
- package/dist/agent-options.js.map +1 -0
- package/dist/agent-spec.d.ts +56 -0
- package/dist/agent-spec.d.ts.map +1 -0
- package/dist/agent-spec.js +56 -0
- package/dist/agent-spec.js.map +1 -0
- package/dist/agent-telemetry.d.ts +88 -0
- package/dist/agent-telemetry.d.ts.map +1 -0
- package/dist/agent-telemetry.js +97 -0
- package/dist/agent-telemetry.js.map +1 -0
- package/dist/agent-view.d.ts +39 -0
- package/dist/agent-view.d.ts.map +1 -0
- package/dist/agent-view.js +45 -0
- package/dist/agent-view.js.map +1 -0
- package/dist/agent.d.ts +113 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +168 -0
- package/dist/agent.js.map +1 -0
- package/dist/archived-agent-patch.d.ts +14 -0
- package/dist/archived-agent-patch.d.ts.map +1 -0
- package/dist/archived-agent-patch.js +22 -0
- package/dist/archived-agent-patch.js.map +1 -0
- package/dist/auto-pm.d.ts +538 -0
- package/dist/auto-pm.d.ts.map +1 -0
- package/dist/auto-pm.js +707 -0
- package/dist/auto-pm.js.map +1 -0
- package/dist/await-gate.d.ts +184 -0
- package/dist/await-gate.d.ts.map +1 -0
- package/dist/await-gate.js +252 -0
- package/dist/await-gate.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +11 -0
- package/dist/bin.js.map +1 -0
- package/dist/branch-links-pass.d.ts +15 -0
- package/dist/branch-links-pass.d.ts.map +1 -0
- package/dist/branch-links-pass.js +13 -0
- package/dist/branch-links-pass.js.map +1 -0
- package/dist/branch-links.d.ts +53 -0
- package/dist/branch-links.d.ts.map +1 -0
- package/dist/branch-links.js +94 -0
- package/dist/branch-links.js.map +1 -0
- package/dist/branch-name.d.ts +8 -0
- package/dist/branch-name.d.ts.map +1 -0
- package/dist/branch-name.js +20 -0
- package/dist/branch-name.js.map +1 -0
- package/dist/branch-names.d.ts +57 -0
- package/dist/branch-names.d.ts.map +1 -0
- package/dist/branch-names.js +72 -0
- package/dist/branch-names.js.map +1 -0
- package/dist/bridge-browser.d.ts +217 -0
- package/dist/bridge-browser.d.ts.map +1 -0
- package/dist/bridge-browser.js +520 -0
- package/dist/bridge-browser.js.map +1 -0
- package/dist/browser-stream.d.ts +20 -0
- package/dist/browser-stream.d.ts.map +1 -0
- package/dist/browser-stream.js +51 -0
- package/dist/browser-stream.js.map +1 -0
- package/dist/browser.d.ts +16 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +38 -0
- package/dist/browser.js.map +1 -0
- package/dist/built-in.d.ts +29 -0
- package/dist/built-in.d.ts.map +1 -0
- package/dist/built-in.js +78 -0
- package/dist/built-in.js.map +1 -0
- package/dist/chrome-extension/background.js +532 -0
- package/dist/chrome-extension/content.js +1475 -0
- package/dist/chrome-extension/driver-plan.js +41 -0
- package/dist/chrome-extension/fingerprint.js +43 -0
- package/dist/chrome-extension/manifest.json +31 -0
- package/dist/chrome-extension/options.html +48 -0
- package/dist/chrome-extension/options.js +122 -0
- package/dist/ci-watch.d.ts +123 -0
- package/dist/ci-watch.d.ts.map +1 -0
- package/dist/ci-watch.js +228 -0
- package/dist/ci-watch.js.map +1 -0
- package/dist/claude-trust.d.ts +16 -0
- package/dist/claude-trust.d.ts.map +1 -0
- package/dist/claude-trust.js +72 -0
- package/dist/claude-trust.js.map +1 -0
- package/dist/cli-exec.d.ts +36 -0
- package/dist/cli-exec.d.ts.map +1 -0
- package/dist/cli-exec.js +44 -0
- package/dist/cli-exec.js.map +1 -0
- package/dist/cli.d.ts +43 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +186 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +16 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +30 -0
- package/dist/client.js.map +1 -0
- package/dist/closing-keywords.d.ts +28 -0
- package/dist/closing-keywords.d.ts.map +1 -0
- package/dist/closing-keywords.js +49 -0
- package/dist/closing-keywords.js.map +1 -0
- package/dist/cloud-run-state.d.ts +27 -0
- package/dist/cloud-run-state.d.ts.map +1 -0
- package/dist/cloud-run-state.js +36 -0
- package/dist/cloud-run-state.js.map +1 -0
- package/dist/cloud-scratch-refs.d.ts +85 -0
- package/dist/cloud-scratch-refs.d.ts.map +1 -0
- package/dist/cloud-scratch-refs.js +275 -0
- package/dist/cloud-scratch-refs.js.map +1 -0
- package/dist/cloud-work.d.ts +66 -0
- package/dist/cloud-work.d.ts.map +1 -0
- package/dist/cloud-work.js +204 -0
- package/dist/cloud-work.js.map +1 -0
- package/dist/config-layers.d.ts +62 -0
- package/dist/config-layers.d.ts.map +1 -0
- package/dist/config-layers.js +70 -0
- package/dist/config-layers.js.map +1 -0
- package/dist/config.d.ts +54 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +78 -0
- package/dist/config.js.map +1 -0
- package/dist/consumption-guard.d.ts +53 -0
- package/dist/consumption-guard.d.ts.map +1 -0
- package/dist/consumption-guard.js +69 -0
- package/dist/consumption-guard.js.map +1 -0
- package/dist/control.d.ts +75 -0
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +68 -0
- package/dist/control.js.map +1 -0
- package/dist/conversation-commit.d.ts +166 -0
- package/dist/conversation-commit.d.ts.map +1 -0
- package/dist/conversation-commit.js +309 -0
- package/dist/conversation-commit.js.map +1 -0
- package/dist/conversations.d.ts +93 -0
- package/dist/conversations.d.ts.map +1 -0
- package/dist/conversations.js +176 -0
- package/dist/conversations.js.map +1 -0
- package/dist/daemon-runtime.d.ts +41 -0
- package/dist/daemon-runtime.d.ts.map +1 -0
- package/dist/daemon-runtime.js +133 -0
- package/dist/daemon-runtime.js.map +1 -0
- package/dist/daemon-services.d.ts +36 -0
- package/dist/daemon-services.d.ts.map +1 -0
- package/dist/daemon-services.js +120 -0
- package/dist/daemon-services.js.map +1 -0
- package/dist/daemon-tick.d.ts +68 -0
- package/dist/daemon-tick.d.ts.map +1 -0
- package/dist/daemon-tick.js +97 -0
- package/dist/daemon-tick.js.map +1 -0
- package/dist/daemon-writes.d.ts +33 -0
- package/dist/daemon-writes.d.ts.map +1 -0
- package/dist/daemon-writes.js +45 -0
- package/dist/daemon-writes.js.map +1 -0
- package/dist/daemon.d.ts +76 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +225 -0
- package/dist/daemon.js.map +1 -0
- package/dist/dashboard/activity.d.ts +41 -0
- package/dist/dashboard/activity.d.ts.map +1 -0
- package/dist/dashboard/activity.js +56 -0
- package/dist/dashboard/activity.js.map +1 -0
- package/dist/dashboard/agent-handoff.d.ts +244 -0
- package/dist/dashboard/agent-handoff.d.ts.map +1 -0
- package/dist/dashboard/agent-handoff.js +310 -0
- package/dist/dashboard/agent-handoff.js.map +1 -0
- package/dist/dashboard/agent-tree.d.ts +106 -0
- package/dist/dashboard/agent-tree.d.ts.map +1 -0
- package/dist/dashboard/agent-tree.js +180 -0
- package/dist/dashboard/agent-tree.js.map +1 -0
- package/dist/dashboard/bridge-endpoints.d.ts +158 -0
- package/dist/dashboard/bridge-endpoints.d.ts.map +1 -0
- package/dist/dashboard/bridge-endpoints.js +382 -0
- package/dist/dashboard/bridge-endpoints.js.map +1 -0
- package/dist/dashboard/bridge-question.d.ts +33 -0
- package/dist/dashboard/bridge-question.d.ts.map +1 -0
- package/dist/dashboard/bridge-question.js +20 -0
- package/dist/dashboard/bridge-question.js.map +1 -0
- package/dist/dashboard/bridge-sessions.d.ts +25 -0
- package/dist/dashboard/bridge-sessions.d.ts.map +1 -0
- package/dist/dashboard/bridge-sessions.js +46 -0
- package/dist/dashboard/bridge-sessions.js.map +1 -0
- package/dist/dashboard/bridge-starts.d.ts +61 -0
- package/dist/dashboard/bridge-starts.d.ts.map +1 -0
- package/dist/dashboard/bridge-starts.js +94 -0
- package/dist/dashboard/bridge-starts.js.map +1 -0
- package/dist/dashboard/bridge-store.d.ts +179 -0
- package/dist/dashboard/bridge-store.d.ts.map +1 -0
- package/dist/dashboard/bridge-store.js +262 -0
- package/dist/dashboard/bridge-store.js.map +1 -0
- package/dist/dashboard/browser-proxy.d.ts +41 -0
- package/dist/dashboard/browser-proxy.d.ts.map +1 -0
- package/dist/dashboard/browser-proxy.js +96 -0
- package/dist/dashboard/browser-proxy.js.map +1 -0
- package/dist/dashboard/bundle.d.ts +12 -0
- package/dist/dashboard/bundle.d.ts.map +1 -0
- package/dist/dashboard/bundle.js +22 -0
- package/dist/dashboard/bundle.js.map +1 -0
- package/dist/dashboard/cache.d.ts +47 -0
- package/dist/dashboard/cache.d.ts.map +1 -0
- package/dist/dashboard/cache.js +87 -0
- package/dist/dashboard/cache.js.map +1 -0
- package/dist/dashboard/content-type.d.ts +3 -0
- package/dist/dashboard/content-type.d.ts.map +1 -0
- package/dist/dashboard/content-type.js +31 -0
- package/dist/dashboard/content-type.js.map +1 -0
- package/dist/dashboard/dashboard.d.ts +38 -0
- package/dist/dashboard/dashboard.d.ts.map +1 -0
- package/dist/dashboard/dashboard.js +42 -0
- package/dist/dashboard/dashboard.js.map +1 -0
- package/dist/dashboard/discord-webhook.d.ts +17 -0
- package/dist/dashboard/discord-webhook.d.ts.map +1 -0
- package/dist/dashboard/discord-webhook.js +36 -0
- package/dist/dashboard/discord-webhook.js.map +1 -0
- package/dist/dashboard/docs.d.ts +39 -0
- package/dist/dashboard/docs.d.ts.map +1 -0
- package/dist/dashboard/docs.js +59 -0
- package/dist/dashboard/docs.js.map +1 -0
- package/dist/dashboard/file-diff.d.ts +67 -0
- package/dist/dashboard/file-diff.d.ts.map +1 -0
- package/dist/dashboard/file-diff.js +132 -0
- package/dist/dashboard/file-diff.js.map +1 -0
- package/dist/dashboard/file-read.d.ts +42 -0
- package/dist/dashboard/file-read.d.ts.map +1 -0
- package/dist/dashboard/file-read.js +69 -0
- package/dist/dashboard/file-read.js.map +1 -0
- package/dist/dashboard/file-status.d.ts +21 -0
- package/dist/dashboard/file-status.d.ts.map +1 -0
- package/dist/dashboard/file-status.js +37 -0
- package/dist/dashboard/file-status.js.map +1 -0
- package/dist/dashboard/gh.d.ts +131 -0
- package/dist/dashboard/gh.d.ts.map +1 -0
- package/dist/dashboard/gh.js +150 -0
- package/dist/dashboard/gh.js.map +1 -0
- package/dist/dashboard/git-status.d.ts +44 -0
- package/dist/dashboard/git-status.d.ts.map +1 -0
- package/dist/dashboard/git-status.js +37 -0
- package/dist/dashboard/git-status.js.map +1 -0
- package/dist/dashboard/github.d.ts +11 -0
- package/dist/dashboard/github.d.ts.map +1 -0
- package/dist/dashboard/github.js +33 -0
- package/dist/dashboard/github.js.map +1 -0
- package/dist/dashboard/http.d.ts +29 -0
- package/dist/dashboard/http.d.ts.map +1 -0
- package/dist/dashboard/http.js +74 -0
- package/dist/dashboard/http.js.map +1 -0
- package/dist/dashboard/index.d.ts +24 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +23 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/interventions.d.ts +67 -0
- package/dist/dashboard/interventions.d.ts.map +1 -0
- package/dist/dashboard/interventions.js +169 -0
- package/dist/dashboard/interventions.js.map +1 -0
- package/dist/dashboard/keyed-watcher.d.ts +29 -0
- package/dist/dashboard/keyed-watcher.d.ts.map +1 -0
- package/dist/dashboard/keyed-watcher.js +42 -0
- package/dist/dashboard/keyed-watcher.js.map +1 -0
- package/dist/dashboard/keys.d.ts +31 -0
- package/dist/dashboard/keys.d.ts.map +1 -0
- package/dist/dashboard/keys.js +37 -0
- package/dist/dashboard/keys.js.map +1 -0
- package/dist/dashboard/models.d.ts +25 -0
- package/dist/dashboard/models.d.ts.map +1 -0
- package/dist/dashboard/models.js +30 -0
- package/dist/dashboard/models.js.map +1 -0
- package/dist/dashboard/module-host.d.ts +44 -0
- package/dist/dashboard/module-host.d.ts.map +1 -0
- package/dist/dashboard/module-host.js +91 -0
- package/dist/dashboard/module-host.js.map +1 -0
- package/dist/dashboard/module-serve.d.ts +15 -0
- package/dist/dashboard/module-serve.d.ts.map +1 -0
- package/dist/dashboard/module-serve.js +45 -0
- package/dist/dashboard/module-serve.js.map +1 -0
- package/dist/dashboard/open-in-app.d.ts +43 -0
- package/dist/dashboard/open-in-app.d.ts.map +1 -0
- package/dist/dashboard/open-in-app.js +98 -0
- package/dist/dashboard/open-in-app.js.map +1 -0
- package/dist/dashboard/open-questions.d.ts +45 -0
- package/dist/dashboard/open-questions.d.ts.map +1 -0
- package/dist/dashboard/open-questions.js +62 -0
- package/dist/dashboard/open-questions.js.map +1 -0
- package/dist/dashboard/overview.d.ts +78 -0
- package/dist/dashboard/overview.d.ts.map +1 -0
- package/dist/dashboard/overview.js +87 -0
- package/dist/dashboard/overview.js.map +1 -0
- package/dist/dashboard/projects.d.ts +100 -0
- package/dist/dashboard/projects.d.ts.map +1 -0
- package/dist/dashboard/projects.js +63 -0
- package/dist/dashboard/projects.js.map +1 -0
- package/dist/dashboard/pull-requests.d.ts +127 -0
- package/dist/dashboard/pull-requests.d.ts.map +1 -0
- package/dist/dashboard/pull-requests.js +137 -0
- package/dist/dashboard/pull-requests.js.map +1 -0
- package/dist/dashboard/queue.d.ts +17 -0
- package/dist/dashboard/queue.d.ts.map +1 -0
- package/dist/dashboard/queue.js +19 -0
- package/dist/dashboard/queue.js.map +1 -0
- package/dist/dashboard/quota.d.ts +53 -0
- package/dist/dashboard/quota.d.ts.map +1 -0
- package/dist/dashboard/quota.js +42 -0
- package/dist/dashboard/quota.js.map +1 -0
- package/dist/dashboard/relay-endpoints.d.ts +32 -0
- package/dist/dashboard/relay-endpoints.d.ts.map +1 -0
- package/dist/dashboard/relay-endpoints.js +115 -0
- package/dist/dashboard/relay-endpoints.js.map +1 -0
- package/dist/dashboard/remote-run.d.ts +95 -0
- package/dist/dashboard/remote-run.d.ts.map +1 -0
- package/dist/dashboard/remote-run.js +235 -0
- package/dist/dashboard/remote-run.js.map +1 -0
- package/dist/dashboard/rpc-serve.d.ts +103 -0
- package/dist/dashboard/rpc-serve.d.ts.map +1 -0
- package/dist/dashboard/rpc-serve.js +180 -0
- package/dist/dashboard/rpc-serve.js.map +1 -0
- package/dist/dashboard/run-handoff.d.ts +311 -0
- package/dist/dashboard/run-handoff.d.ts.map +1 -0
- package/dist/dashboard/run-handoff.js +485 -0
- package/dist/dashboard/run-handoff.js.map +1 -0
- package/dist/dashboard/run-inbox.d.ts +31 -0
- package/dist/dashboard/run-inbox.d.ts.map +1 -0
- package/dist/dashboard/run-inbox.js +51 -0
- package/dist/dashboard/run-inbox.js.map +1 -0
- package/dist/dashboard/scheduler-state.d.ts +73 -0
- package/dist/dashboard/scheduler-state.d.ts.map +1 -0
- package/dist/dashboard/scheduler-state.js +120 -0
- package/dist/dashboard/scheduler-state.js.map +1 -0
- package/dist/dashboard/server.d.ts +103 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +230 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/dashboard/static.d.ts +9 -0
- package/dist/dashboard/static.d.ts.map +1 -0
- package/dist/dashboard/static.js +54 -0
- package/dist/dashboard/static.js.map +1 -0
- package/dist/dashboard/subagent-settings.d.ts +26 -0
- package/dist/dashboard/subagent-settings.d.ts.map +1 -0
- package/dist/dashboard/subagent-settings.js +52 -0
- package/dist/dashboard/subagent-settings.js.map +1 -0
- package/dist/dashboard/telefunc-serve.d.ts +118 -0
- package/dist/dashboard/telefunc-serve.d.ts.map +1 -0
- package/dist/dashboard/telefunc-serve.js +108 -0
- package/dist/dashboard/telefunc-serve.js.map +1 -0
- package/dist/dashboard/tickets.d.ts +29 -0
- package/dist/dashboard/tickets.d.ts.map +1 -0
- package/dist/dashboard/tickets.js +38 -0
- package/dist/dashboard/tickets.js.map +1 -0
- package/dist/dashboard/types.d.ts +109 -0
- package/dist/dashboard/types.d.ts.map +1 -0
- package/dist/dashboard/types.js +2 -0
- package/dist/dashboard/types.js.map +1 -0
- package/dist/dashboard/web-start-endpoints.d.ts +32 -0
- package/dist/dashboard/web-start-endpoints.d.ts.map +1 -0
- package/dist/dashboard/web-start-endpoints.js +75 -0
- package/dist/dashboard/web-start-endpoints.js.map +1 -0
- package/dist/dashboard/widget-serve.d.ts +15 -0
- package/dist/dashboard/widget-serve.d.ts.map +1 -0
- package/dist/dashboard/widget-serve.js +45 -0
- package/dist/dashboard/widget-serve.js.map +1 -0
- package/dist/dashboard-bundle/assets/client-CbBRB9m4.js +9 -0
- package/dist/dashboard-bundle/assets/jsx-runtime-By8HlURe.js +1 -0
- package/dist/dashboard-bundle/assets/main-B3HghPQy.css +2 -0
- package/dist/dashboard-bundle/assets/main-om0WOAku.js +140 -0
- package/dist/dashboard-bundle/assets/module-jASZmfSB.js +21 -0
- package/dist/dashboard-bundle/assets/react-CZI7_Jkm.js +1 -0
- package/dist/dashboard-bundle/assets/react-dom-cJyBB_A4.js +1 -0
- package/dist/dashboard-bundle/assets/rolldown-runtime-QTnfLwEv.js +1 -0
- package/dist/dashboard-bundle/host/module.js +1 -0
- package/dist/dashboard-bundle/host/react-dom-client.js +1 -0
- package/dist/dashboard-bundle/host/react-dom.js +1 -0
- package/dist/dashboard-bundle/host/react-jsx-runtime.js +1 -0
- package/dist/dashboard-bundle/host/react.js +1 -0
- package/dist/dashboard-bundle/index.html +42 -0
- package/dist/dashboard-bundle/logo-animated.svg +34 -0
- package/dist/dashboard-bundle/logo.svg +16 -0
- package/dist/dashboard-client/assets/chunks/chunk-BF9pJudf.js +4 -0
- package/dist/dashboard-client/assets/entries/entry-client-routing.CT1e9F0o.js +1 -0
- package/dist/dashboard-client/assets/entries/pages_index.CkW5JQ8X.js +428 -0
- package/dist/dashboard-client/assets/static/layouts_tailwind-00e65532.8OjKGAbA.css +2 -0
- package/dist/dashboard-client/index.html +27 -0
- package/dist/dashboard-client/index.pageContext.json +1 -0
- package/dist/dashboard-client/logo-animated.svg +34 -0
- package/dist/dashboard-client/logo.svg +16 -0
- package/dist/dashboard-rpc/context.d.ts +54 -0
- package/dist/dashboard-rpc/context.d.ts.map +1 -0
- package/dist/dashboard-rpc/context.js +102 -0
- package/dist/dashboard-rpc/context.js.map +1 -0
- package/dist/dashboard-rpc/control.d.ts +124 -0
- package/dist/dashboard-rpc/control.d.ts.map +1 -0
- package/dist/dashboard-rpc/control.js +284 -0
- package/dist/dashboard-rpc/control.js.map +1 -0
- package/dist/dashboard-rpc/control.telefunc.d.ts +176 -0
- package/dist/dashboard-rpc/control.telefunc.d.ts.map +1 -0
- package/dist/dashboard-rpc/control.telefunc.js +373 -0
- package/dist/dashboard-rpc/control.telefunc.js.map +1 -0
- package/dist/dashboard-rpc/devices.d.ts +9 -0
- package/dist/dashboard-rpc/devices.d.ts.map +1 -0
- package/dist/dashboard-rpc/devices.js +12 -0
- package/dist/dashboard-rpc/devices.js.map +1 -0
- package/dist/dashboard-rpc/devices.telefunc.d.ts +9 -0
- package/dist/dashboard-rpc/devices.telefunc.d.ts.map +1 -0
- package/dist/dashboard-rpc/devices.telefunc.js +12 -0
- package/dist/dashboard-rpc/devices.telefunc.js.map +1 -0
- package/dist/dashboard-rpc/events-tail.d.ts +68 -0
- package/dist/dashboard-rpc/events-tail.d.ts.map +1 -0
- package/dist/dashboard-rpc/events-tail.js +257 -0
- package/dist/dashboard-rpc/events-tail.js.map +1 -0
- package/dist/dashboard-rpc/events.d.ts +39 -0
- package/dist/dashboard-rpc/events.d.ts.map +1 -0
- package/dist/dashboard-rpc/events.js +47 -0
- package/dist/dashboard-rpc/events.js.map +1 -0
- package/dist/dashboard-rpc/events.telefunc.d.ts +36 -0
- package/dist/dashboard-rpc/events.telefunc.d.ts.map +1 -0
- package/dist/dashboard-rpc/events.telefunc.js +70 -0
- package/dist/dashboard-rpc/events.telefunc.js.map +1 -0
- package/dist/dashboard-rpc/index.d.ts +29 -0
- package/dist/dashboard-rpc/index.d.ts.map +1 -0
- package/dist/dashboard-rpc/index.js +40 -0
- package/dist/dashboard-rpc/index.js.map +1 -0
- package/dist/dashboard-rpc/models.d.ts +4 -0
- package/dist/dashboard-rpc/models.d.ts.map +1 -0
- package/dist/dashboard-rpc/models.js +8 -0
- package/dist/dashboard-rpc/models.js.map +1 -0
- package/dist/dashboard-rpc/modules.d.ts +43 -0
- package/dist/dashboard-rpc/modules.d.ts.map +1 -0
- package/dist/dashboard-rpc/modules.js +77 -0
- package/dist/dashboard-rpc/modules.js.map +1 -0
- package/dist/dashboard-rpc/preferences.d.ts +41 -0
- package/dist/dashboard-rpc/preferences.d.ts.map +1 -0
- package/dist/dashboard-rpc/preferences.js +65 -0
- package/dist/dashboard-rpc/preferences.js.map +1 -0
- package/dist/dashboard-rpc/preferences.telefunc.d.ts +97 -0
- package/dist/dashboard-rpc/preferences.telefunc.d.ts.map +1 -0
- package/dist/dashboard-rpc/preferences.telefunc.js +157 -0
- package/dist/dashboard-rpc/preferences.telefunc.js.map +1 -0
- package/dist/dashboard-rpc/projects.d.ts +59 -0
- package/dist/dashboard-rpc/projects.d.ts.map +1 -0
- package/dist/dashboard-rpc/projects.js +87 -0
- package/dist/dashboard-rpc/projects.js.map +1 -0
- package/dist/dashboard-rpc/projects.telefunc.d.ts +56 -0
- package/dist/dashboard-rpc/projects.telefunc.d.ts.map +1 -0
- package/dist/dashboard-rpc/projects.telefunc.js +96 -0
- package/dist/dashboard-rpc/projects.telefunc.js.map +1 -0
- package/dist/dashboard-rpc/quota.d.ts +4 -0
- package/dist/dashboard-rpc/quota.d.ts.map +1 -0
- package/dist/dashboard-rpc/quota.js +15 -0
- package/dist/dashboard-rpc/quota.js.map +1 -0
- package/dist/dashboard-rpc/quota.telefunc.d.ts +40 -0
- package/dist/dashboard-rpc/quota.telefunc.d.ts.map +1 -0
- package/dist/dashboard-rpc/quota.telefunc.js +84 -0
- package/dist/dashboard-rpc/quota.telefunc.js.map +1 -0
- package/dist/dashboard-rpc/reads.d.ts +185 -0
- package/dist/dashboard-rpc/reads.d.ts.map +1 -0
- package/dist/dashboard-rpc/reads.js +370 -0
- package/dist/dashboard-rpc/reads.js.map +1 -0
- package/dist/dashboard-rpc/reads.telefunc.d.ts +197 -0
- package/dist/dashboard-rpc/reads.telefunc.d.ts.map +1 -0
- package/dist/dashboard-rpc/reads.telefunc.js +403 -0
- package/dist/dashboard-rpc/reads.telefunc.js.map +1 -0
- package/dist/dashboard-rpc/register.d.ts +18 -0
- package/dist/dashboard-rpc/register.d.ts.map +1 -0
- package/dist/dashboard-rpc/register.js +66 -0
- package/dist/dashboard-rpc/register.js.map +1 -0
- package/dist/dashboard-rpc/relay-agent.d.ts +9 -0
- package/dist/dashboard-rpc/relay-agent.d.ts.map +1 -0
- package/dist/dashboard-rpc/relay-agent.js +21 -0
- package/dist/dashboard-rpc/relay-agent.js.map +1 -0
- package/dist/dashboard-rpc/relay-dispatch.d.ts +9 -0
- package/dist/dashboard-rpc/relay-dispatch.d.ts.map +1 -0
- package/dist/dashboard-rpc/relay-dispatch.js +24 -0
- package/dist/dashboard-rpc/relay-dispatch.js.map +1 -0
- package/dist/dashboard-rpc/relay-run.d.ts +9 -0
- package/dist/dashboard-rpc/relay-run.d.ts.map +1 -0
- package/dist/dashboard-rpc/relay-run.js +21 -0
- package/dist/dashboard-rpc/relay-run.js.map +1 -0
- package/dist/dashboard-rpc/stream-channel.d.ts +23 -0
- package/dist/dashboard-rpc/stream-channel.d.ts.map +1 -0
- package/dist/dashboard-rpc/stream-channel.js +52 -0
- package/dist/dashboard-rpc/stream-channel.js.map +1 -0
- package/dist/dashboard-rpc/stream-forward.d.ts +17 -0
- package/dist/dashboard-rpc/stream-forward.d.ts.map +1 -0
- package/dist/dashboard-rpc/stream-forward.js +38 -0
- package/dist/dashboard-rpc/stream-forward.js.map +1 -0
- package/dist/dashboard-rpc/subagents.d.ts +12 -0
- package/dist/dashboard-rpc/subagents.d.ts.map +1 -0
- package/dist/dashboard-rpc/subagents.js +13 -0
- package/dist/dashboard-rpc/subagents.js.map +1 -0
- package/dist/dashboard-rpc/test-context.d.ts +23 -0
- package/dist/dashboard-rpc/test-context.d.ts.map +1 -0
- package/dist/dashboard-rpc/test-context.js +42 -0
- package/dist/dashboard-rpc/test-context.js.map +1 -0
- package/dist/dashboard-rpc/widgets.d.ts +33 -0
- package/dist/dashboard-rpc/widgets.d.ts.map +1 -0
- package/dist/dashboard-rpc/widgets.js +54 -0
- package/dist/dashboard-rpc/widgets.js.map +1 -0
- package/dist/data-branch.d.ts +120 -0
- package/dist/data-branch.d.ts.map +1 -0
- package/dist/data-branch.js +319 -0
- package/dist/data-branch.js.map +1 -0
- package/dist/discord/bot.d.ts +61 -0
- package/dist/discord/bot.d.ts.map +1 -0
- package/dist/discord/bot.js +94 -0
- package/dist/discord/bot.js.map +1 -0
- package/dist/discord/gateway.d.ts +137 -0
- package/dist/discord/gateway.d.ts.map +1 -0
- package/dist/discord/gateway.js +315 -0
- package/dist/discord/gateway.js.map +1 -0
- package/dist/discord/live-run.d.ts +31 -0
- package/dist/discord/live-run.d.ts.map +1 -0
- package/dist/discord/live-run.js +57 -0
- package/dist/discord/live-run.js.map +1 -0
- package/dist/discord/reply-mirror.d.ts +83 -0
- package/dist/discord/reply-mirror.d.ts.map +1 -0
- package/dist/discord/reply-mirror.js +84 -0
- package/dist/discord/reply-mirror.js.map +1 -0
- package/dist/discord/rest.d.ts +20 -0
- package/dist/discord/rest.d.ts.map +1 -0
- package/dist/discord/rest.js +41 -0
- package/dist/discord/rest.js.map +1 -0
- package/dist/discord/routing.d.ts +81 -0
- package/dist/discord/routing.d.ts.map +1 -0
- package/dist/discord/routing.js +91 -0
- package/dist/discord/routing.js.map +1 -0
- package/dist/discord-credentials-store.d.ts +14 -0
- package/dist/discord-credentials-store.d.ts.map +1 -0
- package/dist/discord-credentials-store.js +53 -0
- package/dist/discord-credentials-store.js.map +1 -0
- package/dist/discord-credentials.d.ts +80 -0
- package/dist/discord-credentials.d.ts.map +1 -0
- package/dist/discord-credentials.js +55 -0
- package/dist/discord-credentials.js.map +1 -0
- package/dist/driver/actions-zip.d.ts +2 -0
- package/dist/driver/actions-zip.d.ts.map +1 -0
- package/dist/driver/actions-zip.js +70 -0
- package/dist/driver/actions-zip.js.map +1 -0
- package/dist/driver/actions.d.ts +130 -0
- package/dist/driver/actions.d.ts.map +1 -0
- package/dist/driver/actions.js +261 -0
- package/dist/driver/actions.js.map +1 -0
- package/dist/driver/agent-cli.d.ts +57 -0
- package/dist/driver/agent-cli.d.ts.map +1 -0
- package/dist/driver/agent-cli.js +134 -0
- package/dist/driver/agent-cli.js.map +1 -0
- package/dist/driver/child-registry.d.ts +25 -0
- package/dist/driver/child-registry.d.ts.map +1 -0
- package/dist/driver/child-registry.js +53 -0
- package/dist/driver/child-registry.js.map +1 -0
- package/dist/driver/claude-code-quota.d.ts +40 -0
- package/dist/driver/claude-code-quota.d.ts.map +1 -0
- package/dist/driver/claude-code-quota.js +144 -0
- package/dist/driver/claude-code-quota.js.map +1 -0
- package/dist/driver/claude-code.d.ts +104 -0
- package/dist/driver/claude-code.d.ts.map +1 -0
- package/dist/driver/claude-code.js +314 -0
- package/dist/driver/claude-code.js.map +1 -0
- package/dist/driver/cli-session.d.ts +57 -0
- package/dist/driver/cli-session.d.ts.map +1 -0
- package/dist/driver/cli-session.js +134 -0
- package/dist/driver/cli-session.js.map +1 -0
- package/dist/driver/cloud.d.ts +109 -0
- package/dist/driver/cloud.d.ts.map +1 -0
- package/dist/driver/cloud.js +232 -0
- package/dist/driver/cloud.js.map +1 -0
- package/dist/driver/codex.d.ts +99 -0
- package/dist/driver/codex.d.ts.map +1 -0
- package/dist/driver/codex.js +190 -0
- package/dist/driver/codex.js.map +1 -0
- package/dist/driver/fake.d.ts +54 -0
- package/dist/driver/fake.d.ts.map +1 -0
- package/dist/driver/fake.js +73 -0
- package/dist/driver/fake.js.map +1 -0
- package/dist/driver/index.d.ts +10 -0
- package/dist/driver/index.d.ts.map +1 -0
- package/dist/driver/index.js +14 -0
- package/dist/driver/index.js.map +1 -0
- package/dist/driver/session-support.d.ts +14 -0
- package/dist/driver/session-support.d.ts.map +1 -0
- package/dist/driver/session-support.js +37 -0
- package/dist/driver/session-support.js.map +1 -0
- package/dist/driver/types.d.ts +310 -0
- package/dist/driver/types.d.ts.map +1 -0
- package/dist/driver/types.js +5 -0
- package/dist/driver/types.js.map +1 -0
- package/dist/driver-cli.d.ts +61 -0
- package/dist/driver-cli.d.ts.map +1 -0
- package/dist/driver-cli.js +66 -0
- package/dist/driver-cli.js.map +1 -0
- package/dist/driver-names.d.ts +22 -0
- package/dist/driver-names.d.ts.map +1 -0
- package/dist/driver-names.js +29 -0
- package/dist/driver-names.js.map +1 -0
- package/dist/error-message.d.ts +8 -0
- package/dist/error-message.d.ts.map +1 -0
- package/dist/error-message.js +10 -0
- package/dist/error-message.js.map +1 -0
- package/dist/event-stream.d.ts +33 -0
- package/dist/event-stream.d.ts.map +1 -0
- package/dist/event-stream.js +104 -0
- package/dist/event-stream.js.map +1 -0
- package/dist/events.d.ts +236 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +5 -0
- package/dist/events.js.map +1 -0
- package/dist/fake-script.d.ts +15 -0
- package/dist/fake-script.d.ts.map +1 -0
- package/dist/fake-script.js +58 -0
- package/dist/fake-script.js.map +1 -0
- package/dist/format-bytes.d.ts +3 -0
- package/dist/format-bytes.d.ts.map +1 -0
- package/dist/format-bytes.js +18 -0
- package/dist/format-bytes.js.map +1 -0
- package/dist/framework-dir.d.ts +11 -0
- package/dist/framework-dir.d.ts.map +1 -0
- package/dist/framework-dir.js +11 -0
- package/dist/framework-dir.js.map +1 -0
- package/dist/framework-gitignore.d.ts +12 -0
- package/dist/framework-gitignore.d.ts.map +1 -0
- package/dist/framework-gitignore.js +19 -0
- package/dist/framework-gitignore.js.map +1 -0
- package/dist/gate-keepalive.d.ts +47 -0
- package/dist/gate-keepalive.d.ts.map +1 -0
- package/dist/gate-keepalive.js +62 -0
- package/dist/gate-keepalive.js.map +1 -0
- package/dist/git-exclude.d.ts +11 -0
- package/dist/git-exclude.d.ts.map +1 -0
- package/dist/git-exclude.js +23 -0
- package/dist/git-exclude.js.map +1 -0
- package/dist/handoff-level.d.ts +56 -0
- package/dist/handoff-level.d.ts.map +1 -0
- package/dist/handoff-level.js +62 -0
- package/dist/handoff-level.js.map +1 -0
- package/dist/has-remote.d.ts +8 -0
- package/dist/has-remote.d.ts.map +1 -0
- package/dist/has-remote.js +10 -0
- package/dist/has-remote.js.map +1 -0
- package/dist/host-exec.d.ts +21 -0
- package/dist/host-exec.d.ts.map +1 -0
- package/dist/host-exec.js +30 -0
- package/dist/host-exec.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/install.d.ts +29 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +40 -0
- package/dist/install.js.map +1 -0
- package/dist/jsonl-tail.d.ts +59 -0
- package/dist/jsonl-tail.d.ts.map +1 -0
- package/dist/jsonl-tail.js +152 -0
- package/dist/jsonl-tail.js.map +1 -0
- package/dist/layout.d.ts +41 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +69 -0
- package/dist/layout.js.map +1 -0
- package/dist/logs.d.ts +73 -0
- package/dist/logs.d.ts.map +1 -0
- package/dist/logs.js +218 -0
- package/dist/logs.js.map +1 -0
- package/dist/loopback-host.d.ts +20 -0
- package/dist/loopback-host.d.ts.map +1 -0
- package/dist/loopback-host.js +31 -0
- package/dist/loopback-host.js.map +1 -0
- package/dist/maintenance.d.ts +90 -0
- package/dist/maintenance.d.ts.map +1 -0
- package/dist/maintenance.js +141 -0
- package/dist/maintenance.js.map +1 -0
- package/dist/merged-worktrees.d.ts +74 -0
- package/dist/merged-worktrees.d.ts.map +1 -0
- package/dist/merged-worktrees.js +84 -0
- package/dist/merged-worktrees.js.map +1 -0
- package/dist/module-server.d.ts +56 -0
- package/dist/module-types/dashboard/components/DiffStat.d.ts +6 -0
- package/dist/module-types/dashboard/components/DriverModelMenu.d.ts +23 -0
- package/dist/module-types/dashboard/components/LinkActions.d.ts +26 -0
- package/dist/module-types/dashboard/components/Markdown.d.ts +4 -0
- package/dist/module-types/dashboard/components/SettingsRows.d.ts +37 -0
- package/dist/module-types/dashboard/components/StartAgentButton.d.ts +39 -0
- package/dist/module-types/dashboard/components/ui/badge.d.ts +2 -0
- package/dist/module-types/dashboard/components/ui/button.d.ts +10 -0
- package/dist/module-types/dashboard/components/ui/card.d.ts +5 -0
- package/dist/module-types/dashboard/components/ui/checkbox.d.ts +7 -0
- package/dist/module-types/dashboard/components/ui/dropdown-menu.d.ts +16 -0
- package/dist/module-types/dashboard/components/ui/input.d.ts +2 -0
- package/dist/module-types/dashboard/components/ui/option-label.d.ts +4 -0
- package/dist/module-types/dashboard/components/ui/popover.d.ts +8 -0
- package/dist/module-types/dashboard/components/ui/scroll-area.d.ts +10 -0
- package/dist/module-types/dashboard/components/ui/separator.d.ts +3 -0
- package/dist/module-types/dashboard/components/ui/skeleton.d.ts +2 -0
- package/dist/module-types/dashboard/components/ui/slider.d.ts +9 -0
- package/dist/module-types/dashboard/components/ui/tooltip.d.ts +11 -0
- package/dist/module-types/dashboard/lib/agent-settings.d.ts +2 -0
- package/dist/module-types/dashboard/lib/draft-handoff.d.ts +15 -0
- package/dist/module-types/dashboard/lib/format-date.d.ts +51 -0
- package/dist/module-types/dashboard/lib/host-services.d.ts +12 -0
- package/dist/module-types/dashboard/lib/models.d.ts +24 -0
- package/dist/module-types/dashboard/lib/route.d.ts +37 -0
- package/dist/module-types/dashboard/lib/rpc.d.ts +31 -0
- package/dist/module-types/dashboard/lib/use-action.d.ts +25 -0
- package/dist/module-types/dashboard/lib/use-async.d.ts +45 -0
- package/dist/module-types/dashboard/lib/use-modules.d.ts +78 -0
- package/dist/module-types/dashboard/lib/utils.d.ts +3 -0
- package/dist/module-types/dashboard/module/index.d.ts +335 -0
- package/dist/module-types/dashboard/rpc/models.d.ts +2 -0
- package/dist/module-types/dashboard/rpc/modules.d.ts +5 -0
- package/dist/module-types/src/agent-id.d.ts +12 -0
- package/dist/module-types/src/agent-locks.d.ts +2 -0
- package/dist/module-types/src/agent-view.d.ts +38 -0
- package/dist/module-types/src/bridge-browser.d.ts +216 -0
- package/dist/module-types/src/browser-stream.d.ts +19 -0
- package/dist/module-types/src/browser.d.ts +15 -0
- package/dist/module-types/src/built-in.d.ts +28 -0
- package/dist/module-types/src/client.d.ts +15 -0
- package/dist/module-types/src/cloud-run-state.d.ts +26 -0
- package/dist/module-types/src/dashboard/activity.d.ts +40 -0
- package/dist/module-types/src/dashboard/agent-handoff.d.ts +243 -0
- package/dist/module-types/src/dashboard/agent-tree.d.ts +105 -0
- package/dist/module-types/src/dashboard/bridge-endpoints.d.ts +157 -0
- package/dist/module-types/src/dashboard/bridge-question.d.ts +32 -0
- package/dist/module-types/src/dashboard/bridge-store.d.ts +178 -0
- package/dist/module-types/src/dashboard/cache.d.ts +46 -0
- package/dist/module-types/src/dashboard/content-type.d.ts +2 -0
- package/dist/module-types/src/dashboard/dashboard.d.ts +37 -0
- package/dist/module-types/src/dashboard/docs.d.ts +38 -0
- package/dist/module-types/src/dashboard/file-diff.d.ts +66 -0
- package/dist/module-types/src/dashboard/file-read.d.ts +41 -0
- package/dist/module-types/src/dashboard/file-status.d.ts +20 -0
- package/dist/module-types/src/dashboard/git-status.d.ts +43 -0
- package/dist/module-types/src/dashboard/http.d.ts +28 -0
- package/dist/module-types/src/dashboard/interventions.d.ts +66 -0
- package/dist/module-types/src/dashboard/keyed-watcher.d.ts +28 -0
- package/dist/module-types/src/dashboard/keys.d.ts +30 -0
- package/dist/module-types/src/dashboard/models.d.ts +24 -0
- package/dist/module-types/src/dashboard/module-host.d.ts +43 -0
- package/dist/module-types/src/dashboard/module-serve.d.ts +14 -0
- package/dist/module-types/src/dashboard/open-in-app.d.ts +42 -0
- package/dist/module-types/src/dashboard/open-questions.d.ts +44 -0
- package/dist/module-types/src/dashboard/overview.d.ts +77 -0
- package/dist/module-types/src/dashboard/projects.d.ts +99 -0
- package/dist/module-types/src/dashboard/pull-requests.d.ts +126 -0
- package/dist/module-types/src/dashboard/queue.d.ts +16 -0
- package/dist/module-types/src/dashboard/quota.d.ts +52 -0
- package/dist/module-types/src/dashboard/remote-run.d.ts +94 -0
- package/dist/module-types/src/dashboard/rpc-serve.d.ts +102 -0
- package/dist/module-types/src/dashboard/run-inbox.d.ts +30 -0
- package/dist/module-types/src/dashboard/scheduler-state.d.ts +72 -0
- package/dist/module-types/src/dashboard/subagent-settings.d.ts +25 -0
- package/dist/module-types/src/dashboard/types.d.ts +108 -0
- package/dist/module-types/src/dashboard-rpc/context.d.ts +53 -0
- package/dist/module-types/src/dashboard-rpc/control.d.ts +123 -0
- package/dist/module-types/src/dashboard-rpc/devices.d.ts +8 -0
- package/dist/module-types/src/dashboard-rpc/events-tail.d.ts +67 -0
- package/dist/module-types/src/dashboard-rpc/events.d.ts +38 -0
- package/dist/module-types/src/dashboard-rpc/index.d.ts +28 -0
- package/dist/module-types/src/dashboard-rpc/models.d.ts +3 -0
- package/dist/module-types/src/dashboard-rpc/modules.d.ts +42 -0
- package/dist/module-types/src/dashboard-rpc/preferences.d.ts +40 -0
- package/dist/module-types/src/dashboard-rpc/projects.d.ts +58 -0
- package/dist/module-types/src/dashboard-rpc/quota.d.ts +3 -0
- package/dist/module-types/src/dashboard-rpc/reads.d.ts +184 -0
- package/dist/module-types/src/dashboard-rpc/relay-agent.d.ts +8 -0
- package/dist/module-types/src/dashboard-rpc/stream-forward.d.ts +16 -0
- package/dist/module-types/src/dashboard-rpc/subagents.d.ts +11 -0
- package/dist/module-types/src/driver-names.d.ts +21 -0
- package/dist/module-types/src/error-message.d.ts +7 -0
- package/dist/module-types/src/event-stream.d.ts +32 -0
- package/dist/module-types/src/events.d.ts +235 -0
- package/dist/module-types/src/format-bytes.d.ts +2 -0
- package/dist/module-types/src/framework-dir.d.ts +10 -0
- package/dist/module-types/src/framework-gitignore.d.ts +11 -0
- package/dist/module-types/src/has-remote.d.ts +7 -0
- package/dist/module-types/src/index.d.ts +40 -0
- package/dist/module-types/src/jsonl-tail.d.ts +58 -0
- package/dist/module-types/src/loopback-host.d.ts +19 -0
- package/dist/module-types/src/node-fs.d.ts +32 -0
- package/dist/module-types/src/open-choices.d.ts +14 -0
- package/dist/module-types/src/pick-directory.d.ts +29 -0
- package/dist/module-types/src/preference-defaults.d.ts +42 -0
- package/dist/module-types/src/project-commands.d.ts +23 -0
- package/dist/module-types/src/project-errors.d.ts +55 -0
- package/dist/module-types/src/project-hooks.d.ts +129 -0
- package/dist/module-types/src/project-modules.d.ts +49 -0
- package/dist/module-types/src/project-presets.d.ts +29 -0
- package/dist/module-types/src/project.d.ts +28 -0
- package/dist/module-types/src/publish-levels.d.ts +32 -0
- package/dist/module-types/src/quota-boundary.d.ts +64 -0
- package/dist/module-types/src/quota-poller.d.ts +82 -0
- package/dist/module-types/src/registry.d.ts +220 -0
- package/dist/module-types/src/store/agent-checkout.d.ts +53 -0
- package/dist/module-types/src/store/agent-store.d.ts +266 -0
- package/dist/module-types/src/store/branches.d.ts +163 -0
- package/dist/module-types/src/store/git-host.d.ts +113 -0
- package/dist/module-types/src/store/index.d.ts +9 -0
- package/dist/module-types/src/store/provided.d.ts +16 -0
- package/dist/module-types/src/store/queue.d.ts +45 -0
- package/dist/module-types/src/store/repository.d.ts +32 -0
- package/dist/module-types/src/store/run-record.d.ts +21 -0
- package/dist/module-types/src/store/runs.d.ts +107 -0
- package/dist/module-types/src/store/tickets.d.ts +72 -0
- package/dist/module-types/src/subagent-settings.d.ts +26 -0
- package/dist/module-types/src/terminal.d.ts +3 -0
- package/dist/module-types/src/worktrees.d.ts +89 -0
- package/dist/module.css +50 -0
- package/dist/node-fs.d.ts +33 -0
- package/dist/node-fs.d.ts.map +1 -0
- package/dist/node-fs.js +57 -0
- package/dist/node-fs.js.map +1 -0
- package/dist/on-before-mergeable-prompt.d.ts +32 -0
- package/dist/on-before-mergeable-prompt.d.ts.map +1 -0
- package/dist/on-before-mergeable-prompt.js +26 -0
- package/dist/on-before-mergeable-prompt.js.map +1 -0
- package/dist/open-choices.d.ts +15 -0
- package/dist/open-choices.d.ts.map +1 -0
- package/dist/open-choices.js +31 -0
- package/dist/open-choices.js.map +1 -0
- package/dist/pick-directory.d.ts +30 -0
- package/dist/pick-directory.d.ts.map +1 -0
- package/dist/pick-directory.js +102 -0
- package/dist/pick-directory.js.map +1 -0
- package/dist/planned-quick-wins.d.ts +102 -0
- package/dist/planned-quick-wins.d.ts.map +1 -0
- package/dist/planned-quick-wins.js +171 -0
- package/dist/planned-quick-wins.js.map +1 -0
- package/dist/preference-defaults.d.ts +43 -0
- package/dist/preference-defaults.d.ts.map +1 -0
- package/dist/preference-defaults.js +34 -0
- package/dist/preference-defaults.js.map +1 -0
- package/dist/preflight.d.ts +77 -0
- package/dist/preflight.d.ts.map +1 -0
- package/dist/preflight.js +91 -0
- package/dist/preflight.js.map +1 -0
- package/dist/preset-catalog.d.ts +98 -0
- package/dist/preset-catalog.d.ts.map +1 -0
- package/dist/preset-catalog.js +129 -0
- package/dist/preset-catalog.js.map +1 -0
- package/dist/preset-prompt.d.ts +81 -0
- package/dist/preset-prompt.d.ts.map +1 -0
- package/dist/preset-prompt.js +51 -0
- package/dist/preset-prompt.js.map +1 -0
- package/dist/preset-registry.d.ts +32 -0
- package/dist/preset-registry.d.ts.map +1 -0
- package/dist/preset-registry.js +35 -0
- package/dist/preset-registry.js.map +1 -0
- package/dist/presets.d.ts +20 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +33 -0
- package/dist/presets.js.map +1 -0
- package/dist/preview-runtime.d.ts +33 -0
- package/dist/preview-runtime.d.ts.map +1 -0
- package/dist/preview-runtime.js +96 -0
- package/dist/preview-runtime.js.map +1 -0
- package/dist/preview.d.ts +78 -0
- package/dist/preview.d.ts.map +1 -0
- package/dist/preview.js +301 -0
- package/dist/preview.js.map +1 -0
- package/dist/project-commands.d.ts +24 -0
- package/dist/project-commands.d.ts.map +1 -0
- package/dist/project-commands.js +57 -0
- package/dist/project-commands.js.map +1 -0
- package/dist/project-errors.d.ts +56 -0
- package/dist/project-errors.d.ts.map +1 -0
- package/dist/project-errors.js +49 -0
- package/dist/project-errors.js.map +1 -0
- package/dist/project-hooks.d.ts +130 -0
- package/dist/project-hooks.d.ts.map +1 -0
- package/dist/project-hooks.js +232 -0
- package/dist/project-hooks.js.map +1 -0
- package/dist/project-modules.d.ts +50 -0
- package/dist/project-modules.d.ts.map +1 -0
- package/dist/project-modules.js +110 -0
- package/dist/project-modules.js.map +1 -0
- package/dist/project-pass.d.ts +32 -0
- package/dist/project-pass.d.ts.map +1 -0
- package/dist/project-pass.js +45 -0
- package/dist/project-pass.js.map +1 -0
- package/dist/project-presets.d.ts +30 -0
- package/dist/project-presets.d.ts.map +1 -0
- package/dist/project-presets.js +74 -0
- package/dist/project-presets.js.map +1 -0
- package/dist/project-widgets.d.ts +46 -0
- package/dist/project-widgets.d.ts.map +1 -0
- package/dist/project-widgets.js +93 -0
- package/dist/project-widgets.js.map +1 -0
- package/dist/project.d.ts +29 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +41 -0
- package/dist/project.js.map +1 -0
- package/dist/prompt-run.d.ts +104 -0
- package/dist/prompt-run.d.ts.map +1 -0
- package/dist/prompt-run.js +112 -0
- package/dist/prompt-run.js.map +1 -0
- package/dist/prompt-template.d.ts +16 -0
- package/dist/prompt-template.d.ts.map +1 -0
- package/dist/prompt-template.js +56 -0
- package/dist/prompt-template.js.map +1 -0
- package/dist/prompts.generated.d.ts +53 -0
- package/dist/prompts.generated.d.ts.map +1 -0
- package/dist/prompts.generated.js +55 -0
- package/dist/prompts.generated.js.map +1 -0
- package/dist/publish-levels.d.ts +33 -0
- package/dist/publish-levels.d.ts.map +1 -0
- package/dist/publish-levels.js +51 -0
- package/dist/publish-levels.js.map +1 -0
- package/dist/queue-promote.d.ts +70 -0
- package/dist/queue-promote.d.ts.map +1 -0
- package/dist/queue-promote.js +118 -0
- package/dist/queue-promote.js.map +1 -0
- package/dist/quota-boundary.d.ts +65 -0
- package/dist/quota-boundary.d.ts.map +1 -0
- package/dist/quota-boundary.js +135 -0
- package/dist/quota-boundary.js.map +1 -0
- package/dist/quota-poller.d.ts +83 -0
- package/dist/quota-poller.d.ts.map +1 -0
- package/dist/quota-poller.js +118 -0
- package/dist/quota-poller.js.map +1 -0
- package/dist/registry.d.ts +221 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +348 -0
- package/dist/registry.js.map +1 -0
- package/dist/relay.d.ts +84 -0
- package/dist/relay.d.ts.map +1 -0
- package/dist/relay.js +199 -0
- package/dist/relay.js.map +1 -0
- package/dist/repos-directory.d.ts +19 -0
- package/dist/repos-directory.d.ts.map +1 -0
- package/dist/repos-directory.js +23 -0
- package/dist/repos-directory.js.map +1 -0
- package/dist/request-path.d.ts +10 -0
- package/dist/request-path.d.ts.map +1 -0
- package/dist/request-path.js +16 -0
- package/dist/request-path.js.map +1 -0
- package/dist/retired-project-settings.d.ts +43 -0
- package/dist/retired-project-settings.d.ts.map +1 -0
- package/dist/retired-project-settings.js +125 -0
- package/dist/retired-project-settings.js.map +1 -0
- package/dist/routine-locks.d.ts +53 -0
- package/dist/routine-locks.d.ts.map +1 -0
- package/dist/routine-locks.js +125 -0
- package/dist/routine-locks.js.map +1 -0
- package/dist/run-driver.d.ts +26 -0
- package/dist/run-driver.d.ts.map +1 -0
- package/dist/run-driver.js +17 -0
- package/dist/run-driver.js.map +1 -0
- package/dist/run-locks.d.ts +3 -0
- package/dist/run-locks.d.ts.map +1 -0
- package/dist/run-locks.js +39 -0
- package/dist/run-locks.js.map +1 -0
- package/dist/run-messages.d.ts +64 -0
- package/dist/run-messages.d.ts.map +1 -0
- package/dist/run-messages.js +76 -0
- package/dist/run-messages.js.map +1 -0
- package/dist/run-options.d.ts +53 -0
- package/dist/run-options.d.ts.map +1 -0
- package/dist/run-options.js +110 -0
- package/dist/run-options.js.map +1 -0
- package/dist/run-telemetry.d.ts +115 -0
- package/dist/run-telemetry.d.ts.map +1 -0
- package/dist/run-telemetry.js +137 -0
- package/dist/run-telemetry.js.map +1 -0
- package/dist/run-view.d.ts +109 -0
- package/dist/run-view.d.ts.map +1 -0
- package/dist/run-view.js +118 -0
- package/dist/run-view.js.map +1 -0
- package/dist/run.d.ts +261 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +420 -0
- package/dist/run.js.map +1 -0
- package/dist/runtime-keys.d.ts +17 -0
- package/dist/runtime-keys.d.ts.map +1 -0
- package/dist/runtime-keys.js +17 -0
- package/dist/runtime-keys.js.map +1 -0
- package/dist/sandbox.d.ts +27 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +63 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/session-link.d.ts +19 -0
- package/dist/session-link.d.ts.map +1 -0
- package/dist/session-link.js +26 -0
- package/dist/session-link.js.map +1 -0
- package/dist/sessions.d.ts +77 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +146 -0
- package/dist/sessions.js.map +1 -0
- package/dist/spike-locks.d.ts +75 -0
- package/dist/spike-locks.d.ts.map +1 -0
- package/dist/spike-locks.js +208 -0
- package/dist/spike-locks.js.map +1 -0
- package/dist/stale-branch.d.ts +21 -0
- package/dist/stale-branch.d.ts.map +1 -0
- package/dist/stale-branch.js +32 -0
- package/dist/stale-branch.js.map +1 -0
- package/dist/steps.d.ts +9 -0
- package/dist/steps.d.ts.map +1 -0
- package/dist/steps.js +13 -0
- package/dist/steps.js.map +1 -0
- package/dist/store/agent-checkout.d.ts +54 -0
- package/dist/store/agent-checkout.d.ts.map +1 -0
- package/dist/store/agent-checkout.js +61 -0
- package/dist/store/agent-checkout.js.map +1 -0
- package/dist/store/agent-store.d.ts +267 -0
- package/dist/store/agent-store.d.ts.map +1 -0
- package/dist/store/agent-store.js +190 -0
- package/dist/store/agent-store.js.map +1 -0
- package/dist/store/branches.d.ts +164 -0
- package/dist/store/branches.d.ts.map +1 -0
- package/dist/store/branches.js +187 -0
- package/dist/store/branches.js.map +1 -0
- package/dist/store/forge.d.ts +110 -0
- package/dist/store/forge.d.ts.map +1 -0
- package/dist/store/forge.js +97 -0
- package/dist/store/forge.js.map +1 -0
- package/dist/store/git-host.d.ts +114 -0
- package/dist/store/git-host.d.ts.map +1 -0
- package/dist/store/git-host.js +103 -0
- package/dist/store/git-host.js.map +1 -0
- package/dist/store/index.d.ts +10 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +10 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/provided.d.ts +17 -0
- package/dist/store/provided.d.ts.map +1 -0
- package/dist/store/provided.js +37 -0
- package/dist/store/provided.js.map +1 -0
- package/dist/store/queue.d.ts +46 -0
- package/dist/store/queue.d.ts.map +1 -0
- package/dist/store/queue.js +61 -0
- package/dist/store/queue.js.map +1 -0
- package/dist/store/repository.d.ts +33 -0
- package/dist/store/repository.d.ts.map +1 -0
- package/dist/store/repository.js +25 -0
- package/dist/store/repository.js.map +1 -0
- package/dist/store/run-checkout.d.ts +33 -0
- package/dist/store/run-checkout.d.ts.map +1 -0
- package/dist/store/run-checkout.js +59 -0
- package/dist/store/run-checkout.js.map +1 -0
- package/dist/store/run-record.d.ts +22 -0
- package/dist/store/run-record.d.ts.map +1 -0
- package/dist/store/run-record.js +108 -0
- package/dist/store/run-record.js.map +1 -0
- package/dist/store/run-store.d.ts +501 -0
- package/dist/store/run-store.d.ts.map +1 -0
- package/dist/store/run-store.js +806 -0
- package/dist/store/run-store.js.map +1 -0
- package/dist/store/runs.d.ts +108 -0
- package/dist/store/runs.d.ts.map +1 -0
- package/dist/store/runs.js +146 -0
- package/dist/store/runs.js.map +1 -0
- package/dist/store/suspend.d.ts +38 -0
- package/dist/store/suspend.d.ts.map +1 -0
- package/dist/store/suspend.js +45 -0
- package/dist/store/suspend.js.map +1 -0
- package/dist/store/test-branches.d.ts +18 -0
- package/dist/store/test-branches.d.ts.map +1 -0
- package/dist/store/test-branches.js +59 -0
- package/dist/store/test-branches.js.map +1 -0
- package/dist/store/test-runs.d.ts +15 -0
- package/dist/store/test-runs.d.ts.map +1 -0
- package/dist/store/test-runs.js +37 -0
- package/dist/store/test-runs.js.map +1 -0
- package/dist/store/tickets.d.ts +73 -0
- package/dist/store/tickets.d.ts.map +1 -0
- package/dist/store/tickets.js +67 -0
- package/dist/store/tickets.js.map +1 -0
- package/dist/store/worktree-deps.d.ts +30 -0
- package/dist/store/worktree-deps.d.ts.map +1 -0
- package/dist/store/worktree-deps.js +115 -0
- package/dist/store/worktree-deps.js.map +1 -0
- package/dist/store/worktree.d.ts +194 -0
- package/dist/store/worktree.d.ts.map +1 -0
- package/dist/store/worktree.js +331 -0
- package/dist/store/worktree.js.map +1 -0
- package/dist/subagent-settings.d.ts +27 -0
- package/dist/subagent-settings.d.ts.map +1 -0
- package/dist/subagent-settings.js +35 -0
- package/dist/subagent-settings.js.map +1 -0
- package/dist/system-prompt-file.d.ts +18 -0
- package/dist/system-prompt-file.d.ts.map +1 -0
- package/dist/system-prompt-file.js +28 -0
- package/dist/system-prompt-file.js.map +1 -0
- package/dist/system-prompt.d.ts +148 -0
- package/dist/system-prompt.d.ts.map +1 -0
- package/dist/system-prompt.js +170 -0
- package/dist/system-prompt.js.map +1 -0
- package/dist/target-driver.d.ts +28 -0
- package/dist/target-driver.d.ts.map +1 -0
- package/dist/target-driver.js +18 -0
- package/dist/target-driver.js.map +1 -0
- package/dist/terminal.d.ts +4 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +97 -0
- package/dist/terminal.js.map +1 -0
- package/dist/ticket-locks.d.ts +61 -0
- package/dist/ticket-locks.d.ts.map +1 -0
- package/dist/ticket-locks.js +137 -0
- package/dist/ticket-locks.js.map +1 -0
- package/dist/tickets-file.d.ts +7 -0
- package/dist/tickets-file.d.ts.map +1 -0
- package/dist/tickets-file.js +21 -0
- package/dist/tickets-file.js.map +1 -0
- package/dist/tickets.d.ts +18 -0
- package/dist/tickets.d.ts.map +1 -0
- package/dist/tickets.js +23 -0
- package/dist/tickets.js.map +1 -0
- package/dist/todo-loop.d.ts +110 -0
- package/dist/todo-loop.d.ts.map +1 -0
- package/dist/todo-loop.js +175 -0
- package/dist/todo-loop.js.map +1 -0
- package/dist/turn-gate.d.ts +144 -0
- package/dist/turn-gate.d.ts.map +1 -0
- package/dist/turn-gate.js +217 -0
- package/dist/turn-gate.js.map +1 -0
- package/dist/update-check.d.ts +44 -0
- package/dist/update-check.d.ts.map +1 -0
- package/dist/update-check.js +71 -0
- package/dist/update-check.js.map +1 -0
- package/dist/usage.d.ts +32 -0
- package/dist/usage.d.ts.map +1 -0
- package/dist/usage.js +46 -0
- package/dist/usage.js.map +1 -0
- package/dist/widget-types/dashboard/components/LinkActions.d.ts +26 -0
- package/dist/widget-types/dashboard/components/Markdown.d.ts +4 -0
- package/dist/widget-types/dashboard/components/StartAgentButton.d.ts +39 -0
- package/dist/widget-types/dashboard/components/ui/badge.d.ts +2 -0
- package/dist/widget-types/dashboard/components/ui/button.d.ts +10 -0
- package/dist/widget-types/dashboard/components/ui/card.d.ts +5 -0
- package/dist/widget-types/dashboard/components/ui/checkbox.d.ts +7 -0
- package/dist/widget-types/dashboard/components/ui/dropdown-menu.d.ts +16 -0
- package/dist/widget-types/dashboard/components/ui/input.d.ts +2 -0
- package/dist/widget-types/dashboard/components/ui/option-label.d.ts +4 -0
- package/dist/widget-types/dashboard/components/ui/popover.d.ts +8 -0
- package/dist/widget-types/dashboard/components/ui/scroll-area.d.ts +10 -0
- package/dist/widget-types/dashboard/components/ui/separator.d.ts +3 -0
- package/dist/widget-types/dashboard/components/ui/skeleton.d.ts +2 -0
- package/dist/widget-types/dashboard/components/ui/slider.d.ts +9 -0
- package/dist/widget-types/dashboard/components/ui/tooltip.d.ts +11 -0
- package/dist/widget-types/dashboard/lib/draft-handoff.d.ts +15 -0
- package/dist/widget-types/dashboard/lib/format-date.d.ts +51 -0
- package/dist/widget-types/dashboard/lib/host-services.d.ts +12 -0
- package/dist/widget-types/dashboard/lib/route.d.ts +24 -0
- package/dist/widget-types/dashboard/lib/rpc.d.ts +31 -0
- package/dist/widget-types/dashboard/lib/use-action.d.ts +25 -0
- package/dist/widget-types/dashboard/lib/use-async.d.ts +39 -0
- package/dist/widget-types/dashboard/lib/use-widgets.d.ts +42 -0
- package/dist/widget-types/dashboard/lib/utils.d.ts +3 -0
- package/dist/widget-types/dashboard/rpc/widgets.d.ts +4 -0
- package/dist/widget-types/dashboard/widget/index.d.ts +207 -0
- package/dist/widget-types/src/agent-id.d.ts +12 -0
- package/dist/widget-types/src/agent-locks.d.ts +2 -0
- package/dist/widget-types/src/agent-view.d.ts +38 -0
- package/dist/widget-types/src/bridge-browser.d.ts +216 -0
- package/dist/widget-types/src/browser-stream.d.ts +19 -0
- package/dist/widget-types/src/browser.d.ts +15 -0
- package/dist/widget-types/src/cli-exec.d.ts +35 -0
- package/dist/widget-types/src/cloud-run-state.d.ts +26 -0
- package/dist/widget-types/src/dashboard/activity.d.ts +40 -0
- package/dist/widget-types/src/dashboard/agent-handoff.d.ts +211 -0
- package/dist/widget-types/src/dashboard/agent-tree.d.ts +105 -0
- package/dist/widget-types/src/dashboard/bridge-endpoints.d.ts +157 -0
- package/dist/widget-types/src/dashboard/bridge-question.d.ts +32 -0
- package/dist/widget-types/src/dashboard/bridge-store.d.ts +178 -0
- package/dist/widget-types/src/dashboard/cache.d.ts +46 -0
- package/dist/widget-types/src/dashboard/content-type.d.ts +2 -0
- package/dist/widget-types/src/dashboard/dashboard.d.ts +37 -0
- package/dist/widget-types/src/dashboard/discord-webhook.d.ts +16 -0
- package/dist/widget-types/src/dashboard/docs.d.ts +38 -0
- package/dist/widget-types/src/dashboard/file-diff.d.ts +66 -0
- package/dist/widget-types/src/dashboard/file-read.d.ts +41 -0
- package/dist/widget-types/src/dashboard/file-status.d.ts +20 -0
- package/dist/widget-types/src/dashboard/gh.d.ts +130 -0
- package/dist/widget-types/src/dashboard/git-status.d.ts +32 -0
- package/dist/widget-types/src/dashboard/github.d.ts +10 -0
- package/dist/widget-types/src/dashboard/http.d.ts +28 -0
- package/dist/widget-types/src/dashboard/interventions.d.ts +66 -0
- package/dist/widget-types/src/dashboard/keys.d.ts +30 -0
- package/dist/widget-types/src/dashboard/models.d.ts +24 -0
- package/dist/widget-types/src/dashboard/open-in-app.d.ts +42 -0
- package/dist/widget-types/src/dashboard/open-questions.d.ts +52 -0
- package/dist/widget-types/src/dashboard/overview.d.ts +77 -0
- package/dist/widget-types/src/dashboard/projects.d.ts +89 -0
- package/dist/widget-types/src/dashboard/pull-requests.d.ts +126 -0
- package/dist/widget-types/src/dashboard/queue.d.ts +16 -0
- package/dist/widget-types/src/dashboard/quota.d.ts +59 -0
- package/dist/widget-types/src/dashboard/remote-run.d.ts +94 -0
- package/dist/widget-types/src/dashboard/rpc-serve.d.ts +102 -0
- package/dist/widget-types/src/dashboard/run-inbox.d.ts +30 -0
- package/dist/widget-types/src/dashboard/scheduler-state.d.ts +64 -0
- package/dist/widget-types/src/dashboard/tickets.d.ts +28 -0
- package/dist/widget-types/src/dashboard/types.d.ts +99 -0
- package/dist/widget-types/src/dashboard/widget-serve.d.ts +14 -0
- package/dist/widget-types/src/dashboard-rpc/context.d.ts +53 -0
- package/dist/widget-types/src/dashboard-rpc/control.d.ts +108 -0
- package/dist/widget-types/src/dashboard-rpc/devices.d.ts +8 -0
- package/dist/widget-types/src/dashboard-rpc/events-tail.d.ts +53 -0
- package/dist/widget-types/src/dashboard-rpc/events.d.ts +29 -0
- package/dist/widget-types/src/dashboard-rpc/index.d.ts +28 -0
- package/dist/widget-types/src/dashboard-rpc/models.d.ts +3 -0
- package/dist/widget-types/src/dashboard-rpc/preferences.d.ts +40 -0
- package/dist/widget-types/src/dashboard-rpc/projects.d.ts +54 -0
- package/dist/widget-types/src/dashboard-rpc/quota.d.ts +26 -0
- package/dist/widget-types/src/dashboard-rpc/reads.d.ts +227 -0
- package/dist/widget-types/src/dashboard-rpc/relay-agent.d.ts +8 -0
- package/dist/widget-types/src/dashboard-rpc/stream-forward.d.ts +16 -0
- package/dist/widget-types/src/dashboard-rpc/widgets.d.ts +32 -0
- package/dist/widget-types/src/discord-credentials.d.ts +79 -0
- package/dist/widget-types/src/driver-names.d.ts +21 -0
- package/dist/widget-types/src/error-message.d.ts +7 -0
- package/dist/widget-types/src/event-stream.d.ts +32 -0
- package/dist/widget-types/src/events.d.ts +235 -0
- package/dist/widget-types/src/framework-dir.d.ts +10 -0
- package/dist/widget-types/src/framework-gitignore.d.ts +11 -0
- package/dist/widget-types/src/index.d.ts +42 -0
- package/dist/widget-types/src/jsonl-tail.d.ts +54 -0
- package/dist/widget-types/src/loopback-host.d.ts +19 -0
- package/dist/widget-types/src/node-fs.d.ts +32 -0
- package/dist/widget-types/src/open-choices.d.ts +14 -0
- package/dist/widget-types/src/pick-directory.d.ts +29 -0
- package/dist/widget-types/src/preference-defaults.d.ts +53 -0
- package/dist/widget-types/src/project-commands.d.ts +23 -0
- package/dist/widget-types/src/project-errors.d.ts +43 -0
- package/dist/widget-types/src/project-hooks.d.ts +133 -0
- package/dist/widget-types/src/project-presets.d.ts +29 -0
- package/dist/widget-types/src/project-widgets.d.ts +45 -0
- package/dist/widget-types/src/project.d.ts +28 -0
- package/dist/widget-types/src/quota-boundary.d.ts +115 -0
- package/dist/widget-types/src/quota-poller.d.ts +82 -0
- package/dist/widget-types/src/registry.d.ts +210 -0
- package/dist/widget-types/src/store/agent-checkout.d.ts +46 -0
- package/dist/widget-types/src/store/agent-store.d.ts +237 -0
- package/dist/widget-types/src/store/branches.d.ts +133 -0
- package/dist/widget-types/src/store/forge.d.ts +109 -0
- package/dist/widget-types/src/store/git-host.d.ts +111 -0
- package/dist/widget-types/src/store/index.d.ts +9 -0
- package/dist/widget-types/src/store/provided.d.ts +16 -0
- package/dist/widget-types/src/store/queue.d.ts +45 -0
- package/dist/widget-types/src/store/run-record.d.ts +21 -0
- package/dist/widget-types/src/store/runs.d.ts +101 -0
- package/dist/widget-types/src/store/tickets.d.ts +72 -0
- package/dist/widget-types/src/tickets.d.ts +17 -0
- package/dist/widget-types/src/worktrees.d.ts +89 -0
- package/dist/widget.css +50 -0
- package/dist/worktrees.d.ts +90 -0
- package/dist/worktrees.d.ts.map +1 -0
- package/dist/worktrees.js +123 -0
- package/dist/worktrees.js.map +1 -0
- package/package.json +103 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-read.js","sourceRoot":"","sources":["../../src/dashboard/file-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type GitRunner } from '@gemstack/agent-data';
|
|
2
|
+
/**
|
|
3
|
+
* The tree's per-file git state. `added` is a file a commit created (a run's committed change,
|
|
4
|
+
* `agent-tree.ts`); the working tree's status here never says it, a new file there is `untracked`.
|
|
5
|
+
*/
|
|
6
|
+
export type FileGitStatus = 'untracked' | 'added' | 'modified' | 'deleted';
|
|
7
|
+
/** One `git status --porcelain` line: the two status columns and the path they are about. */
|
|
8
|
+
export interface PorcelainEntry {
|
|
9
|
+
code: string;
|
|
10
|
+
/** Repo-relative; a rename resolves to the new path. */
|
|
11
|
+
path: string;
|
|
12
|
+
}
|
|
13
|
+
/** Parse `git status --porcelain` output. Shared with the handoff's pending-files read (#1173). */
|
|
14
|
+
export declare function parsePorcelain(out: string): PorcelainEntry[];
|
|
15
|
+
/**
|
|
16
|
+
* Read each changed file's status from `git status --porcelain`, keyed by repo-relative path.
|
|
17
|
+
* `??` is untracked, a `D` in either column is deleted, anything else (M/A/R/C…) reads as
|
|
18
|
+
* modified. Renames map to the new path. Returns `{}` when the path is not a git repo.
|
|
19
|
+
*/
|
|
20
|
+
export declare function readFileStatuses(cwd: string, git?: GitRunner): Promise<Record<string, FileGitStatus>>;
|
|
21
|
+
//# sourceMappingURL=file-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-status.d.ts","sourceRoot":"","sources":["../../src/dashboard/file-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAKpE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;AAO1E,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;CACb;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAa5D;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,SAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAO5H"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { nodeGitRunner } from '@gemstack/agent-data';
|
|
2
|
+
/** Strip git's surrounding quotes from a path with special chars (basic; leaves escapes as-is). */
|
|
3
|
+
function unquotePath(path) {
|
|
4
|
+
return path.length >= 2 && path.startsWith('"') && path.endsWith('"') ? path.slice(1, -1) : path;
|
|
5
|
+
}
|
|
6
|
+
/** Parse `git status --porcelain` output. Shared with the handoff's pending-files read (#1173). */
|
|
7
|
+
export function parsePorcelain(out) {
|
|
8
|
+
const entries = [];
|
|
9
|
+
for (const line of out.split('\n')) {
|
|
10
|
+
if (line.length < 4)
|
|
11
|
+
continue;
|
|
12
|
+
const code = line.slice(0, 2);
|
|
13
|
+
let path = line.slice(3);
|
|
14
|
+
const arrow = path.indexOf(' -> ');
|
|
15
|
+
if (arrow !== -1)
|
|
16
|
+
path = path.slice(arrow + 4); // a rename: the new path is the one that exists
|
|
17
|
+
path = unquotePath(path);
|
|
18
|
+
if (!path)
|
|
19
|
+
continue;
|
|
20
|
+
entries.push({ code, path });
|
|
21
|
+
}
|
|
22
|
+
return entries;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Read each changed file's status from `git status --porcelain`, keyed by repo-relative path.
|
|
26
|
+
* `??` is untracked, a `D` in either column is deleted, anything else (M/A/R/C…) reads as
|
|
27
|
+
* modified. Renames map to the new path. Returns `{}` when the path is not a git repo.
|
|
28
|
+
*/
|
|
29
|
+
export async function readFileStatuses(cwd, git = nodeGitRunner()) {
|
|
30
|
+
const out = await git(['status', '--porcelain'], cwd).catch(() => '');
|
|
31
|
+
const map = {};
|
|
32
|
+
for (const { code, path } of parsePorcelain(out)) {
|
|
33
|
+
map[path] = code === '??' ? 'untracked' : code.includes('D') ? 'deleted' : 'modified';
|
|
34
|
+
}
|
|
35
|
+
return map;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=file-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-status.js","sourceRoot":"","sources":["../../src/dashboard/file-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAA;AAWpE,mGAAmG;AACnG,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAClG,CAAC;AASD,mGAAmG;AACnG,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,OAAO,GAAqB,EAAE,CAAA;IACpC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAQ;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA,CAAC,gDAAgD;QAC/F,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QACxB,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,GAAG,GAAc,aAAa,EAAE;IAClF,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IACrE,MAAM,GAAG,GAAkC,EAAE,CAAA;IAC7C,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IACvF,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { type CliRunner } from '../cli-exec.js';
|
|
2
|
+
import { type Cached } from './cache.js';
|
|
3
|
+
/**
|
|
4
|
+
* The `gh` CLI, in one place: the JSON reads the dashboard makes of pull requests. Reads only:
|
|
5
|
+
* pushing, opening and merging are the project's branches provider's (`../store/branches.ts`).
|
|
6
|
+
*
|
|
7
|
+
* There were four separate `gh` adapters across three modules. Three were reads that each
|
|
8
|
+
* hand-rolled `execFile` + `JSON.parse` + a swallowed failure and each spelled the 8s timeout
|
|
9
|
+
* again, and two of those differed only in whether a branch positional was passed.
|
|
10
|
+
*/
|
|
11
|
+
/** Runs `gh`, resolving stdout and rejecting with the CLI's own stderr on failure. */
|
|
12
|
+
export type GhRunner = CliRunner;
|
|
13
|
+
/** A forgiving `gh --json` read: resolves `empty` when gh is missing/unauthed, or its output is not JSON. */
|
|
14
|
+
export declare function ghJson<T>(args: string[], cwd: string, empty: T, gh?: GhRunner): Promise<T>;
|
|
15
|
+
/** The PR opened for a branch, when there is one. */
|
|
16
|
+
export interface LinkedPr {
|
|
17
|
+
number: number;
|
|
18
|
+
url: string;
|
|
19
|
+
/** OPEN / MERGED / CLOSED (as gh reports it). */
|
|
20
|
+
state: string;
|
|
21
|
+
title: string;
|
|
22
|
+
/** ISO creation time, when the read included it: what tells one agent's PR from a predecessor's. */
|
|
23
|
+
createdAt?: string;
|
|
24
|
+
/**
|
|
25
|
+
* The head commit the PR covers, when the read included it (#1512): what tells "the branch's
|
|
26
|
+
* PR already landed everything" from "the session kept working after its PR merged".
|
|
27
|
+
*/
|
|
28
|
+
headRefOid?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A best-effort PR lookup, for a named branch or for the checkout's current branch. One type for
|
|
32
|
+
* both: the named-branch form is the general one, and "the current branch" is just omitting it.
|
|
33
|
+
*/
|
|
34
|
+
export type PrLookup = (cwd: string, branch?: string) => Promise<LinkedPr | undefined>;
|
|
35
|
+
/**
|
|
36
|
+
* The branch-addressed form, for a caller that always names one (#799): a finished session's
|
|
37
|
+
* worktree may be gone, so "the current branch" would silently be the project's, not the
|
|
38
|
+
* session's. Narrower than {@link PrLookup} on purpose, so that invariant is in the type.
|
|
39
|
+
*/
|
|
40
|
+
export type BranchPrLookup = (cwd: string, branch: string) => Promise<LinkedPr | undefined>;
|
|
41
|
+
/**
|
|
42
|
+
* The PR for `branch`, or for whatever branch `cwd` is on when none is named. Resolves undefined
|
|
43
|
+
* when gh is missing/unauthed or there is no PR.
|
|
44
|
+
*
|
|
45
|
+
* The named-branch form is what a finished session needs (#799): its worktree may be gone, so the
|
|
46
|
+
* checkout's current branch is the project's, not the session's. The fields are copied out rather
|
|
47
|
+
* than passed through, so a future `--json` addition cannot leak into what callers store.
|
|
48
|
+
*
|
|
49
|
+
* Every optional field {@link LinkedPr} declares must be both asked for and copied out here, or it
|
|
50
|
+
* is silently absent for every caller of this path. `createdAt` was once neither, and it is what
|
|
51
|
+
* tells an agent's own PR from a predecessor's on the same branch name ({@link pickAgentPr}).
|
|
52
|
+
*/
|
|
53
|
+
export declare function ghPrView(cwd: string, branch?: string, gh?: GhRunner): Promise<LinkedPr | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* The cached form of {@link ghPrView} (#1028), and what the dashboard's panels use.
|
|
56
|
+
*
|
|
57
|
+
* A PR lookup costs about 600ms where the git reads beside it cost ten, and the answer changes
|
|
58
|
+
* about as often as someone opens a PR. Cached per checkout and branch, shared between the
|
|
59
|
+
* worktree bar and the handoff summary, and refreshed behind whoever asks. `pending` says the
|
|
60
|
+
* answer is not known yet rather than that there is no PR — the difference matters to a caller
|
|
61
|
+
* deciding whether to offer "Open PR".
|
|
62
|
+
*/
|
|
63
|
+
export declare function cachedPrView(cwd: string, branch?: string): Promise<Cached<LinkedPr | undefined>>;
|
|
64
|
+
/** Forget a branch's PR, after an action that changes whether it has one. */
|
|
65
|
+
export declare function forgetPr(cwd: string, branch?: string): void;
|
|
66
|
+
/**
|
|
67
|
+
* Every PR a branch name has ever had, newest first (#1251).
|
|
68
|
+
*
|
|
69
|
+
* `gh pr view <branch>` answers with the newest PR for that head *in any state*, so a session
|
|
70
|
+
* whose prompt pins its branch name (`the-framework/triage-quick`) inherits a predecessor's
|
|
71
|
+
* merged PR as its own. The list form keeps the whole history so {@link pickAgentPr} can decide
|
|
72
|
+
* which entry, if any, belongs to the agent asking. Resolves `[]` when gh is missing/unauthed —
|
|
73
|
+
* indistinguishable from "no PRs", which is what every caller would do with a failure anyway.
|
|
74
|
+
*/
|
|
75
|
+
export declare function ghPrsForBranch(cwd: string, branch: string): Promise<LinkedPr[]>;
|
|
76
|
+
/**
|
|
77
|
+
* {@link ghPrsForBranch} for a caller about to *open* a PR (#1601): a listing that fails throws
|
|
78
|
+
* instead of reading as "no PRs", because "none" and "could not tell" must not look alike there —
|
|
79
|
+
* the difference is a second draft PR on a branch that already has one.
|
|
80
|
+
*/
|
|
81
|
+
export declare function ghPrsForBranchOrThrow(cwd: string, branch: string): Promise<LinkedPr[]>;
|
|
82
|
+
/** The cached form of {@link ghPrsForBranch}, shared through the same read-through cache (#1028). */
|
|
83
|
+
export declare function cachedPrsForBranch(cwd: string, branch: string): Promise<Cached<LinkedPr[]>>;
|
|
84
|
+
/** Forget a branch's PR history, after an action that changes it (opening one). */
|
|
85
|
+
export declare function forgetBranchPrs(cwd: string, branch: string): void;
|
|
86
|
+
/**
|
|
87
|
+
* The PR that belongs to an agent, out of every PR its branch name has had (#1251/#1255).
|
|
88
|
+
*
|
|
89
|
+
* An OPEN PR always counts: GitHub allows one open PR per head branch, so whatever is open on the
|
|
90
|
+
* run's branch is where its pushed commits land. A closed one counts only when it was created
|
|
91
|
+
* after the agent started (`since`, the agent's `startedAt`) — the oldest such entry, which is the one
|
|
92
|
+
* this agent's handoff opened. Anything older is a previous agent's PR wearing the same branch name,
|
|
93
|
+
* which is exactly what showed a merged two-day-old PR as a fresh session's own. Without `since`
|
|
94
|
+
* only an open PR is trusted.
|
|
95
|
+
*
|
|
96
|
+
* `order` exists for the one caller asking a different question (#1512). `'first'` answers
|
|
97
|
+
* identity — which PR did *this agent* open, so a later agent's must not be the answer. `'latest'`
|
|
98
|
+
* answers the handoff decision — which PR last saw the branch, so "did the session keep working
|
|
99
|
+
* past it" is readable off that PR's `headRefOid`; there the oldest entry would call work that a
|
|
100
|
+
* second PR already landed unlanded.
|
|
101
|
+
*/
|
|
102
|
+
export declare function pickAgentPr(prs: LinkedPr[], since?: string, order?: 'first' | 'latest'): LinkedPr | undefined;
|
|
103
|
+
/** An open PR on the interventions queue (#632). */
|
|
104
|
+
export interface OpenPr {
|
|
105
|
+
number: number;
|
|
106
|
+
title: string;
|
|
107
|
+
url: string;
|
|
108
|
+
/**
|
|
109
|
+
* Draft PRs are generally left off the queue: a draft is not asking for review.
|
|
110
|
+
*
|
|
111
|
+
* The exception is a draft the framework opened for itself (#1102), which {@link headRefName}
|
|
112
|
+
* is what tells apart.
|
|
113
|
+
*/
|
|
114
|
+
isDraft: boolean;
|
|
115
|
+
/** The branch the PR is from, so a session's own PR can be recognised as ours (#1102). */
|
|
116
|
+
headRefName?: string;
|
|
117
|
+
createdAt?: string;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* A checkout's open PRs. Unlike the other reads here it *rejects* when gh could not answer — no
|
|
121
|
+
* remote, not authenticated, GitHub unreachable — instead of resolving `[]`.
|
|
122
|
+
*
|
|
123
|
+
* "No PRs are open" and "I could not look" are different answers, and its caller keeps a baseline
|
|
124
|
+
* of what it has already announced (#1623): taking the second for the first makes the next
|
|
125
|
+
* successful read announce every already-open PR as new. The caller decides what a failure costs;
|
|
126
|
+
* it cannot decide what it never hears about.
|
|
127
|
+
*/
|
|
128
|
+
export declare function ghPrList(cwd: string, gh?: GhRunner): Promise<OpenPr[]>;
|
|
129
|
+
/** Lists a checkout's open PRs; rejects when there is no remote / gh is unavailable. */
|
|
130
|
+
export type PrLister = (cwd: string) => Promise<OpenPr[]>;
|
|
131
|
+
//# sourceMappingURL=gh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gh.d.ts","sourceRoot":"","sources":["../../src/dashboard/gh.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { cliRunner } from '../cli-exec.js';
|
|
2
|
+
import { cachedRead, invalidate } from './cache.js';
|
|
3
|
+
/**
|
|
4
|
+
* Reads are capped short and never surface an error: every caller is a panel that renders
|
|
5
|
+
* whatever it got, and "gh is not installed" must cost a page load nothing.
|
|
6
|
+
*/
|
|
7
|
+
const readGh = cliRunner({ bin: 'gh', timeoutMs: 8_000 });
|
|
8
|
+
/** A forgiving `gh --json` read: resolves `empty` when gh is missing/unauthed, or its output is not JSON. */
|
|
9
|
+
export async function ghJson(args, cwd, empty, gh = readGh) {
|
|
10
|
+
try {
|
|
11
|
+
return JSON.parse(await gh(args, cwd));
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return empty;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const PR_VIEW_FIELDS = 'number,url,state,title,createdAt,headRefOid';
|
|
18
|
+
/**
|
|
19
|
+
* The PR for `branch`, or for whatever branch `cwd` is on when none is named. Resolves undefined
|
|
20
|
+
* when gh is missing/unauthed or there is no PR.
|
|
21
|
+
*
|
|
22
|
+
* The named-branch form is what a finished session needs (#799): its worktree may be gone, so the
|
|
23
|
+
* checkout's current branch is the project's, not the session's. The fields are copied out rather
|
|
24
|
+
* than passed through, so a future `--json` addition cannot leak into what callers store.
|
|
25
|
+
*
|
|
26
|
+
* Every optional field {@link LinkedPr} declares must be both asked for and copied out here, or it
|
|
27
|
+
* is silently absent for every caller of this path. `createdAt` was once neither, and it is what
|
|
28
|
+
* tells an agent's own PR from a predecessor's on the same branch name ({@link pickAgentPr}).
|
|
29
|
+
*/
|
|
30
|
+
export async function ghPrView(cwd, branch, gh = readGh) {
|
|
31
|
+
const args = ['pr', 'view', ...(branch ? [branch] : []), '--json', PR_VIEW_FIELDS];
|
|
32
|
+
const pr = await ghJson(args, cwd, undefined, gh);
|
|
33
|
+
return pr
|
|
34
|
+
? {
|
|
35
|
+
number: pr.number,
|
|
36
|
+
url: pr.url,
|
|
37
|
+
state: pr.state,
|
|
38
|
+
title: pr.title,
|
|
39
|
+
...(pr.createdAt ? { createdAt: pr.createdAt } : {}),
|
|
40
|
+
...(pr.headRefOid ? { headRefOid: pr.headRefOid } : {}),
|
|
41
|
+
}
|
|
42
|
+
: undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The cached form of {@link ghPrView} (#1028), and what the dashboard's panels use.
|
|
46
|
+
*
|
|
47
|
+
* A PR lookup costs about 600ms where the git reads beside it cost ten, and the answer changes
|
|
48
|
+
* about as often as someone opens a PR. Cached per checkout and branch, shared between the
|
|
49
|
+
* worktree bar and the handoff summary, and refreshed behind whoever asks. `pending` says the
|
|
50
|
+
* answer is not known yet rather than that there is no PR — the difference matters to a caller
|
|
51
|
+
* deciding whether to offer "Open PR".
|
|
52
|
+
*/
|
|
53
|
+
export async function cachedPrView(cwd, branch) {
|
|
54
|
+
return cachedRead(prCacheKey(cwd, branch), () => ghPrView(cwd, branch));
|
|
55
|
+
}
|
|
56
|
+
/** Forget a branch's PR, after an action that changes whether it has one. */
|
|
57
|
+
export function forgetPr(cwd, branch) {
|
|
58
|
+
invalidate(prCacheKey(cwd, branch));
|
|
59
|
+
}
|
|
60
|
+
function prCacheKey(cwd, branch) {
|
|
61
|
+
return `pr\u0000${cwd}\u0000${branch ?? ''}`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Every PR a branch name has ever had, newest first (#1251).
|
|
65
|
+
*
|
|
66
|
+
* `gh pr view <branch>` answers with the newest PR for that head *in any state*, so a session
|
|
67
|
+
* whose prompt pins its branch name (`the-framework/triage-quick`) inherits a predecessor's
|
|
68
|
+
* merged PR as its own. The list form keeps the whole history so {@link pickAgentPr} can decide
|
|
69
|
+
* which entry, if any, belongs to the agent asking. Resolves `[]` when gh is missing/unauthed —
|
|
70
|
+
* indistinguishable from "no PRs", which is what every caller would do with a failure anyway.
|
|
71
|
+
*/
|
|
72
|
+
export async function ghPrsForBranch(cwd, branch) {
|
|
73
|
+
return linkedPrs(await ghJson(prListArgs(branch), cwd, []));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* {@link ghPrsForBranch} for a caller about to *open* a PR (#1601): a listing that fails throws
|
|
77
|
+
* instead of reading as "no PRs", because "none" and "could not tell" must not look alike there —
|
|
78
|
+
* the difference is a second draft PR on a branch that already has one.
|
|
79
|
+
*/
|
|
80
|
+
export async function ghPrsForBranchOrThrow(cwd, branch) {
|
|
81
|
+
return linkedPrs(JSON.parse(await readGh(prListArgs(branch), cwd)));
|
|
82
|
+
}
|
|
83
|
+
function prListArgs(branch) {
|
|
84
|
+
return ['pr', 'list', '--head', branch, '--state', 'all', '--limit', '20', '--json', 'number,url,state,title,createdAt,headRefOid'];
|
|
85
|
+
}
|
|
86
|
+
function linkedPrs(prs) {
|
|
87
|
+
return prs.map(pr => ({
|
|
88
|
+
number: pr.number,
|
|
89
|
+
url: pr.url,
|
|
90
|
+
state: pr.state,
|
|
91
|
+
title: pr.title,
|
|
92
|
+
...(pr.createdAt ? { createdAt: pr.createdAt } : {}),
|
|
93
|
+
...(pr.headRefOid ? { headRefOid: pr.headRefOid } : {}),
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
/** The cached form of {@link ghPrsForBranch}, shared through the same read-through cache (#1028). */
|
|
97
|
+
export async function cachedPrsForBranch(cwd, branch) {
|
|
98
|
+
return cachedRead(branchPrsCacheKey(cwd, branch), () => ghPrsForBranch(cwd, branch));
|
|
99
|
+
}
|
|
100
|
+
/** Forget a branch's PR history, after an action that changes it (opening one). */
|
|
101
|
+
export function forgetBranchPrs(cwd, branch) {
|
|
102
|
+
invalidate(branchPrsCacheKey(cwd, branch));
|
|
103
|
+
}
|
|
104
|
+
/** Same unprintable separator idea as `prCacheKey`, spelled so paths cannot collide with it. */
|
|
105
|
+
const KEY_SEP = String.fromCharCode(0);
|
|
106
|
+
function branchPrsCacheKey(cwd, branch) {
|
|
107
|
+
return ['prs', cwd, branch].join(KEY_SEP);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The PR that belongs to an agent, out of every PR its branch name has had (#1251/#1255).
|
|
111
|
+
*
|
|
112
|
+
* An OPEN PR always counts: GitHub allows one open PR per head branch, so whatever is open on the
|
|
113
|
+
* run's branch is where its pushed commits land. A closed one counts only when it was created
|
|
114
|
+
* after the agent started (`since`, the agent's `startedAt`) — the oldest such entry, which is the one
|
|
115
|
+
* this agent's handoff opened. Anything older is a previous agent's PR wearing the same branch name,
|
|
116
|
+
* which is exactly what showed a merged two-day-old PR as a fresh session's own. Without `since`
|
|
117
|
+
* only an open PR is trusted.
|
|
118
|
+
*
|
|
119
|
+
* `order` exists for the one caller asking a different question (#1512). `'first'` answers
|
|
120
|
+
* identity — which PR did *this agent* open, so a later agent's must not be the answer. `'latest'`
|
|
121
|
+
* answers the handoff decision — which PR last saw the branch, so "did the session keep working
|
|
122
|
+
* past it" is readable off that PR's `headRefOid`; there the oldest entry would call work that a
|
|
123
|
+
* second PR already landed unlanded.
|
|
124
|
+
*/
|
|
125
|
+
export function pickAgentPr(prs, since, order = 'first') {
|
|
126
|
+
const open = prs.find(pr => pr.state === 'OPEN');
|
|
127
|
+
if (open)
|
|
128
|
+
return open;
|
|
129
|
+
if (!since)
|
|
130
|
+
return undefined;
|
|
131
|
+
const closed = prs
|
|
132
|
+
.filter(pr => pr.createdAt && pr.createdAt >= since)
|
|
133
|
+
.sort((a, b) => ((a.createdAt ?? '') < (b.createdAt ?? '') ? -1 : 1));
|
|
134
|
+
return order === 'latest' ? closed.at(-1) : closed[0];
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A checkout's open PRs. Unlike the other reads here it *rejects* when gh could not answer — no
|
|
138
|
+
* remote, not authenticated, GitHub unreachable — instead of resolving `[]`.
|
|
139
|
+
*
|
|
140
|
+
* "No PRs are open" and "I could not look" are different answers, and its caller keeps a baseline
|
|
141
|
+
* of what it has already announced (#1623): taking the second for the first makes the next
|
|
142
|
+
* successful read announce every already-open PR as new. The caller decides what a failure costs;
|
|
143
|
+
* it cannot decide what it never hears about.
|
|
144
|
+
*/
|
|
145
|
+
export async function ghPrList(cwd, gh = readGh) {
|
|
146
|
+
const fields = 'number,title,url,isDraft,headRefName,createdAt';
|
|
147
|
+
const args = ['pr', 'list', '--state', 'open', '--limit', '50', '--json', fields];
|
|
148
|
+
return JSON.parse(await gh(args, cwd));
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=gh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gh.js","sourceRoot":"","sources":["../../src/dashboard/gh.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type GitRunner } from '@openagt/agent-data';
|
|
2
|
+
import { type LinkedPr, type PrLookup } from './pull-requests.js';
|
|
3
|
+
/** A project's git status for the panel. */
|
|
4
|
+
export interface GitStatus {
|
|
5
|
+
branch: string;
|
|
6
|
+
/** Uncommitted changes present. */
|
|
7
|
+
dirty: boolean;
|
|
8
|
+
pr?: LinkedPr;
|
|
9
|
+
/** The PR is not known yet, rather than absent (#1028): the lookup is still running. */
|
|
10
|
+
prPending?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Injectable seams so {@link readGitStatus} is unit-testable off disk. */
|
|
13
|
+
export interface GitStatusDeps {
|
|
14
|
+
git?: GitRunner;
|
|
15
|
+
pr?: PrLookup;
|
|
16
|
+
/**
|
|
17
|
+
* The agent's start, when the status is read for an agent's checkout (#1255). The default lookup
|
|
18
|
+
* answers the newest PR for the branch *in any state* — so an agent on a reused pinned branch
|
|
19
|
+
* (`the-framework/triage-quick`) wears a predecessor's merged PR as its own badge.
|
|
20
|
+
* With `since` set the PR is picked from the branch's whole history by {@link pickAgentPr}
|
|
21
|
+
* instead: an open PR, or a closed one no older than the agent itself.
|
|
22
|
+
*/
|
|
23
|
+
since?: string;
|
|
24
|
+
/** The branch's full PR history, for the {@link GitStatusDeps.since} path (default {@link cachedPrsForBranch}). */
|
|
25
|
+
prs?: (cwd: string, branch: string) => Promise<LinkedPr[]>;
|
|
26
|
+
/**
|
|
27
|
+
* The project's folder, for a status read in a run's checkout: the branch's PR history is looked
|
|
28
|
+
* up and cached by it, as the run's handoff reads it, so the lookup the bar made while the run
|
|
29
|
+
* worked is warm once the run ends and its Open PR is asked about.
|
|
30
|
+
*/
|
|
31
|
+
prRoot?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The branch `cwd` has checked out, by its short name; `HEAD` when it is on no branch. Undefined
|
|
35
|
+
* when `cwd` is not a git repo, or git failed.
|
|
36
|
+
*/
|
|
37
|
+
export declare function currentBranch(cwd: string, git?: GitRunner): Promise<string | undefined>;
|
|
38
|
+
/**
|
|
39
|
+
* Read a project's git status: the current branch and dirty flag (from git), plus the linked
|
|
40
|
+
* PR (best-effort). Returns undefined when the path is not a git repo. Forgiving — a failed
|
|
41
|
+
* `git status` reads as clean, and a failed PR lookup simply omits the PR.
|
|
42
|
+
*/
|
|
43
|
+
export declare function readGitStatus(cwd: string, deps?: GitStatusDeps): Promise<GitStatus | undefined>;
|
|
44
|
+
//# sourceMappingURL=git-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-status.d.ts","sourceRoot":"","sources":["../../src/dashboard/git-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAiD,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAOhH,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,wFAAwF;IACxF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mHAAmH;IACnH,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1D;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,SAA2B,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE9G;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAUzG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { nodeGitRunner } from '@openagt/agent-data';
|
|
2
|
+
import { cachedPrView, cachedPrsForBranch, pickAgentPr } from './pull-requests.js';
|
|
3
|
+
/**
|
|
4
|
+
* The branch `cwd` has checked out, by its short name; `HEAD` when it is on no branch. Undefined
|
|
5
|
+
* when `cwd` is not a git repo, or git failed.
|
|
6
|
+
*/
|
|
7
|
+
export async function currentBranch(cwd, git = nodeGitRunner()) {
|
|
8
|
+
return git(['rev-parse', '--abbrev-ref', 'HEAD'], cwd).then(out => out.trim(), () => undefined);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Read a project's git status: the current branch and dirty flag (from git), plus the linked
|
|
12
|
+
* PR (best-effort). Returns undefined when the path is not a git repo. Forgiving — a failed
|
|
13
|
+
* `git status` reads as clean, and a failed PR lookup simply omits the PR.
|
|
14
|
+
*/
|
|
15
|
+
export async function readGitStatus(cwd, deps = {}) {
|
|
16
|
+
const git = deps.git ?? nodeGitRunner();
|
|
17
|
+
const branch = await currentBranch(cwd, git);
|
|
18
|
+
if (branch === undefined)
|
|
19
|
+
return undefined; // not a git repo (or git failed)
|
|
20
|
+
const dirty = (await git(['status', '--porcelain'], cwd).catch(() => '')).trim().length > 0;
|
|
21
|
+
// The branch and the dirty flag are what this row is for, and they are ten milliseconds of git.
|
|
22
|
+
// The PR is a git host read an order of magnitude slower, so it is read through the cache and is
|
|
23
|
+
// allowed to arrive late (#1028) rather than holding the whole row back on every poll.
|
|
24
|
+
const pr = await linkedPr(cwd, branch, deps);
|
|
25
|
+
return { branch, dirty, ...(pr.value ? { pr: pr.value } : {}), ...(pr.pending ? { prPending: true } : {}) };
|
|
26
|
+
}
|
|
27
|
+
/** The PR half of the status: the injected seam, the run-scoped history pick, or the plain view. */
|
|
28
|
+
async function linkedPr(cwd, branch, deps) {
|
|
29
|
+
if (deps.pr)
|
|
30
|
+
return { value: await deps.pr(cwd).catch(() => undefined), pending: false };
|
|
31
|
+
if (deps.since === undefined)
|
|
32
|
+
return cachedPrView(cwd, branch).catch(() => ({ value: undefined, pending: false }));
|
|
33
|
+
if (deps.prs)
|
|
34
|
+
return { value: pickAgentPr(await deps.prs(cwd, branch).catch(() => []), deps.since), pending: false };
|
|
35
|
+
return cachedPrsForBranch(deps.prRoot ?? cwd, branch).then(read => ({ value: pickAgentPr(read.value ?? [], deps.since), pending: read.pending }), () => ({ value: undefined, pending: false }));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=git-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-status.js","sourceRoot":"","sources":["../../src/dashboard/git-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type GitRunner } from '@gemstack/agent-data';
|
|
2
|
+
/**
|
|
3
|
+
* Normalize a git remote URL to an `https://github.com/<owner>/<repo>` URL, or undefined when
|
|
4
|
+
* it is not a GitHub remote. Handles the scp-style (`git@github.com:o/r.git`), ssh
|
|
5
|
+
* (`ssh://git@github.com/o/r.git`), and https (`https://github.com/o/r.git`) forms, dropping
|
|
6
|
+
* a `.git` suffix, an embedded credential, and a trailing slash.
|
|
7
|
+
*/
|
|
8
|
+
export declare function githubUrlFromRemote(remote: string): string | undefined;
|
|
9
|
+
/** The repo's GitHub URL from its `origin` remote, or undefined (no remote / not GitHub). */
|
|
10
|
+
export declare function githubUrlFor(cwd: string, git?: GitRunner): Promise<string | undefined>;
|
|
11
|
+
//# sourceMappingURL=github.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/dashboard/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAKpE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWtE;AAED,6FAA6F;AAC7F,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,SAA2B,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7G"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { nodeGitRunner } from '@gemstack/agent-data';
|
|
2
|
+
// The project panel's "Open on GitHub" (#489, part of #488). Derives the repo's github.com
|
|
3
|
+
// URL from its `origin` remote so the panel can link straight to it. A read of git state,
|
|
4
|
+
// safe anywhere — the relay has no local checkout, so it resolves to nothing there.
|
|
5
|
+
/**
|
|
6
|
+
* Normalize a git remote URL to an `https://github.com/<owner>/<repo>` URL, or undefined when
|
|
7
|
+
* it is not a GitHub remote. Handles the scp-style (`git@github.com:o/r.git`), ssh
|
|
8
|
+
* (`ssh://git@github.com/o/r.git`), and https (`https://github.com/o/r.git`) forms, dropping
|
|
9
|
+
* a `.git` suffix, an embedded credential, and a trailing slash.
|
|
10
|
+
*/
|
|
11
|
+
export function githubUrlFromRemote(remote) {
|
|
12
|
+
const url = remote.trim();
|
|
13
|
+
const match = url.match(/^git@github\.com:(.+?)$/) ||
|
|
14
|
+
url.match(/^ssh:\/\/git@github\.com\/(.+?)$/) ||
|
|
15
|
+
url.match(/^https?:\/\/(?:[^@/]+@)?github\.com\/(.+?)$/);
|
|
16
|
+
if (!match || !match[1])
|
|
17
|
+
return undefined;
|
|
18
|
+
const slug = match[1].replace(/\.git$/, '').replace(/\/$/, '');
|
|
19
|
+
// Guard against a junk capture: a GitHub slug is `owner/repo`, both non-empty.
|
|
20
|
+
if (!/^[^/]+\/[^/]+$/.test(slug))
|
|
21
|
+
return undefined;
|
|
22
|
+
return `https://github.com/${slug}`;
|
|
23
|
+
}
|
|
24
|
+
/** The repo's GitHub URL from its `origin` remote, or undefined (no remote / not GitHub). */
|
|
25
|
+
export async function githubUrlFor(cwd, git = nodeGitRunner()) {
|
|
26
|
+
try {
|
|
27
|
+
return githubUrlFromRemote(await git(['remote', 'get-url', 'origin'], cwd));
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=github.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/dashboard/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAA;AACpE,2FAA2F;AAC3F,0FAA0F;AAC1F,oFAAoF;AAEpF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IACzB,MAAM,KAAK,GACT,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC;QACpC,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAC1D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC9D,+EAA+E;IAC/E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAClD,OAAO,sBAAsB,IAAI,EAAE,CAAA;AACrC,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,GAAG,GAAc,aAAa,EAAE;IAC9E,IAAI,CAAC;QACH,OAAO,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
/**
|
|
3
|
+
* The plumbing every one of the daemon's non-RPC HTTP surfaces shares: the browser bridge
|
|
4
|
+
* (`/_bridge`), the web-start queue (`/_web-start`) and the device relay (`/_relay`).
|
|
5
|
+
*
|
|
6
|
+
* All three answer plain-text statuses, JSON payloads, and read capped JSON request bodies, and
|
|
7
|
+
* each carried its own copy — two body readers that differed only in which message they rejected
|
|
8
|
+
* with, and three identical status responders.
|
|
9
|
+
*/
|
|
10
|
+
/** Answer with a plain-text status line. */
|
|
11
|
+
export declare function end(res: ServerResponse, status: number, message: string, headers?: Record<string, string>): void;
|
|
12
|
+
/** Answer with a JSON payload. */
|
|
13
|
+
export declare function sendJson(res: ServerResponse, payload: unknown, status?: number): void;
|
|
14
|
+
/**
|
|
15
|
+
* Read a JSON body, refusing anything past the cap rather than buffering it. Rejects with
|
|
16
|
+
* `body too large` on overflow and `body must be JSON` on anything unparseable — the messages the
|
|
17
|
+
* bridge and web-start routes answer 400 with, so a caller learns which of the two it hit.
|
|
18
|
+
*/
|
|
19
|
+
export declare function readJsonBody(req: IncomingMessage, maxBytes: number): Promise<unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* The preamble every POST route runs: refuse a non-POST, then read the body. Answers the request
|
|
22
|
+
* itself on either failure and resolves `undefined`, so a caller's whole check is
|
|
23
|
+
* `const body = await readPost(...); if (body === undefined) return`. JSON has no `undefined`, so
|
|
24
|
+
* the sentinel cannot collide with a body that parsed.
|
|
25
|
+
*/
|
|
26
|
+
export declare function readPost(req: IncomingMessage, res: ServerResponse, maxBytes: number): Promise<unknown>;
|
|
27
|
+
/** Refuse anything but a GET, answering 405 itself. `false` means the request is already answered. */
|
|
28
|
+
export declare function requireGet(req: IncomingMessage, res: ServerResponse): boolean;
|
|
29
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/dashboard/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE;;;;;;;GAOG;AAEH,4CAA4C;AAC5C,wBAAgB,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,IAAI,CAGpH;AAED,kCAAkC;AAClC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,IAAI,CAGlF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBrF;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW5G;AAED,sGAAsG;AACtG,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAI7E"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The plumbing every one of the daemon's non-RPC HTTP surfaces shares: the browser bridge
|
|
3
|
+
* (`/_bridge`), the web-start queue (`/_web-start`) and the device relay (`/_relay`).
|
|
4
|
+
*
|
|
5
|
+
* All three answer plain-text statuses, JSON payloads, and read capped JSON request bodies, and
|
|
6
|
+
* each carried its own copy — two body readers that differed only in which message they rejected
|
|
7
|
+
* with, and three identical status responders.
|
|
8
|
+
*/
|
|
9
|
+
/** Answer with a plain-text status line. */
|
|
10
|
+
export function end(res, status, message, headers = {}) {
|
|
11
|
+
res.writeHead(status, { 'content-type': 'text/plain', ...headers });
|
|
12
|
+
res.end(message);
|
|
13
|
+
}
|
|
14
|
+
/** Answer with a JSON payload. */
|
|
15
|
+
export function sendJson(res, payload, status = 200) {
|
|
16
|
+
res.writeHead(status, { 'content-type': 'application/json' });
|
|
17
|
+
res.end(JSON.stringify(payload));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Read a JSON body, refusing anything past the cap rather than buffering it. Rejects with
|
|
21
|
+
* `body too large` on overflow and `body must be JSON` on anything unparseable — the messages the
|
|
22
|
+
* bridge and web-start routes answer 400 with, so a caller learns which of the two it hit.
|
|
23
|
+
*/
|
|
24
|
+
export function readJsonBody(req, maxBytes) {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
let size = 0;
|
|
27
|
+
const chunks = [];
|
|
28
|
+
req.on('data', (chunk) => {
|
|
29
|
+
size += chunk.length;
|
|
30
|
+
if (size > maxBytes) {
|
|
31
|
+
reject(new Error('body too large'));
|
|
32
|
+
req.destroy();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
chunks.push(chunk);
|
|
36
|
+
});
|
|
37
|
+
req.on('end', () => {
|
|
38
|
+
try {
|
|
39
|
+
resolve(JSON.parse(Buffer.concat(chunks).toString('utf8')));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
reject(new Error('body must be JSON'));
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
req.on('error', () => reject(new Error('read failed')));
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The preamble every POST route runs: refuse a non-POST, then read the body. Answers the request
|
|
50
|
+
* itself on either failure and resolves `undefined`, so a caller's whole check is
|
|
51
|
+
* `const body = await readPost(...); if (body === undefined) return`. JSON has no `undefined`, so
|
|
52
|
+
* the sentinel cannot collide with a body that parsed.
|
|
53
|
+
*/
|
|
54
|
+
export async function readPost(req, res, maxBytes) {
|
|
55
|
+
if (req.method !== 'POST') {
|
|
56
|
+
end(res, 405, 'method not allowed', { allow: 'POST' });
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
return await readJsonBody(req, maxBytes);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
end(res, 400, err.message);
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Refuse anything but a GET, answering 405 itself. `false` means the request is already answered. */
|
|
68
|
+
export function requireGet(req, res) {
|
|
69
|
+
if (req.method === 'GET')
|
|
70
|
+
return true;
|
|
71
|
+
end(res, 405, 'method not allowed', { allow: 'GET' });
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=http.js.map
|