@north-light/api 0.3.580 → 0.3.587
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/dist/api/client.d.ts +9 -2
- package/dist/api/client.js +22 -0
- package/dist/api/contract.d.ts +1 -1
- package/dist/api/contract.js +1 -1
- package/dist/api/dto/bash-jobs.d.ts +17 -0
- package/dist/api/dto/bash-jobs.js +2 -0
- package/dist/api/dto/execution-start.d.ts +14 -0
- package/dist/api/dto/health.d.ts +22 -0
- package/dist/api/dto/imports.d.ts +142 -0
- package/dist/api/dto/imports.js +2 -0
- package/dist/api/error-codes.d.ts +5 -0
- package/dist/api/error-codes.js +2 -0
- package/dist/api/errors.js +2 -1
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.js +1 -0
- package/dist/api/routes.d.ts +3 -0
- package/dist/api/routes.js +3 -0
- package/dist/build-root.d.ts +66 -0
- package/dist/build-root.js +401 -0
- package/dist/clients/attach/ansi-cells.d.ts +44 -0
- package/dist/clients/attach/ansi-cells.js +137 -0
- package/dist/clients/attach/chrome/bash-jobs.d.ts +16 -0
- package/dist/clients/attach/chrome/bash-jobs.js +34 -0
- package/dist/clients/attach/chrome/canvas-panels.d.ts +43 -0
- package/dist/clients/attach/chrome/canvas-panels.js +227 -0
- package/dist/clients/attach/chrome/completion-bell.d.ts +10 -0
- package/dist/clients/attach/chrome/completion-bell.js +89 -0
- package/dist/clients/attach/chrome/cron-wait.d.ts +3 -0
- package/dist/clients/attach/chrome/cron-wait.js +34 -0
- package/dist/clients/attach/chrome/git-info.d.ts +20 -0
- package/dist/clients/attach/chrome/git-info.js +44 -0
- package/dist/clients/attach/chrome/header.d.ts +10 -0
- package/dist/clients/attach/chrome/header.js +30 -0
- package/dist/clients/attach/chrome/inbox-strip.d.ts +36 -0
- package/dist/clients/attach/chrome/inbox-strip.js +219 -0
- package/dist/clients/attach/chrome/key-hint.d.ts +9 -0
- package/dist/clients/attach/chrome/key-hint.js +16 -0
- package/dist/clients/attach/chrome/object-wait.d.ts +4 -0
- package/dist/clients/attach/chrome/object-wait.js +24 -0
- package/dist/clients/attach/chrome/recap.d.ts +7 -0
- package/dist/clients/attach/chrome/recap.js +19 -0
- package/dist/clients/attach/chrome/review-wait.d.ts +6 -0
- package/dist/clients/attach/chrome/review-wait.js +22 -0
- package/dist/clients/attach/chrome/roster.d.ts +39 -0
- package/dist/clients/attach/chrome/roster.js +294 -0
- package/dist/clients/attach/chrome/status-line.d.ts +38 -0
- package/dist/clients/attach/chrome/status-line.js +127 -0
- package/dist/clients/attach/chrome/ticket-panel.d.ts +29 -0
- package/dist/clients/attach/chrome/ticket-panel.js +280 -0
- package/dist/clients/attach/chrome/widgets.d.ts +9 -0
- package/dist/clients/attach/chrome/widgets.js +51 -0
- package/dist/clients/attach/command.d.ts +3 -0
- package/dist/clients/attach/command.js +107 -0
- package/dist/clients/attach/config.d.ts +95 -0
- package/dist/clients/attach/config.js +275 -0
- package/dist/clients/attach/input/capabilities.d.ts +30 -0
- package/dist/clients/attach/input/capabilities.js +112 -0
- package/dist/clients/attach/input/clipboard-image.d.ts +55 -0
- package/dist/clients/attach/input/clipboard-image.js +237 -0
- package/dist/clients/attach/input/completion-frecency.d.ts +45 -0
- package/dist/clients/attach/input/completion-frecency.js +141 -0
- package/dist/clients/attach/input/controller.d.ts +92 -0
- package/dist/clients/attach/input/controller.js +383 -0
- package/dist/clients/attach/input/overlay-owner.d.ts +41 -0
- package/dist/clients/attach/input/overlay-owner.js +199 -0
- package/dist/clients/attach/input/ref-autocomplete.d.ts +77 -0
- package/dist/clients/attach/input/ref-autocomplete.js +176 -0
- package/dist/clients/attach/input/titled-editor.d.ts +225 -0
- package/dist/clients/attach/input/titled-editor.js +859 -0
- package/dist/clients/attach/overlays/auth.d.ts +13 -0
- package/dist/clients/attach/overlays/auth.js +247 -0
- package/dist/clients/attach/overlays/dialogs.d.ts +27 -0
- package/dist/clients/attach/overlays/dialogs.js +102 -0
- package/dist/clients/attach/overlays/file-review.d.ts +10 -0
- package/dist/clients/attach/overlays/file-review.js +146 -0
- package/dist/clients/attach/overlays/graph.d.ts +83 -0
- package/dist/clients/attach/overlays/graph.js +725 -0
- package/dist/clients/attach/overlays/help.d.ts +33 -0
- package/dist/clients/attach/overlays/help.js +214 -0
- package/dist/clients/attach/overlays/mcp.d.ts +32 -0
- package/dist/clients/attach/overlays/mcp.js +302 -0
- package/dist/clients/attach/overlays/pickers.d.ts +56 -0
- package/dist/clients/attach/overlays/pickers.js +163 -0
- package/dist/clients/attach/render/activity-slot.d.ts +4 -0
- package/dist/clients/attach/render/activity-slot.js +13 -0
- package/dist/clients/attach/render/assistant-message.d.ts +13 -0
- package/dist/clients/attach/render/assistant-message.js +56 -0
- package/dist/clients/attach/render/card-presentation.d.ts +36 -0
- package/dist/clients/attach/render/card-presentation.js +222 -0
- package/dist/clients/attach/render/chat-view.d.ts +409 -0
- package/dist/clients/attach/render/chat-view.js +2108 -0
- package/dist/clients/attach/render/condensed-history.d.ts +21 -0
- package/dist/clients/attach/render/condensed-history.js +60 -0
- package/dist/clients/attach/render/context-message.d.ts +22 -0
- package/dist/clients/attach/render/context-message.js +63 -0
- package/dist/clients/attach/render/crtr-output.d.ts +52 -0
- package/dist/clients/attach/render/crtr-output.js +721 -0
- package/dist/clients/attach/render/diagram.d.ts +4 -0
- package/dist/clients/attach/render/diagram.js +111 -0
- package/dist/clients/attach/render/doc-links.d.ts +36 -0
- package/dist/clients/attach/render/doc-links.js +78 -0
- package/dist/clients/attach/render/edit-diff.d.ts +12 -0
- package/dist/clients/attach/render/edit-diff.js +304 -0
- package/dist/clients/attach/render/glyph-codepoints.d.ts +3 -0
- package/dist/clients/attach/render/glyph-codepoints.js +42 -0
- package/dist/clients/attach/render/group-activity.d.ts +84 -0
- package/dist/clients/attach/render/group-activity.js +276 -0
- package/dist/clients/attach/render/group-recap.d.ts +13 -0
- package/dist/clients/attach/render/group-recap.js +146 -0
- package/dist/clients/attach/render/markdown-source.d.ts +21 -0
- package/dist/clients/attach/render/markdown-source.js +279 -0
- package/dist/clients/attach/render/measured-container.d.ts +96 -0
- package/dist/clients/attach/render/measured-container.js +322 -0
- package/dist/clients/attach/render/page-block.d.ts +39 -0
- package/dist/clients/attach/render/page-block.js +187 -0
- package/dist/clients/attach/render/scroll-animation.d.ts +8 -0
- package/dist/clients/attach/render/scroll-animation.js +80 -0
- package/dist/clients/attach/render/tool-calls.d.ts +53 -0
- package/dist/clients/attach/render/tool-calls.js +350 -0
- package/dist/clients/attach/render/transcript-copy.d.ts +9 -0
- package/dist/clients/attach/render/transcript-copy.js +81 -0
- package/dist/clients/attach/render/transcript-search.d.ts +28 -0
- package/dist/clients/attach/render/transcript-search.js +152 -0
- package/dist/clients/attach/render/viewport.d.ts +38 -0
- package/dist/clients/attach/render/viewport.js +184 -0
- package/dist/clients/attach/session/banner.d.ts +13 -0
- package/dist/clients/attach/session/banner.js +33 -0
- package/dist/clients/attach/session/bindings.d.ts +20 -0
- package/dist/clients/attach/session/bindings.js +71 -0
- package/dist/clients/attach/session/chrome-refresh.d.ts +49 -0
- package/dist/clients/attach/session/chrome-refresh.js +154 -0
- package/dist/clients/attach/session/connection.d.ts +54 -0
- package/dist/clients/attach/session/connection.js +204 -0
- package/dist/clients/attach/session/context.d.ts +59 -0
- package/dist/clients/attach/session/context.js +16 -0
- package/dist/clients/attach/session/document-links.d.ts +12 -0
- package/dist/clients/attach/session/document-links.js +43 -0
- package/dist/clients/attach/session/editor-frame.d.ts +47 -0
- package/dist/clients/attach/session/editor-frame.js +142 -0
- package/dist/clients/attach/session/editor-inventory.d.ts +63 -0
- package/dist/clients/attach/session/editor-inventory.js +156 -0
- package/dist/clients/attach/session/file-links.d.ts +22 -0
- package/dist/clients/attach/session/file-links.js +73 -0
- package/dist/clients/attach/session/focus-events.d.ts +4 -0
- package/dist/clients/attach/session/focus-events.js +12 -0
- package/dist/clients/attach/session/frame.d.ts +46 -0
- package/dist/clients/attach/session/frame.js +214 -0
- package/dist/clients/attach/session/frames.d.ts +51 -0
- package/dist/clients/attach/session/frames.js +203 -0
- package/dist/clients/attach/session/identity.d.ts +16 -0
- package/dist/clients/attach/session/identity.js +26 -0
- package/dist/clients/attach/session/input-wiring.d.ts +53 -0
- package/dist/clients/attach/session/input-wiring.js +146 -0
- package/dist/clients/attach/session/invariant.d.ts +9 -0
- package/dist/clients/attach/session/invariant.js +15 -0
- package/dist/clients/attach/session/keys.d.ts +46 -0
- package/dist/clients/attach/session/keys.js +77 -0
- package/dist/clients/attach/session/layout.d.ts +22 -0
- package/dist/clients/attach/session/layout.js +59 -0
- package/dist/clients/attach/session/mouse.d.ts +27 -0
- package/dist/clients/attach/session/mouse.js +78 -0
- package/dist/clients/attach/session/pane-focus.d.ts +8 -0
- package/dist/clients/attach/session/pane-focus.js +42 -0
- package/dist/clients/attach/session/pane-tag.d.ts +44 -0
- package/dist/clients/attach/session/pane-tag.js +112 -0
- package/dist/clients/attach/session/pi-assets.d.ts +1 -0
- package/dist/clients/attach/session/pi-assets.js +24 -0
- package/dist/clients/attach/session/pi-oauth-flows.d.ts +1 -0
- package/dist/clients/attach/session/pi-oauth-flows.js +21 -0
- package/dist/clients/attach/session/profile-files.d.ts +17 -0
- package/dist/clients/attach/session/profile-files.js +207 -0
- package/dist/clients/attach/session/readonly-popup.d.ts +15 -0
- package/dist/clients/attach/session/readonly-popup.js +25 -0
- package/dist/clients/attach/session/reconnect.d.ts +46 -0
- package/dist/clients/attach/session/reconnect.js +195 -0
- package/dist/clients/attach/session/selection.d.ts +28 -0
- package/dist/clients/attach/session/selection.js +108 -0
- package/dist/clients/attach/session/state-sync.d.ts +38 -0
- package/dist/clients/attach/session/state-sync.js +67 -0
- package/dist/clients/attach/session/surface-frame.d.ts +20 -0
- package/dist/clients/attach/session/surface-frame.js +73 -0
- package/dist/clients/attach/session/surface-host.d.ts +65 -0
- package/dist/clients/attach/session/surface-host.js +256 -0
- package/dist/clients/attach/session/teardown.d.ts +30 -0
- package/dist/clients/attach/session/teardown.js +94 -0
- package/dist/clients/attach/session/transcript-search.d.ts +20 -0
- package/dist/clients/attach/session/transcript-search.js +151 -0
- package/dist/clients/attach/session/whip-achievements.d.ts +4 -0
- package/dist/clients/attach/session/whip-achievements.js +145 -0
- package/dist/clients/attach/session/whip.d.ts +20 -0
- package/dist/clients/attach/session/whip.js +362 -0
- package/dist/clients/attach/slash/dispatch.d.ts +120 -0
- package/dist/clients/attach/slash/dispatch.js +748 -0
- package/dist/clients/attach/slash/prompt-preview.d.ts +30 -0
- package/dist/clients/attach/slash/prompt-preview.js +121 -0
- package/dist/clients/attach/viewer.d.ts +8 -0
- package/dist/clients/attach/viewer.js +873 -0
- package/dist/clients/conversation/projection.d.ts +79 -0
- package/dist/clients/conversation/projection.js +324 -0
- package/dist/clients/conversation/submit.d.ts +38 -0
- package/dist/clients/conversation/submit.js +51 -0
- package/dist/clients/dashboard/app.d.ts +7 -0
- package/dist/clients/dashboard/app.js +438 -0
- package/dist/clients/dashboard/model.d.ts +39 -0
- package/dist/clients/dashboard/model.js +77 -0
- package/dist/clients/dashboard/render.d.ts +29 -0
- package/dist/clients/dashboard/render.js +148 -0
- package/dist/clients/inbox/controller.d.ts +174 -0
- package/dist/clients/inbox/controller.js +816 -0
- package/dist/clients/inbox/dto-adapt.d.ts +28 -0
- package/dist/clients/inbox/dto-adapt.js +93 -0
- package/dist/clients/inbox/layout.d.ts +8 -0
- package/dist/clients/inbox/layout.js +9 -0
- package/dist/clients/inbox/page-adapter.d.ts +33 -0
- package/dist/clients/inbox/page-adapter.js +55 -0
- package/dist/clients/inbox/resolve.d.ts +16 -0
- package/dist/clients/inbox/resolve.js +35 -0
- package/dist/clients/inbox/review/anchors.d.ts +41 -0
- package/dist/clients/inbox/review/anchors.js +89 -0
- package/dist/clients/inbox/review/comments-client.d.ts +74 -0
- package/dist/clients/inbox/review/comments-client.js +103 -0
- package/dist/clients/inbox/review/companion-pane.d.ts +47 -0
- package/dist/clients/inbox/review/companion-pane.js +109 -0
- package/dist/clients/inbox/review/document-surface.d.ts +212 -0
- package/dist/clients/inbox/review/document-surface.js +1268 -0
- package/dist/clients/inbox/review/frame.d.ts +57 -0
- package/dist/clients/inbox/review/frame.js +309 -0
- package/dist/clients/inbox/review/keys.d.ts +69 -0
- package/dist/clients/inbox/review/keys.js +133 -0
- package/dist/clients/inbox/review/launch.d.ts +16 -0
- package/dist/clients/inbox/review/launch.js +170 -0
- package/dist/clients/inbox/review/live-source.d.ts +24 -0
- package/dist/clients/inbox/review/live-source.js +160 -0
- package/dist/clients/inbox/review/nvim.d.ts +15 -0
- package/dist/clients/inbox/review/nvim.js +43 -0
- package/dist/clients/inbox/review/remap.d.ts +51 -0
- package/dist/clients/inbox/review/remap.js +157 -0
- package/dist/clients/inbox/review/review-client.d.ts +43 -0
- package/dist/clients/inbox/review/review-client.js +123 -0
- package/dist/clients/inbox/review/roundtrip.d.ts +5 -0
- package/dist/clients/inbox/review/roundtrip.js +41 -0
- package/dist/clients/inbox/review/state.d.ts +153 -0
- package/dist/clients/inbox/review/state.js +315 -0
- package/dist/clients/inbox/review-adapter.d.ts +17 -0
- package/dist/clients/inbox/review-adapter.js +43 -0
- package/dist/clients/inbox/surface.d.ts +25 -0
- package/dist/clients/inbox/surface.js +190 -0
- package/dist/clients/inbox/tui/ansi.d.ts +68 -0
- package/dist/clients/inbox/tui/ansi.js +321 -0
- package/dist/clients/inbox/tui/input.d.ts +5 -0
- package/dist/clients/inbox/tui/input.js +392 -0
- package/dist/clients/inbox/tui/keys.d.ts +28 -0
- package/dist/clients/inbox/tui/keys.js +104 -0
- package/dist/clients/inbox/tui/page-body.d.ts +10 -0
- package/dist/clients/inbox/tui/page-body.js +69 -0
- package/dist/clients/inbox/tui/panel.d.ts +4 -0
- package/dist/clients/inbox/tui/panel.js +84 -0
- package/dist/clients/inbox/tui/render.d.ts +23 -0
- package/dist/clients/inbox/tui/render.js +378 -0
- package/dist/clients/inbox/tui/slots.d.ts +33 -0
- package/dist/clients/inbox/tui/slots.js +134 -0
- package/dist/clients/inbox/tui/types.d.ts +73 -0
- package/dist/clients/inbox/tui/types.js +1 -0
- package/dist/clients/inbox/tui.d.ts +17 -0
- package/dist/clients/inbox/tui.js +92 -0
- package/dist/clients/surfaces/host.d.ts +74 -0
- package/dist/clients/surfaces/host.js +1 -0
- package/dist/commands/api-client.d.ts +113 -0
- package/dist/commands/api-client.js +427 -0
- package/dist/commands/attention.d.ts +2 -0
- package/dist/commands/attention.js +215 -0
- package/dist/commands/canvas/edges.d.ts +2 -0
- package/dist/commands/canvas/edges.js +41 -0
- package/dist/commands/canvas/list.d.ts +4 -0
- package/dist/commands/canvas/list.js +79 -0
- package/dist/commands/canvas/read.d.ts +14 -0
- package/dist/commands/canvas/read.js +95 -0
- package/dist/commands/canvas/search.d.ts +2 -0
- package/dist/commands/canvas/search.js +49 -0
- package/dist/commands/canvas/share.d.ts +2 -0
- package/dist/commands/canvas/share.js +80 -0
- package/dist/commands/canvas/unwatch.d.ts +2 -0
- package/dist/commands/canvas/unwatch.js +42 -0
- package/dist/commands/canvas/watch.d.ts +3 -0
- package/dist/commands/canvas/watch.js +63 -0
- package/dist/commands/canvas-analytics/chart.d.ts +52 -0
- package/dist/commands/canvas-analytics/chart.js +124 -0
- package/dist/commands/canvas-analytics/drilldown.d.ts +34 -0
- package/dist/commands/canvas-analytics/drilldown.js +96 -0
- package/dist/commands/canvas-analytics/format.d.ts +29 -0
- package/dist/commands/canvas-analytics/format.js +106 -0
- package/dist/commands/canvas-analytics/graph-detail.d.ts +2 -0
- package/dist/commands/canvas-analytics/graph-detail.js +307 -0
- package/dist/commands/canvas-analytics/graphs.d.ts +9 -0
- package/dist/commands/canvas-analytics/graphs.js +365 -0
- package/dist/commands/canvas-analytics/memory.d.ts +2 -0
- package/dist/commands/canvas-analytics/memory.js +211 -0
- package/dist/commands/canvas-analytics/overview.d.ts +2 -0
- package/dist/commands/canvas-analytics/overview.js +189 -0
- package/dist/commands/canvas-analytics/shell.d.ts +60 -0
- package/dist/commands/canvas-analytics/shell.js +416 -0
- package/dist/commands/canvas-analytics/time.d.ts +2 -0
- package/dist/commands/canvas-analytics/time.js +228 -0
- package/dist/commands/canvas-analytics/usage.d.ts +2 -0
- package/dist/commands/canvas-analytics/usage.js +305 -0
- package/dist/commands/canvas-analytics/view.d.ts +85 -0
- package/dist/commands/canvas-analytics/view.js +102 -0
- package/dist/commands/canvas-analytics.d.ts +2 -0
- package/dist/commands/canvas-analytics.js +28 -0
- package/dist/commands/canvas-browse.d.ts +2 -0
- package/dist/commands/canvas-browse.js +71 -0
- package/dist/commands/canvas-config.d.ts +2 -0
- package/dist/commands/canvas-config.js +192 -0
- package/dist/commands/canvas-history/grep.d.ts +1 -0
- package/dist/commands/canvas-history/grep.js +85 -0
- package/dist/commands/canvas-history/read.d.ts +1 -0
- package/dist/commands/canvas-history/read.js +48 -0
- package/dist/commands/canvas-history/search.d.ts +1 -0
- package/dist/commands/canvas-history/search.js +99 -0
- package/dist/commands/canvas-history/shared.d.ts +34 -0
- package/dist/commands/canvas-history/shared.js +135 -0
- package/dist/commands/canvas-history/stats.d.ts +1 -0
- package/dist/commands/canvas-history/stats.js +68 -0
- package/dist/commands/canvas-history.d.ts +2 -0
- package/dist/commands/canvas-history.js +29 -0
- package/dist/commands/canvas-issue.d.ts +2 -0
- package/dist/commands/canvas-issue.js +148 -0
- package/dist/commands/canvas-prune.d.ts +2 -0
- package/dist/commands/canvas-prune.js +111 -0
- package/dist/commands/canvas-roster.d.ts +2 -0
- package/dist/commands/canvas-roster.js +69 -0
- package/dist/commands/canvas-snapshot.d.ts +2 -0
- package/dist/commands/canvas-snapshot.js +34 -0
- package/dist/commands/canvas-use.d.ts +1 -0
- package/dist/commands/canvas-use.js +61 -0
- package/dist/commands/canvas.d.ts +3 -0
- package/dist/commands/canvas.js +57 -0
- package/dist/commands/chord.d.ts +2 -0
- package/dist/commands/chord.js +241 -0
- package/dist/commands/cron.d.ts +2 -0
- package/dist/commands/cron.js +541 -0
- package/dist/commands/custom-object/ack.d.ts +2 -0
- package/dist/commands/custom-object/ack.js +30 -0
- package/dist/commands/custom-object/publish.d.ts +2 -0
- package/dist/commands/custom-object/publish.js +39 -0
- package/dist/commands/custom-object/receive.d.ts +2 -0
- package/dist/commands/custom-object/receive.js +69 -0
- package/dist/commands/custom-object/register.d.ts +2 -0
- package/dist/commands/custom-object/register.js +69 -0
- package/dist/commands/custom-object/shared.d.ts +5 -0
- package/dist/commands/custom-object/shared.js +14 -0
- package/dist/commands/custom-object/unregister.d.ts +2 -0
- package/dist/commands/custom-object/unregister.js +26 -0
- package/dist/commands/custom-object.d.ts +2 -0
- package/dist/commands/custom-object.js +21 -0
- package/dist/commands/dashboard.d.ts +2 -0
- package/dist/commands/dashboard.js +86 -0
- package/dist/commands/doc/delete.d.ts +2 -0
- package/dist/commands/doc/delete.js +30 -0
- package/dist/commands/doc/edit.d.ts +2 -0
- package/dist/commands/doc/edit.js +82 -0
- package/dist/commands/doc/history.d.ts +2 -0
- package/dist/commands/doc/history.js +38 -0
- package/dist/commands/doc/lint.d.ts +2 -0
- package/dist/commands/doc/lint.js +36 -0
- package/dist/commands/doc/list.d.ts +2 -0
- package/dist/commands/doc/list.js +19 -0
- package/dist/commands/doc/move.d.ts +2 -0
- package/dist/commands/doc/move.js +37 -0
- package/dist/commands/doc/read.d.ts +2 -0
- package/dist/commands/doc/read.js +19 -0
- package/dist/commands/doc/replace-blocks.d.ts +6 -0
- package/dist/commands/doc/replace-blocks.js +40 -0
- package/dist/commands/doc/shared.d.ts +25 -0
- package/dist/commands/doc/shared.js +160 -0
- package/dist/commands/doc/write.d.ts +2 -0
- package/dist/commands/doc/write.js +52 -0
- package/dist/commands/doc.d.ts +2 -0
- package/dist/commands/doc.js +27 -0
- package/dist/commands/human/components.d.ts +4 -0
- package/dist/commands/human/components.js +78 -0
- package/dist/commands/human/feedback.d.ts +2 -0
- package/dist/commands/human/feedback.js +112 -0
- package/dist/commands/human/prompts.d.ts +21 -0
- package/dist/commands/human/prompts.js +326 -0
- package/dist/commands/human/queue.d.ts +3 -0
- package/dist/commands/human/queue.js +191 -0
- package/dist/commands/human/request.d.ts +2 -0
- package/dist/commands/human/request.js +266 -0
- package/dist/commands/human/review.d.ts +2 -0
- package/dist/commands/human/review.js +288 -0
- package/dist/commands/human/shared.d.ts +16 -0
- package/dist/commands/human/shared.js +67 -0
- package/dist/commands/human.d.ts +2 -0
- package/dist/commands/human.js +63 -0
- package/dist/commands/node/bash.d.ts +1 -0
- package/dist/commands/node/bash.js +390 -0
- package/dist/commands/node/create.d.ts +6 -0
- package/dist/commands/node/create.js +363 -0
- package/dist/commands/node/inspect.d.ts +2 -0
- package/dist/commands/node/inspect.js +288 -0
- package/dist/commands/node/lifecycle.d.ts +4 -0
- package/dist/commands/node/lifecycle.js +577 -0
- package/dist/commands/node/message.d.ts +1 -0
- package/dist/commands/node/message.js +170 -0
- package/dist/commands/node/outcome.d.ts +2 -0
- package/dist/commands/node/outcome.js +133 -0
- package/dist/commands/node/pyramid.d.ts +2 -0
- package/dist/commands/node/pyramid.js +79 -0
- package/dist/commands/node/subscription.d.ts +1 -0
- package/dist/commands/node/subscription.js +78 -0
- package/dist/commands/node/wait.d.ts +1 -0
- package/dist/commands/node/wait.js +165 -0
- package/dist/commands/node-context.d.ts +2 -0
- package/dist/commands/node-context.js +145 -0
- package/dist/commands/node-lifecycle-revive.d.ts +12 -0
- package/dist/commands/node-lifecycle-revive.js +217 -0
- package/dist/commands/node-snapshot.d.ts +2 -0
- package/dist/commands/node-snapshot.js +37 -0
- package/dist/commands/node-transcript.d.ts +2 -0
- package/dist/commands/node-transcript.js +59 -0
- package/dist/commands/node-worktree.d.ts +2 -0
- package/dist/commands/node-worktree.js +138 -0
- package/dist/commands/node.d.ts +2 -0
- package/dist/commands/node.js +29 -0
- package/dist/commands/person-settings.d.ts +1 -0
- package/dist/commands/person-settings.js +23 -0
- package/dist/commands/pkg/browse/actions.d.ts +7 -0
- package/dist/commands/pkg/browse/actions.js +198 -0
- package/dist/commands/pkg/browse/catalog.d.ts +9 -0
- package/dist/commands/pkg/browse/catalog.js +461 -0
- package/dist/commands/pkg/browse/command-view.d.ts +3 -0
- package/dist/commands/pkg/browse/command-view.js +217 -0
- package/dist/commands/pkg/browse/detail-panel.d.ts +66 -0
- package/dist/commands/pkg/browse/detail-panel.js +402 -0
- package/dist/commands/pkg/browse/doc-view.d.ts +3 -0
- package/dist/commands/pkg/browse/doc-view.js +84 -0
- package/dist/commands/pkg/browse/list-panel.d.ts +28 -0
- package/dist/commands/pkg/browse/list-panel.js +168 -0
- package/dist/commands/pkg/browse/model.d.ts +223 -0
- package/dist/commands/pkg/browse/model.js +36 -0
- package/dist/commands/pkg/browse/shell.d.ts +93 -0
- package/dist/commands/pkg/browse/shell.js +640 -0
- package/dist/commands/pkg/browse.d.ts +2 -0
- package/dist/commands/pkg/browse.js +27 -0
- package/dist/commands/pkg/market-inspect.d.ts +2 -0
- package/dist/commands/pkg/market-inspect.js +141 -0
- package/dist/commands/pkg/market-manage.d.ts +16 -0
- package/dist/commands/pkg/market-manage.js +327 -0
- package/dist/commands/pkg/market.d.ts +1 -0
- package/dist/commands/pkg/market.js +14 -0
- package/dist/commands/pkg/plugin-env.d.ts +3 -0
- package/dist/commands/pkg/plugin-env.js +65 -0
- package/dist/commands/pkg/plugin-inspect.d.ts +2 -0
- package/dist/commands/pkg/plugin-inspect.js +168 -0
- package/dist/commands/pkg/plugin-manage.d.ts +98 -0
- package/dist/commands/pkg/plugin-manage.js +1024 -0
- package/dist/commands/pkg/plugin.d.ts +1 -0
- package/dist/commands/pkg/plugin.js +14 -0
- package/dist/commands/pkg/shared.d.ts +13 -0
- package/dist/commands/pkg/shared.js +62 -0
- package/dist/commands/pkg.d.ts +2 -0
- package/dist/commands/pkg.js +21 -0
- package/dist/commands/profile/daemon-profiles.d.ts +13 -0
- package/dist/commands/profile/daemon-profiles.js +38 -0
- package/dist/commands/profile/default.d.ts +2 -0
- package/dist/commands/profile/default.js +183 -0
- package/dist/commands/profile/delete.d.ts +1 -0
- package/dist/commands/profile/delete.js +66 -0
- package/dist/commands/profile/env.d.ts +8 -0
- package/dist/commands/profile/env.js +188 -0
- package/dist/commands/profile/kind.d.ts +1 -0
- package/dist/commands/profile/kind.js +27 -0
- package/dist/commands/profile/list.d.ts +1 -0
- package/dist/commands/profile/list.js +45 -0
- package/dist/commands/profile/meta.d.ts +4 -0
- package/dist/commands/profile/meta.js +65 -0
- package/dist/commands/profile/new.d.ts +1 -0
- package/dist/commands/profile/new.js +95 -0
- package/dist/commands/profile/pause.d.ts +2 -0
- package/dist/commands/profile/pause.js +59 -0
- package/dist/commands/profile/project.d.ts +2 -0
- package/dist/commands/profile/project.js +134 -0
- package/dist/commands/profile/rename.d.ts +1 -0
- package/dist/commands/profile/rename.js +41 -0
- package/dist/commands/profile/show.d.ts +1 -0
- package/dist/commands/profile/show.js +55 -0
- package/dist/commands/profile.d.ts +2 -0
- package/dist/commands/profile.js +35 -0
- package/dist/commands/push.d.ts +2 -0
- package/dist/commands/push.js +263 -0
- package/dist/commands/revive.d.ts +2 -0
- package/dist/commands/revive.js +183 -0
- package/dist/commands/surface/node/cycle.d.ts +1 -0
- package/dist/commands/surface/node/cycle.js +83 -0
- package/dist/commands/surface/node/focus.d.ts +1 -0
- package/dist/commands/surface/node/focus.js +60 -0
- package/dist/commands/surface/node/id.d.ts +1 -0
- package/dist/commands/surface/node/id.js +38 -0
- package/dist/commands/surface/node/pin.d.ts +1 -0
- package/dist/commands/surface/node/pin.js +42 -0
- package/dist/commands/surface/node/placement.d.ts +30 -0
- package/dist/commands/surface/node/placement.js +49 -0
- package/dist/commands/surface-dashboard.d.ts +2 -0
- package/dist/commands/surface-dashboard.js +138 -0
- package/dist/commands/surface-edit.d.ts +2 -0
- package/dist/commands/surface-edit.js +157 -0
- package/dist/commands/surface-inbox.d.ts +2 -0
- package/dist/commands/surface-inbox.js +98 -0
- package/dist/commands/surface-inspect.d.ts +2 -0
- package/dist/commands/surface-inspect.js +41 -0
- package/dist/commands/surface-node.d.ts +2 -0
- package/dist/commands/surface-node.js +19 -0
- package/dist/commands/surface-reload.d.ts +7 -0
- package/dist/commands/surface-reload.js +129 -0
- package/dist/commands/surface-tmux-spread.d.ts +2 -0
- package/dist/commands/surface-tmux-spread.js +214 -0
- package/dist/commands/surface.d.ts +2 -0
- package/dist/commands/surface.js +29 -0
- package/dist/commands/sys/branch.d.ts +2 -0
- package/dist/commands/sys/branch.js +19 -0
- package/dist/commands/sys/config.d.ts +1 -0
- package/dist/commands/sys/config.js +353 -0
- package/dist/commands/sys/connect.d.ts +1 -0
- package/dist/commands/sys/connect.js +185 -0
- package/dist/commands/sys/context/admin/actions.d.ts +23 -0
- package/dist/commands/sys/context/admin/actions.js +89 -0
- package/dist/commands/sys/context/admin/detail-panel.d.ts +73 -0
- package/dist/commands/sys/context/admin/detail-panel.js +233 -0
- package/dist/commands/sys/context/admin/docs-panel.d.ts +63 -0
- package/dist/commands/sys/context/admin/docs-panel.js +185 -0
- package/dist/commands/sys/context/admin/list-view.d.ts +62 -0
- package/dist/commands/sys/context/admin/list-view.js +170 -0
- package/dist/commands/sys/context/admin/model.d.ts +123 -0
- package/dist/commands/sys/context/admin/model.js +179 -0
- package/dist/commands/sys/context/admin/rail-panel.d.ts +84 -0
- package/dist/commands/sys/context/admin/rail-panel.js +229 -0
- package/dist/commands/sys/context/admin/read-view.d.ts +27 -0
- package/dist/commands/sys/context/admin/read-view.js +172 -0
- package/dist/commands/sys/context/admin/shell.d.ts +125 -0
- package/dist/commands/sys/context/admin/shell.js +870 -0
- package/dist/commands/sys/context/admin.d.ts +1 -0
- package/dist/commands/sys/context/admin.js +148 -0
- package/dist/commands/sys/context/doc.d.ts +1 -0
- package/dist/commands/sys/context/doc.js +126 -0
- package/dist/commands/sys/context/expose.d.ts +1 -0
- package/dist/commands/sys/context/expose.js +66 -0
- package/dist/commands/sys/context/prompt-review.d.ts +1 -0
- package/dist/commands/sys/context/prompt-review.js +244 -0
- package/dist/commands/sys/context/resolve.d.ts +115 -0
- package/dist/commands/sys/context/resolve.js +326 -0
- package/dist/commands/sys/context/sysprompt.d.ts +1 -0
- package/dist/commands/sys/context/sysprompt.js +95 -0
- package/dist/commands/sys/context.d.ts +2 -0
- package/dist/commands/sys/context.js +21 -0
- package/dist/commands/sys/daemon.d.ts +4 -0
- package/dist/commands/sys/daemon.js +334 -0
- package/dist/commands/sys/db.d.ts +1 -0
- package/dist/commands/sys/db.js +69 -0
- package/dist/commands/sys/desktop.d.ts +5 -0
- package/dist/commands/sys/desktop.js +201 -0
- package/dist/commands/sys/doctor.d.ts +36 -0
- package/dist/commands/sys/doctor.js +633 -0
- package/dist/commands/sys/env.d.ts +1 -0
- package/dist/commands/sys/env.js +39 -0
- package/dist/commands/sys/feedback.d.ts +1 -0
- package/dist/commands/sys/feedback.js +228 -0
- package/dist/commands/sys/import/move.d.ts +55 -0
- package/dist/commands/sys/import/move.js +391 -0
- package/dist/commands/sys/import/resume.d.ts +1 -0
- package/dist/commands/sys/import/resume.js +23 -0
- package/dist/commands/sys/import/start.d.ts +4 -0
- package/dist/commands/sys/import/start.js +92 -0
- package/dist/commands/sys/join.d.ts +3 -0
- package/dist/commands/sys/join.js +85 -0
- package/dist/commands/sys/limits.d.ts +1 -0
- package/dist/commands/sys/limits.js +133 -0
- package/dist/commands/sys/logs.d.ts +1 -0
- package/dist/commands/sys/logs.js +129 -0
- package/dist/commands/sys/machine/rotate.d.ts +1 -0
- package/dist/commands/sys/machine/rotate.js +49 -0
- package/dist/commands/sys/migrate.d.ts +1 -0
- package/dist/commands/sys/migrate.js +79 -0
- package/dist/commands/sys/panels/broker-limits-panel.d.ts +17 -0
- package/dist/commands/sys/panels/broker-limits-panel.js +110 -0
- package/dist/commands/sys/panels/dependencies-panel.d.ts +14 -0
- package/dist/commands/sys/panels/dependencies-panel.js +80 -0
- package/dist/commands/sys/panels/keybindings-panel.d.ts +56 -0
- package/dist/commands/sys/panels/keybindings-panel.js +703 -0
- package/dist/commands/sys/panels/models-panel.d.ts +106 -0
- package/dist/commands/sys/panels/models-panel.js +1160 -0
- package/dist/commands/sys/panels/plugin-env-panel.d.ts +19 -0
- package/dist/commands/sys/panels/plugin-env-panel.js +70 -0
- package/dist/commands/sys/panels/plugins-panel.d.ts +16 -0
- package/dist/commands/sys/panels/plugins-panel.js +87 -0
- package/dist/commands/sys/panels/prefs-panel.d.ts +22 -0
- package/dist/commands/sys/panels/prefs-panel.js +97 -0
- package/dist/commands/sys/panels/profiles-panel.d.ts +70 -0
- package/dist/commands/sys/panels/profiles-panel.js +655 -0
- package/dist/commands/sys/panels/provider-panel.d.ts +74 -0
- package/dist/commands/sys/panels/provider-panel.js +534 -0
- package/dist/commands/sys/panels/terminal-panel.d.ts +19 -0
- package/dist/commands/sys/panels/terminal-panel.js +67 -0
- package/dist/commands/sys/provider-login.d.ts +8 -0
- package/dist/commands/sys/provider-login.js +99 -0
- package/dist/commands/sys/retry-delivery.d.ts +1 -0
- package/dist/commands/sys/retry-delivery.js +33 -0
- package/dist/commands/sys/settings-shell.d.ts +54 -0
- package/dist/commands/sys/settings-shell.js +400 -0
- package/dist/commands/sys/settings.d.ts +2 -0
- package/dist/commands/sys/settings.js +46 -0
- package/dist/commands/sys/setup-core.d.ts +121 -0
- package/dist/commands/sys/setup-core.js +890 -0
- package/dist/commands/sys/setup-settings-runner.d.ts +13 -0
- package/dist/commands/sys/setup-settings-runner.js +15 -0
- package/dist/commands/sys/setup-wizard.d.ts +52 -0
- package/dist/commands/sys/setup-wizard.js +351 -0
- package/dist/commands/sys/setup.d.ts +6 -0
- package/dist/commands/sys/setup.js +41 -0
- package/dist/commands/sys/shared.d.ts +51 -0
- package/dist/commands/sys/shared.js +81 -0
- package/dist/commands/sys/signin.d.ts +7 -0
- package/dist/commands/sys/signin.js +149 -0
- package/dist/commands/sys/spaces.d.ts +1 -0
- package/dist/commands/sys/spaces.js +22 -0
- package/dist/commands/sys/spend.d.ts +1 -0
- package/dist/commands/sys/spend.js +144 -0
- package/dist/commands/sys/support/prepare.d.ts +13 -0
- package/dist/commands/sys/support/prepare.js +239 -0
- package/dist/commands/sys/support/submit.d.ts +19 -0
- package/dist/commands/sys/support/submit.js +524 -0
- package/dist/commands/sys/support.d.ts +2 -0
- package/dist/commands/sys/support.js +18 -0
- package/dist/commands/sys/sync-deps.d.ts +16 -0
- package/dist/commands/sys/sync-deps.js +445 -0
- package/dist/commands/sys/sync-project-guidance.d.ts +1 -0
- package/dist/commands/sys/sync-project-guidance.js +319 -0
- package/dist/commands/sys/sync-shared.d.ts +44 -0
- package/dist/commands/sys/sync-shared.js +139 -0
- package/dist/commands/sys/sync-skills.d.ts +1 -0
- package/dist/commands/sys/sync-skills.js +297 -0
- package/dist/commands/sys/sync.d.ts +2 -0
- package/dist/commands/sys/sync.js +17 -0
- package/dist/commands/sys/terminal-option.d.ts +112 -0
- package/dist/commands/sys/terminal-option.js +542 -0
- package/dist/commands/sys/tutorial/branch.d.ts +1 -0
- package/dist/commands/sys/tutorial/branch.js +15 -0
- package/dist/commands/sys/tutorial/lessons.d.ts +5 -0
- package/dist/commands/sys/tutorial/lessons.js +107 -0
- package/dist/commands/sys/tutorial/scenario.d.ts +1 -0
- package/dist/commands/sys/tutorial/scenario.js +431 -0
- package/dist/commands/sys/tutorial/tracks.d.ts +1 -0
- package/dist/commands/sys/tutorial/tracks.js +96 -0
- package/dist/commands/sys/update.d.ts +2 -0
- package/dist/commands/sys/update.js +157 -0
- package/dist/commands/sys/worktrees.d.ts +2 -0
- package/dist/commands/sys/worktrees.js +53 -0
- package/dist/commands/sys.d.ts +2 -0
- package/dist/commands/sys.js +31 -0
- package/dist/core/activity-signal.d.ts +7 -0
- package/dist/core/activity-signal.js +38 -0
- package/dist/core/async-array.d.ts +7 -0
- package/dist/core/async-array.js +48 -0
- package/dist/core/auth-file.d.ts +35 -0
- package/dist/core/auth-file.js +161 -0
- package/dist/core/auth-interaction.d.ts +19 -0
- package/dist/core/auth-interaction.js +94 -0
- package/dist/core/bash-guard.d.ts +6 -0
- package/dist/core/bash-guard.js +527 -0
- package/dist/core/bash-job-supervisor.d.ts +5 -0
- package/dist/core/bash-job-supervisor.js +144 -0
- package/dist/core/bash-jobs.d.ts +168 -0
- package/dist/core/bash-jobs.js +455 -0
- package/dist/core/blobs/directory.d.ts +11 -0
- package/dist/core/blobs/directory.js +216 -0
- package/dist/core/blobs/fault.d.ts +3 -0
- package/dist/core/blobs/fault.js +6 -0
- package/dist/core/blobs/index.d.ts +21 -0
- package/dist/core/blobs/index.js +30 -0
- package/dist/core/blobs/r2.d.ts +13 -0
- package/dist/core/blobs/r2.js +104 -0
- package/dist/core/broker-client/client.d.ts +89 -0
- package/dist/core/broker-client/client.js +184 -0
- package/dist/core/broker-client/index.d.ts +2 -0
- package/dist/core/broker-client/index.js +14 -0
- package/dist/core/broker-client/transport-relay.d.ts +47 -0
- package/dist/core/broker-client/transport-relay.js +165 -0
- package/dist/core/broker-client/transport-socket.d.ts +35 -0
- package/dist/core/broker-client/transport-socket.js +187 -0
- package/dist/core/broker-client/transport.d.ts +46 -0
- package/dist/core/broker-client/transport.js +40 -0
- package/dist/core/canvas/app-run.d.ts +3 -0
- package/dist/core/canvas/app-run.js +4 -0
- package/dist/core/canvas/attention.d.ts +18 -0
- package/dist/core/canvas/attention.js +47 -0
- package/dist/core/canvas/browse/app.d.ts +29 -0
- package/dist/core/canvas/browse/app.js +1050 -0
- package/dist/core/canvas/browse/model.d.ts +176 -0
- package/dist/core/canvas/browse/model.js +477 -0
- package/dist/core/canvas/browse/pins.d.ts +4 -0
- package/dist/core/canvas/browse/pins.js +29 -0
- package/dist/core/canvas/browse/render.d.ts +103 -0
- package/dist/core/canvas/browse/render.js +1058 -0
- package/dist/core/canvas/canvas.d.ts +409 -0
- package/dist/core/canvas/canvas.js +1206 -0
- package/dist/core/canvas/crons.d.ts +322 -0
- package/dist/core/canvas/crons.js +541 -0
- package/dist/core/canvas/daemon-actions.d.ts +42 -0
- package/dist/core/canvas/daemon-actions.js +98 -0
- package/dist/core/canvas/db.d.ts +60 -0
- package/dist/core/canvas/db.js +426 -0
- package/dist/core/canvas/deliveries.d.ts +125 -0
- package/dist/core/canvas/deliveries.js +393 -0
- package/dist/core/canvas/delivery-contract.d.ts +37 -0
- package/dist/core/canvas/delivery-contract.js +30 -0
- package/dist/core/canvas/executions.d.ts +125 -0
- package/dist/core/canvas/executions.js +279 -0
- package/dist/core/canvas/extensions.d.ts +9 -0
- package/dist/core/canvas/extensions.js +90 -0
- package/dist/core/canvas/focuses.d.ts +26 -0
- package/dist/core/canvas/focuses.js +82 -0
- package/dist/core/canvas/history.d.ts +104 -0
- package/dist/core/canvas/history.js +480 -0
- package/dist/core/canvas/index.d.ts +14 -0
- package/dist/core/canvas/index.js +16 -0
- package/dist/core/canvas/install-id.d.ts +9 -0
- package/dist/core/canvas/install-id.js +64 -0
- package/dist/core/canvas/labels.d.ts +30 -0
- package/dist/core/canvas/labels.js +43 -0
- package/dist/core/canvas/legacy-person.d.ts +4 -0
- package/dist/core/canvas/legacy-person.js +4 -0
- package/dist/core/canvas/memory-reads.d.ts +24 -0
- package/dist/core/canvas/memory-reads.js +36 -0
- package/dist/core/canvas/meta-file.d.ts +20 -0
- package/dist/core/canvas/meta-file.js +89 -0
- package/dist/core/canvas/nav-render.d.ts +136 -0
- package/dist/core/canvas/nav-render.js +224 -0
- package/dist/core/canvas/node-agent-paths.d.ts +8 -0
- package/dist/core/canvas/node-agent-paths.js +30 -0
- package/dist/core/canvas/node-order.d.ts +24 -0
- package/dist/core/canvas/node-order.js +37 -0
- package/dist/core/canvas/node-recap.d.ts +23 -0
- package/dist/core/canvas/node-recap.js +62 -0
- package/dist/core/canvas/node-tokens.d.ts +19 -0
- package/dist/core/canvas/node-tokens.js +53 -0
- package/dist/core/canvas/outcome-actions.d.ts +23 -0
- package/dist/core/canvas/outcome-actions.js +71 -0
- package/dist/core/canvas/person.d.ts +32 -0
- package/dist/core/canvas/person.js +244 -0
- package/dist/core/canvas/pid.d.ts +6 -0
- package/dist/core/canvas/pid.js +20 -10
- package/dist/core/canvas/reconciler-leases.d.ts +12 -0
- package/dist/core/canvas/reconciler-leases.js +40 -0
- package/dist/core/canvas/recovery.d.ts +127 -0
- package/dist/core/canvas/recovery.js +713 -0
- package/dist/core/canvas/remote-canvas-source.d.ts +71 -0
- package/dist/core/canvas/remote-canvas-source.js +290 -0
- package/dist/core/canvas/remote-transport.d.ts +7 -0
- package/dist/core/canvas/remote-transport.js +57 -0
- package/dist/core/canvas/render-source.d.ts +193 -0
- package/dist/core/canvas/render-source.js +518 -0
- package/dist/core/canvas/schema-chain.d.ts +33 -0
- package/dist/core/canvas/schema-chain.js +110 -0
- package/dist/core/canvas/schema-version.d.ts +30 -0
- package/dist/core/canvas/schema-version.js +58 -0
- package/dist/core/canvas/sessions.d.ts +54 -0
- package/dist/core/canvas/sessions.js +128 -0
- package/dist/core/canvas/source.d.ts +52 -0
- package/dist/core/canvas/source.js +57 -0
- package/dist/core/canvas/status-glyph.d.ts +52 -0
- package/dist/core/canvas/status-glyph.js +132 -0
- package/dist/core/canvas/structured-requests.d.ts +69 -0
- package/dist/core/canvas/structured-requests.js +176 -0
- package/dist/core/canvas/telemetry.d.ts +14 -0
- package/dist/core/canvas/telemetry.js +35 -0
- package/dist/core/canvas/tree.d.ts +33 -0
- package/dist/core/canvas/tree.js +128 -0
- package/dist/core/canvas/types.d.ts +461 -0
- package/dist/core/canvas/types.js +6 -0
- package/dist/core/canvas/waits.d.ts +39 -0
- package/dist/core/canvas/waits.js +104 -0
- package/dist/core/canvas/worktrees.d.ts +41 -0
- package/dist/core/canvas/worktrees.js +97 -0
- package/dist/core/clipboard-text.d.ts +11 -0
- package/dist/core/clipboard-text.js +57 -0
- package/dist/core/command-hooks/artifact.d.ts +16 -0
- package/dist/core/command-hooks/artifact.js +145 -0
- package/dist/core/command-hooks/catalog.d.ts +14 -0
- package/dist/core/command-hooks/catalog.js +38 -0
- package/dist/core/command-hooks/compose.d.ts +15 -0
- package/dist/core/command-hooks/compose.js +101 -0
- package/dist/core/command-hooks/discovery.d.ts +133 -0
- package/dist/core/command-hooks/discovery.js +246 -0
- package/dist/core/command-hooks/help.d.ts +5 -0
- package/dist/core/command-hooks/help.js +18 -0
- package/dist/core/command-hooks/lifecycle-catalog.d.ts +21 -0
- package/dist/core/command-hooks/lifecycle-catalog.js +9 -0
- package/dist/core/command-hooks/lifecycle-create.d.ts +4 -0
- package/dist/core/command-hooks/lifecycle-create.js +51 -0
- package/dist/core/command-hooks/report.d.ts +32 -0
- package/dist/core/command-hooks/report.js +28 -0
- package/dist/core/command-hooks/schema.d.ts +42 -0
- package/dist/core/command-hooks/schema.js +157 -0
- package/dist/core/command-hooks/transport/exec-invoke.d.ts +24 -0
- package/dist/core/command-hooks/transport/exec-invoke.js +315 -0
- package/dist/core/command-hooks/transport/exec-lifecycle.d.ts +23 -0
- package/dist/core/command-hooks/transport/exec-lifecycle.js +248 -0
- package/dist/core/command-hooks/transport/plan.d.ts +3 -0
- package/dist/core/command-hooks/transport/plan.js +30 -0
- package/dist/core/command-manifests/registry.d.ts +68 -0
- package/dist/core/command-manifests/registry.js +118 -0
- package/dist/core/command-plugins/caller-header.d.ts +10 -0
- package/dist/core/command-plugins/caller-header.js +15 -0
- package/dist/core/command-plugins/compose.d.ts +11 -0
- package/dist/core/command-plugins/compose.js +241 -0
- package/dist/core/command-plugins/discovery.d.ts +49 -0
- package/dist/core/command-plugins/discovery.js +240 -0
- package/dist/core/command-plugins/extensions.d.ts +20 -0
- package/dist/core/command-plugins/extensions.js +166 -0
- package/dist/core/command-plugins/help-addenda.d.ts +25 -0
- package/dist/core/command-plugins/help-addenda.js +55 -0
- package/dist/core/command-plugins/presence.d.ts +4 -0
- package/dist/core/command-plugins/presence.js +36 -0
- package/dist/core/command-plugins/transport/exec-invoke.d.ts +42 -0
- package/dist/core/command-plugins/transport/exec-invoke.js +138 -0
- package/dist/core/command-plugins/transport/http-fetch.d.ts +41 -0
- package/dist/core/command-plugins/transport/http-fetch.js +68 -0
- package/dist/core/command-plugins/transport/http-invoke.d.ts +22 -0
- package/dist/core/command-plugins/transport/http-invoke.js +333 -0
- package/dist/core/command-plugins/transport/http-plan.d.ts +75 -0
- package/dist/core/command-plugins/transport/http-plan.js +349 -0
- package/dist/core/command-plugins/transport/sign.d.ts +55 -0
- package/dist/core/command-plugins/transport/sign.js +115 -0
- package/dist/core/command.d.ts +238 -0
- package/dist/core/command.js +848 -0
- package/dist/core/conversation-store/row-store.d.ts +14 -0
- package/dist/core/conversation-store/row-store.js +337 -0
- package/dist/core/directory/issuer.d.ts +8 -0
- package/dist/core/directory/issuer.js +15 -0
- package/dist/core/directory/join.d.ts +57 -0
- package/dist/core/directory/join.js +218 -0
- package/dist/core/directory/person-credential.d.ts +61 -0
- package/dist/core/directory/person-credential.js +220 -0
- package/dist/core/directory/reach.d.ts +3 -0
- package/dist/core/directory/reach.js +19 -0
- package/dist/core/document-lines.d.ts +4 -0
- package/dist/core/document-lines.js +6 -0
- package/dist/core/editor-resolver.d.ts +28 -0
- package/dist/core/editor-resolver.js +77 -0
- package/dist/core/environments.d.ts +21 -0
- package/dist/core/environments.js +56 -0
- package/dist/core/events/outbound.d.ts +21 -0
- package/dist/core/events/outbound.js +92 -0
- package/dist/core/events/read.d.ts +40 -0
- package/dist/core/events/read.js +625 -0
- package/dist/core/fault-classifier.d.ts +36 -0
- package/dist/core/fault-classifier.js +101 -0
- package/dist/core/feed/feed.d.ts +63 -0
- package/dist/core/feed/feed.js +190 -0
- package/dist/core/feed/inbox.d.ts +34 -0
- package/dist/core/feed/inbox.js +93 -0
- package/dist/core/feed/messages.d.ts +88 -0
- package/dist/core/feed/messages.js +206 -0
- package/dist/core/feed/reports.d.ts +10 -0
- package/dist/core/feed/reports.js +58 -0
- package/dist/core/frontmatter.d.ts +8 -0
- package/dist/core/frontmatter.js +35 -0
- package/dist/core/grants/cover.d.ts +14 -0
- package/dist/core/grants/cover.js +66 -0
- package/dist/core/grants/local.d.ts +4 -0
- package/dist/core/grants/local.js +26 -0
- package/dist/core/grants/mirror.d.ts +155 -0
- package/dist/core/grants/mirror.js +379 -0
- package/dist/core/grants/on-sync.d.ts +26 -0
- package/dist/core/grants/on-sync.js +161 -0
- package/dist/core/grants/sandboxes.d.ts +7 -0
- package/dist/core/grants/sandboxes.js +24 -0
- package/dist/core/grants/sync.d.ts +46 -0
- package/dist/core/grants/sync.js +195 -0
- package/dist/core/grants/terminal.d.ts +10 -0
- package/dist/core/grants/terminal.js +25 -0
- package/dist/core/graph/access.d.ts +13 -0
- package/dist/core/graph/access.js +37 -0
- package/dist/core/graph/bodies.d.ts +22 -0
- package/dist/core/graph/bodies.js +68 -0
- package/dist/core/graph/custom.d.ts +98 -0
- package/dist/core/graph/custom.js +298 -0
- package/dist/core/graph/deletion.d.ts +16 -0
- package/dist/core/graph/deletion.js +104 -0
- package/dist/core/graph/documents.d.ts +181 -0
- package/dist/core/graph/documents.js +653 -0
- package/dist/core/graph/edges.d.ts +41 -0
- package/dist/core/graph/edges.js +83 -0
- package/dist/core/graph/events.d.ts +49 -0
- package/dist/core/graph/events.js +315 -0
- package/dist/core/graph/exposures.d.ts +53 -0
- package/dist/core/graph/exposures.js +152 -0
- package/dist/core/graph/jobs.d.ts +107 -0
- package/dist/core/graph/jobs.js +184 -0
- package/dist/core/graph/kinds/action.d.ts +3 -0
- package/dist/core/graph/kinds/action.js +20 -0
- package/dist/core/graph/kinds/custom.d.ts +8 -0
- package/dist/core/graph/kinds/custom.js +25 -0
- package/dist/core/graph/kinds/document.d.ts +20 -0
- package/dist/core/graph/kinds/document.js +133 -0
- package/dist/core/graph/kinds/dto.d.ts +5 -0
- package/dist/core/graph/kinds/dto.js +11 -0
- package/dist/core/graph/kinds/environment.d.ts +2 -0
- package/dist/core/graph/kinds/environment.js +21 -0
- package/dist/core/graph/kinds/job.d.ts +2 -0
- package/dist/core/graph/kinds/job.js +24 -0
- package/dist/core/graph/kinds/kind.d.ts +67 -0
- package/dist/core/graph/kinds/kind.js +15 -0
- package/dist/core/graph/kinds/live-read.d.ts +5 -0
- package/dist/core/graph/kinds/live-read.js +11 -0
- package/dist/core/graph/kinds/node.d.ts +12 -0
- package/dist/core/graph/kinds/node.js +87 -0
- package/dist/core/graph/kinds/owner.d.ts +2 -0
- package/dist/core/graph/kinds/owner.js +26 -0
- package/dist/core/graph/kinds/registry.d.ts +10 -0
- package/dist/core/graph/kinds/registry.js +58 -0
- package/dist/core/graph/kinds/render.d.ts +9 -0
- package/dist/core/graph/kinds/render.js +17 -0
- package/dist/core/graph/names.d.ts +57 -0
- package/dist/core/graph/names.js +183 -0
- package/dist/core/graph/objects.d.ts +88 -0
- package/dist/core/graph/objects.js +273 -0
- package/dist/core/graph/package-docs.d.ts +41 -0
- package/dist/core/graph/package-docs.js +198 -0
- package/dist/core/graph/package-files.d.ts +20 -0
- package/dist/core/graph/package-files.js +146 -0
- package/dist/core/graph/package-kinds.d.ts +22 -0
- package/dist/core/graph/package-kinds.js +49 -0
- package/dist/core/graph/package-reconcile.d.ts +17 -0
- package/dist/core/graph/package-reconcile.js +31 -0
- package/dist/core/graph/reader.d.ts +45 -0
- package/dist/core/graph/reader.js +218 -0
- package/dist/core/graph/receiver-url.d.ts +11 -0
- package/dist/core/graph/receiver-url.js +83 -0
- package/dist/core/graph/receivers.d.ts +28 -0
- package/dist/core/graph/receivers.js +66 -0
- package/dist/core/graph/repo-sync/exchange.d.ts +36 -0
- package/dist/core/graph/repo-sync/exchange.js +422 -0
- package/dist/core/graph/repo-sync/identity.d.ts +32 -0
- package/dist/core/graph/repo-sync/identity.js +147 -0
- package/dist/core/graph/repo-sync/index.d.ts +4 -0
- package/dist/core/graph/repo-sync/index.js +2 -0
- package/dist/core/graph/repo-sync/mirror.d.ts +30 -0
- package/dist/core/graph/repo-sync/mirror.js +170 -0
- package/dist/core/graph/repo-sync/ref-format.d.ts +80 -0
- package/dist/core/graph/repo-sync/ref-format.js +215 -0
- package/dist/core/graph/repo-sync/repos.d.ts +21 -0
- package/dist/core/graph/repo-sync/repos.js +57 -0
- package/dist/core/graph/repo-sync/sync.d.ts +40 -0
- package/dist/core/graph/repo-sync/sync.js +322 -0
- package/dist/core/graph/rules.d.ts +27 -0
- package/dist/core/graph/rules.js +134 -0
- package/dist/core/graph/types.d.ts +131 -0
- package/dist/core/graph/types.js +10 -0
- package/dist/core/graph/watches.d.ts +66 -0
- package/dist/core/graph/watches.js +177 -0
- package/dist/core/human/action-binding.d.ts +23 -0
- package/dist/core/human/action-binding.js +41 -0
- package/dist/core/human/answer-text.d.ts +5 -0
- package/dist/core/human/answer-text.js +100 -0
- package/dist/core/human/answer.d.ts +53 -0
- package/dist/core/human/answer.js +119 -0
- package/dist/core/human/claim.d.ts +23 -0
- package/dist/core/human/claim.js +67 -0
- package/dist/core/human/completion.d.ts +38 -0
- package/dist/core/human/completion.js +27 -0
- package/dist/core/human/component-docs.d.ts +18 -0
- package/dist/core/human/component-docs.js +442 -0
- package/dist/core/human/convention.d.ts +31 -0
- package/dist/core/human/convention.js +82 -0
- package/dist/core/human/feedback-companion.d.ts +19 -0
- package/dist/core/human/feedback-companion.js +92 -0
- package/dist/core/human/feedback.d.ts +62 -0
- package/dist/core/human/feedback.js +88 -0
- package/dist/core/human/page-authoring.d.ts +30 -0
- package/dist/core/human/page-authoring.js +19 -0
- package/dist/core/human/page-errors.d.ts +8 -0
- package/dist/core/human/page-errors.js +14 -0
- package/dist/core/human/page-eval.d.ts +25 -0
- package/dist/core/human/page-eval.js +125 -0
- package/dist/core/human/page-html-markdown.d.ts +8 -0
- package/dist/core/human/page-html-markdown.js +260 -0
- package/dist/core/human/page-markdown.d.ts +3 -0
- package/dist/core/human/page-markdown.js +295 -0
- package/dist/core/human/page-schema.d.ts +291 -0
- package/dist/core/human/page-schema.js +381 -0
- package/dist/core/human/page.d.ts +21 -0
- package/dist/core/human/page.js +251 -0
- package/dist/core/human/request-files.d.ts +14 -0
- package/dist/core/human/request-files.js +54 -0
- package/dist/core/human/requests.d.ts +156 -0
- package/dist/core/human/requests.js +619 -0
- package/dist/core/human/root.d.ts +4 -0
- package/dist/core/human/root.js +11 -0
- package/dist/core/human/summary.d.ts +3 -0
- package/dist/core/human/summary.js +5 -0
- package/dist/core/human/tickets.d.ts +68 -0
- package/dist/core/human/tickets.js +175 -0
- package/dist/core/human/types.d.ts +118 -0
- package/dist/core/human/types.js +1 -0
- package/dist/core/human/visible-paths.d.ts +16 -0
- package/dist/core/human/visible-paths.js +74 -0
- package/dist/core/human-actions.d.ts +25 -0
- package/dist/core/human-actions.js +101 -0
- package/dist/core/import/bundle/blob-keys.d.ts +10 -0
- package/dist/core/import/bundle/blob-keys.js +23 -0
- package/dist/core/import/bundle/layout.d.ts +90 -0
- package/dist/core/import/bundle/layout.js +117 -0
- package/dist/core/import/export/archive.d.ts +11 -0
- package/dist/core/import/export/archive.js +22 -0
- package/dist/core/import/export/cloud.d.ts +23 -0
- package/dist/core/import/export/cloud.js +47 -0
- package/dist/core/import/export/dump.d.ts +34 -0
- package/dist/core/import/export/dump.js +235 -0
- package/dist/core/import/export/files.d.ts +22 -0
- package/dist/core/import/export/files.js +107 -0
- package/dist/core/import/export/inline.d.ts +3 -0
- package/dist/core/import/export/inline.js +15 -0
- package/dist/core/import/export/source.d.ts +2 -0
- package/dist/core/import/export/source.js +5 -0
- package/dist/core/import/export/stores.d.ts +9 -0
- package/dist/core/import/export/stores.js +69 -0
- package/dist/core/inspector/chrome.d.ts +6 -0
- package/dist/core/inspector/chrome.js +14 -0
- package/dist/core/inspector/contract.d.ts +105 -0
- package/dist/core/inspector/contract.js +1 -0
- package/dist/core/inspector/core.d.ts +39 -0
- package/dist/core/inspector/core.js +296 -0
- package/dist/core/inspector/host.d.ts +46 -0
- package/dist/core/inspector/host.js +538 -0
- package/dist/core/inspector/model.d.ts +88 -0
- package/dist/core/inspector/model.js +225 -0
- package/dist/core/inspector/text.d.ts +5 -0
- package/dist/core/inspector/text.js +45 -0
- package/dist/core/inspector/transport.d.ts +6 -0
- package/dist/core/inspector/transport.js +36 -0
- package/dist/core/inspector/tui.d.ts +3 -0
- package/dist/core/inspector/tui.js +295 -0
- package/dist/core/io.js +7 -0
- package/dist/core/keybindings/background-bash.d.ts +13 -0
- package/dist/core/keybindings/background-bash.js +33 -0
- package/dist/core/keybindings/catalog.d.ts +1 -1
- package/dist/core/keybindings/inbox.d.ts +18 -0
- package/dist/core/keybindings/inbox.js +25 -0
- package/dist/core/keybindings/index.d.ts +8 -0
- package/dist/core/keybindings/index.js +7 -0
- package/dist/core/keybindings/match.d.ts +44 -0
- package/dist/core/keybindings/match.js +146 -0
- package/dist/core/keybindings/persistence.d.ts +18 -0
- package/dist/core/keybindings/persistence.js +49 -0
- package/dist/core/keybindings/resolve.d.ts +28 -0
- package/dist/core/keybindings/resolve.js +348 -0
- package/dist/core/layout-migrate/index.d.ts +38 -0
- package/dist/core/layout-migrate/index.js +523 -0
- package/dist/core/layout-migrate/paths.d.ts +30 -0
- package/dist/core/layout-migrate/paths.js +118 -0
- package/dist/core/layout-migrate/stored-paths.d.ts +9 -0
- package/dist/core/layout-migrate/stored-paths.js +424 -0
- package/dist/core/layout-migrate/stores.d.ts +30 -0
- package/dist/core/layout-migrate/stores.js +543 -0
- package/dist/core/ledger/account.d.ts +12 -0
- package/dist/core/ledger/account.js +13 -0
- package/dist/core/ledger/charges.d.ts +16 -0
- package/dist/core/ledger/charges.js +43 -0
- package/dist/core/ledger/check.d.ts +48 -0
- package/dist/core/ledger/check.js +38 -0
- package/dist/core/ledger/chunks.d.ts +8 -0
- package/dist/core/ledger/chunks.js +43 -0
- package/dist/core/ledger/index.d.ts +9 -0
- package/dist/core/ledger/index.js +10 -0
- package/dist/core/ledger/infra-allowance.d.ts +7 -0
- package/dist/core/ledger/infra-allowance.js +31 -0
- package/dist/core/ledger/limits.d.ts +10 -0
- package/dist/core/ledger/limits.js +35 -0
- package/dist/core/ledger/months.d.ts +6 -0
- package/dist/core/ledger/months.js +19 -0
- package/dist/core/ledger/payer.d.ts +34 -0
- package/dist/core/ledger/payer.js +14 -0
- package/dist/core/ledger/read.d.ts +57 -0
- package/dist/core/ledger/read.js +194 -0
- package/dist/core/ledger/totals.d.ts +10 -0
- package/dist/core/ledger/totals.js +34 -0
- package/dist/core/ledger/types.d.ts +75 -0
- package/dist/core/ledger/types.js +2 -0
- package/dist/core/llm/app-rungs.d.ts +16 -0
- package/dist/core/llm/app-rungs.js +59 -0
- package/dist/core/llm/body-limits.d.ts +7 -0
- package/dist/core/llm/body-limits.js +7 -0
- package/dist/core/llm/refusal.d.ts +14 -0
- package/dist/core/llm/refusal.js +22 -0
- package/dist/core/locked-file.d.ts +27 -0
- package/dist/core/locked-file.js +121 -0
- package/dist/core/log.d.ts +2 -0
- package/dist/core/log.js +5 -3
- package/dist/core/manifest-stale.d.ts +18 -0
- package/dist/core/manifest-stale.js +39 -0
- package/dist/core/model-auth/api-credential-store.d.ts +10 -0
- package/dist/core/model-auth/api-credential-store.js +40 -0
- package/dist/core/model-auth/daemon-login.d.ts +13 -0
- package/dist/core/model-auth/daemon-login.js +156 -0
- package/dist/core/model-auth/readiness.d.ts +12 -0
- package/dist/core/model-auth/readiness.js +48 -0
- package/dist/core/model-routes-pool.d.ts +14 -0
- package/dist/core/model-routes-pool.js +50 -0
- package/dist/core/model-routes.d.ts +98 -0
- package/dist/core/model-routes.js +190 -0
- package/dist/core/northlight/previews.d.ts +22 -0
- package/dist/core/northlight/previews.js +87 -0
- package/dist/core/nvim-launch.d.ts +7 -0
- package/dist/core/nvim-launch.js +45 -0
- package/dist/core/output.d.ts +35 -0
- package/dist/core/output.js +99 -0
- package/dist/core/pagination.d.ts +35 -0
- package/dist/core/pagination.js +88 -0
- package/dist/core/peer/client.d.ts +61 -0
- package/dist/core/peer/client.js +167 -0
- package/dist/core/peer/directory.d.ts +71 -0
- package/dist/core/peer/directory.js +167 -0
- package/dist/core/peer/envelope.d.ts +46 -0
- package/dist/core/peer/envelope.js +98 -0
- package/dist/core/peer/names.d.ts +5 -0
- package/dist/core/peer/names.js +8 -0
- package/dist/core/peer/outbox-store.d.ts +76 -0
- package/dist/core/peer/outbox-store.js +84 -0
- package/dist/core/peer/receiver.d.ts +8 -0
- package/dist/core/peer/receiver.js +54 -0
- package/dist/core/peer/stubs.d.ts +90 -0
- package/dist/core/peer/stubs.js +208 -0
- package/dist/core/peer/token.d.ts +13 -0
- package/dist/core/peer/token.js +29 -0
- package/dist/core/peer/version.d.ts +16 -0
- package/dist/core/peer/version.js +23 -0
- package/dist/core/permissions/builtin.d.ts +8 -0
- package/dist/core/permissions/builtin.js +27 -0
- package/dist/core/permissions/ceiling.d.ts +57 -0
- package/dist/core/permissions/ceiling.js +319 -0
- package/dist/core/permissions/compile.d.ts +14 -0
- package/dist/core/permissions/compile.js +175 -0
- package/dist/core/permissions/errors.d.ts +7 -0
- package/dist/core/permissions/errors.js +13 -0
- package/dist/core/permissions/evaluator.d.ts +33 -0
- package/dist/core/permissions/evaluator.js +96 -0
- package/dist/core/permissions/facts.d.ts +56 -0
- package/dist/core/permissions/facts.js +102 -0
- package/dist/core/permissions/schema-parser.d.ts +29 -0
- package/dist/core/permissions/schema-parser.js +151 -0
- package/dist/core/permissions/schemas.d.ts +21 -0
- package/dist/core/permissions/schemas.js +83 -0
- package/dist/core/permissions/sql.d.ts +16 -0
- package/dist/core/permissions/sql.js +31 -0
- package/dist/core/plugin-app.d.ts +31 -0
- package/dist/core/plugin-app.js +58 -0
- package/dist/core/plugin-quarantine.d.ts +16 -0
- package/dist/core/plugin-quarantine.js +70 -0
- package/dist/core/pool-credential-store.d.ts +31 -0
- package/dist/core/pool-credential-store.js +116 -0
- package/dist/core/predicate.d.ts +65 -0
- package/dist/core/predicate.js +191 -0
- package/dist/core/preview-registry.d.ts +59 -0
- package/dist/core/preview-registry.js +403 -0
- package/dist/core/profiles/default-binding.d.ts +15 -0
- package/dist/core/profiles/default-binding.js +29 -0
- package/dist/core/profiles/deletion-reservation.d.ts +12 -0
- package/dist/core/profiles/deletion-reservation.js +42 -0
- package/dist/core/profiles/select.d.ts +46 -0
- package/dist/core/profiles/select.js +738 -0
- package/dist/core/provider-credential.d.ts +6 -0
- package/dist/core/provider-credential.js +17 -0
- package/dist/core/provider-error-recognition.d.ts +30 -0
- package/dist/core/provider-error-recognition.js +82 -0
- package/dist/core/provider-failure.d.ts +42 -0
- package/dist/core/provider-failure.js +145 -0
- package/dist/core/provider-management.d.ts +11 -0
- package/dist/core/provider-management.js +9 -0
- package/dist/core/providers/approval.d.ts +23 -0
- package/dist/core/providers/approval.js +146 -0
- package/dist/core/providers/audit.d.ts +30 -0
- package/dist/core/providers/audit.js +52 -0
- package/dist/core/providers/bundles.d.ts +66 -0
- package/dist/core/providers/bundles.js +638 -0
- package/dist/core/providers/call.d.ts +51 -0
- package/dist/core/providers/call.js +480 -0
- package/dist/core/providers/description.d.ts +34 -0
- package/dist/core/providers/description.js +1 -0
- package/dist/core/providers/device-libs.d.ts +71 -0
- package/dist/core/providers/device-libs.js +202 -0
- package/dist/core/providers/device.d.ts +42 -0
- package/dist/core/providers/device.js +95 -0
- package/dist/core/providers/errors.d.ts +99 -0
- package/dist/core/providers/errors.js +136 -0
- package/dist/core/providers/files.d.ts +90 -0
- package/dist/core/providers/files.js +389 -0
- package/dist/core/providers/inflight.d.ts +13 -0
- package/dist/core/providers/inflight.js +14 -0
- package/dist/core/providers/mint.d.ts +29 -0
- package/dist/core/providers/mint.js +219 -0
- package/dist/core/providers/receipts.d.ts +26 -0
- package/dist/core/providers/receipts.js +61 -0
- package/dist/core/providers/request.d.ts +27 -0
- package/dist/core/providers/request.js +173 -0
- package/dist/core/providers/roots.d.ts +23 -0
- package/dist/core/providers/roots.js +118 -0
- package/dist/core/providers/token-cache.d.ts +54 -0
- package/dist/core/providers/token-cache.js +203 -0
- package/dist/core/remote-canvas-target.d.ts +4 -0
- package/dist/core/remote-canvas-target.js +30 -0
- package/dist/core/review/comments.d.ts +69 -0
- package/dist/core/review/comments.js +296 -0
- package/dist/core/review/companion.d.ts +33 -0
- package/dist/core/review/companion.js +208 -0
- package/dist/core/review/signal.d.ts +5 -0
- package/dist/core/review/signal.js +12 -0
- package/dist/core/review/store.d.ts +44 -0
- package/dist/core/review/store.js +178 -0
- package/dist/core/review/types.d.ts +139 -0
- package/dist/core/review/types.js +23 -0
- package/dist/core/runs/activity.d.ts +11 -0
- package/dist/core/runs/activity.js +57 -0
- package/dist/core/runs/events.d.ts +41 -0
- package/dist/core/runs/events.js +179 -0
- package/dist/core/runs/operations.d.ts +85 -0
- package/dist/core/runs/operations.js +741 -0
- package/dist/core/runs/questions.d.ts +80 -0
- package/dist/core/runs/questions.js +151 -0
- package/dist/core/runtime/banner.d.ts +15 -0
- package/dist/core/runtime/banner.js +53 -0
- package/dist/core/runtime/bearings-render.d.ts +62 -0
- package/dist/core/runtime/bearings-render.js +272 -0
- package/dist/core/runtime/bearings.d.ts +56 -0
- package/dist/core/runtime/bearings.js +199 -0
- package/dist/core/runtime/bin-contributions.d.ts +44 -0
- package/dist/core/runtime/bin-contributions.js +186 -0
- package/dist/core/runtime/blaxel-environment.d.ts +2 -0
- package/dist/core/runtime/blaxel-environment.js +8 -0
- package/dist/core/runtime/broker/bash-job-launch.d.ts +12 -0
- package/dist/core/runtime/broker/bash-job-launch.js +50 -0
- package/dist/core/runtime/broker/model-adapter.d.ts +27 -0
- package/dist/core/runtime/broker/model-adapter.js +413 -0
- package/dist/core/runtime/broker/read-ops.d.ts +27 -0
- package/dist/core/runtime/broker/read-ops.js +172 -0
- package/dist/core/runtime/broker/turn-cause.d.ts +7 -0
- package/dist/core/runtime/broker/turn-cause.js +30 -0
- package/dist/core/runtime/broker-protocol.d.ts +727 -0
- package/dist/core/runtime/broker-protocol.js +152 -0
- package/dist/core/runtime/broker-request.d.ts +37 -0
- package/dist/core/runtime/broker-request.js +86 -0
- package/dist/core/runtime/broker-sdk.d.ts +36 -0
- package/dist/core/runtime/broker-sdk.js +130 -0
- package/dist/core/runtime/canvas-extensions.d.ts +34 -0
- package/dist/core/runtime/canvas-extensions.js +100 -0
- package/dist/core/runtime/close.d.ts +49 -0
- package/dist/core/runtime/close.js +266 -0
- package/dist/core/runtime/command-expansion.d.ts +19 -0
- package/dist/core/runtime/command-expansion.js +104 -0
- package/dist/core/runtime/command-surface.d.ts +38 -0
- package/dist/core/runtime/command-surface.js +117 -0
- package/dist/core/runtime/crtr-theme.d.ts +12 -0
- package/dist/core/runtime/crtr-theme.js +146 -0
- package/dist/core/runtime/deliver-live.d.ts +38 -0
- package/dist/core/runtime/deliver-live.js +87 -0
- package/dist/core/runtime/fault-recovery.d.ts +23 -0
- package/dist/core/runtime/fault-recovery.js +83 -0
- package/dist/core/runtime/fault.d.ts +6 -0
- package/dist/core/runtime/fault.js +17 -0
- package/dist/core/runtime/fleet.d.ts +106 -0
- package/dist/core/runtime/fleet.js +75 -0
- package/dist/core/runtime/focus-viewer.d.ts +45 -0
- package/dist/core/runtime/focus-viewer.js +151 -0
- package/dist/core/runtime/front-door-env.d.ts +5 -0
- package/dist/core/runtime/front-door-env.js +16 -0
- package/dist/core/runtime/headless-pi.d.ts +37 -0
- package/dist/core/runtime/headless-pi.js +173 -0
- package/dist/core/runtime/host.d.ts +74 -0
- package/dist/core/runtime/host.js +695 -0
- package/dist/core/runtime/interactive-deliver.d.ts +22 -0
- package/dist/core/runtime/interactive-deliver.js +51 -0
- package/dist/core/runtime/invocation.d.ts +15 -0
- package/dist/core/runtime/invocation.js +10 -0
- package/dist/core/runtime/kickoff.d.ts +37 -0
- package/dist/core/runtime/kickoff.js +263 -0
- package/dist/core/runtime/launch-prompt.d.ts +8 -0
- package/dist/core/runtime/launch-prompt.js +13 -0
- package/dist/core/runtime/launch-target.d.ts +43 -0
- package/dist/core/runtime/launch-target.js +83 -0
- package/dist/core/runtime/launch.d.ts +206 -0
- package/dist/core/runtime/launch.js +498 -0
- package/dist/core/runtime/ledger.d.ts +10 -0
- package/dist/core/runtime/ledger.js +55 -0
- package/dist/core/runtime/lifecycle.d.ts +47 -0
- package/dist/core/runtime/lifecycle.js +283 -0
- package/dist/core/runtime/managed-provider-cooling.d.ts +24 -0
- package/dist/core/runtime/managed-provider-cooling.js +62 -0
- package/dist/core/runtime/memory-admission.d.ts +38 -0
- package/dist/core/runtime/memory-admission.js +68 -0
- package/dist/core/runtime/model-registry.d.ts +3 -0
- package/dist/core/runtime/model-registry.js +13 -0
- package/dist/core/runtime/model-selection.d.ts +54 -0
- package/dist/core/runtime/model-selection.js +135 -0
- package/dist/core/runtime/model-swap.d.ts +26 -0
- package/dist/core/runtime/model-swap.js +75 -0
- package/dist/core/runtime/naming.d.ts +69 -0
- package/dist/core/runtime/naming.js +298 -0
- package/dist/core/runtime/nerd-font.d.ts +46 -0
- package/dist/core/runtime/nerd-font.js +162 -0
- package/dist/core/runtime/nodes.d.ts +140 -0
- package/dist/core/runtime/nodes.js +506 -0
- package/dist/core/runtime/outcome-document.d.ts +58 -0
- package/dist/core/runtime/outcome-document.js +86 -0
- package/dist/core/runtime/output-result.d.ts +15 -0
- package/dist/core/runtime/output-result.js +32 -0
- package/dist/core/runtime/output-schema-refs.d.ts +3 -0
- package/dist/core/runtime/output-schema-refs.js +100 -0
- package/dist/core/runtime/package-health.d.ts +34 -0
- package/dist/core/runtime/package-health.js +100 -0
- package/dist/core/runtime/persona.d.ts +21 -0
- package/dist/core/runtime/persona.js +54 -0
- package/dist/core/runtime/pi-cli.d.ts +8 -0
- package/dist/core/runtime/pi-cli.js +65 -0
- package/dist/core/runtime/pi-vendored.d.ts +28 -0
- package/dist/core/runtime/pi-vendored.js +63 -0
- package/dist/core/runtime/placement-tmux.d.ts +32 -0
- package/dist/core/runtime/placement-tmux.js +81 -0
- package/dist/core/runtime/placement.d.ts +116 -0
- package/dist/core/runtime/placement.js +418 -0
- package/dist/core/runtime/progress-bar.d.ts +13 -0
- package/dist/core/runtime/progress-bar.js +50 -0
- package/dist/core/runtime/provider-credential-gate.d.ts +8 -0
- package/dist/core/runtime/provider-credential-gate.js +33 -0
- package/dist/core/runtime/recovery-hold.d.ts +21 -0
- package/dist/core/runtime/recovery-hold.js +46 -0
- package/dist/core/runtime/reopen.d.ts +49 -0
- package/dist/core/runtime/reopen.js +160 -0
- package/dist/core/runtime/revive.d.ts +114 -0
- package/dist/core/runtime/revive.js +739 -0
- package/dist/core/runtime/roadmap.d.ts +24 -0
- package/dist/core/runtime/roadmap.js +86 -0
- package/dist/core/runtime/runner/blaxel/client.d.ts +83 -0
- package/dist/core/runtime/runner/blaxel/client.js +140 -0
- package/dist/core/runtime/runner/blaxel/image-build.d.ts +74 -0
- package/dist/core/runtime/runner/blaxel/image-build.js +209 -0
- package/dist/core/runtime/runner/index.d.ts +9 -0
- package/dist/core/runtime/runner/index.js +37 -0
- package/dist/core/runtime/runner/machine/call.d.ts +8 -0
- package/dist/core/runtime/runner/machine/call.js +67 -0
- package/dist/core/runtime/runner/machine/environment.d.ts +1 -0
- package/dist/core/runtime/runner/machine/environment.js +7 -0
- package/dist/core/runtime/runner/machine/ops.d.ts +127 -0
- package/dist/core/runtime/runner/machine/ops.js +41 -0
- package/dist/core/runtime/runner/machine/runner.d.ts +12 -0
- package/dist/core/runtime/runner/machine/runner.js +90 -0
- package/dist/core/runtime/runner/process.d.ts +11 -0
- package/dist/core/runtime/runner/process.js +70 -0
- package/dist/core/runtime/runner/types.d.ts +101 -0
- package/dist/core/runtime/runner/types.js +16 -0
- package/dist/core/runtime/session-branch.d.ts +7 -0
- package/dist/core/runtime/session-branch.js +16 -0
- package/dist/core/runtime/session-cycles.d.ts +45 -0
- package/dist/core/runtime/session-cycles.js +110 -0
- package/dist/core/runtime/session-list-cache.d.ts +37 -0
- package/dist/core/runtime/session-list-cache.js +302 -0
- package/dist/core/runtime/session-visibility.d.ts +37 -0
- package/dist/core/runtime/session-visibility.js +99 -0
- package/dist/core/runtime/setup-marker.d.ts +8 -0
- package/dist/core/runtime/setup-marker.js +46 -0
- package/dist/core/runtime/situational-context.d.ts +16 -0
- package/dist/core/runtime/situational-context.js +54 -0
- package/dist/core/runtime/situational-live.d.ts +9 -0
- package/dist/core/runtime/situational-live.js +41 -0
- package/dist/core/runtime/spawn-env-rows.d.ts +5 -0
- package/dist/core/runtime/spawn-env-rows.js +15 -0
- package/dist/core/runtime/spawn-env.d.ts +40 -0
- package/dist/core/runtime/spawn-env.js +260 -0
- package/dist/core/runtime/spawn.d.ts +160 -0
- package/dist/core/runtime/spawn.js +699 -0
- package/dist/core/runtime/stamp/protocol.d.ts +90 -0
- package/dist/core/runtime/stamp/protocol.js +113 -0
- package/dist/core/runtime/start-check.d.ts +15 -0
- package/dist/core/runtime/start-check.js +31 -0
- package/dist/core/runtime/stop-guard.d.ts +31 -0
- package/dist/core/runtime/stop-guard.js +150 -0
- package/dist/core/runtime/structured-output.d.ts +36 -0
- package/dist/core/runtime/structured-output.js +112 -0
- package/dist/core/runtime/surface-bg.d.ts +13 -0
- package/dist/core/runtime/surface-bg.js +85 -0
- package/dist/core/runtime/tmux-bindings.d.ts +30 -0
- package/dist/core/runtime/tmux-bindings.js +743 -0
- package/dist/core/runtime/tmux-chrome.d.ts +2 -0
- package/dist/core/runtime/tmux-chrome.js +5 -0
- package/dist/core/runtime/tmux-driver.d.ts +328 -0
- package/dist/core/runtime/tmux-driver.js +713 -0
- package/dist/core/runtime/unsandboxed.d.ts +3 -0
- package/dist/core/runtime/unsandboxed.js +16 -0
- package/dist/core/runtime/view-socket.d.ts +61 -0
- package/dist/core/runtime/view-socket.js +194 -0
- package/dist/core/runtime/warm-pool.d.ts +79 -0
- package/dist/core/runtime/warm-pool.js +473 -0
- package/dist/core/scoped-state/db.d.ts +17 -0
- package/dist/core/scoped-state/db.js +261 -0
- package/dist/core/scoped-state/legacy-profiles.d.ts +11 -0
- package/dist/core/scoped-state/legacy-profiles.js +61 -0
- package/dist/core/scoped-state/migrate.d.ts +15 -0
- package/dist/core/scoped-state/migrate.js +332 -0
- package/dist/core/scoped-state/person-rows.d.ts +10 -0
- package/dist/core/scoped-state/person-rows.js +173 -0
- package/dist/core/scoped-state/schema.d.ts +10 -0
- package/dist/core/scoped-state/schema.js +47 -0
- package/dist/core/scopes.d.ts +20 -0
- package/dist/core/scopes.js +48 -0
- package/dist/core/secrets/env-rows.d.ts +18 -0
- package/dist/core/secrets/env-rows.js +40 -0
- package/dist/core/secrets/environment-owner.d.ts +8 -0
- package/dist/core/secrets/environment-owner.js +31 -0
- package/dist/core/secrets/environment-secrets.d.ts +14 -0
- package/dist/core/secrets/environment-secrets.js +14 -0
- package/dist/core/secrets/index.d.ts +2 -0
- package/dist/core/secrets/index.js +2 -0
- package/dist/core/secrets/key.d.ts +3 -0
- package/dist/core/secrets/key.js +33 -0
- package/dist/core/secrets/seal.d.ts +18 -0
- package/dist/core/secrets/seal.js +43 -0
- package/dist/core/secrets.d.ts +50 -0
- package/dist/core/secrets.js +147 -0
- package/dist/core/self-update.d.ts +27 -0
- package/dist/core/self-update.js +77 -0
- package/dist/core/session-model/session-state.d.ts +53 -0
- package/dist/core/session-model/session-state.js +180 -0
- package/dist/core/shell-segments.d.ts +42 -0
- package/dist/core/shell-segments.js +169 -0
- package/dist/core/spaces/cache-env.d.ts +2 -0
- package/dist/core/spaces/cache-env.js +15 -0
- package/dist/core/spaces/file-root.d.ts +23 -0
- package/dist/core/spaces/file-root.js +68 -0
- package/dist/core/spaces/mounts.d.ts +41 -0
- package/dist/core/spaces/mounts.js +126 -0
- package/dist/core/spaces/permissions.d.ts +19 -0
- package/dist/core/spaces/permissions.js +77 -0
- package/dist/core/spaces/process.d.ts +61 -0
- package/dist/core/spaces/process.js +172 -0
- package/dist/core/spaces/runtime-home.d.ts +5 -0
- package/dist/core/spaces/runtime-home.js +8 -0
- package/dist/core/spaces/space.d.ts +9 -0
- package/dist/core/spaces/space.js +58 -0
- package/dist/core/spaces/stop.d.ts +24 -0
- package/dist/core/spaces/stop.js +138 -0
- package/dist/core/spaces/users.d.ts +20 -0
- package/dist/core/spaces/users.js +43 -0
- package/dist/core/sqlite-statements.d.ts +4 -0
- package/dist/core/sqlite-statements.js +17 -0
- package/dist/core/statements.d.ts +17 -0
- package/dist/core/statements.js +81 -0
- package/dist/core/storage/attachments.d.ts +36 -0
- package/dist/core/storage/attachments.js +135 -0
- package/dist/core/storage/client.d.ts +109 -0
- package/dist/core/storage/client.js +231 -0
- package/dist/core/storage/download.d.ts +24 -0
- package/dist/core/storage/download.js +184 -0
- package/dist/core/storage/purge.d.ts +6 -0
- package/dist/core/storage/purge.js +52 -0
- package/dist/core/storage/tables.d.ts +67 -0
- package/dist/core/storage/tables.js +109 -0
- package/dist/core/subscription-state.d.ts +96 -0
- package/dist/core/subscription-state.js +438 -0
- package/dist/core/substrate/delivery/corpus.d.ts +26 -0
- package/dist/core/substrate/delivery/corpus.js +138 -0
- package/dist/core/substrate/delivery/deliver.d.ts +71 -0
- package/dist/core/substrate/delivery/deliver.js +333 -0
- package/dist/core/substrate/delivery/listings.d.ts +30 -0
- package/dist/core/substrate/delivery/listings.js +75 -0
- package/dist/core/substrate/delivery/match.d.ts +28 -0
- package/dist/core/substrate/delivery/match.js +146 -0
- package/dist/core/substrate/delivery/plan.d.ts +57 -0
- package/dist/core/substrate/delivery/plan.js +126 -0
- package/dist/core/substrate/delivery/render-boot.d.ts +20 -0
- package/dist/core/substrate/delivery/render-boot.js +329 -0
- package/dist/core/substrate/delivery/render-event.d.ts +47 -0
- package/dist/core/substrate/delivery/render-event.js +160 -0
- package/dist/core/substrate/delivery/sub-persona-menu.d.ts +2 -0
- package/dist/core/substrate/delivery/sub-persona-menu.js +24 -0
- package/dist/core/substrate/delivery/types.d.ts +30 -0
- package/dist/core/substrate/delivery/types.js +1 -0
- package/dist/core/substrate/gate-explain.d.ts +35 -0
- package/dist/core/substrate/gate-explain.js +397 -0
- package/dist/core/substrate/schema.d.ts +29 -0
- package/dist/core/substrate/schema.js +81 -0
- package/dist/core/substrate/subject-fields.d.ts +52 -0
- package/dist/core/substrate/subject-fields.js +39 -0
- package/dist/core/substrate/subject.d.ts +13 -0
- package/dist/core/substrate/subject.js +60 -0
- package/dist/core/termrender/code-doc.d.ts +12 -0
- package/dist/core/termrender/code-doc.js +92 -0
- package/dist/core/termrender/display.d.ts +16 -0
- package/dist/core/termrender/display.js +56 -0
- package/dist/core/termrender/termrender.d.ts +71 -0
- package/dist/core/termrender/termrender.js +719 -0
- package/dist/core/termrender/version.d.ts +1 -0
- package/dist/core/termrender/version.js +1 -0
- package/dist/core/timing.d.ts +11 -0
- package/dist/core/timing.js +94 -0
- package/dist/core/tui/draw.d.ts +103 -0
- package/dist/core/tui/draw.js +378 -0
- package/dist/core/tui/fuzzy.d.ts +9 -0
- package/dist/core/tui/fuzzy.js +38 -0
- package/dist/core/tui/markdown.d.ts +17 -0
- package/dist/core/tui/markdown.js +407 -0
- package/dist/core/tui/page-host.d.ts +31 -0
- package/dist/core/tui/page-host.js +74 -0
- package/dist/core/tui/panel.d.ts +45 -0
- package/dist/core/tui/panel.js +142 -0
- package/dist/core/tui/terminal.d.ts +23 -0
- package/dist/core/tui/terminal.js +100 -0
- package/dist/core/wake.d.ts +89 -0
- package/dist/core/wake.js +296 -0
- package/dist/core/worktree-containment.d.ts +14 -0
- package/dist/core/worktree-containment.js +48 -0
- package/dist/core/worktree-landing.d.ts +44 -0
- package/dist/core/worktree-landing.js +56 -0
- package/dist/core/worktree-mutation-async.d.ts +23 -0
- package/dist/core/worktree-mutation-async.js +335 -0
- package/dist/core/worktree-remove.d.ts +15 -0
- package/dist/core/worktree-remove.js +84 -0
- package/dist/core/worktree.d.ts +121 -0
- package/dist/core/worktree.js +909 -0
- package/dist/daemon/api/deferred-head.d.ts +14 -0
- package/dist/daemon/api/deferred-head.js +117 -0
- package/dist/daemon/api/environment-of.d.ts +18 -0
- package/dist/daemon/api/environment-of.js +40 -0
- package/dist/daemon/api/handlers/git-credential.d.ts +11 -0
- package/dist/daemon/api/handlers/git-credential.js +64 -0
- package/dist/daemon/api/handlers/providers.d.ts +83 -0
- package/dist/daemon/api/handlers/providers.js +283 -0
- package/dist/daemon/api/handlers/validate.d.ts +23 -0
- package/dist/daemon/api/handlers/validate.js +58 -0
- package/dist/daemon/api/map.d.ts +167 -0
- package/dist/daemon/api/map.js +764 -0
- package/dist/daemon/api/operations.d.ts +18 -0
- package/dist/daemon/api/operations.js +306 -0
- package/dist/daemon/api/principal.d.ts +65 -0
- package/dist/daemon/api/principal.js +143 -0
- package/dist/daemon/api/reader.d.ts +24 -0
- package/dist/daemon/api/reader.js +123 -0
- package/dist/daemon/api/router.d.ts +193 -0
- package/dist/daemon/api/router.js +536 -0
- package/dist/daemon/api/sync-notice.d.ts +17 -0
- package/dist/daemon/api/sync-notice.js +46 -0
- package/dist/daemon/api/viewer-presence.d.ts +20 -0
- package/dist/daemon/api/viewer-presence.js +100 -0
- package/dist/daemon/broker-signals/bus.d.ts +3 -2
- package/dist/daemon/broker-signals/bus.js +3 -2
- package/dist/daemon/companion-retire.d.ts +4 -0
- package/dist/daemon/companion-retire.js +44 -0
- package/dist/daemon/control.d.ts +40 -0
- package/dist/daemon/control.js +22 -0
- package/dist/daemon/cron/authority.d.ts +38 -0
- package/dist/daemon/cron/authority.js +90 -0
- package/dist/daemon/cron/live-runs.d.ts +54 -0
- package/dist/daemon/cron/live-runs.js +66 -0
- package/dist/daemon/cron/run-socket.d.ts +30 -0
- package/dist/daemon/cron/run-socket.js +170 -0
- package/dist/daemon/drain.d.ts +25 -0
- package/dist/daemon/drain.js +76 -0
- package/dist/daemon/human/finish.d.ts +24 -0
- package/dist/daemon/human/finish.js +178 -0
- package/dist/daemon/human/settle.d.ts +44 -0
- package/dist/daemon/human/settle.js +103 -0
- package/dist/daemon/machine-link/config.d.ts +45 -0
- package/dist/daemon/machine-link/config.js +63 -0
- package/dist/daemon/machine-link/credential.d.ts +7 -0
- package/dist/daemon/machine-link/credential.js +24 -0
- package/dist/daemon/machine-link/forward.d.ts +16 -0
- package/dist/daemon/machine-link/forward.js +181 -0
- package/dist/daemon/machine-link/frames.d.ts +49 -0
- package/dist/daemon/machine-link/frames.js +25 -0
- package/dist/daemon/machine-link/holder.d.ts +73 -0
- package/dist/daemon/machine-link/holder.js +272 -0
- package/dist/daemon/machine-link/move-notify.d.ts +4 -0
- package/dist/daemon/machine-link/move-notify.js +15 -0
- package/dist/daemon/manage.d.ts +19 -3
- package/dist/daemon/manage.js +21 -6
- package/dist/daemon/park-activity.d.ts +10 -0
- package/dist/daemon/park-activity.js +33 -0
- package/dist/daemon/park-pending.d.ts +25 -0
- package/dist/daemon/park-pending.js +76 -0
- package/dist/daemon/postgres/binary.d.ts +17 -0
- package/dist/daemon/postgres/binary.js +193 -0
- package/dist/daemon/postgres/cluster.d.ts +37 -0
- package/dist/daemon/postgres/cluster.js +111 -0
- package/dist/daemon/postgres/pins.d.ts +7 -0
- package/dist/daemon/postgres/pins.js +16 -0
- package/dist/daemon/postgres/supervisor.d.ts +95 -0
- package/dist/daemon/postgres/supervisor.js +177 -0
- package/dist/daemon/readiness.d.ts +11 -0
- package/dist/daemon/readiness.js +37 -0
- package/dist/daemon/reconcilers/broker-supervision.d.ts +112 -0
- package/dist/daemon/reconcilers/broker-supervision.js +842 -0
- package/dist/daemon/reconcilers/ledger-sandbox.d.ts +54 -0
- package/dist/daemon/reconcilers/ledger-sandbox.js +249 -0
- package/dist/daemon/reconcilers/live-obligation.d.ts +77 -0
- package/dist/daemon/reconcilers/live-obligation.js +114 -0
- package/dist/daemon/reconcilers/node-lifecycle/launch-failure.d.ts +1 -0
- package/dist/daemon/reconcilers/node-lifecycle/launch-failure.js +8 -0
- package/dist/daemon/reconcilers/node-lifecycle/node-person.d.ts +9 -0
- package/dist/daemon/reconcilers/node-lifecycle/node-person.js +40 -0
- package/dist/daemon/reconcilers/node-lifecycle/remote-wake.d.ts +32 -0
- package/dist/daemon/reconcilers/node-lifecycle/remote-wake.js +124 -0
- package/dist/daemon/reconcilers/recipe-image.d.ts +49 -0
- package/dist/daemon/reconcilers/recipe-image.js +145 -0
- package/dist/daemon/reconcilers/throttled-lane.d.ts +11 -0
- package/dist/daemon/reconcilers/throttled-lane.js +63 -0
- package/dist/daemon/runs/append-section.d.ts +9 -0
- package/dist/daemon/runs/append-section.js +135 -0
- package/dist/daemon/runs/observer.d.ts +17 -0
- package/dist/daemon/runs/observer.js +441 -0
- package/dist/daemon/runs/view-transport.d.ts +19 -0
- package/dist/daemon/runs/view-transport.js +81 -0
- package/dist/daemon/structured-requests/sidecar.d.ts +4 -0
- package/dist/daemon/structured-requests/sidecar.js +5 -0
- package/dist/hook-authoring.d.ts +130 -0
- package/dist/hook-authoring.js +447 -0
- package/dist/hook-process.d.ts +7 -0
- package/dist/hook-process.js +34 -0
- package/dist/launcher/client.d.ts +6 -0
- package/dist/launcher/client.js +52 -0
- package/dist/launcher/limits/policy.d.ts +141 -0
- package/dist/launcher/limits/policy.js +142 -0
- package/dist/launcher/limits/settings.d.ts +19 -0
- package/dist/launcher/limits/settings.js +94 -0
- package/dist/launcher/spec.d.ts +181 -0
- package/dist/launcher/spec.js +10 -0
- package/dist/migrations/004-canvas-documents/apply.d.ts +8 -0
- package/dist/migrations/004-canvas-documents/apply.js +113 -0
- package/dist/migrations/004-canvas-documents/fields.d.ts +24 -0
- package/dist/migrations/004-canvas-documents/fields.js +52 -0
- package/dist/migrations/004-canvas-documents/index.d.ts +16 -0
- package/dist/migrations/004-canvas-documents/index.js +88 -0
- package/dist/migrations/004-canvas-documents/legacy/discover.d.ts +16 -0
- package/dist/migrations/004-canvas-documents/legacy/discover.js +251 -0
- package/dist/migrations/004-canvas-documents/legacy/history.d.ts +5 -0
- package/dist/migrations/004-canvas-documents/legacy/history.js +37 -0
- package/dist/migrations/004-canvas-documents/legacy/nested.d.ts +7 -0
- package/dist/migrations/004-canvas-documents/legacy/nested.js +37 -0
- package/dist/migrations/004-canvas-documents/legacy/parse.d.ts +14 -0
- package/dist/migrations/004-canvas-documents/legacy/parse.js +24 -0
- package/dist/migrations/004-canvas-documents/legacy/types.d.ts +91 -0
- package/dist/migrations/004-canvas-documents/legacy/types.js +3 -0
- package/dist/migrations/004-canvas-documents/plan.d.ts +102 -0
- package/dist/migrations/004-canvas-documents/plan.js +410 -0
- package/dist/migrations/004-canvas-documents/pointers.d.ts +23 -0
- package/dist/migrations/004-canvas-documents/pointers.js +95 -0
- package/dist/migrations/activation.d.ts +17 -0
- package/dist/migrations/activation.js +46 -0
- package/dist/shared/crtr-version.d.ts +2 -0
- package/dist/shared/crtr-version.js +18 -0
- package/dist/shared/inbox-entry-body.js +6 -2
- package/dist/shared/inline-ref-grammar.d.ts +53 -0
- package/dist/shared/inline-ref-grammar.js +99 -0
- package/dist/shared/shell-quote.d.ts +3 -0
- package/dist/shared/shell-quote.js +5 -0
- package/dist/shared/strip-cd-prefix.d.ts +1 -0
- package/dist/shared/strip-cd-prefix.js +13 -0
- package/dist/shared/tool-groups.d.ts +26 -0
- package/dist/shared/tool-groups.js +64 -0
- package/dist/shared/traceparent.d.ts +6 -0
- package/dist/shared/traceparent.js +28 -0
- package/dist/shared/turn-replies.d.ts +27 -0
- package/dist/shared/turn-replies.js +71 -0
- package/package.json +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// placement-tmux.ts — the PURE tmux + broker-socket half of placement.
|
|
2
|
+
//
|
|
3
|
+
// After the broker-is-the-host cut, the on-screen surface for a node is a
|
|
4
|
+
// `crtr surface attach` VIEWER pane. Opening/sizing that pane and waiting for the
|
|
5
|
+
// broker's view.sock are pure tmux + net operations — no canvas-db read. They
|
|
6
|
+
// live here so CLI/viewer consumers (workspace, surface-tmux-spread, sysprompt,
|
|
7
|
+
// viewer.ts) can reach the tmux front door WITHOUT dragging placement.ts's
|
|
8
|
+
// canvas state-store (the focuses table) into their bundle.
|
|
9
|
+
//
|
|
10
|
+
// placement.ts RE-EXPORTS viewerSplitEnv + waitForBrokerViewSocket from here so
|
|
11
|
+
// its existing importers (daemon runtime, handlers) are unchanged, and its
|
|
12
|
+
// openViewerWindow composes openViewerPane (here) + registerViewerFocus (the db
|
|
13
|
+
// write, which stays in placement.ts).
|
|
14
|
+
//
|
|
15
|
+
// §5.1 import-lint: placement-tmux.ts is an allowed direct importer of
|
|
16
|
+
// tmux-driver.ts — it is the sanctioned pure-tmux seam, re-exporting the driver
|
|
17
|
+
// verbs other modules need so they never import the driver directly.
|
|
18
|
+
import { envHomeOverride } from '../../shared/env.js';
|
|
19
|
+
import { paneLocation, ensureSession, openNodeWindow, splitWindow, selectLayout, } from './tmux-driver.js';
|
|
20
|
+
import { BROKER_VIEW_SOCKET_WAIT_MS } from './view-socket.js';
|
|
21
|
+
// Re-export the pure tmux driver verbs the CLI/viewer consumers need without
|
|
22
|
+
// exposing the canvas focuses table or sending command modules to the raw driver.
|
|
23
|
+
export { paneExists, paneLocation, paneOfNode, paneCurrentPath, paneSize, paneRunning, ensureSession, openNodeWindow, splitWindow, closePane, currentTmux, switchClient, selectWindow, selectLayout, selectPane, getPaneOption, setPaneOption, breakPane, inTmux, piCommand, shellQuote, renameWindow, displayPopup, displayPopupAsync, windowOfPane, respawnPaneSync, respawnPaneInBackground, respawnPaneInPlace, runShellInBackground, paneStartCommand, swapPanes, paneCurrentCommand, closeWindow, panePid, windowAlive, listLivePanes, VIEWER_STAMP_OPTION, stampViewerPaneAsync, liveViewerPanes, sendAttachControl, displayClientMessage, displayMessage, windowIndex, sessionExists, tmuxAvailable, tmuxInteractive, } from './tmux-driver.js';
|
|
24
|
+
export { installTmuxBindings } from './tmux-bindings.js';
|
|
25
|
+
// view.sock readiness — the one shared broker-cold-start primitive
|
|
26
|
+
export { BROKER_VIEW_SOCKET_WAIT_MS, waitForBrokerViewSocket } from './view-socket.js';
|
|
27
|
+
// Viewer pane opener (tmux half, NO focus-row write)
|
|
28
|
+
/** Env for a `crtr surface attach` VIEWER pane (the focus split, the spawn viewer
|
|
29
|
+
* window, AND recycle's re-attach respawn): propagate CRTR_HOME so the viewer
|
|
30
|
+
* resolves the SAME canvas home — and thus the right view.sock — under a
|
|
31
|
+
* non-default override; otherwise an empty env (the pane inherits the tmux
|
|
32
|
+
* server env, like every other crtr chrome pane). One helper so the viewer-pane
|
|
33
|
+
* sites can't drift. */
|
|
34
|
+
export function viewerSplitEnv() {
|
|
35
|
+
const crtrHome = envHomeOverride();
|
|
36
|
+
return crtrHome !== undefined ? { CRTR_HOME: crtrHome } : {};
|
|
37
|
+
}
|
|
38
|
+
/** Open a `crtr surface attach` VIEWER pane for `nodeId` — the PURE tmux half of
|
|
39
|
+
* placement's openViewerWindow (no focus-row write). Wraps `ensureSession` +
|
|
40
|
+
* `openNodeWindow`/`splitWindow`. The attach client connects to the node's
|
|
41
|
+
* `view.sock` and renders/drives the live broker engine — it NEVER launches the
|
|
42
|
+
* engine (the one-writer invariant; the caller ensures the broker is alive
|
|
43
|
+
* first). Returns the opened pane's coordinates, or null if tmux refused.
|
|
44
|
+
* - default → a fresh WINDOW in `session` (the --root spawn-viewer path).
|
|
45
|
+
* - `besidePane` → a SPLIT beside that pane in its own session (the focus
|
|
46
|
+
* open-beside-the-caller path); `session` is then only a fallback. */
|
|
47
|
+
export function openViewerPane(nodeId, session, opts = {}) {
|
|
48
|
+
const command = `crtr surface attach to ${nodeId}`;
|
|
49
|
+
// When the broker may not have bound view.sock yet (a viewer opened right after
|
|
50
|
+
// a fresh spawn), hand the attach pane CRTR_ATTACH_WAIT_MS so it POLLS the
|
|
51
|
+
// socket until it accepts instead of failing fast on a cold socket and closing
|
|
52
|
+
// the pane instantly — the same self-polling bootRoot/resume rely on. The
|
|
53
|
+
// deadline is the shared BROKER_VIEW_SOCKET_WAIT_MS (one source of truth), not
|
|
54
|
+
// a literal duplicated at the call site.
|
|
55
|
+
const env = {
|
|
56
|
+
...viewerSplitEnv(),
|
|
57
|
+
...(opts.waitForBroker === true ? { CRTR_ATTACH_WAIT_MS: String(BROKER_VIEW_SOCKET_WAIT_MS) } : {}),
|
|
58
|
+
...(opts.initialWhip === true ? { CRTR_ATTACH_INITIAL_WHIP: '1' } : {}),
|
|
59
|
+
};
|
|
60
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
61
|
+
if (opts.besidePane !== undefined) {
|
|
62
|
+
const pane = splitWindow(opts.besidePane, { cwd, env, command });
|
|
63
|
+
if (pane === null)
|
|
64
|
+
return null;
|
|
65
|
+
const loc = paneLocation(pane);
|
|
66
|
+
const sess = loc?.session ?? session;
|
|
67
|
+
const window = loc?.window ?? null;
|
|
68
|
+
// Rebalance the window to even side-by-side widths. Without this each split
|
|
69
|
+
// halves the pane it split from, so repeated spawns beside the same pane keep
|
|
70
|
+
// shrinking (¼, ⅛, …); an even-horizontal relayout gives every viewer in the
|
|
71
|
+
// window equal width instead. Best-effort — sizing never fails the open.
|
|
72
|
+
if (window !== null)
|
|
73
|
+
selectLayout(window, 'even-horizontal');
|
|
74
|
+
return { pane, session: sess, window };
|
|
75
|
+
}
|
|
76
|
+
ensureSession(session, cwd);
|
|
77
|
+
const opened = openNodeWindow({ session, name: opts.name ?? nodeId, cwd, env, command });
|
|
78
|
+
if (opened === null)
|
|
79
|
+
return null;
|
|
80
|
+
return { pane: opened.pane, session, window: opened.window };
|
|
81
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { type FocusRow } from '../canvas/index.js';
|
|
2
|
+
export type { FocusRow };
|
|
3
|
+
export { splitWindow, breakPane, selectLayout, selectPane, focusWindow, selectWindow, switchClient, openNodeWindow, ensureSession, paneLocation, paneExists, paneRunning, paneCurrentPath, currentTmux, inTmux, paneOfNode, setPaneOption, getPaneOption, piCommand, shellQuote, respawnPaneSync, closePane, displayPopup, windowOfPane, renameWindow, paneOfWindow, windowAlive, listLivePanes, listLivePanesAsync, paneStateAsync, } from './tmux-driver.js';
|
|
4
|
+
export type { RespawnPaneOpts } from './tmux-driver.js';
|
|
5
|
+
export { installTmuxBindings } from './tmux-bindings.js';
|
|
6
|
+
export type { TmuxInstalledPair, TmuxInstallDiagnostic, TmuxInstallResult } from './tmux-bindings.js';
|
|
7
|
+
/** The viewer a node has on screen, or null. UNIQUE(node_id) ⇒ at most one. */
|
|
8
|
+
export declare function focusOf(nodeId: string): Promise<FocusRow | null>;
|
|
9
|
+
/** A node's viewer, probed ahead of a canvas write: `live` is the row whose pane tmux answered for (or did not answer for in time),
|
|
10
|
+
* `stale` the row whose pane tmux reported gone; both null means the node had no row. The probe is a snapshot taken outside the
|
|
11
|
+
* write, so the write passes it through {@link confirmViewer} before deciding from it. */
|
|
12
|
+
export interface ViewerProbe {
|
|
13
|
+
nodeId: string;
|
|
14
|
+
live: FocusRow | null;
|
|
15
|
+
stale: FocusRow | null;
|
|
16
|
+
}
|
|
17
|
+
/** Read a node's viewer row and probe its pane with a bounded, non-blocking tmux call. Call it BEFORE `withCanvasWrite`: the
|
|
18
|
+
* probe holds no connection, and a hung tmux costs one timeout instead of an open transaction. A timed-out probe counts as live. */
|
|
19
|
+
export declare function probeViewer(nodeId: string): Promise<ViewerProbe>;
|
|
20
|
+
/** Inside the write: re-read the node's viewer row under its lock and compare it with the probe. A row that matches the probe
|
|
21
|
+
* (same focus and pane) keeps the probe's verdict, and a stale one is deleted here, only while it is still on the probed pane.
|
|
22
|
+
* A row that differs from the probe — re-pointed to another pane, or created after an empty probe — was never probed, so it
|
|
23
|
+
* counts as a live viewer and nothing is deleted; the next settle probes it. No tmux runs here. */
|
|
24
|
+
export declare function confirmViewer(probe: ViewerProbe): Promise<ViewerProbe>;
|
|
25
|
+
/** Does this node have a live viewer on screen? */
|
|
26
|
+
export declare function isFocused(nodeId: string): Promise<boolean>;
|
|
27
|
+
/** The viewer realized by a given pane (`%id`), or null. */
|
|
28
|
+
export declare function focusByPane(pane: string): Promise<FocusRow | null>;
|
|
29
|
+
/** The set of node ids that currently have a live viewer. */
|
|
30
|
+
export declare function focusedNodes(): Promise<Set<string>>;
|
|
31
|
+
/** Every live viewer row (GC'ing any whose pane has gone). */
|
|
32
|
+
export declare function listFocuses(): Promise<FocusRow[]>;
|
|
33
|
+
/** A reviver: ensure a node's broker ENGINE is alive (idempotent → reviveNode →
|
|
34
|
+
* headlessBrokerHost.launch). Injected so placement.ts need not import revive.ts
|
|
35
|
+
* (which imports placement.ts — a cycle). */
|
|
36
|
+
export type Reviver = (nodeId: string) => {
|
|
37
|
+
launch?: {
|
|
38
|
+
exited: Promise<{
|
|
39
|
+
code: number | null;
|
|
40
|
+
signal: NodeJS.Signals | null;
|
|
41
|
+
}>;
|
|
42
|
+
};
|
|
43
|
+
} | void;
|
|
44
|
+
/** Result of a focus op. `inPlace` = navigated to an existing viewer (no new
|
|
45
|
+
* pane); false = a fresh viewer pane was opened/moved. `revived` = this call
|
|
46
|
+
* had to (re)launch the broker engine. */
|
|
47
|
+
export interface FocusResult {
|
|
48
|
+
focused: boolean;
|
|
49
|
+
session: string | null;
|
|
50
|
+
inPlace: boolean;
|
|
51
|
+
revived: boolean;
|
|
52
|
+
}
|
|
53
|
+
/** Register a `crtr surface attach` VIEWER pane as the node's one viewer focus row.
|
|
54
|
+
* UNIQUE(node_id) ⇒ one viewer per node: returns
|
|
55
|
+
* the existing row (no insert) when the pane or the node is already registered.
|
|
56
|
+
* `window` is accepted for the call contract (spawn passes it) but not stored —
|
|
57
|
+
* the focuses table keys on pane + session only. The attach client self-tags the
|
|
58
|
+
* pane `@crtr_node` on connect, so `nodeInPane` resolves it either way. */
|
|
59
|
+
export declare function registerViewerFocus(nodeId: string, pane: string, session: string | null, window: string | null): Promise<FocusRow | null>;
|
|
60
|
+
/** Open a surface-attach viewer for `nodeId` and register its viewer focus row —
|
|
61
|
+
* the shared opener used by `focus` (a split beside the caller) and by a --root
|
|
62
|
+
* spawn (a fresh window in the caller's current session). Wraps `ensureSession`
|
|
63
|
+
* + `openNodeWindow`/`splitWindow` + `registerViewerFocus`. The attach client
|
|
64
|
+
* connects to the node's `view.sock` and renders/drives the live broker engine
|
|
65
|
+
* — it NEVER launches the engine (the one-writer invariant; the caller ensures
|
|
66
|
+
* the broker is alive first). Returns the registered viewer row, or null if tmux
|
|
67
|
+
* refused.
|
|
68
|
+
* - default → a fresh WINDOW in `session` (the --root spawn-viewer path).
|
|
69
|
+
* - `besidePane` → a SPLIT beside that pane in its own session (the focus
|
|
70
|
+
* open-beside-the-caller path); `session` is then only a fallback. */
|
|
71
|
+
export declare function openViewerWindow(nodeId: string, session: string, opts?: {
|
|
72
|
+
name?: string;
|
|
73
|
+
cwd?: string;
|
|
74
|
+
besidePane?: string;
|
|
75
|
+
waitForBroker?: boolean;
|
|
76
|
+
initialWhip?: boolean;
|
|
77
|
+
}): Promise<FocusRow | null>;
|
|
78
|
+
export declare function focus(nodeId: string, opts: {
|
|
79
|
+
pane?: string;
|
|
80
|
+
newPane?: boolean;
|
|
81
|
+
inPlace?: boolean;
|
|
82
|
+
revive: Reviver;
|
|
83
|
+
}): Promise<FocusResult>;
|
|
84
|
+
/** Tear a node off its viewer (close/reset/cancel teardown). The broker engine
|
|
85
|
+
* is killed by its own host teardown over view.sock — this only closes the
|
|
86
|
+
* on-screen viewer: kill its pane (the window collapses once its last pane goes)
|
|
87
|
+
* and drop its registry row. Best-effort tmux; the DB write always lands. No-op
|
|
88
|
+
* when the node has no viewer. */
|
|
89
|
+
export declare function tearDownNode(nodeId: string, keepPane?: string): Promise<void>;
|
|
90
|
+
/** Detach a node from the foreground (the `node lifecycle demote --detach` / Alt+C → D
|
|
91
|
+
* half). Every node is a headless broker — the only thing on screen is its
|
|
92
|
+
* surface-attach viewer pane — so "detach" means STOP FOREGROUNDING it: close the
|
|
93
|
+
* viewer pane (and drop its row) and leave the broker engine running untouched,
|
|
94
|
+
* reconnectable by a later `focus`. `pane` is the authoritative pane the caller
|
|
95
|
+
* acts on (the Alt+C menu's `#{pane_id}`); falls back to the node's registered
|
|
96
|
+
* viewer pane. No-op (false) when there is no live viewer pane to close. */
|
|
97
|
+
export declare function detachToBackground(nodeId: string, pane?: string): Promise<boolean>;
|
|
98
|
+
/** Reap `nodeId` IFF it is an empty shell (see {@link isEmptyNode}): tear down its
|
|
99
|
+
* broker engine, close any viewer, and hard-delete its row (edges cascade) + dir.
|
|
100
|
+
* The user closing or detaching from a node that never said anything wants it
|
|
101
|
+
* GONE, not parked as a canceled husk — except an OPEN managed worktree keeps
|
|
102
|
+
* its node identity so the worktree remains owned and can later be closed.
|
|
103
|
+
* Returns true when it reaped. No-op (false) on a node that produced output,
|
|
104
|
+
* is mid-first-turn, owns an open managed worktree, or no longer exists. */
|
|
105
|
+
export declare function reapIfEmpty(nodeId: string, keepPane?: string, teardown?: boolean): Promise<boolean>;
|
|
106
|
+
/** Sweep the whole canvas for empty shells and reap them — the bulk cleanup
|
|
107
|
+
* behind `crtr canvas prune --empty`, for the husks that accumulated before
|
|
108
|
+
* close/detach learned to reap. Skips: the caller ($CRTR_NODE_ID), dead rows,
|
|
109
|
+
* nodes mid-first-turn, and any node with a LIVE broker (pi_pid alive) — a
|
|
110
|
+
* running engine is the daemon's domain and may have output not yet persisted,
|
|
111
|
+
* so bulk GC never kills one (the per-action {@link reapIfEmpty} does, since
|
|
112
|
+
* the user explicitly closed/detached that node). `dryRun` reports candidates
|
|
113
|
+
* without deleting. Returns the reaped (or, under dryRun, reapable) node ids. */
|
|
114
|
+
export declare function reapEmptyNodes(opts?: {
|
|
115
|
+
dryRun?: boolean;
|
|
116
|
+
}): Promise<string[]>;
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
// placement.ts — the VIEWER REGISTRY + the model-over-driver tmux front door.
|
|
2
|
+
//
|
|
3
|
+
// After the broker-is-the-host cut the engine NEVER lives in a tmux pane: every
|
|
4
|
+
// node is a detached `headlessBrokerHost` process that binds `view.sock`. A tmux
|
|
5
|
+
// pane is only a surface-attach viewer of that broker, exactly like a web tab. So
|
|
6
|
+
// the whole engine-in-pane placement machinery (hot-swap, resume-into-focus,
|
|
7
|
+
// backstage relocation, remain-on-exit freeze, spread, node-row reconcile) is
|
|
8
|
+
// gone. What remains is:
|
|
9
|
+
//
|
|
10
|
+
// • The VIEWER REGISTRY — the `focuses` table, schema unchanged, now read as
|
|
11
|
+
// "node_id -> the node's one viewer %pane in `session`" (UNIQUE(node_id) =
|
|
12
|
+
// one viewer per node). focusOf/isFocused/focusByPane/focusedNodes/
|
|
13
|
+
// listFocuses read it (lazily GC'ing rows whose pane is gone or no longer
|
|
14
|
+
// carries this node's `@crtr_node` tag); registerViewerFocus writes it.
|
|
15
|
+
// • focus(nodeId) — ensure the broker engine is alive (injected reviver) +
|
|
16
|
+
// wait view.sock, then ensure the node's ONE viewer pane is forefront: reuse
|
|
17
|
+
// it wherever it already lives (switching sessions when needed), else open
|
|
18
|
+
// one beside the caller.
|
|
19
|
+
// • openViewerWindow / registerViewerFocus — the shared viewer-pane opener +
|
|
20
|
+
// row registrar used by BOTH spawn (a background viewer window) and focus.
|
|
21
|
+
// • tearDownNode / detachToBackground — close a node's viewer pane + row.
|
|
22
|
+
// • The chrome/viewer tmux re-exports (§2.1): placement stays the sanctioned
|
|
23
|
+
// model-over-driver. Raw driver access is confined to placement, its pure
|
|
24
|
+
// tmux half, the bindings owner, and tmux chrome.
|
|
25
|
+
import { envNodeId } from '../../shared/env.js';
|
|
26
|
+
import { getNode, fullName, deleteNode, listNodes, openFocusRow, closeFocusRow, closeFocusRowOnPane, getFocusByNodeForUpdate, getFocusByNode, getFocusByPane, getFocusById, listFocuses as listFocusRows, } from '../canvas/index.js';
|
|
27
|
+
import { nodeHasAssistantMessage } from '../canvas/render-source.js';
|
|
28
|
+
import { headlessBrokerHost } from './host.js';
|
|
29
|
+
import { publishNotice } from './close.js';
|
|
30
|
+
import { paneExists, paneStateAsync, listLivePanesAsync, paneLocation, closePane, currentTmux, switchClient, selectWindow, selectLayout, selectPane, getPaneOption, setPaneOption, respawnPaneSync, windowOfPane, renameWindow, } from './tmux-driver.js';
|
|
31
|
+
// The PURE tmux + broker-socket half now lives in placement-tmux.ts. placement
|
|
32
|
+
// composes the viewer OPENER over openViewerPane (tmux) + registerViewerFocus
|
|
33
|
+
// (the db write). viewerSplitEnv + waitForBrokerViewSocket are re-exported here
|
|
34
|
+
// (below) so placement's existing importers (daemon runtime, handlers) are
|
|
35
|
+
// unchanged.
|
|
36
|
+
import { openViewerPane, viewerSplitEnv, waitForBrokerViewSocket } from './placement-tmux.js';
|
|
37
|
+
import { newJobId } from './nodes.js';
|
|
38
|
+
import { isPidAlive } from '../canvas/pid.js';
|
|
39
|
+
// Placement is the sanctioned model-over-driver (§2.1): non-placement runtime /
|
|
40
|
+
// command modules that legitimately need a raw driver verb get it from here.
|
|
41
|
+
// These are the chrome + viewer verbs that survive the cut (the engine-in-pane
|
|
42
|
+
// verbs — respawnPane, respawnPaneDetached, swapPaneInPlace, breakPaneToSession,
|
|
43
|
+
// joinPane, setWindowOption, setRemainOnExit — are deleted). `breakPane` +
|
|
44
|
+
// `selectLayout` are FRESH minimal viewer-chrome helpers (not the deleted
|
|
45
|
+
// engine-in-pane `breakPaneToSession`): `surface tmux-spread` breaks the caller's
|
|
46
|
+
// viewer pane into its own window and tiles sibling viewers beside it.
|
|
47
|
+
// `piCommand`, `paneCurrentPath`, and `shellQuote` remain available to command
|
|
48
|
+
// modules that need to build or inspect tmux pane commands without importing
|
|
49
|
+
// tmux-driver.ts directly.
|
|
50
|
+
export { splitWindow, breakPane, selectLayout, selectPane, focusWindow, selectWindow, switchClient, openNodeWindow, ensureSession, paneLocation, paneExists, paneRunning, paneCurrentPath, currentTmux, inTmux, paneOfNode, setPaneOption, getPaneOption, piCommand, shellQuote, respawnPaneSync, closePane, displayPopup, windowOfPane, renameWindow, paneOfWindow, windowAlive, listLivePanes, listLivePanesAsync, paneStateAsync, } from './tmux-driver.js';
|
|
51
|
+
export { installTmuxBindings } from './tmux-bindings.js';
|
|
52
|
+
// Viewer registry reads — COMPOSE over the canvas focuses table (§2.3/§4).
|
|
53
|
+
//
|
|
54
|
+
// placement is the front door for "which nodes have a viewer on screen"; the SQL
|
|
55
|
+
// lives in the canvas layer (canvas/focuses.ts) and placement just reads it. A
|
|
56
|
+
// node has at most one viewer (UNIQUE node_id), so focusOf returns a single row.
|
|
57
|
+
//
|
|
58
|
+
// GC is lazy on read: a row whose viewer pane no longer exists (the user closed
|
|
59
|
+
// the window, the attach client died) is pruned the next time it is read, so the
|
|
60
|
+
// registry self-heals without a sweeper.
|
|
61
|
+
/** Prune a viewer row whose pane is gone; return it iff its pane is still live. `livePanes` is one `list-panes` answer for a batch of rows. */
|
|
62
|
+
async function liveOrPrune(f, livePanes = null) {
|
|
63
|
+
if (f === null)
|
|
64
|
+
return null;
|
|
65
|
+
// A probe that timed out is not "gone": only a pane tmux answered for as missing loses its row.
|
|
66
|
+
if (f.pane !== null && !(livePanes !== null ? livePanes.has(f.pane) : await paneStateAsync(f.pane) !== 'gone')) {
|
|
67
|
+
await closeFocusRow(f.focus_id);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
return f;
|
|
71
|
+
}
|
|
72
|
+
/** The viewer a node has on screen, or null. UNIQUE(node_id) ⇒ at most one. */
|
|
73
|
+
export async function focusOf(nodeId) {
|
|
74
|
+
return await liveOrPrune(await getFocusByNode(nodeId));
|
|
75
|
+
}
|
|
76
|
+
/** Read a node's viewer row and probe its pane with a bounded, non-blocking tmux call. Call it BEFORE `withCanvasWrite`: the
|
|
77
|
+
* probe holds no connection, and a hung tmux costs one timeout instead of an open transaction. A timed-out probe counts as live. */
|
|
78
|
+
export async function probeViewer(nodeId) {
|
|
79
|
+
const row = await getFocusByNode(nodeId);
|
|
80
|
+
if (row === null)
|
|
81
|
+
return { nodeId, live: null, stale: null };
|
|
82
|
+
if (row.pane === null || await paneStateAsync(row.pane) !== 'gone')
|
|
83
|
+
return { nodeId, live: row, stale: null };
|
|
84
|
+
return { nodeId, live: null, stale: row };
|
|
85
|
+
}
|
|
86
|
+
/** Inside the write: re-read the node's viewer row under its lock and compare it with the probe. A row that matches the probe
|
|
87
|
+
* (same focus and pane) keeps the probe's verdict, and a stale one is deleted here, only while it is still on the probed pane.
|
|
88
|
+
* A row that differs from the probe — re-pointed to another pane, or created after an empty probe — was never probed, so it
|
|
89
|
+
* counts as a live viewer and nothing is deleted; the next settle probes it. No tmux runs here. */
|
|
90
|
+
export async function confirmViewer(probe) {
|
|
91
|
+
const current = await getFocusByNodeForUpdate(probe.nodeId);
|
|
92
|
+
const probed = probe.live ?? probe.stale;
|
|
93
|
+
if (current === null)
|
|
94
|
+
return { nodeId: probe.nodeId, live: null, stale: null };
|
|
95
|
+
if (probed === null || probed.focus_id !== current.focus_id || probed.pane !== current.pane) {
|
|
96
|
+
return { nodeId: probe.nodeId, live: current, stale: null };
|
|
97
|
+
}
|
|
98
|
+
if (probe.stale !== null) {
|
|
99
|
+
await closeFocusRowOnPane(current.focus_id, current.pane);
|
|
100
|
+
return { nodeId: probe.nodeId, live: null, stale: null };
|
|
101
|
+
}
|
|
102
|
+
return { nodeId: probe.nodeId, live: current, stale: null };
|
|
103
|
+
}
|
|
104
|
+
/** Does this node have a live viewer on screen? */
|
|
105
|
+
export async function isFocused(nodeId) {
|
|
106
|
+
return await focusOf(nodeId) !== null;
|
|
107
|
+
}
|
|
108
|
+
/** The viewer realized by a given pane (`%id`), or null. */
|
|
109
|
+
export async function focusByPane(pane) {
|
|
110
|
+
return await liveOrPrune(await getFocusByPane(pane));
|
|
111
|
+
}
|
|
112
|
+
/** The set of node ids that currently have a live viewer. */
|
|
113
|
+
export async function focusedNodes() {
|
|
114
|
+
return new Set((await listFocuses()).map((f) => f.node_id));
|
|
115
|
+
}
|
|
116
|
+
/** Every live viewer row (GC'ing any whose pane has gone). */
|
|
117
|
+
export async function listFocuses() {
|
|
118
|
+
const live = [];
|
|
119
|
+
const rows = await listFocusRows();
|
|
120
|
+
// One non-blocking probe for every row: a canvas snapshot lists focuses, and a blocking tmux exec per row stalls the daemon's event loop.
|
|
121
|
+
// An unreachable tmux (null) falls back to the per-pane probe.
|
|
122
|
+
const livePanes = rows.some((f) => f.pane !== null) ? await listLivePanesAsync() : null;
|
|
123
|
+
for (const f of rows) {
|
|
124
|
+
if (await liveOrPrune(f, livePanes) !== null)
|
|
125
|
+
live.push(f);
|
|
126
|
+
}
|
|
127
|
+
return live;
|
|
128
|
+
}
|
|
129
|
+
function newFocusId() {
|
|
130
|
+
return `f-${newJobId()}`;
|
|
131
|
+
}
|
|
132
|
+
/** Register a `crtr surface attach` VIEWER pane as the node's one viewer focus row.
|
|
133
|
+
* UNIQUE(node_id) ⇒ one viewer per node: returns
|
|
134
|
+
* the existing row (no insert) when the pane or the node is already registered.
|
|
135
|
+
* `window` is accepted for the call contract (spawn passes it) but not stored —
|
|
136
|
+
* the focuses table keys on pane + session only. The attach client self-tags the
|
|
137
|
+
* pane `@crtr_node` on connect, so `nodeInPane` resolves it either way. */
|
|
138
|
+
export async function registerViewerFocus(nodeId, pane, session, window) {
|
|
139
|
+
void window;
|
|
140
|
+
const byPane = await getFocusByPane(pane);
|
|
141
|
+
if (byPane !== null)
|
|
142
|
+
return byPane;
|
|
143
|
+
const byNode = await getFocusByNode(nodeId);
|
|
144
|
+
if (byNode !== null)
|
|
145
|
+
return byNode;
|
|
146
|
+
const focusId = newFocusId();
|
|
147
|
+
await openFocusRow(focusId, pane, session, nodeId);
|
|
148
|
+
return await getFocusById(focusId);
|
|
149
|
+
}
|
|
150
|
+
/** Open a surface-attach viewer for `nodeId` and register its viewer focus row —
|
|
151
|
+
* the shared opener used by `focus` (a split beside the caller) and by a --root
|
|
152
|
+
* spawn (a fresh window in the caller's current session). Wraps `ensureSession`
|
|
153
|
+
* + `openNodeWindow`/`splitWindow` + `registerViewerFocus`. The attach client
|
|
154
|
+
* connects to the node's `view.sock` and renders/drives the live broker engine
|
|
155
|
+
* — it NEVER launches the engine (the one-writer invariant; the caller ensures
|
|
156
|
+
* the broker is alive first). Returns the registered viewer row, or null if tmux
|
|
157
|
+
* refused.
|
|
158
|
+
* - default → a fresh WINDOW in `session` (the --root spawn-viewer path).
|
|
159
|
+
* - `besidePane` → a SPLIT beside that pane in its own session (the focus
|
|
160
|
+
* open-beside-the-caller path); `session` is then only a fallback. */
|
|
161
|
+
export async function openViewerWindow(nodeId, session, opts = {}) {
|
|
162
|
+
const opened = openViewerPane(nodeId, session, opts);
|
|
163
|
+
if (opened === null)
|
|
164
|
+
return null;
|
|
165
|
+
return await registerViewerFocus(nodeId, opened.pane, opened.session, opened.window);
|
|
166
|
+
}
|
|
167
|
+
// focus — the front door for `surface node focus` / `surface node cycle` / nav (§A.4)
|
|
168
|
+
/** Bring a node's ONE viewer pane forefront (§A.4). Every node is a detached
|
|
169
|
+
* broker, so there is no engine pane to swap into the caller's viewport — focus
|
|
170
|
+
* instead ensures the node's single surface-attach viewer is on screen beside (or
|
|
171
|
+
* navigated to) the caller:
|
|
172
|
+
* (a) ensure the broker ENGINE is alive (idempotent injected reviver) and its
|
|
173
|
+
* view.sock is ACCEPTING (closes the cold-start race against attach's
|
|
174
|
+
* single connect) — without this the freshly-opened viewer would exit
|
|
175
|
+
* "no broker".
|
|
176
|
+
* (b) `--new-pane` → always a fresh viewer beside the caller (e.g. two
|
|
177
|
+
* different nodes side by side); drop any prior viewer first (UNIQUE).
|
|
178
|
+
* (c) the node already has a live viewer ⇒ navigate to it in place
|
|
179
|
+
* (switchClient+selectWindow+selectPane), including when it lives in a
|
|
180
|
+
* different session. The viewer's established spatial home wins over
|
|
181
|
+
* opening or moving a duplicate beside the caller.
|
|
182
|
+
* (d) no live viewer ⇒ open one beside the caller and register the row.
|
|
183
|
+
*
|
|
184
|
+
* crtr is tmux-only: with no caller pane there is no viewport to open and no
|
|
185
|
+
* non-tmux fallback — report not-focused. */
|
|
186
|
+
/** After a viewer pane is opened/moved beside the caller, make it the ACTIVE
|
|
187
|
+
* pane and rebalance its window's panes to an even side-by-side layout — so
|
|
188
|
+
* picking a node (e.g. from the alt+g graph) lands the keyboard on the fresh
|
|
189
|
+
* viewer and the panes are evenly sized again, not halved. Best-effort. */
|
|
190
|
+
function surfaceNewPane(pane) {
|
|
191
|
+
const win = paneLocation(pane)?.window ?? null;
|
|
192
|
+
if (win !== null)
|
|
193
|
+
selectLayout(win, 'even-horizontal');
|
|
194
|
+
selectPane(pane);
|
|
195
|
+
}
|
|
196
|
+
export async function focus(nodeId, opts) {
|
|
197
|
+
const meta = await getNode(nodeId);
|
|
198
|
+
if (meta === null)
|
|
199
|
+
return { focused: false, session: null, inPlace: false, revived: false };
|
|
200
|
+
const callerPane = opts.pane ?? process.env['TMUX_PANE'] ?? currentTmux()?.pane;
|
|
201
|
+
if (callerPane === undefined || callerPane === '') {
|
|
202
|
+
return { focused: false, session: null, inPlace: false, revived: false };
|
|
203
|
+
}
|
|
204
|
+
// (a) Ensure the broker engine is alive + its view.sock accepts. Capture prior
|
|
205
|
+
// liveness so the result reports whether THIS focus had to launch it.
|
|
206
|
+
const wasAlive = isPidAlive(meta.pi_pid ?? null);
|
|
207
|
+
const revivedLaunch = opts.revive(nodeId);
|
|
208
|
+
const revived = !wasAlive;
|
|
209
|
+
if (!(await waitForBrokerViewSocket(nodeId, revivedLaunch?.launch?.exited))) {
|
|
210
|
+
return { focused: false, session: null, inPlace: false, revived };
|
|
211
|
+
}
|
|
212
|
+
// focus always opens BESIDE the caller pane, so `fallbackSession` is only the
|
|
213
|
+
// session name openViewerWindow falls back to if it cannot read the freshly
|
|
214
|
+
// split pane's location — the caller's own session.
|
|
215
|
+
const callerSession = paneLocation(callerPane)?.session ?? null;
|
|
216
|
+
const fallbackSession = callerSession ?? '';
|
|
217
|
+
// (b0) --in-place → the CALLER pane BECOMES this node's viewer, replacing
|
|
218
|
+
// whatever it showed (the attach subagent scroll+swap: ↓ into the reports
|
|
219
|
+
// roster, Enter dives into that child right here, no new split). This
|
|
220
|
+
// re-execs the caller pane via `respawn-pane -k`, so it MUST be driven
|
|
221
|
+
// from OUTSIDE that pane's process tree (the viewer shells this through
|
|
222
|
+
// `tmux run-shell`, never a direct child) — else the respawn kills its own
|
|
223
|
+
// driver mid-call. Move the child's viewer here if it had one elsewhere
|
|
224
|
+
// (UNIQUE one-viewer-per-node) and drop the caller pane's prior viewer row
|
|
225
|
+
// (that node's broker keeps running headless, reconnectable by a later
|
|
226
|
+
// focus). The respawned `crtr surface attach` replays scrollback from the
|
|
227
|
+
// welcome snapshot and self-tags the pane `@crtr_node`.
|
|
228
|
+
if (opts.inPlace === true) {
|
|
229
|
+
const prior = await focusOf(nodeId);
|
|
230
|
+
if (prior !== null) {
|
|
231
|
+
if (prior.pane !== null && prior.pane !== callerPane && paneExists(prior.pane))
|
|
232
|
+
closePane(prior.pane);
|
|
233
|
+
await closeFocusRow(prior.focus_id);
|
|
234
|
+
}
|
|
235
|
+
const here = await getFocusByPane(callerPane);
|
|
236
|
+
if (here !== null && here.node_id !== nodeId)
|
|
237
|
+
await closeFocusRow(here.focus_id);
|
|
238
|
+
// Clear the stale tag before respawn so it never names the wrong node during
|
|
239
|
+
// the gap before the fresh attach re-tags on connect.
|
|
240
|
+
try {
|
|
241
|
+
setPaneOption(callerPane, '@crtr_node', '');
|
|
242
|
+
}
|
|
243
|
+
catch { /* best-effort */ }
|
|
244
|
+
const window = windowOfPane(callerPane);
|
|
245
|
+
// Continuity: the fresh viewer highlights the previously open node, which
|
|
246
|
+
// becomes visible in its self-excluding roster after the swap.
|
|
247
|
+
const priorNodeId = here?.node_id;
|
|
248
|
+
const env = priorNodeId === undefined
|
|
249
|
+
? viewerSplitEnv()
|
|
250
|
+
: { ...viewerSplitEnv(), CRTR_ATTACH_ROSTER: priorNodeId };
|
|
251
|
+
const ok = respawnPaneSync({ pane: callerPane, cwd: meta.cwd, env, command: `crtr surface attach to ${nodeId}` });
|
|
252
|
+
if (ok) {
|
|
253
|
+
if (window !== null)
|
|
254
|
+
renameWindow(window, fullName(meta));
|
|
255
|
+
await registerViewerFocus(nodeId, callerPane, callerSession, window);
|
|
256
|
+
}
|
|
257
|
+
return { focused: ok, session: callerSession, inPlace: true, revived };
|
|
258
|
+
}
|
|
259
|
+
// (b) --new-pane → always a fresh viewer beside the caller. Drop any prior
|
|
260
|
+
// viewer this node holds elsewhere (UNIQUE(node_id): one viewer per node).
|
|
261
|
+
if (opts.newPane === true) {
|
|
262
|
+
const prior = await focusOf(nodeId);
|
|
263
|
+
if (prior !== null) {
|
|
264
|
+
if (prior.pane !== null && paneExists(prior.pane))
|
|
265
|
+
closePane(prior.pane);
|
|
266
|
+
await closeFocusRow(prior.focus_id);
|
|
267
|
+
}
|
|
268
|
+
const opened = await openViewerWindow(nodeId, fallbackSession, { cwd: meta.cwd, besidePane: callerPane });
|
|
269
|
+
if (opened === null)
|
|
270
|
+
return { focused: false, session: null, inPlace: false, revived };
|
|
271
|
+
if (opened.pane !== null)
|
|
272
|
+
surfaceNewPane(opened.pane);
|
|
273
|
+
return { focused: true, session: opened.session, inPlace: false, revived };
|
|
274
|
+
}
|
|
275
|
+
// (c) Reuse / move the node's one live viewer — but ONLY a pane that still
|
|
276
|
+
// carries THIS node's `@crtr_node` tag. `paneExists` is not enough: the
|
|
277
|
+
// front-door root registers the user's own terminal as its viewer pane and
|
|
278
|
+
// runs `crtr surface attach` inline; on a clean detach the pane returns to the
|
|
279
|
+
// user's shell (attach clears the tag) yet the pane — and the row — survive,
|
|
280
|
+
// and a reused pane carries some OTHER node's tag. Navigating to / closing
|
|
281
|
+
// such a pane would strand the user on (or kill) their shell. So verify the
|
|
282
|
+
// tag names this node; on mismatch the row is stale → prune it and fall
|
|
283
|
+
// through to open a fresh viewer beside the caller.
|
|
284
|
+
const existing = await focusOf(nodeId);
|
|
285
|
+
if (existing !== null && existing.pane !== null) {
|
|
286
|
+
if (getPaneOption(existing.pane, '@crtr_node') === nodeId) {
|
|
287
|
+
const loc = paneLocation(existing.pane);
|
|
288
|
+
if (loc !== null) {
|
|
289
|
+
// Navigate to the viewer wherever it already lives. For a cross-session
|
|
290
|
+
// target, switch-client carries this tmux client to that session; for a
|
|
291
|
+
// same-session target it is an idempotent no-op. Never destroy and reopen
|
|
292
|
+
// a viewer merely because its established pane lives in another session.
|
|
293
|
+
switchClient(loc.session);
|
|
294
|
+
selectWindow(loc.session, loc.window);
|
|
295
|
+
selectPane(existing.pane);
|
|
296
|
+
return { focused: true, session: loc.session, inPlace: true, revived };
|
|
297
|
+
}
|
|
298
|
+
// The row names a pane that vanished between focusOf() and paneLocation().
|
|
299
|
+
// Prune it and fall through to opening the node's one viewer beside caller.
|
|
300
|
+
await closeFocusRow(existing.focus_id);
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
// Pane survived but no longer hosts this node's viewer (clean detach left
|
|
304
|
+
// the user's shell, or the pane was reused) — drop the stale row only; do
|
|
305
|
+
// NOT closePane (it is the user's shell / another node's viewer).
|
|
306
|
+
await closeFocusRow(existing.focus_id);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
// (d) No live viewer → open one beside the caller and register the row.
|
|
310
|
+
const opened = await openViewerWindow(nodeId, fallbackSession, { cwd: meta.cwd, besidePane: callerPane });
|
|
311
|
+
if (opened === null)
|
|
312
|
+
return { focused: false, session: null, inPlace: false, revived };
|
|
313
|
+
if (opened.pane !== null)
|
|
314
|
+
surfaceNewPane(opened.pane);
|
|
315
|
+
return { focused: true, session: opened.session, inPlace: false, revived };
|
|
316
|
+
}
|
|
317
|
+
// Teardown / detach — close a node's viewer pane + row
|
|
318
|
+
/** Tear a node off its viewer (close/reset/cancel teardown). The broker engine
|
|
319
|
+
* is killed by its own host teardown over view.sock — this only closes the
|
|
320
|
+
* on-screen viewer: kill its pane (the window collapses once its last pane goes)
|
|
321
|
+
* and drop its registry row. Best-effort tmux; the DB write always lands. No-op
|
|
322
|
+
* when the node has no viewer. */
|
|
323
|
+
export async function tearDownNode(nodeId, keepPane) {
|
|
324
|
+
const f = await focusOf(nodeId);
|
|
325
|
+
if (f === null)
|
|
326
|
+
return; // no viewer (focusOf already GC'd a gone one)
|
|
327
|
+
// `keepPane` is a BORROWED pane crtr did not create — the front-door root's
|
|
328
|
+
// viewer runs inside the user's own pre-existing shell pane (bootRoot registers
|
|
329
|
+
// that shell pane as the viewer focus). Killing it here would take the user's
|
|
330
|
+
// shell down with the node, closing the whole tmux pane on a plain ctrl+c
|
|
331
|
+
// detach. crtr must never kill a pane it merely borrowed: drop the row, let the
|
|
332
|
+
// pane fall back to its shell when the viewer process exits.
|
|
333
|
+
if (f.pane !== null && f.pane !== keepPane && paneExists(f.pane))
|
|
334
|
+
closePane(f.pane);
|
|
335
|
+
await closeFocusRow(f.focus_id);
|
|
336
|
+
}
|
|
337
|
+
/** Detach a node from the foreground (the `node lifecycle demote --detach` / Alt+C → D
|
|
338
|
+
* half). Every node is a headless broker — the only thing on screen is its
|
|
339
|
+
* surface-attach viewer pane — so "detach" means STOP FOREGROUNDING it: close the
|
|
340
|
+
* viewer pane (and drop its row) and leave the broker engine running untouched,
|
|
341
|
+
* reconnectable by a later `focus`. `pane` is the authoritative pane the caller
|
|
342
|
+
* acts on (the Alt+C menu's `#{pane_id}`); falls back to the node's registered
|
|
343
|
+
* viewer pane. No-op (false) when there is no live viewer pane to close. */
|
|
344
|
+
export async function detachToBackground(nodeId, pane) {
|
|
345
|
+
const viewer = pane ?? (await focusOf(nodeId))?.pane ?? null;
|
|
346
|
+
if (viewer === null || !paneExists(viewer))
|
|
347
|
+
return false;
|
|
348
|
+
const f = await focusByPane(viewer);
|
|
349
|
+
if (f !== null)
|
|
350
|
+
await closeFocusRow(f.focus_id);
|
|
351
|
+
const closed = closePane(viewer);
|
|
352
|
+
// A node the user detached from that never produced any AI output is a useless
|
|
353
|
+
// shell taking up graph + disk space — reap it (engine + row + dir) outright
|
|
354
|
+
// rather than leaving an empty broker running headless off-screen.
|
|
355
|
+
await reapIfEmpty(nodeId);
|
|
356
|
+
return closed;
|
|
357
|
+
}
|
|
358
|
+
// Reaping empty nodes (no AI output) on close / detach
|
|
359
|
+
/** Is this node an EMPTY SHELL right now — a node whose engine never produced an
|
|
360
|
+
* assistant message? Such nodes are pure dead weight on the graph. A node
|
|
361
|
+
* actively generating its FIRST turn is NOT empty (its output just hasn't landed
|
|
362
|
+
* on disk yet), so streaming nodes are spared. */
|
|
363
|
+
async function isEmptyNode(nodeId) {
|
|
364
|
+
const m = await getNode(nodeId);
|
|
365
|
+
if (m === null)
|
|
366
|
+
return false;
|
|
367
|
+
if (m.streaming === true && isPidAlive(m.pi_pid))
|
|
368
|
+
return false;
|
|
369
|
+
return !await nodeHasAssistantMessage(m.pi_session_file);
|
|
370
|
+
}
|
|
371
|
+
/** Reap `nodeId` IFF it is an empty shell (see {@link isEmptyNode}): tear down its
|
|
372
|
+
* broker engine, close any viewer, and hard-delete its row (edges cascade) + dir.
|
|
373
|
+
* The user closing or detaching from a node that never said anything wants it
|
|
374
|
+
* GONE, not parked as a canceled husk — except an OPEN managed worktree keeps
|
|
375
|
+
* its node identity so the worktree remains owned and can later be closed.
|
|
376
|
+
* Returns true when it reaped. No-op (false) on a node that produced output,
|
|
377
|
+
* is mid-first-turn, owns an open managed worktree, or no longer exists. */
|
|
378
|
+
export async function reapIfEmpty(nodeId, keepPane, teardown = true) {
|
|
379
|
+
const meta = await getNode(nodeId);
|
|
380
|
+
if (meta?.managed_worktree?.state === 'open' || !await isEmptyNode(nodeId))
|
|
381
|
+
return false;
|
|
382
|
+
if (teardown)
|
|
383
|
+
void headlessBrokerHost.teardown(nodeId);
|
|
384
|
+
await tearDownNode(nodeId, keepPane);
|
|
385
|
+
return (await deleteNode(nodeId)).deleted;
|
|
386
|
+
}
|
|
387
|
+
/** Sweep the whole canvas for empty shells and reap them — the bulk cleanup
|
|
388
|
+
* behind `crtr canvas prune --empty`, for the husks that accumulated before
|
|
389
|
+
* close/detach learned to reap. Skips: the caller ($CRTR_NODE_ID), dead rows,
|
|
390
|
+
* nodes mid-first-turn, and any node with a LIVE broker (pi_pid alive) — a
|
|
391
|
+
* running engine is the daemon's domain and may have output not yet persisted,
|
|
392
|
+
* so bulk GC never kills one (the per-action {@link reapIfEmpty} does, since
|
|
393
|
+
* the user explicitly closed/detached that node). `dryRun` reports candidates
|
|
394
|
+
* without deleting. Returns the reaped (or, under dryRun, reapable) node ids. */
|
|
395
|
+
export async function reapEmptyNodes(opts = {}) {
|
|
396
|
+
const dryRun = opts.dryRun ?? false;
|
|
397
|
+
const selfId = envNodeId() ?? '';
|
|
398
|
+
const reaped = [];
|
|
399
|
+
for (const row of await listNodes()) {
|
|
400
|
+
const id = row.node_id;
|
|
401
|
+
const meta = await getNode(id);
|
|
402
|
+
if (id === selfId
|
|
403
|
+
|| row.status === 'dead'
|
|
404
|
+
|| isPidAlive(row.pi_pid)
|
|
405
|
+
|| meta?.managed_worktree?.state === 'open'
|
|
406
|
+
|| !await isEmptyNode(id))
|
|
407
|
+
continue;
|
|
408
|
+
if (!dryRun) {
|
|
409
|
+
await publishNotice(id, 'notice.close', `Child closed — ${meta?.name ?? id} (${id}) was closed from the canvas and is no longer running.`, { reason: 'child-closed', child: id });
|
|
410
|
+
void headlessBrokerHost.teardown(id);
|
|
411
|
+
await tearDownNode(id);
|
|
412
|
+
if (!(await deleteNode(id)).deleted)
|
|
413
|
+
continue;
|
|
414
|
+
}
|
|
415
|
+
reaped.push(id);
|
|
416
|
+
}
|
|
417
|
+
return reaped;
|
|
418
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** A running progress bar line. `setFraction` fills it from a real count;
|
|
2
|
+
* leaving it unset keeps the indeterminate slider. `stop` erases the line and
|
|
3
|
+
* resolves once the painter has released the terminal, so the caller can
|
|
4
|
+
* write its own outcome line without interleaving. */
|
|
5
|
+
export interface ProgressBar {
|
|
6
|
+
setFraction(fraction: number): void;
|
|
7
|
+
stop(): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
/** Start an animated bar on `stream`, drawn by a child process so it keeps
|
|
10
|
+
* moving while this process blocks inside the step it describes. */
|
|
11
|
+
export declare function startProgressBar(label: string, stream?: NodeJS.WriteStream & {
|
|
12
|
+
fd: number;
|
|
13
|
+
}): ProgressBar;
|