@north-light/api 0.3.579 → 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,739 @@
|
|
|
1
|
+
// The revive primitive — restores a node to active status by relaunching its
|
|
2
|
+
// broker engine. Used by both the supervisor daemon (on crash/refresh
|
|
3
|
+
// detection) and the explicit `crtr node lifecycle revive` command (or `crtr canvas revive --all`).
|
|
4
|
+
//
|
|
5
|
+
// A revive replays the node's persisted LaunchSpec + cwd (the canonical recipe)
|
|
6
|
+
// and launches the headless broker host (the only host after the
|
|
7
|
+
// broker-is-the-host cut). It opens NO viewer — it relaunches the engine only;
|
|
8
|
+
// existing viewer panes reconnect to the fresh broker on their own (attach
|
|
9
|
+
// auto-reconnect), and a node with no viewer is brought on screen by the next
|
|
10
|
+
// `focus`.
|
|
11
|
+
//
|
|
12
|
+
// resume=true → the caller prefers `pi --session <path>`, waking the saved
|
|
13
|
+
// conversation when its absolute session-file path exists.
|
|
14
|
+
// resume=false → the caller prefers a fresh context. An existing `.jsonl` is
|
|
15
|
+
// reused with `--crtr-new-cycle`; a node with no session file
|
|
16
|
+
// gets a truly fresh pi invocation.
|
|
17
|
+
//
|
|
18
|
+
// These are requests. Durable `intent=refresh` or `cycle_pending=true` always
|
|
19
|
+
// vetoes strict resume so focus and daemon callers cannot reopen an old
|
|
20
|
+
// context while a fresh cycle is still unconfirmed. A parked node vetoes it
|
|
21
|
+
// too, but only when the revival carries new input — unseen wake-worthy mail —
|
|
22
|
+
// and there is goal/roadmap ground state to re-enter on.
|
|
23
|
+
//
|
|
24
|
+
// reviveNode remains the ONLY sanctioned launcher of the node engine.
|
|
25
|
+
import { assertGranteeRunsHere } from './unsandboxed.js';
|
|
26
|
+
import { existsSync } from 'node:fs';
|
|
27
|
+
import { conversationIdFromPath, conversationStore, ConversationNotFoundError } from '../conversation-store/index.js';
|
|
28
|
+
import { isAbsolute } from 'node:path';
|
|
29
|
+
import { findNodeBySessionFile, getNode, updateNode, beginExecution, ExecutionAlreadyLive, recordExecutionPid, abortExecution, endLiveExecution, unbindSession, recordLaunch, setFrozen, clearFrozen, fullName, } from '../canvas/index.js';
|
|
30
|
+
import { emitEvent } from '../events/emit.js';
|
|
31
|
+
import { consumeDeadlineOnWake } from '../feed/messages.js';
|
|
32
|
+
import { isParked, transition } from './lifecycle.js';
|
|
33
|
+
import { publishNotice } from './close.js';
|
|
34
|
+
import { InputError } from '../io.js';
|
|
35
|
+
import { buildPiArgv } from './launch.js';
|
|
36
|
+
import { buildReviveKickoff, drainBearings, hasRetainedReports, readGoal, readYieldMessage, RUNTIME_RESTART_CONTINUATION } from './kickoff.js';
|
|
37
|
+
import { readRoadmap } from './roadmap.js';
|
|
38
|
+
import { encodeKickoffOrigin, KICKOFF_ORIGIN_ENV } from './stamp/protocol.js';
|
|
39
|
+
import { headlessBrokerHost, brokerLaunchJson } from './host.js';
|
|
40
|
+
import { isCloudRole } from '../canvas/person.js';
|
|
41
|
+
import { asNodePerson } from '../../daemon/reconcilers/node-lifecycle/node-person.js';
|
|
42
|
+
import { processRunner } from './runner/process.js';
|
|
43
|
+
import { runnerForEnvironment } from './runner/index.js';
|
|
44
|
+
import { MachineLaunchUncertainError, MachineOfflineError } from './runner/machine/ops.js';
|
|
45
|
+
import { blaxelEnvironmentOf } from './blaxel-environment.js';
|
|
46
|
+
import { recordLaunchFailure } from '../../daemon/reconcilers/node-lifecycle/launch-failure.js';
|
|
47
|
+
import { acceptedRelease, remoteMachineEnvironmentOf, checkBilledWake, EnvironmentImagePending, imageForWake } from '../../daemon/reconcilers/node-lifecycle/remote-wake.js';
|
|
48
|
+
import { ExecutionCapReached, liveExecutionForNode, setExecutionLaunchJson } from '../canvas/executions.js';
|
|
49
|
+
import { isDrained } from '../../daemon/drain.js';
|
|
50
|
+
import { appMemoryFull, appMemoryTooSmall, boundFleet, brokerCapReached, brokerThresholdsForDaemon } from './fleet.js';
|
|
51
|
+
import { admitBrokerMemory } from './memory-admission.js';
|
|
52
|
+
import { beginBootFaultAttempt, clearFault, hasAdmittedTurn, readFault } from '../canvas/recovery.js';
|
|
53
|
+
import { clearNodeLedger, forkNodeLedger, noticeChangedWhileDone } from './ledger.js';
|
|
54
|
+
import { forkSourceNode, rootOfSpine } from './nodes.js';
|
|
55
|
+
import { ApiError } from '../../api/errors.js';
|
|
56
|
+
import { grantSnapshotMissing } from '../../daemon/readiness.js';
|
|
57
|
+
import { checkStart } from './start-check.js';
|
|
58
|
+
import { isReviewCompanionBound } from '../review/companion.js';
|
|
59
|
+
import { assertProfileActive } from '../profiles/manifest.js';
|
|
60
|
+
import { isPidAlive } from '../canvas/pid.js';
|
|
61
|
+
import { crtrHome, jobDir } from '../canvas/paths.js';
|
|
62
|
+
import { contextDir, ensureNodeDirs, nodeAgentDir } from '../canvas/node-agent-paths.js';
|
|
63
|
+
import { discoverLifecycleHookRegistry } from '../command-hooks/discovery.js';
|
|
64
|
+
import { invokeLifecycleHooks } from '../command-hooks/transport/exec-lifecycle.js';
|
|
65
|
+
// resumeArgs — which session source a revive resumes from
|
|
66
|
+
/** Pick the `--session` source for a revive. Both resume=true (a true resume)
|
|
67
|
+
* and resume=false (a refresh-yield) resume by the absolute session-file path
|
|
68
|
+
* (immune to cwd; pi opens it directly) — but ONLY when that file actually
|
|
69
|
+
* exists on disk. A node's `pi_session_file` can be recorded in meta with
|
|
70
|
+
* nothing ever written there (e.g. its first-boot engine died before
|
|
71
|
+
* session_start ever ran), and `headlessBrokerHost.launch`'s preflight
|
|
72
|
+
* (host.ts) fatally rejects handing pi a `--session` for a missing path OR a
|
|
73
|
+
* bare id — either would crash the revive and strand the node dead with
|
|
74
|
+
* nothing to recover it. So when there is no real `.jsonl` to resume, this
|
|
75
|
+
* selects NEITHER source regardless of `resume`: the caller then falls
|
|
76
|
+
* through to a truly fresh (`--fresh`-equivalent) launch, which is always
|
|
77
|
+
* safe. The only difference between the two `resume` values (when the file
|
|
78
|
+
* DOES exist) is `newCycle`: resume=false additionally roots a fresh cycle
|
|
79
|
+
* branch (`--crtr-new-cycle`) rather than continuing the existing leaf. Pure
|
|
80
|
+
* so the decision is unit-testable without tmux or a real filesystem fixture
|
|
81
|
+
* beyond a temp file. */
|
|
82
|
+
export async function resumeArgs(meta, resume) {
|
|
83
|
+
const path = meta.pi_session_file;
|
|
84
|
+
const id = path ? conversationIdFromPath(path) : null;
|
|
85
|
+
if (id === null)
|
|
86
|
+
return {};
|
|
87
|
+
try {
|
|
88
|
+
const recorded = await conversationStore().header(id);
|
|
89
|
+
return resume ? { resumeSessionPath: recorded.path } : { resumeSessionPath: recorded.path, newCycle: true };
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
if (error instanceof ConversationNotFoundError)
|
|
93
|
+
return {};
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async function conversationExists(path) {
|
|
98
|
+
const id = conversationIdFromPath(path);
|
|
99
|
+
if (id === null)
|
|
100
|
+
return false;
|
|
101
|
+
try {
|
|
102
|
+
await conversationStore().header(id);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
if (error instanceof ConversationNotFoundError)
|
|
107
|
+
return false;
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** Whether the saved session holds any conversational message. The bearings
|
|
112
|
+
* are a custom message, so a session that only ever took its session_start has
|
|
113
|
+
* none; one that carries a user or assistant message has been conversed in. */
|
|
114
|
+
async function sessionHasConversation(sessionFile) {
|
|
115
|
+
const id = conversationIdFromPath(sessionFile);
|
|
116
|
+
if (id === null)
|
|
117
|
+
return true;
|
|
118
|
+
return (await conversationStore().read(id)).entries.some((entry) => entry.type === 'message');
|
|
119
|
+
}
|
|
120
|
+
/** Return false only when a valid Pi session header positively names a cwd that
|
|
121
|
+
* has gone away. Missing/corrupt headers remain the engine's concern: old
|
|
122
|
+
* fixtures and partial transcripts do not prove a cwd mismatch. */
|
|
123
|
+
async function sessionCwdExists(sessionFile) {
|
|
124
|
+
const id = conversationIdFromPath(sessionFile);
|
|
125
|
+
if (id === null)
|
|
126
|
+
return true;
|
|
127
|
+
const cwd = (await conversationStore().header(id)).header.cwd;
|
|
128
|
+
return typeof cwd !== 'string' || existsSync(cwd);
|
|
129
|
+
}
|
|
130
|
+
/** The session-file preflight has two ordered vetoes. A live owner wins before
|
|
131
|
+
* inspecting its transcript, so this node can never adopt or clear another
|
|
132
|
+
* broker's file. Only an unowned/dead-owner file then reaches the cwd check. */
|
|
133
|
+
async function resumableSessionArgs(nodeId, meta, resume,
|
|
134
|
+
/** False for a sandbox node: its session cwd exists inside the sandbox, which the sandbox start script checks. */
|
|
135
|
+
cwdIsLocal) {
|
|
136
|
+
const path = meta.pi_session_file;
|
|
137
|
+
if (!path || !await conversationExists(path))
|
|
138
|
+
return {};
|
|
139
|
+
const owner = await findNodeBySessionFile(path);
|
|
140
|
+
if (owner !== null && owner.node_id !== nodeId && isPidAlive(owner.pi_pid))
|
|
141
|
+
return {};
|
|
142
|
+
if (cwdIsLocal && !await sessionCwdExists(path))
|
|
143
|
+
return {};
|
|
144
|
+
return await resumeArgs(meta, resume);
|
|
145
|
+
}
|
|
146
|
+
// Return type
|
|
147
|
+
/** A relaunch that has NO transcript to resume or branch from, and no durable
|
|
148
|
+
* work state on disk (no roadmap, yield note, or retained report), is not a revive at all — the
|
|
149
|
+
* node never got a conversation off the ground, so there is no "previous
|
|
150
|
+
* in-memory context" that was lost. pi does not write a `.jsonl` until the
|
|
151
|
+
* first turn, so an idle node the user never messaged is the common case: it
|
|
152
|
+
* sits with only its injected bearings until a daemon restart tears its broker
|
|
153
|
+
* down. Handing that node the fresh-revive kickoff tells it, falsely, that it
|
|
154
|
+
* lost context and must rebuild from disk — and disk is empty — so it wakes,
|
|
155
|
+
* flails over an empty context dir and reports itself confused. Relaunch it as
|
|
156
|
+
* a BIRTH instead: replay the spawn mandate when it has one, or boot with no
|
|
157
|
+
* prompt at all and leave it sitting exactly where it was. */
|
|
158
|
+
async function isUnstartedBirth(nodeId) {
|
|
159
|
+
return await readRoadmap(nodeId) === null && await readYieldMessage(nodeId) === null && !await hasRetainedReports(nodeId);
|
|
160
|
+
}
|
|
161
|
+
/** Whether a fresh context window would have anything on disk to stand on: a
|
|
162
|
+
* goal, a roadmap, or both. The negative is what makes a fresh cycle worse
|
|
163
|
+
* than a resume — the new window would wake amnesiac, with no statement of
|
|
164
|
+
* what it is for. Read by the parked-resident veto below and by the message
|
|
165
|
+
* handler's explicit fresh-revive gate. */
|
|
166
|
+
export async function hasFreshGroundState(nodeId) {
|
|
167
|
+
const goal = await readGoal(nodeId);
|
|
168
|
+
if (goal !== null && goal.trim() !== '')
|
|
169
|
+
return true;
|
|
170
|
+
const roadmap = await readRoadmap(nodeId);
|
|
171
|
+
return roadmap !== null && roadmap.trim() !== '';
|
|
172
|
+
}
|
|
173
|
+
// reviveNode
|
|
174
|
+
/** Relaunch `nodeId`'s broker engine from its persisted recipe and update canvas
|
|
175
|
+
* meta. Opens no viewer (engine-only).
|
|
176
|
+
*
|
|
177
|
+
* `recovery: true` marks a launch that only replaces a broker instance which
|
|
178
|
+
* died or was torn down — the daemon's respawn after a broker exit, and the
|
|
179
|
+
* `reviveAll` sweep over disconnected nodes. Nothing external arrived for the
|
|
180
|
+
* node, so such a launch is NOT a wake and does not consume the node's armed
|
|
181
|
+
* deadline (see the consumeDeadlineOnWake call below). A viewer attach (the
|
|
182
|
+
* `viewerAttach` flag {@link decideAttachRevive} sets) is not a wake either.
|
|
183
|
+
*
|
|
184
|
+
* Throws if the node does not exist. All other failures propagate as-is —
|
|
185
|
+
* callers (daemon, command) decide how to handle.
|
|
186
|
+
*/
|
|
187
|
+
export async function reviveNode(nodeId, opts) {
|
|
188
|
+
const decision = await decideRevive(nodeId, opts, true);
|
|
189
|
+
if (decision.parked)
|
|
190
|
+
throw new Error(`reviveNode: internal parked decision for activating revive ${nodeId}`);
|
|
191
|
+
return decision.result;
|
|
192
|
+
}
|
|
193
|
+
/** The attach-specific entry to the revive boundary. A focus viewer may decline
|
|
194
|
+
* to wake an exact parked resident while preserving the ordinary activating
|
|
195
|
+
* attach default. The fleet check and parked decision are synchronous with the
|
|
196
|
+
* launch below, so an already-running broker wins before dormancy is observed.
|
|
197
|
+
*
|
|
198
|
+
* Attaching only to look is not a wake: every launch through this entry is
|
|
199
|
+
* marked `viewerAttach`, so it leaves the node's armed `node wait deadline`
|
|
200
|
+
* cron in place. Anything the person types reaches the node as a message, and
|
|
201
|
+
* that delivery is the wake that consumes the deadline. */
|
|
202
|
+
export async function decideAttachRevive(nodeId, opts, wakeParked) {
|
|
203
|
+
return decideRevive(nodeId, { ...opts, viewerAttach: true }, wakeParked);
|
|
204
|
+
}
|
|
205
|
+
/** A cloud role serves many people and has none of its own: a revive there reads the person's settings and rotation rows, so it runs as
|
|
206
|
+
* the node's person (its `sub`, or its profile's owner), with that person's snapshot loaded, exactly as the lifecycle lanes do. */
|
|
207
|
+
async function decideRevive(nodeId, opts, wakeParked) {
|
|
208
|
+
const meta = isCloudRole() ? await getNode(nodeId) : null;
|
|
209
|
+
if (meta === null)
|
|
210
|
+
return await decideReviveAsCaller(nodeId, opts, wakeParked);
|
|
211
|
+
return await asNodePerson({ node_id: nodeId, sub: meta.sub ?? null, profile_id: meta.profile_id ?? null }, () => decideReviveAsCaller(nodeId, opts, wakeParked));
|
|
212
|
+
}
|
|
213
|
+
async function decideReviveAsCaller(nodeId, opts, wakeParked) {
|
|
214
|
+
let meta = await getNode(nodeId);
|
|
215
|
+
if (meta === null) {
|
|
216
|
+
throw new Error(`reviveNode: unknown node ${nodeId}`);
|
|
217
|
+
}
|
|
218
|
+
// Fresh durable snapshot immediately before the lifecycle guard.
|
|
219
|
+
meta = await getNode(nodeId) ?? meta;
|
|
220
|
+
if (meta.run_id && (await getNode(meta.run_id))?.deleting_at)
|
|
221
|
+
throw new Error('run is deleting');
|
|
222
|
+
// Refuse to revive a LATCHED node — the reopen gate at every
|
|
223
|
+
// legitimate caller (node message send, node lifecycle revive) already checked this
|
|
224
|
+
// before calling in, but a target can finalize in the gap between that
|
|
225
|
+
// check and this call. This authoritative snapshot closes that race;
|
|
226
|
+
// a genuine `--reopen` caller has already CAS-cleared the latch.
|
|
227
|
+
if (meta.final_report !== null) {
|
|
228
|
+
throw new Error(`reviveNode: refusing to revive ${nodeId} — its finalization latch is set (final_report=${meta.final_report}). A final landed between the caller's reopen-gate check and this revive; re-run with --reopen if this retask is still wanted.`);
|
|
229
|
+
}
|
|
230
|
+
assertProfileActive(meta.profile_id);
|
|
231
|
+
// An unsandboxed machine runs terminal agents only: refuse before any lifecycle hook or other prelaunch executable runs as the app.
|
|
232
|
+
assertGranteeRunsHere(meta.grantee);
|
|
233
|
+
// Double-launch guard: a fleet entry IS liveness (design D-1). A lifecycle
|
|
234
|
+
// hook is awaited before the broker can register, so its reservation also
|
|
235
|
+
// owns the node while launch is in flight; a second contender must not cross
|
|
236
|
+
// that awaited gap and start a second broker on the same session file.
|
|
237
|
+
const fleet = boundFleet();
|
|
238
|
+
// A terminal node's token is minted from the terminal grant, and a joined runtime holds none until its first directory snapshot
|
|
239
|
+
// commits. Read here, before the guard below, because nothing may await between that guard and the slot reservation.
|
|
240
|
+
const awaitingGrants = meta.grantee === 'app:terminal' && await grantSnapshotMissing();
|
|
241
|
+
// The start check: a dormant node woken by mail, a message or a person starts only when no limit covering every charge of its
|
|
242
|
+
// payer is reached. A refusal throws `402 cap_exhausted` naming the limit and leaves the node dormant. Replacing a dead broker
|
|
243
|
+
// only when it re-drives a turn already started (`runtime-restart-abort`) or attaches a viewer is it not new work: a recovery of
|
|
244
|
+
// an unlaunched birth or of pending mail starts a turn and is checked. It is awaited HERE, before the guard below, so nothing
|
|
245
|
+
// awaits between the guard and the slot reservation (a contender awaiting in that gap would launch a second broker); a node
|
|
246
|
+
// already live or claimed is not starting and is not checked.
|
|
247
|
+
if (!await fleet.has(nodeId) && !await fleet.isClaimed(nodeId) && opts.wakeReason !== 'runtime-restart-abort' && opts.viewerAttach !== true
|
|
248
|
+
&& !(!wakeParked && meta.lifecycle === 'resident' && isParked(meta))) {
|
|
249
|
+
await checkStart(meta);
|
|
250
|
+
// A node in a Blaxel environment also passes the funding-bill check before any sandbox call (wake step 2).
|
|
251
|
+
if (await blaxelEnvironmentOf(meta.profile_id ?? null) !== null)
|
|
252
|
+
await checkBilledWake(meta);
|
|
253
|
+
}
|
|
254
|
+
if (await fleet.has(nodeId)) {
|
|
255
|
+
// The node is already running, but the ROW may still say terminal: a reopen
|
|
256
|
+
// or a retask lands on a live broker, and only this transition puts the row
|
|
257
|
+
// back where its liveness already is. Both specs accept any prior status,
|
|
258
|
+
// so this is a no-op for a row that is already active.
|
|
259
|
+
await transition(nodeId, meta.intent === 'refresh' ? 'refresh-launch' : 'revive');
|
|
260
|
+
return {
|
|
261
|
+
parked: false,
|
|
262
|
+
result: {
|
|
263
|
+
window: null,
|
|
264
|
+
session: meta.tmux_session ?? null,
|
|
265
|
+
resumed: false,
|
|
266
|
+
outcome: 'already-live',
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
if (await fleet.isClaimed(nodeId)) {
|
|
271
|
+
return {
|
|
272
|
+
parked: false,
|
|
273
|
+
result: {
|
|
274
|
+
window: null,
|
|
275
|
+
session: meta.tmux_session ?? null,
|
|
276
|
+
resumed: false,
|
|
277
|
+
outcome: 'already-live',
|
|
278
|
+
},
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
// Focus may establish a viewport without establishing an engine. This exact
|
|
282
|
+
// row has no final latch and no fleet owner; returning before reservation is
|
|
283
|
+
// what keeps lifecycle, cycle count, pid, inbox cursor, and session untouched.
|
|
284
|
+
if (!wakeParked && meta.lifecycle === 'resident' && isParked(meta)) {
|
|
285
|
+
return { parked: true };
|
|
286
|
+
}
|
|
287
|
+
// No snapshot yet is unknown authority, not a denial (the same rule as node creation): launching now would fail at the token mint
|
|
288
|
+
// and mark the node dead. Wait for the snapshot like a node waiting for a slot — frozen, relaunched by the tick once grants sync.
|
|
289
|
+
if (awaitingGrants) {
|
|
290
|
+
if (opts.capacity === 'refuse')
|
|
291
|
+
throw new ApiError(503, 'runtime_starting', 'the first grant snapshot from the directory has not committed');
|
|
292
|
+
await freezeForWait(nodeId, meta, { reason: 'grant_snapshot' });
|
|
293
|
+
return { parked: false, result: { window: null, session: meta.tmux_session ?? null, resumed: false, outcome: 'frozen' } };
|
|
294
|
+
}
|
|
295
|
+
// The cap, consulted BEFORE any mutation below: a node that cannot get a
|
|
296
|
+
// broker must not have its cycle counter bumped, its session identity
|
|
297
|
+
// cleared, or its bearings drained on the way to being turned away.
|
|
298
|
+
// A drained daemon (an import is dumping this install) wakes nothing: the row freezes as at a full cap, and the tick thaws it
|
|
299
|
+
// once the drain ends. A caller that must have a broker now is refused.
|
|
300
|
+
const drained = await isDrained();
|
|
301
|
+
if (drained && opts.capacity === 'refuse')
|
|
302
|
+
throw new Error(`the daemon is drained for an import; ${nodeId} cannot start until it ends`);
|
|
303
|
+
const slot = !drained && await fleet.reserveSlot(nodeId);
|
|
304
|
+
let memory = null;
|
|
305
|
+
if (slot) {
|
|
306
|
+
try {
|
|
307
|
+
memory = await admitBrokerMemory(nodeId);
|
|
308
|
+
}
|
|
309
|
+
catch (error) {
|
|
310
|
+
fleet.releaseReservation(nodeId);
|
|
311
|
+
throw error;
|
|
312
|
+
}
|
|
313
|
+
if (memory.verdict !== 'admitted')
|
|
314
|
+
fleet.releaseReservation(nodeId);
|
|
315
|
+
}
|
|
316
|
+
if (memory?.verdict === 'too_small')
|
|
317
|
+
throw appMemoryTooSmall(memory);
|
|
318
|
+
if (!slot || memory?.verdict === 'denied') {
|
|
319
|
+
if (opts.capacity === 'refuse') {
|
|
320
|
+
throw memory?.verdict === 'denied'
|
|
321
|
+
? appMemoryFull(memory)
|
|
322
|
+
: brokerCapReached(brokerThresholdsForDaemon().automaticReviveCap, await fleet.occupancy());
|
|
323
|
+
}
|
|
324
|
+
await freezeForWait(nodeId, meta, drained ? { reason: 'drain' } : memory?.verdict === 'denied'
|
|
325
|
+
? { reason: 'app_memory', free_bytes: memory.free_bytes, needed_bytes: memory.needed_bytes }
|
|
326
|
+
: { reason: 'broker_cap', live_count: await fleet.occupancy(), hard_cap: brokerThresholdsForDaemon().automaticReviveCap });
|
|
327
|
+
return {
|
|
328
|
+
parked: false,
|
|
329
|
+
result: {
|
|
330
|
+
window: null,
|
|
331
|
+
session: meta.tmux_session ?? null,
|
|
332
|
+
resumed: false,
|
|
333
|
+
outcome: 'frozen',
|
|
334
|
+
},
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
try {
|
|
338
|
+
return { parked: false, result: await launchRevive(nodeId, meta, opts) };
|
|
339
|
+
}
|
|
340
|
+
finally {
|
|
341
|
+
// The slot is either consumed by the fleet registration inside `launch`
|
|
342
|
+
// (making this a no-op) or given back here — the one release path covering
|
|
343
|
+
// every preflight refusal and launch failure between the claim and the
|
|
344
|
+
// registration.
|
|
345
|
+
fleet.releaseReservation(nodeId);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
/** Freezing is durable and once-per-episode: the mark stays until a launch
|
|
349
|
+
* clears it, so a node frozen across many saturated ticks announces itself
|
|
350
|
+
* exactly once and keeps its original wait timestamp (the thaw order reads
|
|
351
|
+
* it). */
|
|
352
|
+
async function freezeForWait(nodeId, meta, fields) {
|
|
353
|
+
if (meta.frozen_at != null)
|
|
354
|
+
return;
|
|
355
|
+
await setFrozen(nodeId, new Date().toISOString());
|
|
356
|
+
// The row holds no engine and is not getting one this pass, so a pid left
|
|
357
|
+
// over from the instance that just died would read as stale-active on
|
|
358
|
+
// every status surface. Clearing it is what makes `isFrozenRow` true and
|
|
359
|
+
// what tells the tick this row has never launched OR has already been
|
|
360
|
+
// written off, so the freeze lane owes it a launch rather than a verdict.
|
|
361
|
+
await endLiveExecution(nodeId, { reason: 'frozen' });
|
|
362
|
+
emitEvent({ level: 'info', event: 'broker.frozen', node_id: nodeId, fields });
|
|
363
|
+
}
|
|
364
|
+
/** A recorded cwd that no longer exists (e.g. a closed managed worktree whose tombstone dir was later
|
|
365
|
+
* reaped) can never host a launch. Fail loud with a typed, user-visible error naming the path instead
|
|
366
|
+
* of letting `headlessBrokerHost.launch` fail deep inside the crash/doctrine-wake catch, where it would
|
|
367
|
+
* surface as an opaque `internal error` (toErrorBody masks every 5xx). Callers admit work to a node
|
|
368
|
+
* with this before changing any state. Returns where the node runs: its Blaxel environment (null on a machine) and whether a remote machine hosts it. */
|
|
369
|
+
export async function assertRecordedCwdExists(nodeId, meta) {
|
|
370
|
+
// A sandbox node's cwd is a path inside its sandbox: the sandbox start script checks it (`cwd_missing`), never this host.
|
|
371
|
+
const blaxelEnvironment = await blaxelEnvironmentOf(meta.profile_id ?? null);
|
|
372
|
+
// A cloud role's node whose profile points at a machine environment runs on that machine: its cwd is a path there, which the machine's start checks.
|
|
373
|
+
const remoteMachine = await remoteMachineEnvironmentOf(meta.profile_id ?? null) !== null;
|
|
374
|
+
const remote = blaxelEnvironment !== null || remoteMachine;
|
|
375
|
+
if (!remote && !existsSync(meta.cwd)) {
|
|
376
|
+
const next = meta.fork_from != null
|
|
377
|
+
? `Restore ${meta.cwd}, then revive the fork normally with \`crtr node lifecycle revive ${nodeId}\`.`
|
|
378
|
+
: meta.managed_worktree?.state === 'open'
|
|
379
|
+
? 'Restore or reconcile the recorded checkout, then use the managed-worktree close or abandon recovery.'
|
|
380
|
+
: `Recreate ${meta.cwd}, or repair it with \`crtr node config --cwd <path> --node ${nodeId}\`; durable node work resumes in a fresh conversation. Then retry \`crtr node lifecycle revive ${nodeId}\`.`;
|
|
381
|
+
throw new InputError({
|
|
382
|
+
error: 'cwd_missing',
|
|
383
|
+
message: `${nodeId} cannot be revived — its recorded cwd no longer exists: ${meta.cwd}`,
|
|
384
|
+
next,
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
return { blaxelEnvironment, remoteMachine };
|
|
388
|
+
}
|
|
389
|
+
/** The launch itself, from the cwd preflight through `recordPid`. Split out so
|
|
390
|
+
* the capacity claim above has exactly one release path around it. */
|
|
391
|
+
async function launchRevive(nodeId, meta, opts) {
|
|
392
|
+
const { blaxelEnvironment, remoteMachine } = await assertRecordedCwdExists(nodeId, meta);
|
|
393
|
+
const remote = blaxelEnvironment !== null || remoteMachine;
|
|
394
|
+
// Lazy host_kind coerce (§C): every launch now uses the broker host. Persist
|
|
395
|
+
// that identity only after this call has passed the no-op liveness guard.
|
|
396
|
+
if (meta.host_kind !== 'broker') {
|
|
397
|
+
await updateNode(nodeId, { host_kind: 'broker' });
|
|
398
|
+
meta.host_kind = 'broker';
|
|
399
|
+
}
|
|
400
|
+
// A review companion's session coordinates are valid only after its durable
|
|
401
|
+
// visible boundary. Detach any markerless child so this launch replays the
|
|
402
|
+
// immutable fork instead of resuming an inherited transcript.
|
|
403
|
+
const reviewCompanionUnbound = meta.review_binding != null && !await isReviewCompanionBound(nodeId);
|
|
404
|
+
if (reviewCompanionUnbound && (meta.pi_session_id != null || meta.pi_session_file != null)) {
|
|
405
|
+
await unbindSession(nodeId);
|
|
406
|
+
meta.pi_session_id = null;
|
|
407
|
+
meta.pi_session_file = null;
|
|
408
|
+
}
|
|
409
|
+
// An ordinary fork remains a birth until session_start records the child
|
|
410
|
+
// session. Every retry replays the resolved immutable source file.
|
|
411
|
+
const forkBirthUnbound = meta.fork_from != null && meta.pi_session_id == null;
|
|
412
|
+
const forkSourceFile = meta.fork_source_file;
|
|
413
|
+
if (forkBirthUnbound && (typeof forkSourceFile !== 'string' || !isAbsolute(forkSourceFile))) {
|
|
414
|
+
throw new InputError({
|
|
415
|
+
error: 'fork_source_invalid',
|
|
416
|
+
message: `${nodeId} cannot be revived — its resolved fork source file is missing or invalid.`,
|
|
417
|
+
next: `Restore the node's fork source metadata, then retry \`crtr node lifecycle revive ${nodeId}\`.`,
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
const forkBirthPending = forkBirthUnbound && typeof forkSourceFile === 'string';
|
|
421
|
+
if (forkBirthPending && !await conversationExists(forkSourceFile)) {
|
|
422
|
+
throw new InputError({
|
|
423
|
+
error: 'fork_from_missing',
|
|
424
|
+
message: `${nodeId} cannot be revived — its fork source no longer exists: ${forkSourceFile}`,
|
|
425
|
+
next: `Restore ${forkSourceFile}, or update the node's fork source, then retry \`crtr node lifecycle revive ${nodeId}\`.`,
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
const { automaticReviveCap } = brokerThresholdsForDaemon();
|
|
429
|
+
// A node whose profile points at a Blaxel environment launches through the Blaxel runner; a recipe with no built image
|
|
430
|
+
// starts nothing and leaves the node's mail pending (D95).
|
|
431
|
+
if (blaxelEnvironment !== null) {
|
|
432
|
+
const image = await imageForWake(blaxelEnvironment);
|
|
433
|
+
if (image.state === 'pending')
|
|
434
|
+
throw new EnvironmentImagePending(blaxelEnvironment, image.error);
|
|
435
|
+
}
|
|
436
|
+
const runner = blaxelEnvironment !== null ? runnerForEnvironment('blaxel') : remoteMachine ? runnerForEnvironment('machine') : processRunner;
|
|
437
|
+
let executionId;
|
|
438
|
+
try {
|
|
439
|
+
executionId = await beginExecution(nodeId, { daemonEpoch: boundFleet().epoch(), cap: automaticReviveCap,
|
|
440
|
+
...(blaxelEnvironment !== null ? { runner: 'blaxel', release: acceptedRelease() } : remoteMachine ? { runner: 'machine', release: acceptedRelease() } : {}) });
|
|
441
|
+
}
|
|
442
|
+
catch (error) {
|
|
443
|
+
// Another daemon process took the last slot between the in-process check and the row insert.
|
|
444
|
+
if (error instanceof ExecutionCapReached)
|
|
445
|
+
throw brokerCapReached(error.cap, error.live);
|
|
446
|
+
// A concurrent caller (another API process) holds the node's live execution: it owns the launch, so this one adopts it.
|
|
447
|
+
if (error instanceof ExecutionAlreadyLive) {
|
|
448
|
+
return { window: null, session: meta.tmux_session ?? null, resumed: false, outcome: 'already-live' };
|
|
449
|
+
}
|
|
450
|
+
throw error;
|
|
451
|
+
}
|
|
452
|
+
try {
|
|
453
|
+
// Every (re)launch is a new cycle — bump the counter so CRTR_CYCLES and the
|
|
454
|
+
// footer stay in sync. Mutate the in-memory meta too so buildPiArgv below
|
|
455
|
+
// launches with the incremented count.
|
|
456
|
+
meta.cycles = (meta.cycles ?? 0) + 1;
|
|
457
|
+
await updateNode(nodeId, { cycles: meta.cycles });
|
|
458
|
+
// Ordinary nodes choose resume/cycle/fresh from their recorded session.
|
|
459
|
+
// Persisted pending-refresh state (durable across a pre-session_start
|
|
460
|
+
// crash-retry) outranks a caller's strict-resume request. A parked node now
|
|
461
|
+
// resumes its transcript too: its isolated parking turn never entered the
|
|
462
|
+
// main session, so wake mail continues one intact conversation without a
|
|
463
|
+
// fresh-cycle handoff. resumeArgs then selects only an existing absolute
|
|
464
|
+
// session path: strict resume continues its leaf, while refresh/cycle mode
|
|
465
|
+
// roots a new one.
|
|
466
|
+
const refreshPending = meta.intent === 'refresh' || meta.cycle_pending === true;
|
|
467
|
+
const effectiveResume = refreshPending ? false : opts.resume;
|
|
468
|
+
const resume = forkBirthPending ? {} : await resumableSessionArgs(nodeId, meta, effectiveResume, !remote);
|
|
469
|
+
// hasSessionPath: there is a real `.jsonl` to hand pi via `--session`, whether
|
|
470
|
+
// as a true resume OR a cycling refresh-yield (resumeArgs sets `newCycle` in
|
|
471
|
+
// the latter case). cycling and resuming are mutually exclusive; `resuming`
|
|
472
|
+
// keeps the STRICT true-resume-only meaning `ReviveResult.resumed` and the
|
|
473
|
+
// launch-placement hint below have always carried.
|
|
474
|
+
const hasSessionPath = resume.resumeSessionPath !== undefined;
|
|
475
|
+
const cycling = hasSessionPath && resume.newCycle === true;
|
|
476
|
+
const resuming = hasSessionPath && !cycling;
|
|
477
|
+
// Never conversed and nothing on disk to rebuild from — relaunch as a birth
|
|
478
|
+
// (see isUnstartedBirth). A clock-driven wake must keep its <crtr-wake>
|
|
479
|
+
// kickoff — the schedule IS the instruction to take a turn, so it never
|
|
480
|
+
// degrades to a birth replay. This one decision selects the kickoff below
|
|
481
|
+
// and is what the node:start hook payload reports as `isBirth`: a hook is
|
|
482
|
+
// told "birth" exactly when the node boots as one.
|
|
483
|
+
const birthReplay = !hasSessionPath
|
|
484
|
+
&& (opts.wakeReason === undefined || opts.wakeReason === 'runtime-restart-abort')
|
|
485
|
+
&& await isUnstartedBirth(nodeId);
|
|
486
|
+
// A session file proves only that session_start wrote the bearings. A child
|
|
487
|
+
// whose broker died before its kickoff was admitted holds exactly that, so
|
|
488
|
+
// resuming it promptless would leave it idle forever. Replay the goal only
|
|
489
|
+
// when no execution ever admitted a turn AND the session has no conversation.
|
|
490
|
+
const unadmittedBirth = resuming
|
|
491
|
+
&& (opts.wakeReason === undefined || opts.wakeReason === 'runtime-restart-abort')
|
|
492
|
+
&& !await hasAdmittedTurn(nodeId)
|
|
493
|
+
// No recorded turn is not proof on its own: nodes that predate execution
|
|
494
|
+
// records worked without leaving one. Replay only when the session itself
|
|
495
|
+
// holds no conversation.
|
|
496
|
+
&& !await sessionHasConversation(resume.resumeSessionPath);
|
|
497
|
+
const birthGoal = unadmittedBirth ? (await readGoal(nodeId))?.trim() : undefined;
|
|
498
|
+
const birthKickoffReplay = birthGoal !== undefined && birthGoal !== '';
|
|
499
|
+
const isBirth = forkBirthPending || birthReplay || birthKickoffReplay;
|
|
500
|
+
// A cycling launch is provisional until session_start confirms it. Once
|
|
501
|
+
// true, this marker is monotonic across failed retries; only that confirmed
|
|
502
|
+
// boot may clear it.
|
|
503
|
+
const cyclePending = meta.cycle_pending === true || cycling;
|
|
504
|
+
await updateNode(nodeId, { cycle_pending: cyclePending });
|
|
505
|
+
meta.cycle_pending = cyclePending;
|
|
506
|
+
// A truly fresh launch — no `.jsonl` to resume OR cycle from —
|
|
507
|
+
// starts a NEW pi session, so the old session identity is dead. Clear it from meta NOW,
|
|
508
|
+
// before launch, so the recorded state matches what we're about to do. This
|
|
509
|
+
// is load-bearing for exit-policy classification (classifyDeadNode row 8):
|
|
510
|
+
// if this fresh broker dies BEFORE session_start (recording no new session),
|
|
511
|
+
// the exit-policy job reads pi_session_id=NULL → boot-failure, the correct
|
|
512
|
+
// terminal outcome (transition('crash') + surfaceBootFailure) — a leftover
|
|
513
|
+
// stale id would instead be misread as a resumable session and retried. A
|
|
514
|
+
// cycling refresh keeps BOTH ids — the `.jsonl` and its recorded session id
|
|
515
|
+
// are exactly what's being reused — so a cycling broker that dies
|
|
516
|
+
// pre-session_start classifies as a retryable respawn, same class as a
|
|
517
|
+
// resume revive.
|
|
518
|
+
if (!forkBirthPending && !hasSessionPath && (meta.pi_session_id != null || meta.pi_session_file != null)) {
|
|
519
|
+
await unbindSession(nodeId);
|
|
520
|
+
meta.pi_session_id = null;
|
|
521
|
+
meta.pi_session_file = null;
|
|
522
|
+
}
|
|
523
|
+
// A true resume needs no kickoff — the saved conversation just continues. A
|
|
524
|
+
// fresh revive OR a cycling refresh-yield both get one so the (re-rooted)
|
|
525
|
+
// window re-reads its roadmap and continues: drainBearings captures the
|
|
526
|
+
// yield note and consumes the feed/persona acknowledgements; the builder is
|
|
527
|
+
// then pure. `resume` carries `resumeSessionPath`/`newCycle` through
|
|
528
|
+
// unchanged (empty for true-fresh, both set for cycling) so buildPiArgv emits
|
|
529
|
+
// the right argv either way.
|
|
530
|
+
let inv;
|
|
531
|
+
// The provenance of whatever kickoff this branch composes, handed to the
|
|
532
|
+
// broker process through inv.env below. A promptless launch announces
|
|
533
|
+
// nothing — there is no message to stamp.
|
|
534
|
+
let kickoffOrigin = null;
|
|
535
|
+
const birthOrigin = () => ({
|
|
536
|
+
type: 'runtime',
|
|
537
|
+
kind: 'kickoff',
|
|
538
|
+
...(meta.spawned_by != null && meta.spawned_by !== '' ? { spawnedBy: meta.spawned_by } : {}),
|
|
539
|
+
});
|
|
540
|
+
if (forkBirthPending) {
|
|
541
|
+
const goal = await readGoal(nodeId);
|
|
542
|
+
// The daemon copies the source into a conversation this node owns before
|
|
543
|
+
// launch, as spawn does for an ordinary fork. The broker's store socket
|
|
544
|
+
// admits a node only to conversations it owns, so a broker-side `--fork`
|
|
545
|
+
// of a source it does not own (a review branch the daemon materialized)
|
|
546
|
+
// is refused as not-found and the broker dies on every retry.
|
|
547
|
+
const sourceId = conversationIdFromPath(forkSourceFile);
|
|
548
|
+
if (sourceId === null)
|
|
549
|
+
throw new Error(`invalid fork source ${forkSourceFile}`);
|
|
550
|
+
const forkSessionPath = (await conversationStore().header(await conversationStore().fork(sourceId, nodeId))).path;
|
|
551
|
+
inv = buildPiArgv(meta, {
|
|
552
|
+
resumeSessionPath: forkSessionPath,
|
|
553
|
+
...(goal != null && goal !== '' ? { prompt: goal } : {}),
|
|
554
|
+
});
|
|
555
|
+
if (goal != null && goal !== '')
|
|
556
|
+
kickoffOrigin = birthOrigin();
|
|
557
|
+
await forkNodeLedger(nodeId, (await forkSourceNode(forkSourceFile))?.node_id ?? null);
|
|
558
|
+
}
|
|
559
|
+
else if (birthKickoffReplay) {
|
|
560
|
+
// Resume the bearings-only session and deliver the task it never admitted.
|
|
561
|
+
// The ledger is kept: the session is the one the node already owns.
|
|
562
|
+
inv = buildPiArgv(meta, { ...resume, prompt: birthGoal });
|
|
563
|
+
kickoffOrigin = birthOrigin();
|
|
564
|
+
}
|
|
565
|
+
else if (resuming) {
|
|
566
|
+
inv = buildPiArgv(meta, {
|
|
567
|
+
...resume,
|
|
568
|
+
...(opts.wakeReason === 'runtime-restart-abort' ? { prompt: RUNTIME_RESTART_CONTINUATION } : {}),
|
|
569
|
+
});
|
|
570
|
+
if (opts.wakeReason === 'runtime-restart-abort') {
|
|
571
|
+
kickoffOrigin = { type: 'runtime', kind: 'restart-continuation' };
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
else if (birthReplay) {
|
|
575
|
+
// A node with a spawn mandate replays it; a bare interactive node boots
|
|
576
|
+
// promptless and takes no turn at all.
|
|
577
|
+
const goal = (await readGoal(nodeId))?.trim();
|
|
578
|
+
inv = buildPiArgv(meta, goal !== undefined && goal !== '' ? { prompt: goal } : {});
|
|
579
|
+
if (goal !== undefined && goal !== '')
|
|
580
|
+
kickoffOrigin = birthOrigin();
|
|
581
|
+
await clearNodeLedger(nodeId);
|
|
582
|
+
}
|
|
583
|
+
else {
|
|
584
|
+
// Fresh or cycling: drain the one-shot bearings, then build the kickoff.
|
|
585
|
+
// When a scheduled bare self-alarm drove this revive, opts.wakeReason
|
|
586
|
+
// carries the wake provenance so the kickoff leads with a <crtr-wake> block
|
|
587
|
+
// ("a timer woke you"); every other reviveNode caller passes nothing → no
|
|
588
|
+
// block.
|
|
589
|
+
const bearings = await drainBearings(meta, executionId);
|
|
590
|
+
inv = buildPiArgv(meta, {
|
|
591
|
+
...resume,
|
|
592
|
+
prompt: await buildReviveKickoff(meta, bearings, opts.wakeReason === 'runtime-restart-abort' ? undefined : opts.wakeReason),
|
|
593
|
+
});
|
|
594
|
+
if (meta.run_id && bearings.unreadMessageIds?.length)
|
|
595
|
+
inv.env['CRTR_KICKOFF_MESSAGE_IDS'] = JSON.stringify(bearings.unreadMessageIds);
|
|
596
|
+
kickoffOrigin = opts.wakeReason !== undefined && opts.wakeReason !== 'runtime-restart-abort'
|
|
597
|
+
? { type: 'runtime', kind: 'wake', wake: opts.wakeReason }
|
|
598
|
+
: { type: 'runtime', kind: 'revive', cycle: meta.cycles ?? 0 };
|
|
599
|
+
await clearNodeLedger(nodeId);
|
|
600
|
+
}
|
|
601
|
+
// Every lifecycle launch emits the authoritative spine root rather than
|
|
602
|
+
// inheriting whichever node happened to invoke reviveNode.
|
|
603
|
+
inv.env = { ...inv.env, CRTR_SUBTREE: await rootOfSpine(nodeId) };
|
|
604
|
+
if (kickoffOrigin !== null)
|
|
605
|
+
inv.env[KICKOFF_ORIGIN_ENV] = encodeKickoffOrigin(kickoffOrigin);
|
|
606
|
+
// The broker host launches the detached engine. reviveNode keeps
|
|
607
|
+
// transition+clearPid around it (the crash-safety ordering, unchanged). It
|
|
608
|
+
// opens NO viewer — engine-only; existing viewers reconnect, and a viewer-less
|
|
609
|
+
// node is brought on screen by the next `focus`.
|
|
610
|
+
// A node coming back from done is told, through its inbox (a resumed session
|
|
611
|
+
// has no kickoff), which watched documents others revised while it was done.
|
|
612
|
+
// Read before the transition below rewrites the status. A reopen already
|
|
613
|
+
// queued this in commitReopenResident, so the row is active by now.
|
|
614
|
+
if (meta.status === 'done' && meta.last_settled_at != null)
|
|
615
|
+
await noticeChangedWhileDone(nodeId, meta.last_settled_at);
|
|
616
|
+
await transition(nodeId, meta.intent === 'refresh' ? 'refresh-launch' : 'revive');
|
|
617
|
+
// Clear any active fault the instant this node is (re)launched — don't wait
|
|
618
|
+
// for the fresh agent_start. A revive (auto or on-demand) is the recovery
|
|
619
|
+
// this marker advertised. Snapshot the boot-fault attempt in the SAME
|
|
620
|
+
// breath (see beginBootFaultAttempt): its own verification, not this call's
|
|
621
|
+
// unchecked result, is what scopes a later diagnostic read to this attempt.
|
|
622
|
+
// A conversation_write_failed fault is the one kept: it records why the last broker died, and the first successful turn of this
|
|
623
|
+
// launch clears it (canvas-stophook's progress report), so a control plane or harness can still read it after the revive.
|
|
624
|
+
if ((await readFault(nodeId))?.op !== 'conversation_write_failed')
|
|
625
|
+
await clearFault(nodeId, { preserveEpisode: true });
|
|
626
|
+
const bootFault = await beginBootFaultAttempt(nodeId);
|
|
627
|
+
// A cron armed --cancel-on-wake belongs to the dormancy being left, so a WAKE
|
|
628
|
+
// of its anchor deletes it — an inbox delivery (including text a person types
|
|
629
|
+
// into a viewer, which arrives as a message) or an explicit revive. Two
|
|
630
|
+
// launches are NOT wakes, and the deadline survives both:
|
|
631
|
+
// - a recovery relaunch: the broker instance died or was torn down and the
|
|
632
|
+
// daemon is putting the same waiting node back on its feet, with nothing
|
|
633
|
+
// external having arrived — the same rule lifecycle.ts applies to the
|
|
634
|
+
// `crash` transition (a deadline MUST survive instance death);
|
|
635
|
+
// - a viewer attach/focus: a person opening the node to look delivers
|
|
636
|
+
// nothing to it, so the wait the deadline bounds is still open.
|
|
637
|
+
if (opts.recovery !== true && opts.viewerAttach !== true)
|
|
638
|
+
await consumeDeadlineOnWake(nodeId);
|
|
639
|
+
await ensureNodeDirs(nodeId, meta.grantee);
|
|
640
|
+
const lifecycleHooks = discoverLifecycleHookRegistry(meta.cwd, meta.profile_id).plans.get('node:start') ?? [];
|
|
641
|
+
await invokeLifecycleHooks(lifecycleHooks, {
|
|
642
|
+
node: {
|
|
643
|
+
id: nodeId,
|
|
644
|
+
name: meta.name,
|
|
645
|
+
kind: meta.kind,
|
|
646
|
+
mode: meta.mode,
|
|
647
|
+
lifecycle: meta.lifecycle,
|
|
648
|
+
cwd: meta.cwd,
|
|
649
|
+
nodeDir: await nodeAgentDir(nodeId),
|
|
650
|
+
contextDir: await contextDir(nodeId),
|
|
651
|
+
jobDir: jobDir(nodeId),
|
|
652
|
+
},
|
|
653
|
+
runtime: {
|
|
654
|
+
isBirth,
|
|
655
|
+
canvasHome: crtrHome(),
|
|
656
|
+
profile: meta.profile_id ?? null,
|
|
657
|
+
},
|
|
658
|
+
});
|
|
659
|
+
inv.env = { ...inv.env, CRTR_EXECUTION_ID: executionId };
|
|
660
|
+
const launchJson = await brokerLaunchJson(nodeId, inv, meta.cwd);
|
|
661
|
+
await setExecutionLaunchJson(executionId, launchJson);
|
|
662
|
+
let launched;
|
|
663
|
+
try {
|
|
664
|
+
const row = await liveExecutionForNode(nodeId);
|
|
665
|
+
const started = await runner.start({ executionId, nodeId, attempt: row?.attempt ?? 1, sandboxName: row?.sandboxName ?? null,
|
|
666
|
+
release: row?.release ?? '', launchJson, cwd: meta.cwd, resuming });
|
|
667
|
+
launched = started;
|
|
668
|
+
if (!remote && launched.pid === null) {
|
|
669
|
+
throw new Error(`broker host returned no pid for ${nodeId}`);
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
catch (error) {
|
|
673
|
+
// A machine with no live link started nothing: the node is not crashed, the caller leaves it dormant with its mail pending (the outer catch ends the execution).
|
|
674
|
+
if (error instanceof MachineOfflineError)
|
|
675
|
+
throw error;
|
|
676
|
+
try {
|
|
677
|
+
await transition(nodeId, 'crash', {
|
|
678
|
+
reason: 'launch_failed',
|
|
679
|
+
outcome: {
|
|
680
|
+
detail: {
|
|
681
|
+
schema: 'crtr.node-outcome-detail/v1',
|
|
682
|
+
message: error instanceof Error ? error.message : String(error),
|
|
683
|
+
},
|
|
684
|
+
},
|
|
685
|
+
});
|
|
686
|
+
// Doctrine wake: a launch-refusal here marks the node dead with NOTHING
|
|
687
|
+
// else fanning that out — the daemon's own auto-revive is the most common
|
|
688
|
+
// caller (superviseTick, best-effort try/catch, stderr-only on failure), so
|
|
689
|
+
// without this a manager waiting dormant on this child hangs forever,
|
|
690
|
+
// never told it will not come back on its own. Mirrors closeNode's step-4
|
|
691
|
+
// fan-out (same subscribers table, same active/passive split).
|
|
692
|
+
await publishNotice(nodeId, 'notice.crash', `Child crashed — ${fullName(meta)} (${nodeId}) failed to relaunch and is now dead: ${error.message}\n\n` +
|
|
693
|
+
`It stays dead until you revive it — \`crtr node lifecycle revive ${nodeId}\`.`, { reason: 'child-crashed', child: nodeId });
|
|
694
|
+
}
|
|
695
|
+
catch {
|
|
696
|
+
/* best-effort cleanup */
|
|
697
|
+
}
|
|
698
|
+
await abortExecution(executionId, { reason: 'launch_failed' });
|
|
699
|
+
throw new Error(`[broker] refusing to revive ${nodeId}: ${error.message}`);
|
|
700
|
+
}
|
|
701
|
+
await recordLaunch(nodeId, new Date().toISOString());
|
|
702
|
+
if (remote) {
|
|
703
|
+
// The sandbox's (or machine's) broker reports `broker.started`; the runner holds no pid the row records.
|
|
704
|
+
await clearFrozen(nodeId);
|
|
705
|
+
return { window: null, session: meta.tmux_session ?? null, resumed: resuming, faultExplanation: bootFault.explanation, outcome: 'launched' };
|
|
706
|
+
}
|
|
707
|
+
// The execution row owns the broker pid. A stale broker that reaches the
|
|
708
|
+
// daemon after its execution was superseded is stopped rather than claiming
|
|
709
|
+
// the current node process slot.
|
|
710
|
+
if (await recordExecutionPid(executionId, nodeId, launched.pid) === 'shutdown') {
|
|
711
|
+
await abortExecution(executionId, { reason: 'superseded' });
|
|
712
|
+
void headlessBrokerHost.teardown(nodeId);
|
|
713
|
+
throw new Error(`[broker] refusing to revive ${nodeId}: execution was superseded during launch`);
|
|
714
|
+
}
|
|
715
|
+
// A launch is the definition of not-frozen, and every launcher passes
|
|
716
|
+
// through here — so this is the one place the wait mark is retired.
|
|
717
|
+
await clearFrozen(nodeId);
|
|
718
|
+
return {
|
|
719
|
+
window: null,
|
|
720
|
+
session: meta.tmux_session ?? null,
|
|
721
|
+
resumed: resuming,
|
|
722
|
+
launch: launched,
|
|
723
|
+
faultExplanation: bootFault.explanation,
|
|
724
|
+
outcome: 'launched',
|
|
725
|
+
};
|
|
726
|
+
}
|
|
727
|
+
catch (error) {
|
|
728
|
+
// A forwarded start whose outcome is unknown leaves its execution launching: the Mac may have spawned the broker, and the lifecycle
|
|
729
|
+
// tick asks `status` of this execution after the link returns (adopt it when running, end it when gone) before any new one starts.
|
|
730
|
+
if (error instanceof MachineLaunchUncertainError)
|
|
731
|
+
throw error;
|
|
732
|
+
await abortExecution(executionId, { reason: 'launch_failed' });
|
|
733
|
+
// Best effort after the exit transition: a failed diagnostic write must neither leave the row live nor replace the launch error.
|
|
734
|
+
await recordLaunchFailure(executionId, error).catch((writeError) => {
|
|
735
|
+
emitEvent({ level: 'warn', event: 'broker.launch_failure.unrecorded', node_id: nodeId, error: writeError });
|
|
736
|
+
});
|
|
737
|
+
throw error;
|
|
738
|
+
}
|
|
739
|
+
}
|