@north-light/api 0.3.580 → 0.3.587
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/client.d.ts +9 -2
- package/dist/api/client.js +22 -0
- package/dist/api/contract.d.ts +1 -1
- package/dist/api/contract.js +1 -1
- package/dist/api/dto/bash-jobs.d.ts +17 -0
- package/dist/api/dto/bash-jobs.js +2 -0
- package/dist/api/dto/execution-start.d.ts +14 -0
- package/dist/api/dto/health.d.ts +22 -0
- package/dist/api/dto/imports.d.ts +142 -0
- package/dist/api/dto/imports.js +2 -0
- package/dist/api/error-codes.d.ts +5 -0
- package/dist/api/error-codes.js +2 -0
- package/dist/api/errors.js +2 -1
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.js +1 -0
- package/dist/api/routes.d.ts +3 -0
- package/dist/api/routes.js +3 -0
- package/dist/build-root.d.ts +66 -0
- package/dist/build-root.js +401 -0
- package/dist/clients/attach/ansi-cells.d.ts +44 -0
- package/dist/clients/attach/ansi-cells.js +137 -0
- package/dist/clients/attach/chrome/bash-jobs.d.ts +16 -0
- package/dist/clients/attach/chrome/bash-jobs.js +34 -0
- package/dist/clients/attach/chrome/canvas-panels.d.ts +43 -0
- package/dist/clients/attach/chrome/canvas-panels.js +227 -0
- package/dist/clients/attach/chrome/completion-bell.d.ts +10 -0
- package/dist/clients/attach/chrome/completion-bell.js +89 -0
- package/dist/clients/attach/chrome/cron-wait.d.ts +3 -0
- package/dist/clients/attach/chrome/cron-wait.js +34 -0
- package/dist/clients/attach/chrome/git-info.d.ts +20 -0
- package/dist/clients/attach/chrome/git-info.js +44 -0
- package/dist/clients/attach/chrome/header.d.ts +10 -0
- package/dist/clients/attach/chrome/header.js +30 -0
- package/dist/clients/attach/chrome/inbox-strip.d.ts +36 -0
- package/dist/clients/attach/chrome/inbox-strip.js +219 -0
- package/dist/clients/attach/chrome/key-hint.d.ts +9 -0
- package/dist/clients/attach/chrome/key-hint.js +16 -0
- package/dist/clients/attach/chrome/object-wait.d.ts +4 -0
- package/dist/clients/attach/chrome/object-wait.js +24 -0
- package/dist/clients/attach/chrome/recap.d.ts +7 -0
- package/dist/clients/attach/chrome/recap.js +19 -0
- package/dist/clients/attach/chrome/review-wait.d.ts +6 -0
- package/dist/clients/attach/chrome/review-wait.js +22 -0
- package/dist/clients/attach/chrome/roster.d.ts +39 -0
- package/dist/clients/attach/chrome/roster.js +294 -0
- package/dist/clients/attach/chrome/status-line.d.ts +38 -0
- package/dist/clients/attach/chrome/status-line.js +127 -0
- package/dist/clients/attach/chrome/ticket-panel.d.ts +29 -0
- package/dist/clients/attach/chrome/ticket-panel.js +280 -0
- package/dist/clients/attach/chrome/widgets.d.ts +9 -0
- package/dist/clients/attach/chrome/widgets.js +51 -0
- package/dist/clients/attach/command.d.ts +3 -0
- package/dist/clients/attach/command.js +107 -0
- package/dist/clients/attach/config.d.ts +95 -0
- package/dist/clients/attach/config.js +275 -0
- package/dist/clients/attach/input/capabilities.d.ts +30 -0
- package/dist/clients/attach/input/capabilities.js +112 -0
- package/dist/clients/attach/input/clipboard-image.d.ts +55 -0
- package/dist/clients/attach/input/clipboard-image.js +237 -0
- package/dist/clients/attach/input/completion-frecency.d.ts +45 -0
- package/dist/clients/attach/input/completion-frecency.js +141 -0
- package/dist/clients/attach/input/controller.d.ts +92 -0
- package/dist/clients/attach/input/controller.js +383 -0
- package/dist/clients/attach/input/overlay-owner.d.ts +41 -0
- package/dist/clients/attach/input/overlay-owner.js +199 -0
- package/dist/clients/attach/input/ref-autocomplete.d.ts +77 -0
- package/dist/clients/attach/input/ref-autocomplete.js +176 -0
- package/dist/clients/attach/input/titled-editor.d.ts +225 -0
- package/dist/clients/attach/input/titled-editor.js +859 -0
- package/dist/clients/attach/overlays/auth.d.ts +13 -0
- package/dist/clients/attach/overlays/auth.js +247 -0
- package/dist/clients/attach/overlays/dialogs.d.ts +27 -0
- package/dist/clients/attach/overlays/dialogs.js +102 -0
- package/dist/clients/attach/overlays/file-review.d.ts +10 -0
- package/dist/clients/attach/overlays/file-review.js +146 -0
- package/dist/clients/attach/overlays/graph.d.ts +83 -0
- package/dist/clients/attach/overlays/graph.js +725 -0
- package/dist/clients/attach/overlays/help.d.ts +33 -0
- package/dist/clients/attach/overlays/help.js +214 -0
- package/dist/clients/attach/overlays/mcp.d.ts +32 -0
- package/dist/clients/attach/overlays/mcp.js +302 -0
- package/dist/clients/attach/overlays/pickers.d.ts +56 -0
- package/dist/clients/attach/overlays/pickers.js +163 -0
- package/dist/clients/attach/render/activity-slot.d.ts +4 -0
- package/dist/clients/attach/render/activity-slot.js +13 -0
- package/dist/clients/attach/render/assistant-message.d.ts +13 -0
- package/dist/clients/attach/render/assistant-message.js +56 -0
- package/dist/clients/attach/render/card-presentation.d.ts +36 -0
- package/dist/clients/attach/render/card-presentation.js +222 -0
- package/dist/clients/attach/render/chat-view.d.ts +409 -0
- package/dist/clients/attach/render/chat-view.js +2108 -0
- package/dist/clients/attach/render/condensed-history.d.ts +21 -0
- package/dist/clients/attach/render/condensed-history.js +60 -0
- package/dist/clients/attach/render/context-message.d.ts +22 -0
- package/dist/clients/attach/render/context-message.js +63 -0
- package/dist/clients/attach/render/crtr-output.d.ts +52 -0
- package/dist/clients/attach/render/crtr-output.js +721 -0
- package/dist/clients/attach/render/diagram.d.ts +4 -0
- package/dist/clients/attach/render/diagram.js +111 -0
- package/dist/clients/attach/render/doc-links.d.ts +36 -0
- package/dist/clients/attach/render/doc-links.js +78 -0
- package/dist/clients/attach/render/edit-diff.d.ts +12 -0
- package/dist/clients/attach/render/edit-diff.js +304 -0
- package/dist/clients/attach/render/glyph-codepoints.d.ts +3 -0
- package/dist/clients/attach/render/glyph-codepoints.js +42 -0
- package/dist/clients/attach/render/group-activity.d.ts +84 -0
- package/dist/clients/attach/render/group-activity.js +276 -0
- package/dist/clients/attach/render/group-recap.d.ts +13 -0
- package/dist/clients/attach/render/group-recap.js +146 -0
- package/dist/clients/attach/render/markdown-source.d.ts +21 -0
- package/dist/clients/attach/render/markdown-source.js +279 -0
- package/dist/clients/attach/render/measured-container.d.ts +96 -0
- package/dist/clients/attach/render/measured-container.js +322 -0
- package/dist/clients/attach/render/page-block.d.ts +39 -0
- package/dist/clients/attach/render/page-block.js +187 -0
- package/dist/clients/attach/render/scroll-animation.d.ts +8 -0
- package/dist/clients/attach/render/scroll-animation.js +80 -0
- package/dist/clients/attach/render/tool-calls.d.ts +53 -0
- package/dist/clients/attach/render/tool-calls.js +350 -0
- package/dist/clients/attach/render/transcript-copy.d.ts +9 -0
- package/dist/clients/attach/render/transcript-copy.js +81 -0
- package/dist/clients/attach/render/transcript-search.d.ts +28 -0
- package/dist/clients/attach/render/transcript-search.js +152 -0
- package/dist/clients/attach/render/viewport.d.ts +38 -0
- package/dist/clients/attach/render/viewport.js +184 -0
- package/dist/clients/attach/session/banner.d.ts +13 -0
- package/dist/clients/attach/session/banner.js +33 -0
- package/dist/clients/attach/session/bindings.d.ts +20 -0
- package/dist/clients/attach/session/bindings.js +71 -0
- package/dist/clients/attach/session/chrome-refresh.d.ts +49 -0
- package/dist/clients/attach/session/chrome-refresh.js +154 -0
- package/dist/clients/attach/session/connection.d.ts +54 -0
- package/dist/clients/attach/session/connection.js +204 -0
- package/dist/clients/attach/session/context.d.ts +59 -0
- package/dist/clients/attach/session/context.js +16 -0
- package/dist/clients/attach/session/document-links.d.ts +12 -0
- package/dist/clients/attach/session/document-links.js +43 -0
- package/dist/clients/attach/session/editor-frame.d.ts +47 -0
- package/dist/clients/attach/session/editor-frame.js +142 -0
- package/dist/clients/attach/session/editor-inventory.d.ts +63 -0
- package/dist/clients/attach/session/editor-inventory.js +156 -0
- package/dist/clients/attach/session/file-links.d.ts +22 -0
- package/dist/clients/attach/session/file-links.js +73 -0
- package/dist/clients/attach/session/focus-events.d.ts +4 -0
- package/dist/clients/attach/session/focus-events.js +12 -0
- package/dist/clients/attach/session/frame.d.ts +46 -0
- package/dist/clients/attach/session/frame.js +214 -0
- package/dist/clients/attach/session/frames.d.ts +51 -0
- package/dist/clients/attach/session/frames.js +203 -0
- package/dist/clients/attach/session/identity.d.ts +16 -0
- package/dist/clients/attach/session/identity.js +26 -0
- package/dist/clients/attach/session/input-wiring.d.ts +53 -0
- package/dist/clients/attach/session/input-wiring.js +146 -0
- package/dist/clients/attach/session/invariant.d.ts +9 -0
- package/dist/clients/attach/session/invariant.js +15 -0
- package/dist/clients/attach/session/keys.d.ts +46 -0
- package/dist/clients/attach/session/keys.js +77 -0
- package/dist/clients/attach/session/layout.d.ts +22 -0
- package/dist/clients/attach/session/layout.js +59 -0
- package/dist/clients/attach/session/mouse.d.ts +27 -0
- package/dist/clients/attach/session/mouse.js +78 -0
- package/dist/clients/attach/session/pane-focus.d.ts +8 -0
- package/dist/clients/attach/session/pane-focus.js +42 -0
- package/dist/clients/attach/session/pane-tag.d.ts +44 -0
- package/dist/clients/attach/session/pane-tag.js +112 -0
- package/dist/clients/attach/session/pi-assets.d.ts +1 -0
- package/dist/clients/attach/session/pi-assets.js +24 -0
- package/dist/clients/attach/session/pi-oauth-flows.d.ts +1 -0
- package/dist/clients/attach/session/pi-oauth-flows.js +21 -0
- package/dist/clients/attach/session/profile-files.d.ts +17 -0
- package/dist/clients/attach/session/profile-files.js +207 -0
- package/dist/clients/attach/session/readonly-popup.d.ts +15 -0
- package/dist/clients/attach/session/readonly-popup.js +25 -0
- package/dist/clients/attach/session/reconnect.d.ts +46 -0
- package/dist/clients/attach/session/reconnect.js +195 -0
- package/dist/clients/attach/session/selection.d.ts +28 -0
- package/dist/clients/attach/session/selection.js +108 -0
- package/dist/clients/attach/session/state-sync.d.ts +38 -0
- package/dist/clients/attach/session/state-sync.js +67 -0
- package/dist/clients/attach/session/surface-frame.d.ts +20 -0
- package/dist/clients/attach/session/surface-frame.js +73 -0
- package/dist/clients/attach/session/surface-host.d.ts +65 -0
- package/dist/clients/attach/session/surface-host.js +256 -0
- package/dist/clients/attach/session/teardown.d.ts +30 -0
- package/dist/clients/attach/session/teardown.js +94 -0
- package/dist/clients/attach/session/transcript-search.d.ts +20 -0
- package/dist/clients/attach/session/transcript-search.js +151 -0
- package/dist/clients/attach/session/whip-achievements.d.ts +4 -0
- package/dist/clients/attach/session/whip-achievements.js +145 -0
- package/dist/clients/attach/session/whip.d.ts +20 -0
- package/dist/clients/attach/session/whip.js +362 -0
- package/dist/clients/attach/slash/dispatch.d.ts +120 -0
- package/dist/clients/attach/slash/dispatch.js +748 -0
- package/dist/clients/attach/slash/prompt-preview.d.ts +30 -0
- package/dist/clients/attach/slash/prompt-preview.js +121 -0
- package/dist/clients/attach/viewer.d.ts +8 -0
- package/dist/clients/attach/viewer.js +873 -0
- package/dist/clients/conversation/projection.d.ts +79 -0
- package/dist/clients/conversation/projection.js +324 -0
- package/dist/clients/conversation/submit.d.ts +38 -0
- package/dist/clients/conversation/submit.js +51 -0
- package/dist/clients/dashboard/app.d.ts +7 -0
- package/dist/clients/dashboard/app.js +438 -0
- package/dist/clients/dashboard/model.d.ts +39 -0
- package/dist/clients/dashboard/model.js +77 -0
- package/dist/clients/dashboard/render.d.ts +29 -0
- package/dist/clients/dashboard/render.js +148 -0
- package/dist/clients/inbox/controller.d.ts +174 -0
- package/dist/clients/inbox/controller.js +816 -0
- package/dist/clients/inbox/dto-adapt.d.ts +28 -0
- package/dist/clients/inbox/dto-adapt.js +93 -0
- package/dist/clients/inbox/layout.d.ts +8 -0
- package/dist/clients/inbox/layout.js +9 -0
- package/dist/clients/inbox/page-adapter.d.ts +33 -0
- package/dist/clients/inbox/page-adapter.js +55 -0
- package/dist/clients/inbox/resolve.d.ts +16 -0
- package/dist/clients/inbox/resolve.js +35 -0
- package/dist/clients/inbox/review/anchors.d.ts +41 -0
- package/dist/clients/inbox/review/anchors.js +89 -0
- package/dist/clients/inbox/review/comments-client.d.ts +74 -0
- package/dist/clients/inbox/review/comments-client.js +103 -0
- package/dist/clients/inbox/review/companion-pane.d.ts +47 -0
- package/dist/clients/inbox/review/companion-pane.js +109 -0
- package/dist/clients/inbox/review/document-surface.d.ts +212 -0
- package/dist/clients/inbox/review/document-surface.js +1268 -0
- package/dist/clients/inbox/review/frame.d.ts +57 -0
- package/dist/clients/inbox/review/frame.js +309 -0
- package/dist/clients/inbox/review/keys.d.ts +69 -0
- package/dist/clients/inbox/review/keys.js +133 -0
- package/dist/clients/inbox/review/launch.d.ts +16 -0
- package/dist/clients/inbox/review/launch.js +170 -0
- package/dist/clients/inbox/review/live-source.d.ts +24 -0
- package/dist/clients/inbox/review/live-source.js +160 -0
- package/dist/clients/inbox/review/nvim.d.ts +15 -0
- package/dist/clients/inbox/review/nvim.js +43 -0
- package/dist/clients/inbox/review/remap.d.ts +51 -0
- package/dist/clients/inbox/review/remap.js +157 -0
- package/dist/clients/inbox/review/review-client.d.ts +43 -0
- package/dist/clients/inbox/review/review-client.js +123 -0
- package/dist/clients/inbox/review/roundtrip.d.ts +5 -0
- package/dist/clients/inbox/review/roundtrip.js +41 -0
- package/dist/clients/inbox/review/state.d.ts +153 -0
- package/dist/clients/inbox/review/state.js +315 -0
- package/dist/clients/inbox/review-adapter.d.ts +17 -0
- package/dist/clients/inbox/review-adapter.js +43 -0
- package/dist/clients/inbox/surface.d.ts +25 -0
- package/dist/clients/inbox/surface.js +190 -0
- package/dist/clients/inbox/tui/ansi.d.ts +68 -0
- package/dist/clients/inbox/tui/ansi.js +321 -0
- package/dist/clients/inbox/tui/input.d.ts +5 -0
- package/dist/clients/inbox/tui/input.js +392 -0
- package/dist/clients/inbox/tui/keys.d.ts +28 -0
- package/dist/clients/inbox/tui/keys.js +104 -0
- package/dist/clients/inbox/tui/page-body.d.ts +10 -0
- package/dist/clients/inbox/tui/page-body.js +69 -0
- package/dist/clients/inbox/tui/panel.d.ts +4 -0
- package/dist/clients/inbox/tui/panel.js +84 -0
- package/dist/clients/inbox/tui/render.d.ts +23 -0
- package/dist/clients/inbox/tui/render.js +378 -0
- package/dist/clients/inbox/tui/slots.d.ts +33 -0
- package/dist/clients/inbox/tui/slots.js +134 -0
- package/dist/clients/inbox/tui/types.d.ts +73 -0
- package/dist/clients/inbox/tui/types.js +1 -0
- package/dist/clients/inbox/tui.d.ts +17 -0
- package/dist/clients/inbox/tui.js +92 -0
- package/dist/clients/surfaces/host.d.ts +74 -0
- package/dist/clients/surfaces/host.js +1 -0
- package/dist/commands/api-client.d.ts +113 -0
- package/dist/commands/api-client.js +427 -0
- package/dist/commands/attention.d.ts +2 -0
- package/dist/commands/attention.js +215 -0
- package/dist/commands/canvas/edges.d.ts +2 -0
- package/dist/commands/canvas/edges.js +41 -0
- package/dist/commands/canvas/list.d.ts +4 -0
- package/dist/commands/canvas/list.js +79 -0
- package/dist/commands/canvas/read.d.ts +14 -0
- package/dist/commands/canvas/read.js +95 -0
- package/dist/commands/canvas/search.d.ts +2 -0
- package/dist/commands/canvas/search.js +49 -0
- package/dist/commands/canvas/share.d.ts +2 -0
- package/dist/commands/canvas/share.js +80 -0
- package/dist/commands/canvas/unwatch.d.ts +2 -0
- package/dist/commands/canvas/unwatch.js +42 -0
- package/dist/commands/canvas/watch.d.ts +3 -0
- package/dist/commands/canvas/watch.js +63 -0
- package/dist/commands/canvas-analytics/chart.d.ts +52 -0
- package/dist/commands/canvas-analytics/chart.js +124 -0
- package/dist/commands/canvas-analytics/drilldown.d.ts +34 -0
- package/dist/commands/canvas-analytics/drilldown.js +96 -0
- package/dist/commands/canvas-analytics/format.d.ts +29 -0
- package/dist/commands/canvas-analytics/format.js +106 -0
- package/dist/commands/canvas-analytics/graph-detail.d.ts +2 -0
- package/dist/commands/canvas-analytics/graph-detail.js +307 -0
- package/dist/commands/canvas-analytics/graphs.d.ts +9 -0
- package/dist/commands/canvas-analytics/graphs.js +365 -0
- package/dist/commands/canvas-analytics/memory.d.ts +2 -0
- package/dist/commands/canvas-analytics/memory.js +211 -0
- package/dist/commands/canvas-analytics/overview.d.ts +2 -0
- package/dist/commands/canvas-analytics/overview.js +189 -0
- package/dist/commands/canvas-analytics/shell.d.ts +60 -0
- package/dist/commands/canvas-analytics/shell.js +416 -0
- package/dist/commands/canvas-analytics/time.d.ts +2 -0
- package/dist/commands/canvas-analytics/time.js +228 -0
- package/dist/commands/canvas-analytics/usage.d.ts +2 -0
- package/dist/commands/canvas-analytics/usage.js +305 -0
- package/dist/commands/canvas-analytics/view.d.ts +85 -0
- package/dist/commands/canvas-analytics/view.js +102 -0
- package/dist/commands/canvas-analytics.d.ts +2 -0
- package/dist/commands/canvas-analytics.js +28 -0
- package/dist/commands/canvas-browse.d.ts +2 -0
- package/dist/commands/canvas-browse.js +71 -0
- package/dist/commands/canvas-config.d.ts +2 -0
- package/dist/commands/canvas-config.js +192 -0
- package/dist/commands/canvas-history/grep.d.ts +1 -0
- package/dist/commands/canvas-history/grep.js +85 -0
- package/dist/commands/canvas-history/read.d.ts +1 -0
- package/dist/commands/canvas-history/read.js +48 -0
- package/dist/commands/canvas-history/search.d.ts +1 -0
- package/dist/commands/canvas-history/search.js +99 -0
- package/dist/commands/canvas-history/shared.d.ts +34 -0
- package/dist/commands/canvas-history/shared.js +135 -0
- package/dist/commands/canvas-history/stats.d.ts +1 -0
- package/dist/commands/canvas-history/stats.js +68 -0
- package/dist/commands/canvas-history.d.ts +2 -0
- package/dist/commands/canvas-history.js +29 -0
- package/dist/commands/canvas-issue.d.ts +2 -0
- package/dist/commands/canvas-issue.js +148 -0
- package/dist/commands/canvas-prune.d.ts +2 -0
- package/dist/commands/canvas-prune.js +111 -0
- package/dist/commands/canvas-roster.d.ts +2 -0
- package/dist/commands/canvas-roster.js +69 -0
- package/dist/commands/canvas-snapshot.d.ts +2 -0
- package/dist/commands/canvas-snapshot.js +34 -0
- package/dist/commands/canvas-use.d.ts +1 -0
- package/dist/commands/canvas-use.js +61 -0
- package/dist/commands/canvas.d.ts +3 -0
- package/dist/commands/canvas.js +57 -0
- package/dist/commands/chord.d.ts +2 -0
- package/dist/commands/chord.js +241 -0
- package/dist/commands/cron.d.ts +2 -0
- package/dist/commands/cron.js +541 -0
- package/dist/commands/custom-object/ack.d.ts +2 -0
- package/dist/commands/custom-object/ack.js +30 -0
- package/dist/commands/custom-object/publish.d.ts +2 -0
- package/dist/commands/custom-object/publish.js +39 -0
- package/dist/commands/custom-object/receive.d.ts +2 -0
- package/dist/commands/custom-object/receive.js +69 -0
- package/dist/commands/custom-object/register.d.ts +2 -0
- package/dist/commands/custom-object/register.js +69 -0
- package/dist/commands/custom-object/shared.d.ts +5 -0
- package/dist/commands/custom-object/shared.js +14 -0
- package/dist/commands/custom-object/unregister.d.ts +2 -0
- package/dist/commands/custom-object/unregister.js +26 -0
- package/dist/commands/custom-object.d.ts +2 -0
- package/dist/commands/custom-object.js +21 -0
- package/dist/commands/dashboard.d.ts +2 -0
- package/dist/commands/dashboard.js +86 -0
- package/dist/commands/doc/delete.d.ts +2 -0
- package/dist/commands/doc/delete.js +30 -0
- package/dist/commands/doc/edit.d.ts +2 -0
- package/dist/commands/doc/edit.js +82 -0
- package/dist/commands/doc/history.d.ts +2 -0
- package/dist/commands/doc/history.js +38 -0
- package/dist/commands/doc/lint.d.ts +2 -0
- package/dist/commands/doc/lint.js +36 -0
- package/dist/commands/doc/list.d.ts +2 -0
- package/dist/commands/doc/list.js +19 -0
- package/dist/commands/doc/move.d.ts +2 -0
- package/dist/commands/doc/move.js +37 -0
- package/dist/commands/doc/read.d.ts +2 -0
- package/dist/commands/doc/read.js +19 -0
- package/dist/commands/doc/replace-blocks.d.ts +6 -0
- package/dist/commands/doc/replace-blocks.js +40 -0
- package/dist/commands/doc/shared.d.ts +25 -0
- package/dist/commands/doc/shared.js +160 -0
- package/dist/commands/doc/write.d.ts +2 -0
- package/dist/commands/doc/write.js +52 -0
- package/dist/commands/doc.d.ts +2 -0
- package/dist/commands/doc.js +27 -0
- package/dist/commands/human/components.d.ts +4 -0
- package/dist/commands/human/components.js +78 -0
- package/dist/commands/human/feedback.d.ts +2 -0
- package/dist/commands/human/feedback.js +112 -0
- package/dist/commands/human/prompts.d.ts +21 -0
- package/dist/commands/human/prompts.js +326 -0
- package/dist/commands/human/queue.d.ts +3 -0
- package/dist/commands/human/queue.js +191 -0
- package/dist/commands/human/request.d.ts +2 -0
- package/dist/commands/human/request.js +266 -0
- package/dist/commands/human/review.d.ts +2 -0
- package/dist/commands/human/review.js +288 -0
- package/dist/commands/human/shared.d.ts +16 -0
- package/dist/commands/human/shared.js +67 -0
- package/dist/commands/human.d.ts +2 -0
- package/dist/commands/human.js +63 -0
- package/dist/commands/node/bash.d.ts +1 -0
- package/dist/commands/node/bash.js +390 -0
- package/dist/commands/node/create.d.ts +6 -0
- package/dist/commands/node/create.js +363 -0
- package/dist/commands/node/inspect.d.ts +2 -0
- package/dist/commands/node/inspect.js +288 -0
- package/dist/commands/node/lifecycle.d.ts +4 -0
- package/dist/commands/node/lifecycle.js +577 -0
- package/dist/commands/node/message.d.ts +1 -0
- package/dist/commands/node/message.js +170 -0
- package/dist/commands/node/outcome.d.ts +2 -0
- package/dist/commands/node/outcome.js +133 -0
- package/dist/commands/node/pyramid.d.ts +2 -0
- package/dist/commands/node/pyramid.js +79 -0
- package/dist/commands/node/subscription.d.ts +1 -0
- package/dist/commands/node/subscription.js +78 -0
- package/dist/commands/node/wait.d.ts +1 -0
- package/dist/commands/node/wait.js +165 -0
- package/dist/commands/node-context.d.ts +2 -0
- package/dist/commands/node-context.js +145 -0
- package/dist/commands/node-lifecycle-revive.d.ts +12 -0
- package/dist/commands/node-lifecycle-revive.js +217 -0
- package/dist/commands/node-snapshot.d.ts +2 -0
- package/dist/commands/node-snapshot.js +37 -0
- package/dist/commands/node-transcript.d.ts +2 -0
- package/dist/commands/node-transcript.js +59 -0
- package/dist/commands/node-worktree.d.ts +2 -0
- package/dist/commands/node-worktree.js +138 -0
- package/dist/commands/node.d.ts +2 -0
- package/dist/commands/node.js +29 -0
- package/dist/commands/person-settings.d.ts +1 -0
- package/dist/commands/person-settings.js +23 -0
- package/dist/commands/pkg/browse/actions.d.ts +7 -0
- package/dist/commands/pkg/browse/actions.js +198 -0
- package/dist/commands/pkg/browse/catalog.d.ts +9 -0
- package/dist/commands/pkg/browse/catalog.js +461 -0
- package/dist/commands/pkg/browse/command-view.d.ts +3 -0
- package/dist/commands/pkg/browse/command-view.js +217 -0
- package/dist/commands/pkg/browse/detail-panel.d.ts +66 -0
- package/dist/commands/pkg/browse/detail-panel.js +402 -0
- package/dist/commands/pkg/browse/doc-view.d.ts +3 -0
- package/dist/commands/pkg/browse/doc-view.js +84 -0
- package/dist/commands/pkg/browse/list-panel.d.ts +28 -0
- package/dist/commands/pkg/browse/list-panel.js +168 -0
- package/dist/commands/pkg/browse/model.d.ts +223 -0
- package/dist/commands/pkg/browse/model.js +36 -0
- package/dist/commands/pkg/browse/shell.d.ts +93 -0
- package/dist/commands/pkg/browse/shell.js +640 -0
- package/dist/commands/pkg/browse.d.ts +2 -0
- package/dist/commands/pkg/browse.js +27 -0
- package/dist/commands/pkg/market-inspect.d.ts +2 -0
- package/dist/commands/pkg/market-inspect.js +141 -0
- package/dist/commands/pkg/market-manage.d.ts +16 -0
- package/dist/commands/pkg/market-manage.js +327 -0
- package/dist/commands/pkg/market.d.ts +1 -0
- package/dist/commands/pkg/market.js +14 -0
- package/dist/commands/pkg/plugin-env.d.ts +3 -0
- package/dist/commands/pkg/plugin-env.js +65 -0
- package/dist/commands/pkg/plugin-inspect.d.ts +2 -0
- package/dist/commands/pkg/plugin-inspect.js +168 -0
- package/dist/commands/pkg/plugin-manage.d.ts +98 -0
- package/dist/commands/pkg/plugin-manage.js +1024 -0
- package/dist/commands/pkg/plugin.d.ts +1 -0
- package/dist/commands/pkg/plugin.js +14 -0
- package/dist/commands/pkg/shared.d.ts +13 -0
- package/dist/commands/pkg/shared.js +62 -0
- package/dist/commands/pkg.d.ts +2 -0
- package/dist/commands/pkg.js +21 -0
- package/dist/commands/profile/daemon-profiles.d.ts +13 -0
- package/dist/commands/profile/daemon-profiles.js +38 -0
- package/dist/commands/profile/default.d.ts +2 -0
- package/dist/commands/profile/default.js +183 -0
- package/dist/commands/profile/delete.d.ts +1 -0
- package/dist/commands/profile/delete.js +66 -0
- package/dist/commands/profile/env.d.ts +8 -0
- package/dist/commands/profile/env.js +188 -0
- package/dist/commands/profile/kind.d.ts +1 -0
- package/dist/commands/profile/kind.js +27 -0
- package/dist/commands/profile/list.d.ts +1 -0
- package/dist/commands/profile/list.js +45 -0
- package/dist/commands/profile/meta.d.ts +4 -0
- package/dist/commands/profile/meta.js +65 -0
- package/dist/commands/profile/new.d.ts +1 -0
- package/dist/commands/profile/new.js +95 -0
- package/dist/commands/profile/pause.d.ts +2 -0
- package/dist/commands/profile/pause.js +59 -0
- package/dist/commands/profile/project.d.ts +2 -0
- package/dist/commands/profile/project.js +134 -0
- package/dist/commands/profile/rename.d.ts +1 -0
- package/dist/commands/profile/rename.js +41 -0
- package/dist/commands/profile/show.d.ts +1 -0
- package/dist/commands/profile/show.js +55 -0
- package/dist/commands/profile.d.ts +2 -0
- package/dist/commands/profile.js +35 -0
- package/dist/commands/push.d.ts +2 -0
- package/dist/commands/push.js +263 -0
- package/dist/commands/revive.d.ts +2 -0
- package/dist/commands/revive.js +183 -0
- package/dist/commands/surface/node/cycle.d.ts +1 -0
- package/dist/commands/surface/node/cycle.js +83 -0
- package/dist/commands/surface/node/focus.d.ts +1 -0
- package/dist/commands/surface/node/focus.js +60 -0
- package/dist/commands/surface/node/id.d.ts +1 -0
- package/dist/commands/surface/node/id.js +38 -0
- package/dist/commands/surface/node/pin.d.ts +1 -0
- package/dist/commands/surface/node/pin.js +42 -0
- package/dist/commands/surface/node/placement.d.ts +30 -0
- package/dist/commands/surface/node/placement.js +49 -0
- package/dist/commands/surface-dashboard.d.ts +2 -0
- package/dist/commands/surface-dashboard.js +138 -0
- package/dist/commands/surface-edit.d.ts +2 -0
- package/dist/commands/surface-edit.js +157 -0
- package/dist/commands/surface-inbox.d.ts +2 -0
- package/dist/commands/surface-inbox.js +98 -0
- package/dist/commands/surface-inspect.d.ts +2 -0
- package/dist/commands/surface-inspect.js +41 -0
- package/dist/commands/surface-node.d.ts +2 -0
- package/dist/commands/surface-node.js +19 -0
- package/dist/commands/surface-reload.d.ts +7 -0
- package/dist/commands/surface-reload.js +129 -0
- package/dist/commands/surface-tmux-spread.d.ts +2 -0
- package/dist/commands/surface-tmux-spread.js +214 -0
- package/dist/commands/surface.d.ts +2 -0
- package/dist/commands/surface.js +29 -0
- package/dist/commands/sys/branch.d.ts +2 -0
- package/dist/commands/sys/branch.js +19 -0
- package/dist/commands/sys/config.d.ts +1 -0
- package/dist/commands/sys/config.js +353 -0
- package/dist/commands/sys/connect.d.ts +1 -0
- package/dist/commands/sys/connect.js +185 -0
- package/dist/commands/sys/context/admin/actions.d.ts +23 -0
- package/dist/commands/sys/context/admin/actions.js +89 -0
- package/dist/commands/sys/context/admin/detail-panel.d.ts +73 -0
- package/dist/commands/sys/context/admin/detail-panel.js +233 -0
- package/dist/commands/sys/context/admin/docs-panel.d.ts +63 -0
- package/dist/commands/sys/context/admin/docs-panel.js +185 -0
- package/dist/commands/sys/context/admin/list-view.d.ts +62 -0
- package/dist/commands/sys/context/admin/list-view.js +170 -0
- package/dist/commands/sys/context/admin/model.d.ts +123 -0
- package/dist/commands/sys/context/admin/model.js +179 -0
- package/dist/commands/sys/context/admin/rail-panel.d.ts +84 -0
- package/dist/commands/sys/context/admin/rail-panel.js +229 -0
- package/dist/commands/sys/context/admin/read-view.d.ts +27 -0
- package/dist/commands/sys/context/admin/read-view.js +172 -0
- package/dist/commands/sys/context/admin/shell.d.ts +125 -0
- package/dist/commands/sys/context/admin/shell.js +870 -0
- package/dist/commands/sys/context/admin.d.ts +1 -0
- package/dist/commands/sys/context/admin.js +148 -0
- package/dist/commands/sys/context/doc.d.ts +1 -0
- package/dist/commands/sys/context/doc.js +126 -0
- package/dist/commands/sys/context/expose.d.ts +1 -0
- package/dist/commands/sys/context/expose.js +66 -0
- package/dist/commands/sys/context/prompt-review.d.ts +1 -0
- package/dist/commands/sys/context/prompt-review.js +244 -0
- package/dist/commands/sys/context/resolve.d.ts +115 -0
- package/dist/commands/sys/context/resolve.js +326 -0
- package/dist/commands/sys/context/sysprompt.d.ts +1 -0
- package/dist/commands/sys/context/sysprompt.js +95 -0
- package/dist/commands/sys/context.d.ts +2 -0
- package/dist/commands/sys/context.js +21 -0
- package/dist/commands/sys/daemon.d.ts +4 -0
- package/dist/commands/sys/daemon.js +334 -0
- package/dist/commands/sys/db.d.ts +1 -0
- package/dist/commands/sys/db.js +69 -0
- package/dist/commands/sys/desktop.d.ts +5 -0
- package/dist/commands/sys/desktop.js +201 -0
- package/dist/commands/sys/doctor.d.ts +36 -0
- package/dist/commands/sys/doctor.js +633 -0
- package/dist/commands/sys/env.d.ts +1 -0
- package/dist/commands/sys/env.js +39 -0
- package/dist/commands/sys/feedback.d.ts +1 -0
- package/dist/commands/sys/feedback.js +228 -0
- package/dist/commands/sys/import/move.d.ts +55 -0
- package/dist/commands/sys/import/move.js +391 -0
- package/dist/commands/sys/import/resume.d.ts +1 -0
- package/dist/commands/sys/import/resume.js +23 -0
- package/dist/commands/sys/import/start.d.ts +4 -0
- package/dist/commands/sys/import/start.js +92 -0
- package/dist/commands/sys/join.d.ts +3 -0
- package/dist/commands/sys/join.js +85 -0
- package/dist/commands/sys/limits.d.ts +1 -0
- package/dist/commands/sys/limits.js +133 -0
- package/dist/commands/sys/logs.d.ts +1 -0
- package/dist/commands/sys/logs.js +129 -0
- package/dist/commands/sys/machine/rotate.d.ts +1 -0
- package/dist/commands/sys/machine/rotate.js +49 -0
- package/dist/commands/sys/migrate.d.ts +1 -0
- package/dist/commands/sys/migrate.js +79 -0
- package/dist/commands/sys/panels/broker-limits-panel.d.ts +17 -0
- package/dist/commands/sys/panels/broker-limits-panel.js +110 -0
- package/dist/commands/sys/panels/dependencies-panel.d.ts +14 -0
- package/dist/commands/sys/panels/dependencies-panel.js +80 -0
- package/dist/commands/sys/panels/keybindings-panel.d.ts +56 -0
- package/dist/commands/sys/panels/keybindings-panel.js +703 -0
- package/dist/commands/sys/panels/models-panel.d.ts +106 -0
- package/dist/commands/sys/panels/models-panel.js +1160 -0
- package/dist/commands/sys/panels/plugin-env-panel.d.ts +19 -0
- package/dist/commands/sys/panels/plugin-env-panel.js +70 -0
- package/dist/commands/sys/panels/plugins-panel.d.ts +16 -0
- package/dist/commands/sys/panels/plugins-panel.js +87 -0
- package/dist/commands/sys/panels/prefs-panel.d.ts +22 -0
- package/dist/commands/sys/panels/prefs-panel.js +97 -0
- package/dist/commands/sys/panels/profiles-panel.d.ts +70 -0
- package/dist/commands/sys/panels/profiles-panel.js +655 -0
- package/dist/commands/sys/panels/provider-panel.d.ts +74 -0
- package/dist/commands/sys/panels/provider-panel.js +534 -0
- package/dist/commands/sys/panels/terminal-panel.d.ts +19 -0
- package/dist/commands/sys/panels/terminal-panel.js +67 -0
- package/dist/commands/sys/provider-login.d.ts +8 -0
- package/dist/commands/sys/provider-login.js +99 -0
- package/dist/commands/sys/retry-delivery.d.ts +1 -0
- package/dist/commands/sys/retry-delivery.js +33 -0
- package/dist/commands/sys/settings-shell.d.ts +54 -0
- package/dist/commands/sys/settings-shell.js +400 -0
- package/dist/commands/sys/settings.d.ts +2 -0
- package/dist/commands/sys/settings.js +46 -0
- package/dist/commands/sys/setup-core.d.ts +121 -0
- package/dist/commands/sys/setup-core.js +890 -0
- package/dist/commands/sys/setup-settings-runner.d.ts +13 -0
- package/dist/commands/sys/setup-settings-runner.js +15 -0
- package/dist/commands/sys/setup-wizard.d.ts +52 -0
- package/dist/commands/sys/setup-wizard.js +351 -0
- package/dist/commands/sys/setup.d.ts +6 -0
- package/dist/commands/sys/setup.js +41 -0
- package/dist/commands/sys/shared.d.ts +51 -0
- package/dist/commands/sys/shared.js +81 -0
- package/dist/commands/sys/signin.d.ts +7 -0
- package/dist/commands/sys/signin.js +149 -0
- package/dist/commands/sys/spaces.d.ts +1 -0
- package/dist/commands/sys/spaces.js +22 -0
- package/dist/commands/sys/spend.d.ts +1 -0
- package/dist/commands/sys/spend.js +144 -0
- package/dist/commands/sys/support/prepare.d.ts +13 -0
- package/dist/commands/sys/support/prepare.js +239 -0
- package/dist/commands/sys/support/submit.d.ts +19 -0
- package/dist/commands/sys/support/submit.js +524 -0
- package/dist/commands/sys/support.d.ts +2 -0
- package/dist/commands/sys/support.js +18 -0
- package/dist/commands/sys/sync-deps.d.ts +16 -0
- package/dist/commands/sys/sync-deps.js +445 -0
- package/dist/commands/sys/sync-project-guidance.d.ts +1 -0
- package/dist/commands/sys/sync-project-guidance.js +319 -0
- package/dist/commands/sys/sync-shared.d.ts +44 -0
- package/dist/commands/sys/sync-shared.js +139 -0
- package/dist/commands/sys/sync-skills.d.ts +1 -0
- package/dist/commands/sys/sync-skills.js +297 -0
- package/dist/commands/sys/sync.d.ts +2 -0
- package/dist/commands/sys/sync.js +17 -0
- package/dist/commands/sys/terminal-option.d.ts +112 -0
- package/dist/commands/sys/terminal-option.js +542 -0
- package/dist/commands/sys/tutorial/branch.d.ts +1 -0
- package/dist/commands/sys/tutorial/branch.js +15 -0
- package/dist/commands/sys/tutorial/lessons.d.ts +5 -0
- package/dist/commands/sys/tutorial/lessons.js +107 -0
- package/dist/commands/sys/tutorial/scenario.d.ts +1 -0
- package/dist/commands/sys/tutorial/scenario.js +431 -0
- package/dist/commands/sys/tutorial/tracks.d.ts +1 -0
- package/dist/commands/sys/tutorial/tracks.js +96 -0
- package/dist/commands/sys/update.d.ts +2 -0
- package/dist/commands/sys/update.js +157 -0
- package/dist/commands/sys/worktrees.d.ts +2 -0
- package/dist/commands/sys/worktrees.js +53 -0
- package/dist/commands/sys.d.ts +2 -0
- package/dist/commands/sys.js +31 -0
- package/dist/core/activity-signal.d.ts +7 -0
- package/dist/core/activity-signal.js +38 -0
- package/dist/core/async-array.d.ts +7 -0
- package/dist/core/async-array.js +48 -0
- package/dist/core/auth-file.d.ts +35 -0
- package/dist/core/auth-file.js +161 -0
- package/dist/core/auth-interaction.d.ts +19 -0
- package/dist/core/auth-interaction.js +94 -0
- package/dist/core/bash-guard.d.ts +6 -0
- package/dist/core/bash-guard.js +527 -0
- package/dist/core/bash-job-supervisor.d.ts +5 -0
- package/dist/core/bash-job-supervisor.js +144 -0
- package/dist/core/bash-jobs.d.ts +168 -0
- package/dist/core/bash-jobs.js +455 -0
- package/dist/core/blobs/directory.d.ts +11 -0
- package/dist/core/blobs/directory.js +216 -0
- package/dist/core/blobs/fault.d.ts +3 -0
- package/dist/core/blobs/fault.js +6 -0
- package/dist/core/blobs/index.d.ts +21 -0
- package/dist/core/blobs/index.js +30 -0
- package/dist/core/blobs/r2.d.ts +13 -0
- package/dist/core/blobs/r2.js +104 -0
- package/dist/core/broker-client/client.d.ts +89 -0
- package/dist/core/broker-client/client.js +184 -0
- package/dist/core/broker-client/index.d.ts +2 -0
- package/dist/core/broker-client/index.js +14 -0
- package/dist/core/broker-client/transport-relay.d.ts +47 -0
- package/dist/core/broker-client/transport-relay.js +165 -0
- package/dist/core/broker-client/transport-socket.d.ts +35 -0
- package/dist/core/broker-client/transport-socket.js +187 -0
- package/dist/core/broker-client/transport.d.ts +46 -0
- package/dist/core/broker-client/transport.js +40 -0
- package/dist/core/canvas/app-run.d.ts +3 -0
- package/dist/core/canvas/app-run.js +4 -0
- package/dist/core/canvas/attention.d.ts +18 -0
- package/dist/core/canvas/attention.js +47 -0
- package/dist/core/canvas/browse/app.d.ts +29 -0
- package/dist/core/canvas/browse/app.js +1050 -0
- package/dist/core/canvas/browse/model.d.ts +176 -0
- package/dist/core/canvas/browse/model.js +477 -0
- package/dist/core/canvas/browse/pins.d.ts +4 -0
- package/dist/core/canvas/browse/pins.js +29 -0
- package/dist/core/canvas/browse/render.d.ts +103 -0
- package/dist/core/canvas/browse/render.js +1058 -0
- package/dist/core/canvas/canvas.d.ts +409 -0
- package/dist/core/canvas/canvas.js +1206 -0
- package/dist/core/canvas/crons.d.ts +322 -0
- package/dist/core/canvas/crons.js +541 -0
- package/dist/core/canvas/daemon-actions.d.ts +42 -0
- package/dist/core/canvas/daemon-actions.js +98 -0
- package/dist/core/canvas/db.d.ts +60 -0
- package/dist/core/canvas/db.js +426 -0
- package/dist/core/canvas/deliveries.d.ts +125 -0
- package/dist/core/canvas/deliveries.js +393 -0
- package/dist/core/canvas/delivery-contract.d.ts +37 -0
- package/dist/core/canvas/delivery-contract.js +30 -0
- package/dist/core/canvas/executions.d.ts +125 -0
- package/dist/core/canvas/executions.js +279 -0
- package/dist/core/canvas/extensions.d.ts +9 -0
- package/dist/core/canvas/extensions.js +90 -0
- package/dist/core/canvas/focuses.d.ts +26 -0
- package/dist/core/canvas/focuses.js +82 -0
- package/dist/core/canvas/history.d.ts +104 -0
- package/dist/core/canvas/history.js +480 -0
- package/dist/core/canvas/index.d.ts +14 -0
- package/dist/core/canvas/index.js +16 -0
- package/dist/core/canvas/install-id.d.ts +9 -0
- package/dist/core/canvas/install-id.js +64 -0
- package/dist/core/canvas/labels.d.ts +30 -0
- package/dist/core/canvas/labels.js +43 -0
- package/dist/core/canvas/legacy-person.d.ts +4 -0
- package/dist/core/canvas/legacy-person.js +4 -0
- package/dist/core/canvas/memory-reads.d.ts +24 -0
- package/dist/core/canvas/memory-reads.js +36 -0
- package/dist/core/canvas/meta-file.d.ts +20 -0
- package/dist/core/canvas/meta-file.js +89 -0
- package/dist/core/canvas/nav-render.d.ts +136 -0
- package/dist/core/canvas/nav-render.js +224 -0
- package/dist/core/canvas/node-agent-paths.d.ts +8 -0
- package/dist/core/canvas/node-agent-paths.js +30 -0
- package/dist/core/canvas/node-order.d.ts +24 -0
- package/dist/core/canvas/node-order.js +37 -0
- package/dist/core/canvas/node-recap.d.ts +23 -0
- package/dist/core/canvas/node-recap.js +62 -0
- package/dist/core/canvas/node-tokens.d.ts +19 -0
- package/dist/core/canvas/node-tokens.js +53 -0
- package/dist/core/canvas/outcome-actions.d.ts +23 -0
- package/dist/core/canvas/outcome-actions.js +71 -0
- package/dist/core/canvas/person.d.ts +32 -0
- package/dist/core/canvas/person.js +244 -0
- package/dist/core/canvas/pid.d.ts +6 -0
- package/dist/core/canvas/pid.js +20 -10
- package/dist/core/canvas/reconciler-leases.d.ts +12 -0
- package/dist/core/canvas/reconciler-leases.js +40 -0
- package/dist/core/canvas/recovery.d.ts +127 -0
- package/dist/core/canvas/recovery.js +713 -0
- package/dist/core/canvas/remote-canvas-source.d.ts +71 -0
- package/dist/core/canvas/remote-canvas-source.js +290 -0
- package/dist/core/canvas/remote-transport.d.ts +7 -0
- package/dist/core/canvas/remote-transport.js +57 -0
- package/dist/core/canvas/render-source.d.ts +193 -0
- package/dist/core/canvas/render-source.js +518 -0
- package/dist/core/canvas/schema-chain.d.ts +33 -0
- package/dist/core/canvas/schema-chain.js +110 -0
- package/dist/core/canvas/schema-version.d.ts +30 -0
- package/dist/core/canvas/schema-version.js +58 -0
- package/dist/core/canvas/sessions.d.ts +54 -0
- package/dist/core/canvas/sessions.js +128 -0
- package/dist/core/canvas/source.d.ts +52 -0
- package/dist/core/canvas/source.js +57 -0
- package/dist/core/canvas/status-glyph.d.ts +52 -0
- package/dist/core/canvas/status-glyph.js +132 -0
- package/dist/core/canvas/structured-requests.d.ts +69 -0
- package/dist/core/canvas/structured-requests.js +176 -0
- package/dist/core/canvas/telemetry.d.ts +14 -0
- package/dist/core/canvas/telemetry.js +35 -0
- package/dist/core/canvas/tree.d.ts +33 -0
- package/dist/core/canvas/tree.js +128 -0
- package/dist/core/canvas/types.d.ts +461 -0
- package/dist/core/canvas/types.js +6 -0
- package/dist/core/canvas/waits.d.ts +39 -0
- package/dist/core/canvas/waits.js +104 -0
- package/dist/core/canvas/worktrees.d.ts +41 -0
- package/dist/core/canvas/worktrees.js +97 -0
- package/dist/core/clipboard-text.d.ts +11 -0
- package/dist/core/clipboard-text.js +57 -0
- package/dist/core/command-hooks/artifact.d.ts +16 -0
- package/dist/core/command-hooks/artifact.js +145 -0
- package/dist/core/command-hooks/catalog.d.ts +14 -0
- package/dist/core/command-hooks/catalog.js +38 -0
- package/dist/core/command-hooks/compose.d.ts +15 -0
- package/dist/core/command-hooks/compose.js +101 -0
- package/dist/core/command-hooks/discovery.d.ts +133 -0
- package/dist/core/command-hooks/discovery.js +246 -0
- package/dist/core/command-hooks/help.d.ts +5 -0
- package/dist/core/command-hooks/help.js +18 -0
- package/dist/core/command-hooks/lifecycle-catalog.d.ts +21 -0
- package/dist/core/command-hooks/lifecycle-catalog.js +9 -0
- package/dist/core/command-hooks/lifecycle-create.d.ts +4 -0
- package/dist/core/command-hooks/lifecycle-create.js +51 -0
- package/dist/core/command-hooks/report.d.ts +32 -0
- package/dist/core/command-hooks/report.js +28 -0
- package/dist/core/command-hooks/schema.d.ts +42 -0
- package/dist/core/command-hooks/schema.js +157 -0
- package/dist/core/command-hooks/transport/exec-invoke.d.ts +24 -0
- package/dist/core/command-hooks/transport/exec-invoke.js +315 -0
- package/dist/core/command-hooks/transport/exec-lifecycle.d.ts +23 -0
- package/dist/core/command-hooks/transport/exec-lifecycle.js +248 -0
- package/dist/core/command-hooks/transport/plan.d.ts +3 -0
- package/dist/core/command-hooks/transport/plan.js +30 -0
- package/dist/core/command-manifests/registry.d.ts +68 -0
- package/dist/core/command-manifests/registry.js +118 -0
- package/dist/core/command-plugins/caller-header.d.ts +10 -0
- package/dist/core/command-plugins/caller-header.js +15 -0
- package/dist/core/command-plugins/compose.d.ts +11 -0
- package/dist/core/command-plugins/compose.js +241 -0
- package/dist/core/command-plugins/discovery.d.ts +49 -0
- package/dist/core/command-plugins/discovery.js +240 -0
- package/dist/core/command-plugins/extensions.d.ts +20 -0
- package/dist/core/command-plugins/extensions.js +166 -0
- package/dist/core/command-plugins/help-addenda.d.ts +25 -0
- package/dist/core/command-plugins/help-addenda.js +55 -0
- package/dist/core/command-plugins/presence.d.ts +4 -0
- package/dist/core/command-plugins/presence.js +36 -0
- package/dist/core/command-plugins/transport/exec-invoke.d.ts +42 -0
- package/dist/core/command-plugins/transport/exec-invoke.js +138 -0
- package/dist/core/command-plugins/transport/http-fetch.d.ts +41 -0
- package/dist/core/command-plugins/transport/http-fetch.js +68 -0
- package/dist/core/command-plugins/transport/http-invoke.d.ts +22 -0
- package/dist/core/command-plugins/transport/http-invoke.js +333 -0
- package/dist/core/command-plugins/transport/http-plan.d.ts +75 -0
- package/dist/core/command-plugins/transport/http-plan.js +349 -0
- package/dist/core/command-plugins/transport/sign.d.ts +55 -0
- package/dist/core/command-plugins/transport/sign.js +115 -0
- package/dist/core/command.d.ts +238 -0
- package/dist/core/command.js +848 -0
- package/dist/core/conversation-store/row-store.d.ts +14 -0
- package/dist/core/conversation-store/row-store.js +337 -0
- package/dist/core/directory/issuer.d.ts +8 -0
- package/dist/core/directory/issuer.js +15 -0
- package/dist/core/directory/join.d.ts +57 -0
- package/dist/core/directory/join.js +218 -0
- package/dist/core/directory/person-credential.d.ts +61 -0
- package/dist/core/directory/person-credential.js +220 -0
- package/dist/core/directory/reach.d.ts +3 -0
- package/dist/core/directory/reach.js +19 -0
- package/dist/core/document-lines.d.ts +4 -0
- package/dist/core/document-lines.js +6 -0
- package/dist/core/editor-resolver.d.ts +28 -0
- package/dist/core/editor-resolver.js +77 -0
- package/dist/core/environments.d.ts +21 -0
- package/dist/core/environments.js +56 -0
- package/dist/core/events/outbound.d.ts +21 -0
- package/dist/core/events/outbound.js +92 -0
- package/dist/core/events/read.d.ts +40 -0
- package/dist/core/events/read.js +625 -0
- package/dist/core/fault-classifier.d.ts +36 -0
- package/dist/core/fault-classifier.js +101 -0
- package/dist/core/feed/feed.d.ts +63 -0
- package/dist/core/feed/feed.js +190 -0
- package/dist/core/feed/inbox.d.ts +34 -0
- package/dist/core/feed/inbox.js +93 -0
- package/dist/core/feed/messages.d.ts +88 -0
- package/dist/core/feed/messages.js +206 -0
- package/dist/core/feed/reports.d.ts +10 -0
- package/dist/core/feed/reports.js +58 -0
- package/dist/core/frontmatter.d.ts +8 -0
- package/dist/core/frontmatter.js +35 -0
- package/dist/core/grants/cover.d.ts +14 -0
- package/dist/core/grants/cover.js +66 -0
- package/dist/core/grants/local.d.ts +4 -0
- package/dist/core/grants/local.js +26 -0
- package/dist/core/grants/mirror.d.ts +155 -0
- package/dist/core/grants/mirror.js +379 -0
- package/dist/core/grants/on-sync.d.ts +26 -0
- package/dist/core/grants/on-sync.js +161 -0
- package/dist/core/grants/sandboxes.d.ts +7 -0
- package/dist/core/grants/sandboxes.js +24 -0
- package/dist/core/grants/sync.d.ts +46 -0
- package/dist/core/grants/sync.js +195 -0
- package/dist/core/grants/terminal.d.ts +10 -0
- package/dist/core/grants/terminal.js +25 -0
- package/dist/core/graph/access.d.ts +13 -0
- package/dist/core/graph/access.js +37 -0
- package/dist/core/graph/bodies.d.ts +22 -0
- package/dist/core/graph/bodies.js +68 -0
- package/dist/core/graph/custom.d.ts +98 -0
- package/dist/core/graph/custom.js +298 -0
- package/dist/core/graph/deletion.d.ts +16 -0
- package/dist/core/graph/deletion.js +104 -0
- package/dist/core/graph/documents.d.ts +181 -0
- package/dist/core/graph/documents.js +653 -0
- package/dist/core/graph/edges.d.ts +41 -0
- package/dist/core/graph/edges.js +83 -0
- package/dist/core/graph/events.d.ts +49 -0
- package/dist/core/graph/events.js +315 -0
- package/dist/core/graph/exposures.d.ts +53 -0
- package/dist/core/graph/exposures.js +152 -0
- package/dist/core/graph/jobs.d.ts +107 -0
- package/dist/core/graph/jobs.js +184 -0
- package/dist/core/graph/kinds/action.d.ts +3 -0
- package/dist/core/graph/kinds/action.js +20 -0
- package/dist/core/graph/kinds/custom.d.ts +8 -0
- package/dist/core/graph/kinds/custom.js +25 -0
- package/dist/core/graph/kinds/document.d.ts +20 -0
- package/dist/core/graph/kinds/document.js +133 -0
- package/dist/core/graph/kinds/dto.d.ts +5 -0
- package/dist/core/graph/kinds/dto.js +11 -0
- package/dist/core/graph/kinds/environment.d.ts +2 -0
- package/dist/core/graph/kinds/environment.js +21 -0
- package/dist/core/graph/kinds/job.d.ts +2 -0
- package/dist/core/graph/kinds/job.js +24 -0
- package/dist/core/graph/kinds/kind.d.ts +67 -0
- package/dist/core/graph/kinds/kind.js +15 -0
- package/dist/core/graph/kinds/live-read.d.ts +5 -0
- package/dist/core/graph/kinds/live-read.js +11 -0
- package/dist/core/graph/kinds/node.d.ts +12 -0
- package/dist/core/graph/kinds/node.js +87 -0
- package/dist/core/graph/kinds/owner.d.ts +2 -0
- package/dist/core/graph/kinds/owner.js +26 -0
- package/dist/core/graph/kinds/registry.d.ts +10 -0
- package/dist/core/graph/kinds/registry.js +58 -0
- package/dist/core/graph/kinds/render.d.ts +9 -0
- package/dist/core/graph/kinds/render.js +17 -0
- package/dist/core/graph/names.d.ts +57 -0
- package/dist/core/graph/names.js +183 -0
- package/dist/core/graph/objects.d.ts +88 -0
- package/dist/core/graph/objects.js +273 -0
- package/dist/core/graph/package-docs.d.ts +41 -0
- package/dist/core/graph/package-docs.js +198 -0
- package/dist/core/graph/package-files.d.ts +20 -0
- package/dist/core/graph/package-files.js +146 -0
- package/dist/core/graph/package-kinds.d.ts +22 -0
- package/dist/core/graph/package-kinds.js +49 -0
- package/dist/core/graph/package-reconcile.d.ts +17 -0
- package/dist/core/graph/package-reconcile.js +31 -0
- package/dist/core/graph/reader.d.ts +45 -0
- package/dist/core/graph/reader.js +218 -0
- package/dist/core/graph/receiver-url.d.ts +11 -0
- package/dist/core/graph/receiver-url.js +83 -0
- package/dist/core/graph/receivers.d.ts +28 -0
- package/dist/core/graph/receivers.js +66 -0
- package/dist/core/graph/repo-sync/exchange.d.ts +36 -0
- package/dist/core/graph/repo-sync/exchange.js +422 -0
- package/dist/core/graph/repo-sync/identity.d.ts +32 -0
- package/dist/core/graph/repo-sync/identity.js +147 -0
- package/dist/core/graph/repo-sync/index.d.ts +4 -0
- package/dist/core/graph/repo-sync/index.js +2 -0
- package/dist/core/graph/repo-sync/mirror.d.ts +30 -0
- package/dist/core/graph/repo-sync/mirror.js +170 -0
- package/dist/core/graph/repo-sync/ref-format.d.ts +80 -0
- package/dist/core/graph/repo-sync/ref-format.js +215 -0
- package/dist/core/graph/repo-sync/repos.d.ts +21 -0
- package/dist/core/graph/repo-sync/repos.js +57 -0
- package/dist/core/graph/repo-sync/sync.d.ts +40 -0
- package/dist/core/graph/repo-sync/sync.js +322 -0
- package/dist/core/graph/rules.d.ts +27 -0
- package/dist/core/graph/rules.js +134 -0
- package/dist/core/graph/types.d.ts +131 -0
- package/dist/core/graph/types.js +10 -0
- package/dist/core/graph/watches.d.ts +66 -0
- package/dist/core/graph/watches.js +177 -0
- package/dist/core/human/action-binding.d.ts +23 -0
- package/dist/core/human/action-binding.js +41 -0
- package/dist/core/human/answer-text.d.ts +5 -0
- package/dist/core/human/answer-text.js +100 -0
- package/dist/core/human/answer.d.ts +53 -0
- package/dist/core/human/answer.js +119 -0
- package/dist/core/human/claim.d.ts +23 -0
- package/dist/core/human/claim.js +67 -0
- package/dist/core/human/completion.d.ts +38 -0
- package/dist/core/human/completion.js +27 -0
- package/dist/core/human/component-docs.d.ts +18 -0
- package/dist/core/human/component-docs.js +442 -0
- package/dist/core/human/convention.d.ts +31 -0
- package/dist/core/human/convention.js +82 -0
- package/dist/core/human/feedback-companion.d.ts +19 -0
- package/dist/core/human/feedback-companion.js +92 -0
- package/dist/core/human/feedback.d.ts +62 -0
- package/dist/core/human/feedback.js +88 -0
- package/dist/core/human/page-authoring.d.ts +30 -0
- package/dist/core/human/page-authoring.js +19 -0
- package/dist/core/human/page-errors.d.ts +8 -0
- package/dist/core/human/page-errors.js +14 -0
- package/dist/core/human/page-eval.d.ts +25 -0
- package/dist/core/human/page-eval.js +125 -0
- package/dist/core/human/page-html-markdown.d.ts +8 -0
- package/dist/core/human/page-html-markdown.js +260 -0
- package/dist/core/human/page-markdown.d.ts +3 -0
- package/dist/core/human/page-markdown.js +295 -0
- package/dist/core/human/page-schema.d.ts +291 -0
- package/dist/core/human/page-schema.js +381 -0
- package/dist/core/human/page.d.ts +21 -0
- package/dist/core/human/page.js +251 -0
- package/dist/core/human/request-files.d.ts +14 -0
- package/dist/core/human/request-files.js +54 -0
- package/dist/core/human/requests.d.ts +156 -0
- package/dist/core/human/requests.js +619 -0
- package/dist/core/human/root.d.ts +4 -0
- package/dist/core/human/root.js +11 -0
- package/dist/core/human/summary.d.ts +3 -0
- package/dist/core/human/summary.js +5 -0
- package/dist/core/human/tickets.d.ts +68 -0
- package/dist/core/human/tickets.js +175 -0
- package/dist/core/human/types.d.ts +118 -0
- package/dist/core/human/types.js +1 -0
- package/dist/core/human/visible-paths.d.ts +16 -0
- package/dist/core/human/visible-paths.js +74 -0
- package/dist/core/human-actions.d.ts +25 -0
- package/dist/core/human-actions.js +101 -0
- package/dist/core/import/bundle/blob-keys.d.ts +10 -0
- package/dist/core/import/bundle/blob-keys.js +23 -0
- package/dist/core/import/bundle/layout.d.ts +90 -0
- package/dist/core/import/bundle/layout.js +117 -0
- package/dist/core/import/export/archive.d.ts +11 -0
- package/dist/core/import/export/archive.js +22 -0
- package/dist/core/import/export/cloud.d.ts +23 -0
- package/dist/core/import/export/cloud.js +47 -0
- package/dist/core/import/export/dump.d.ts +34 -0
- package/dist/core/import/export/dump.js +235 -0
- package/dist/core/import/export/files.d.ts +22 -0
- package/dist/core/import/export/files.js +107 -0
- package/dist/core/import/export/inline.d.ts +3 -0
- package/dist/core/import/export/inline.js +15 -0
- package/dist/core/import/export/source.d.ts +2 -0
- package/dist/core/import/export/source.js +5 -0
- package/dist/core/import/export/stores.d.ts +9 -0
- package/dist/core/import/export/stores.js +69 -0
- package/dist/core/inspector/chrome.d.ts +6 -0
- package/dist/core/inspector/chrome.js +14 -0
- package/dist/core/inspector/contract.d.ts +105 -0
- package/dist/core/inspector/contract.js +1 -0
- package/dist/core/inspector/core.d.ts +39 -0
- package/dist/core/inspector/core.js +296 -0
- package/dist/core/inspector/host.d.ts +46 -0
- package/dist/core/inspector/host.js +538 -0
- package/dist/core/inspector/model.d.ts +88 -0
- package/dist/core/inspector/model.js +225 -0
- package/dist/core/inspector/text.d.ts +5 -0
- package/dist/core/inspector/text.js +45 -0
- package/dist/core/inspector/transport.d.ts +6 -0
- package/dist/core/inspector/transport.js +36 -0
- package/dist/core/inspector/tui.d.ts +3 -0
- package/dist/core/inspector/tui.js +295 -0
- package/dist/core/io.js +7 -0
- package/dist/core/keybindings/background-bash.d.ts +13 -0
- package/dist/core/keybindings/background-bash.js +33 -0
- package/dist/core/keybindings/catalog.d.ts +1 -1
- package/dist/core/keybindings/inbox.d.ts +18 -0
- package/dist/core/keybindings/inbox.js +25 -0
- package/dist/core/keybindings/index.d.ts +8 -0
- package/dist/core/keybindings/index.js +7 -0
- package/dist/core/keybindings/match.d.ts +44 -0
- package/dist/core/keybindings/match.js +146 -0
- package/dist/core/keybindings/persistence.d.ts +18 -0
- package/dist/core/keybindings/persistence.js +49 -0
- package/dist/core/keybindings/resolve.d.ts +28 -0
- package/dist/core/keybindings/resolve.js +348 -0
- package/dist/core/layout-migrate/index.d.ts +38 -0
- package/dist/core/layout-migrate/index.js +523 -0
- package/dist/core/layout-migrate/paths.d.ts +30 -0
- package/dist/core/layout-migrate/paths.js +118 -0
- package/dist/core/layout-migrate/stored-paths.d.ts +9 -0
- package/dist/core/layout-migrate/stored-paths.js +424 -0
- package/dist/core/layout-migrate/stores.d.ts +30 -0
- package/dist/core/layout-migrate/stores.js +543 -0
- package/dist/core/ledger/account.d.ts +12 -0
- package/dist/core/ledger/account.js +13 -0
- package/dist/core/ledger/charges.d.ts +16 -0
- package/dist/core/ledger/charges.js +43 -0
- package/dist/core/ledger/check.d.ts +48 -0
- package/dist/core/ledger/check.js +38 -0
- package/dist/core/ledger/chunks.d.ts +8 -0
- package/dist/core/ledger/chunks.js +43 -0
- package/dist/core/ledger/index.d.ts +9 -0
- package/dist/core/ledger/index.js +10 -0
- package/dist/core/ledger/infra-allowance.d.ts +7 -0
- package/dist/core/ledger/infra-allowance.js +31 -0
- package/dist/core/ledger/limits.d.ts +10 -0
- package/dist/core/ledger/limits.js +35 -0
- package/dist/core/ledger/months.d.ts +6 -0
- package/dist/core/ledger/months.js +19 -0
- package/dist/core/ledger/payer.d.ts +34 -0
- package/dist/core/ledger/payer.js +14 -0
- package/dist/core/ledger/read.d.ts +57 -0
- package/dist/core/ledger/read.js +194 -0
- package/dist/core/ledger/totals.d.ts +10 -0
- package/dist/core/ledger/totals.js +34 -0
- package/dist/core/ledger/types.d.ts +75 -0
- package/dist/core/ledger/types.js +2 -0
- package/dist/core/llm/app-rungs.d.ts +16 -0
- package/dist/core/llm/app-rungs.js +59 -0
- package/dist/core/llm/body-limits.d.ts +7 -0
- package/dist/core/llm/body-limits.js +7 -0
- package/dist/core/llm/refusal.d.ts +14 -0
- package/dist/core/llm/refusal.js +22 -0
- package/dist/core/locked-file.d.ts +27 -0
- package/dist/core/locked-file.js +121 -0
- package/dist/core/log.d.ts +2 -0
- package/dist/core/log.js +5 -3
- package/dist/core/manifest-stale.d.ts +18 -0
- package/dist/core/manifest-stale.js +39 -0
- package/dist/core/model-auth/api-credential-store.d.ts +10 -0
- package/dist/core/model-auth/api-credential-store.js +40 -0
- package/dist/core/model-auth/daemon-login.d.ts +13 -0
- package/dist/core/model-auth/daemon-login.js +156 -0
- package/dist/core/model-auth/readiness.d.ts +12 -0
- package/dist/core/model-auth/readiness.js +48 -0
- package/dist/core/model-routes-pool.d.ts +14 -0
- package/dist/core/model-routes-pool.js +50 -0
- package/dist/core/model-routes.d.ts +98 -0
- package/dist/core/model-routes.js +190 -0
- package/dist/core/northlight/previews.d.ts +22 -0
- package/dist/core/northlight/previews.js +87 -0
- package/dist/core/nvim-launch.d.ts +7 -0
- package/dist/core/nvim-launch.js +45 -0
- package/dist/core/output.d.ts +35 -0
- package/dist/core/output.js +99 -0
- package/dist/core/pagination.d.ts +35 -0
- package/dist/core/pagination.js +88 -0
- package/dist/core/peer/client.d.ts +61 -0
- package/dist/core/peer/client.js +167 -0
- package/dist/core/peer/directory.d.ts +71 -0
- package/dist/core/peer/directory.js +167 -0
- package/dist/core/peer/envelope.d.ts +46 -0
- package/dist/core/peer/envelope.js +98 -0
- package/dist/core/peer/names.d.ts +5 -0
- package/dist/core/peer/names.js +8 -0
- package/dist/core/peer/outbox-store.d.ts +76 -0
- package/dist/core/peer/outbox-store.js +84 -0
- package/dist/core/peer/receiver.d.ts +8 -0
- package/dist/core/peer/receiver.js +54 -0
- package/dist/core/peer/stubs.d.ts +90 -0
- package/dist/core/peer/stubs.js +208 -0
- package/dist/core/peer/token.d.ts +13 -0
- package/dist/core/peer/token.js +29 -0
- package/dist/core/peer/version.d.ts +16 -0
- package/dist/core/peer/version.js +23 -0
- package/dist/core/permissions/builtin.d.ts +8 -0
- package/dist/core/permissions/builtin.js +27 -0
- package/dist/core/permissions/ceiling.d.ts +57 -0
- package/dist/core/permissions/ceiling.js +319 -0
- package/dist/core/permissions/compile.d.ts +14 -0
- package/dist/core/permissions/compile.js +175 -0
- package/dist/core/permissions/errors.d.ts +7 -0
- package/dist/core/permissions/errors.js +13 -0
- package/dist/core/permissions/evaluator.d.ts +33 -0
- package/dist/core/permissions/evaluator.js +96 -0
- package/dist/core/permissions/facts.d.ts +56 -0
- package/dist/core/permissions/facts.js +102 -0
- package/dist/core/permissions/schema-parser.d.ts +29 -0
- package/dist/core/permissions/schema-parser.js +151 -0
- package/dist/core/permissions/schemas.d.ts +21 -0
- package/dist/core/permissions/schemas.js +83 -0
- package/dist/core/permissions/sql.d.ts +16 -0
- package/dist/core/permissions/sql.js +31 -0
- package/dist/core/plugin-app.d.ts +31 -0
- package/dist/core/plugin-app.js +58 -0
- package/dist/core/plugin-quarantine.d.ts +16 -0
- package/dist/core/plugin-quarantine.js +70 -0
- package/dist/core/pool-credential-store.d.ts +31 -0
- package/dist/core/pool-credential-store.js +116 -0
- package/dist/core/predicate.d.ts +65 -0
- package/dist/core/predicate.js +191 -0
- package/dist/core/preview-registry.d.ts +59 -0
- package/dist/core/preview-registry.js +403 -0
- package/dist/core/profiles/default-binding.d.ts +15 -0
- package/dist/core/profiles/default-binding.js +29 -0
- package/dist/core/profiles/deletion-reservation.d.ts +12 -0
- package/dist/core/profiles/deletion-reservation.js +42 -0
- package/dist/core/profiles/select.d.ts +46 -0
- package/dist/core/profiles/select.js +738 -0
- package/dist/core/provider-credential.d.ts +6 -0
- package/dist/core/provider-credential.js +17 -0
- package/dist/core/provider-error-recognition.d.ts +30 -0
- package/dist/core/provider-error-recognition.js +82 -0
- package/dist/core/provider-failure.d.ts +42 -0
- package/dist/core/provider-failure.js +145 -0
- package/dist/core/provider-management.d.ts +11 -0
- package/dist/core/provider-management.js +9 -0
- package/dist/core/providers/approval.d.ts +23 -0
- package/dist/core/providers/approval.js +146 -0
- package/dist/core/providers/audit.d.ts +30 -0
- package/dist/core/providers/audit.js +52 -0
- package/dist/core/providers/bundles.d.ts +66 -0
- package/dist/core/providers/bundles.js +638 -0
- package/dist/core/providers/call.d.ts +51 -0
- package/dist/core/providers/call.js +480 -0
- package/dist/core/providers/description.d.ts +34 -0
- package/dist/core/providers/description.js +1 -0
- package/dist/core/providers/device-libs.d.ts +71 -0
- package/dist/core/providers/device-libs.js +202 -0
- package/dist/core/providers/device.d.ts +42 -0
- package/dist/core/providers/device.js +95 -0
- package/dist/core/providers/errors.d.ts +99 -0
- package/dist/core/providers/errors.js +136 -0
- package/dist/core/providers/files.d.ts +90 -0
- package/dist/core/providers/files.js +389 -0
- package/dist/core/providers/inflight.d.ts +13 -0
- package/dist/core/providers/inflight.js +14 -0
- package/dist/core/providers/mint.d.ts +29 -0
- package/dist/core/providers/mint.js +219 -0
- package/dist/core/providers/receipts.d.ts +26 -0
- package/dist/core/providers/receipts.js +61 -0
- package/dist/core/providers/request.d.ts +27 -0
- package/dist/core/providers/request.js +173 -0
- package/dist/core/providers/roots.d.ts +23 -0
- package/dist/core/providers/roots.js +118 -0
- package/dist/core/providers/token-cache.d.ts +54 -0
- package/dist/core/providers/token-cache.js +203 -0
- package/dist/core/remote-canvas-target.d.ts +4 -0
- package/dist/core/remote-canvas-target.js +30 -0
- package/dist/core/review/comments.d.ts +69 -0
- package/dist/core/review/comments.js +296 -0
- package/dist/core/review/companion.d.ts +33 -0
- package/dist/core/review/companion.js +208 -0
- package/dist/core/review/signal.d.ts +5 -0
- package/dist/core/review/signal.js +12 -0
- package/dist/core/review/store.d.ts +44 -0
- package/dist/core/review/store.js +178 -0
- package/dist/core/review/types.d.ts +139 -0
- package/dist/core/review/types.js +23 -0
- package/dist/core/runs/activity.d.ts +11 -0
- package/dist/core/runs/activity.js +57 -0
- package/dist/core/runs/events.d.ts +41 -0
- package/dist/core/runs/events.js +179 -0
- package/dist/core/runs/operations.d.ts +85 -0
- package/dist/core/runs/operations.js +741 -0
- package/dist/core/runs/questions.d.ts +80 -0
- package/dist/core/runs/questions.js +151 -0
- package/dist/core/runtime/banner.d.ts +15 -0
- package/dist/core/runtime/banner.js +53 -0
- package/dist/core/runtime/bearings-render.d.ts +62 -0
- package/dist/core/runtime/bearings-render.js +272 -0
- package/dist/core/runtime/bearings.d.ts +56 -0
- package/dist/core/runtime/bearings.js +199 -0
- package/dist/core/runtime/bin-contributions.d.ts +44 -0
- package/dist/core/runtime/bin-contributions.js +186 -0
- package/dist/core/runtime/blaxel-environment.d.ts +2 -0
- package/dist/core/runtime/blaxel-environment.js +8 -0
- package/dist/core/runtime/broker/bash-job-launch.d.ts +12 -0
- package/dist/core/runtime/broker/bash-job-launch.js +50 -0
- package/dist/core/runtime/broker/model-adapter.d.ts +27 -0
- package/dist/core/runtime/broker/model-adapter.js +413 -0
- package/dist/core/runtime/broker/read-ops.d.ts +27 -0
- package/dist/core/runtime/broker/read-ops.js +172 -0
- package/dist/core/runtime/broker/turn-cause.d.ts +7 -0
- package/dist/core/runtime/broker/turn-cause.js +30 -0
- package/dist/core/runtime/broker-protocol.d.ts +727 -0
- package/dist/core/runtime/broker-protocol.js +152 -0
- package/dist/core/runtime/broker-request.d.ts +37 -0
- package/dist/core/runtime/broker-request.js +86 -0
- package/dist/core/runtime/broker-sdk.d.ts +36 -0
- package/dist/core/runtime/broker-sdk.js +130 -0
- package/dist/core/runtime/canvas-extensions.d.ts +34 -0
- package/dist/core/runtime/canvas-extensions.js +100 -0
- package/dist/core/runtime/close.d.ts +49 -0
- package/dist/core/runtime/close.js +266 -0
- package/dist/core/runtime/command-expansion.d.ts +19 -0
- package/dist/core/runtime/command-expansion.js +104 -0
- package/dist/core/runtime/command-surface.d.ts +38 -0
- package/dist/core/runtime/command-surface.js +117 -0
- package/dist/core/runtime/crtr-theme.d.ts +12 -0
- package/dist/core/runtime/crtr-theme.js +146 -0
- package/dist/core/runtime/deliver-live.d.ts +38 -0
- package/dist/core/runtime/deliver-live.js +87 -0
- package/dist/core/runtime/fault-recovery.d.ts +23 -0
- package/dist/core/runtime/fault-recovery.js +83 -0
- package/dist/core/runtime/fault.d.ts +6 -0
- package/dist/core/runtime/fault.js +17 -0
- package/dist/core/runtime/fleet.d.ts +106 -0
- package/dist/core/runtime/fleet.js +75 -0
- package/dist/core/runtime/focus-viewer.d.ts +45 -0
- package/dist/core/runtime/focus-viewer.js +151 -0
- package/dist/core/runtime/front-door-env.d.ts +5 -0
- package/dist/core/runtime/front-door-env.js +16 -0
- package/dist/core/runtime/headless-pi.d.ts +37 -0
- package/dist/core/runtime/headless-pi.js +173 -0
- package/dist/core/runtime/host.d.ts +74 -0
- package/dist/core/runtime/host.js +695 -0
- package/dist/core/runtime/interactive-deliver.d.ts +22 -0
- package/dist/core/runtime/interactive-deliver.js +51 -0
- package/dist/core/runtime/invocation.d.ts +15 -0
- package/dist/core/runtime/invocation.js +10 -0
- package/dist/core/runtime/kickoff.d.ts +37 -0
- package/dist/core/runtime/kickoff.js +263 -0
- package/dist/core/runtime/launch-prompt.d.ts +8 -0
- package/dist/core/runtime/launch-prompt.js +13 -0
- package/dist/core/runtime/launch-target.d.ts +43 -0
- package/dist/core/runtime/launch-target.js +83 -0
- package/dist/core/runtime/launch.d.ts +206 -0
- package/dist/core/runtime/launch.js +498 -0
- package/dist/core/runtime/ledger.d.ts +10 -0
- package/dist/core/runtime/ledger.js +55 -0
- package/dist/core/runtime/lifecycle.d.ts +47 -0
- package/dist/core/runtime/lifecycle.js +283 -0
- package/dist/core/runtime/managed-provider-cooling.d.ts +24 -0
- package/dist/core/runtime/managed-provider-cooling.js +62 -0
- package/dist/core/runtime/memory-admission.d.ts +38 -0
- package/dist/core/runtime/memory-admission.js +68 -0
- package/dist/core/runtime/model-registry.d.ts +3 -0
- package/dist/core/runtime/model-registry.js +13 -0
- package/dist/core/runtime/model-selection.d.ts +54 -0
- package/dist/core/runtime/model-selection.js +135 -0
- package/dist/core/runtime/model-swap.d.ts +26 -0
- package/dist/core/runtime/model-swap.js +75 -0
- package/dist/core/runtime/naming.d.ts +69 -0
- package/dist/core/runtime/naming.js +298 -0
- package/dist/core/runtime/nerd-font.d.ts +46 -0
- package/dist/core/runtime/nerd-font.js +162 -0
- package/dist/core/runtime/nodes.d.ts +140 -0
- package/dist/core/runtime/nodes.js +506 -0
- package/dist/core/runtime/outcome-document.d.ts +58 -0
- package/dist/core/runtime/outcome-document.js +86 -0
- package/dist/core/runtime/output-result.d.ts +15 -0
- package/dist/core/runtime/output-result.js +32 -0
- package/dist/core/runtime/output-schema-refs.d.ts +3 -0
- package/dist/core/runtime/output-schema-refs.js +100 -0
- package/dist/core/runtime/package-health.d.ts +34 -0
- package/dist/core/runtime/package-health.js +100 -0
- package/dist/core/runtime/persona.d.ts +21 -0
- package/dist/core/runtime/persona.js +54 -0
- package/dist/core/runtime/pi-cli.d.ts +8 -0
- package/dist/core/runtime/pi-cli.js +65 -0
- package/dist/core/runtime/pi-vendored.d.ts +28 -0
- package/dist/core/runtime/pi-vendored.js +63 -0
- package/dist/core/runtime/placement-tmux.d.ts +32 -0
- package/dist/core/runtime/placement-tmux.js +81 -0
- package/dist/core/runtime/placement.d.ts +116 -0
- package/dist/core/runtime/placement.js +418 -0
- package/dist/core/runtime/progress-bar.d.ts +13 -0
- package/dist/core/runtime/progress-bar.js +50 -0
- package/dist/core/runtime/provider-credential-gate.d.ts +8 -0
- package/dist/core/runtime/provider-credential-gate.js +33 -0
- package/dist/core/runtime/recovery-hold.d.ts +21 -0
- package/dist/core/runtime/recovery-hold.js +46 -0
- package/dist/core/runtime/reopen.d.ts +49 -0
- package/dist/core/runtime/reopen.js +160 -0
- package/dist/core/runtime/revive.d.ts +114 -0
- package/dist/core/runtime/revive.js +739 -0
- package/dist/core/runtime/roadmap.d.ts +24 -0
- package/dist/core/runtime/roadmap.js +86 -0
- package/dist/core/runtime/runner/blaxel/client.d.ts +83 -0
- package/dist/core/runtime/runner/blaxel/client.js +140 -0
- package/dist/core/runtime/runner/blaxel/image-build.d.ts +74 -0
- package/dist/core/runtime/runner/blaxel/image-build.js +209 -0
- package/dist/core/runtime/runner/index.d.ts +9 -0
- package/dist/core/runtime/runner/index.js +37 -0
- package/dist/core/runtime/runner/machine/call.d.ts +8 -0
- package/dist/core/runtime/runner/machine/call.js +67 -0
- package/dist/core/runtime/runner/machine/environment.d.ts +1 -0
- package/dist/core/runtime/runner/machine/environment.js +7 -0
- package/dist/core/runtime/runner/machine/ops.d.ts +127 -0
- package/dist/core/runtime/runner/machine/ops.js +41 -0
- package/dist/core/runtime/runner/machine/runner.d.ts +12 -0
- package/dist/core/runtime/runner/machine/runner.js +90 -0
- package/dist/core/runtime/runner/process.d.ts +11 -0
- package/dist/core/runtime/runner/process.js +70 -0
- package/dist/core/runtime/runner/types.d.ts +101 -0
- package/dist/core/runtime/runner/types.js +16 -0
- package/dist/core/runtime/session-branch.d.ts +7 -0
- package/dist/core/runtime/session-branch.js +16 -0
- package/dist/core/runtime/session-cycles.d.ts +45 -0
- package/dist/core/runtime/session-cycles.js +110 -0
- package/dist/core/runtime/session-list-cache.d.ts +37 -0
- package/dist/core/runtime/session-list-cache.js +302 -0
- package/dist/core/runtime/session-visibility.d.ts +37 -0
- package/dist/core/runtime/session-visibility.js +99 -0
- package/dist/core/runtime/setup-marker.d.ts +8 -0
- package/dist/core/runtime/setup-marker.js +46 -0
- package/dist/core/runtime/situational-context.d.ts +16 -0
- package/dist/core/runtime/situational-context.js +54 -0
- package/dist/core/runtime/situational-live.d.ts +9 -0
- package/dist/core/runtime/situational-live.js +41 -0
- package/dist/core/runtime/spawn-env-rows.d.ts +5 -0
- package/dist/core/runtime/spawn-env-rows.js +15 -0
- package/dist/core/runtime/spawn-env.d.ts +40 -0
- package/dist/core/runtime/spawn-env.js +260 -0
- package/dist/core/runtime/spawn.d.ts +160 -0
- package/dist/core/runtime/spawn.js +699 -0
- package/dist/core/runtime/stamp/protocol.d.ts +90 -0
- package/dist/core/runtime/stamp/protocol.js +113 -0
- package/dist/core/runtime/start-check.d.ts +15 -0
- package/dist/core/runtime/start-check.js +31 -0
- package/dist/core/runtime/stop-guard.d.ts +31 -0
- package/dist/core/runtime/stop-guard.js +150 -0
- package/dist/core/runtime/structured-output.d.ts +36 -0
- package/dist/core/runtime/structured-output.js +112 -0
- package/dist/core/runtime/surface-bg.d.ts +13 -0
- package/dist/core/runtime/surface-bg.js +85 -0
- package/dist/core/runtime/tmux-bindings.d.ts +30 -0
- package/dist/core/runtime/tmux-bindings.js +743 -0
- package/dist/core/runtime/tmux-chrome.d.ts +2 -0
- package/dist/core/runtime/tmux-chrome.js +5 -0
- package/dist/core/runtime/tmux-driver.d.ts +328 -0
- package/dist/core/runtime/tmux-driver.js +713 -0
- package/dist/core/runtime/unsandboxed.d.ts +3 -0
- package/dist/core/runtime/unsandboxed.js +16 -0
- package/dist/core/runtime/view-socket.d.ts +61 -0
- package/dist/core/runtime/view-socket.js +194 -0
- package/dist/core/runtime/warm-pool.d.ts +79 -0
- package/dist/core/runtime/warm-pool.js +473 -0
- package/dist/core/scoped-state/db.d.ts +17 -0
- package/dist/core/scoped-state/db.js +261 -0
- package/dist/core/scoped-state/legacy-profiles.d.ts +11 -0
- package/dist/core/scoped-state/legacy-profiles.js +61 -0
- package/dist/core/scoped-state/migrate.d.ts +15 -0
- package/dist/core/scoped-state/migrate.js +332 -0
- package/dist/core/scoped-state/person-rows.d.ts +10 -0
- package/dist/core/scoped-state/person-rows.js +173 -0
- package/dist/core/scoped-state/schema.d.ts +10 -0
- package/dist/core/scoped-state/schema.js +47 -0
- package/dist/core/scopes.d.ts +20 -0
- package/dist/core/scopes.js +48 -0
- package/dist/core/secrets/env-rows.d.ts +18 -0
- package/dist/core/secrets/env-rows.js +40 -0
- package/dist/core/secrets/environment-owner.d.ts +8 -0
- package/dist/core/secrets/environment-owner.js +31 -0
- package/dist/core/secrets/environment-secrets.d.ts +14 -0
- package/dist/core/secrets/environment-secrets.js +14 -0
- package/dist/core/secrets/index.d.ts +2 -0
- package/dist/core/secrets/index.js +2 -0
- package/dist/core/secrets/key.d.ts +3 -0
- package/dist/core/secrets/key.js +33 -0
- package/dist/core/secrets/seal.d.ts +18 -0
- package/dist/core/secrets/seal.js +43 -0
- package/dist/core/secrets.d.ts +50 -0
- package/dist/core/secrets.js +147 -0
- package/dist/core/self-update.d.ts +27 -0
- package/dist/core/self-update.js +77 -0
- package/dist/core/session-model/session-state.d.ts +53 -0
- package/dist/core/session-model/session-state.js +180 -0
- package/dist/core/shell-segments.d.ts +42 -0
- package/dist/core/shell-segments.js +169 -0
- package/dist/core/spaces/cache-env.d.ts +2 -0
- package/dist/core/spaces/cache-env.js +15 -0
- package/dist/core/spaces/file-root.d.ts +23 -0
- package/dist/core/spaces/file-root.js +68 -0
- package/dist/core/spaces/mounts.d.ts +41 -0
- package/dist/core/spaces/mounts.js +126 -0
- package/dist/core/spaces/permissions.d.ts +19 -0
- package/dist/core/spaces/permissions.js +77 -0
- package/dist/core/spaces/process.d.ts +61 -0
- package/dist/core/spaces/process.js +172 -0
- package/dist/core/spaces/runtime-home.d.ts +5 -0
- package/dist/core/spaces/runtime-home.js +8 -0
- package/dist/core/spaces/space.d.ts +9 -0
- package/dist/core/spaces/space.js +58 -0
- package/dist/core/spaces/stop.d.ts +24 -0
- package/dist/core/spaces/stop.js +138 -0
- package/dist/core/spaces/users.d.ts +20 -0
- package/dist/core/spaces/users.js +43 -0
- package/dist/core/sqlite-statements.d.ts +4 -0
- package/dist/core/sqlite-statements.js +17 -0
- package/dist/core/statements.d.ts +17 -0
- package/dist/core/statements.js +81 -0
- package/dist/core/storage/attachments.d.ts +36 -0
- package/dist/core/storage/attachments.js +135 -0
- package/dist/core/storage/client.d.ts +109 -0
- package/dist/core/storage/client.js +231 -0
- package/dist/core/storage/download.d.ts +24 -0
- package/dist/core/storage/download.js +184 -0
- package/dist/core/storage/purge.d.ts +6 -0
- package/dist/core/storage/purge.js +52 -0
- package/dist/core/storage/tables.d.ts +67 -0
- package/dist/core/storage/tables.js +109 -0
- package/dist/core/subscription-state.d.ts +96 -0
- package/dist/core/subscription-state.js +438 -0
- package/dist/core/substrate/delivery/corpus.d.ts +26 -0
- package/dist/core/substrate/delivery/corpus.js +138 -0
- package/dist/core/substrate/delivery/deliver.d.ts +71 -0
- package/dist/core/substrate/delivery/deliver.js +333 -0
- package/dist/core/substrate/delivery/listings.d.ts +30 -0
- package/dist/core/substrate/delivery/listings.js +75 -0
- package/dist/core/substrate/delivery/match.d.ts +28 -0
- package/dist/core/substrate/delivery/match.js +146 -0
- package/dist/core/substrate/delivery/plan.d.ts +57 -0
- package/dist/core/substrate/delivery/plan.js +126 -0
- package/dist/core/substrate/delivery/render-boot.d.ts +20 -0
- package/dist/core/substrate/delivery/render-boot.js +329 -0
- package/dist/core/substrate/delivery/render-event.d.ts +47 -0
- package/dist/core/substrate/delivery/render-event.js +160 -0
- package/dist/core/substrate/delivery/sub-persona-menu.d.ts +2 -0
- package/dist/core/substrate/delivery/sub-persona-menu.js +24 -0
- package/dist/core/substrate/delivery/types.d.ts +30 -0
- package/dist/core/substrate/delivery/types.js +1 -0
- package/dist/core/substrate/gate-explain.d.ts +35 -0
- package/dist/core/substrate/gate-explain.js +397 -0
- package/dist/core/substrate/schema.d.ts +29 -0
- package/dist/core/substrate/schema.js +81 -0
- package/dist/core/substrate/subject-fields.d.ts +52 -0
- package/dist/core/substrate/subject-fields.js +39 -0
- package/dist/core/substrate/subject.d.ts +13 -0
- package/dist/core/substrate/subject.js +60 -0
- package/dist/core/termrender/code-doc.d.ts +12 -0
- package/dist/core/termrender/code-doc.js +92 -0
- package/dist/core/termrender/display.d.ts +16 -0
- package/dist/core/termrender/display.js +56 -0
- package/dist/core/termrender/termrender.d.ts +71 -0
- package/dist/core/termrender/termrender.js +719 -0
- package/dist/core/termrender/version.d.ts +1 -0
- package/dist/core/termrender/version.js +1 -0
- package/dist/core/timing.d.ts +11 -0
- package/dist/core/timing.js +94 -0
- package/dist/core/tui/draw.d.ts +103 -0
- package/dist/core/tui/draw.js +378 -0
- package/dist/core/tui/fuzzy.d.ts +9 -0
- package/dist/core/tui/fuzzy.js +38 -0
- package/dist/core/tui/markdown.d.ts +17 -0
- package/dist/core/tui/markdown.js +407 -0
- package/dist/core/tui/page-host.d.ts +31 -0
- package/dist/core/tui/page-host.js +74 -0
- package/dist/core/tui/panel.d.ts +45 -0
- package/dist/core/tui/panel.js +142 -0
- package/dist/core/tui/terminal.d.ts +23 -0
- package/dist/core/tui/terminal.js +100 -0
- package/dist/core/wake.d.ts +89 -0
- package/dist/core/wake.js +296 -0
- package/dist/core/worktree-containment.d.ts +14 -0
- package/dist/core/worktree-containment.js +48 -0
- package/dist/core/worktree-landing.d.ts +44 -0
- package/dist/core/worktree-landing.js +56 -0
- package/dist/core/worktree-mutation-async.d.ts +23 -0
- package/dist/core/worktree-mutation-async.js +335 -0
- package/dist/core/worktree-remove.d.ts +15 -0
- package/dist/core/worktree-remove.js +84 -0
- package/dist/core/worktree.d.ts +121 -0
- package/dist/core/worktree.js +909 -0
- package/dist/daemon/api/deferred-head.d.ts +14 -0
- package/dist/daemon/api/deferred-head.js +117 -0
- package/dist/daemon/api/environment-of.d.ts +18 -0
- package/dist/daemon/api/environment-of.js +40 -0
- package/dist/daemon/api/handlers/git-credential.d.ts +11 -0
- package/dist/daemon/api/handlers/git-credential.js +64 -0
- package/dist/daemon/api/handlers/providers.d.ts +83 -0
- package/dist/daemon/api/handlers/providers.js +283 -0
- package/dist/daemon/api/handlers/validate.d.ts +23 -0
- package/dist/daemon/api/handlers/validate.js +58 -0
- package/dist/daemon/api/map.d.ts +167 -0
- package/dist/daemon/api/map.js +764 -0
- package/dist/daemon/api/operations.d.ts +18 -0
- package/dist/daemon/api/operations.js +306 -0
- package/dist/daemon/api/principal.d.ts +65 -0
- package/dist/daemon/api/principal.js +143 -0
- package/dist/daemon/api/reader.d.ts +24 -0
- package/dist/daemon/api/reader.js +123 -0
- package/dist/daemon/api/router.d.ts +193 -0
- package/dist/daemon/api/router.js +536 -0
- package/dist/daemon/api/sync-notice.d.ts +17 -0
- package/dist/daemon/api/sync-notice.js +46 -0
- package/dist/daemon/api/viewer-presence.d.ts +20 -0
- package/dist/daemon/api/viewer-presence.js +100 -0
- package/dist/daemon/broker-signals/bus.d.ts +3 -2
- package/dist/daemon/broker-signals/bus.js +3 -2
- package/dist/daemon/companion-retire.d.ts +4 -0
- package/dist/daemon/companion-retire.js +44 -0
- package/dist/daemon/control.d.ts +40 -0
- package/dist/daemon/control.js +22 -0
- package/dist/daemon/cron/authority.d.ts +38 -0
- package/dist/daemon/cron/authority.js +90 -0
- package/dist/daemon/cron/live-runs.d.ts +54 -0
- package/dist/daemon/cron/live-runs.js +66 -0
- package/dist/daemon/cron/run-socket.d.ts +30 -0
- package/dist/daemon/cron/run-socket.js +170 -0
- package/dist/daemon/drain.d.ts +25 -0
- package/dist/daemon/drain.js +76 -0
- package/dist/daemon/human/finish.d.ts +24 -0
- package/dist/daemon/human/finish.js +178 -0
- package/dist/daemon/human/settle.d.ts +44 -0
- package/dist/daemon/human/settle.js +103 -0
- package/dist/daemon/machine-link/config.d.ts +45 -0
- package/dist/daemon/machine-link/config.js +63 -0
- package/dist/daemon/machine-link/credential.d.ts +7 -0
- package/dist/daemon/machine-link/credential.js +24 -0
- package/dist/daemon/machine-link/forward.d.ts +16 -0
- package/dist/daemon/machine-link/forward.js +181 -0
- package/dist/daemon/machine-link/frames.d.ts +49 -0
- package/dist/daemon/machine-link/frames.js +25 -0
- package/dist/daemon/machine-link/holder.d.ts +73 -0
- package/dist/daemon/machine-link/holder.js +272 -0
- package/dist/daemon/machine-link/move-notify.d.ts +4 -0
- package/dist/daemon/machine-link/move-notify.js +15 -0
- package/dist/daemon/manage.d.ts +19 -3
- package/dist/daemon/manage.js +21 -6
- package/dist/daemon/park-activity.d.ts +10 -0
- package/dist/daemon/park-activity.js +33 -0
- package/dist/daemon/park-pending.d.ts +25 -0
- package/dist/daemon/park-pending.js +76 -0
- package/dist/daemon/postgres/binary.d.ts +17 -0
- package/dist/daemon/postgres/binary.js +193 -0
- package/dist/daemon/postgres/cluster.d.ts +37 -0
- package/dist/daemon/postgres/cluster.js +111 -0
- package/dist/daemon/postgres/pins.d.ts +7 -0
- package/dist/daemon/postgres/pins.js +16 -0
- package/dist/daemon/postgres/supervisor.d.ts +95 -0
- package/dist/daemon/postgres/supervisor.js +177 -0
- package/dist/daemon/readiness.d.ts +11 -0
- package/dist/daemon/readiness.js +37 -0
- package/dist/daemon/reconcilers/broker-supervision.d.ts +112 -0
- package/dist/daemon/reconcilers/broker-supervision.js +842 -0
- package/dist/daemon/reconcilers/ledger-sandbox.d.ts +54 -0
- package/dist/daemon/reconcilers/ledger-sandbox.js +249 -0
- package/dist/daemon/reconcilers/live-obligation.d.ts +77 -0
- package/dist/daemon/reconcilers/live-obligation.js +114 -0
- package/dist/daemon/reconcilers/node-lifecycle/launch-failure.d.ts +1 -0
- package/dist/daemon/reconcilers/node-lifecycle/launch-failure.js +8 -0
- package/dist/daemon/reconcilers/node-lifecycle/node-person.d.ts +9 -0
- package/dist/daemon/reconcilers/node-lifecycle/node-person.js +40 -0
- package/dist/daemon/reconcilers/node-lifecycle/remote-wake.d.ts +32 -0
- package/dist/daemon/reconcilers/node-lifecycle/remote-wake.js +124 -0
- package/dist/daemon/reconcilers/recipe-image.d.ts +49 -0
- package/dist/daemon/reconcilers/recipe-image.js +145 -0
- package/dist/daemon/reconcilers/throttled-lane.d.ts +11 -0
- package/dist/daemon/reconcilers/throttled-lane.js +63 -0
- package/dist/daemon/runs/append-section.d.ts +9 -0
- package/dist/daemon/runs/append-section.js +135 -0
- package/dist/daemon/runs/observer.d.ts +17 -0
- package/dist/daemon/runs/observer.js +441 -0
- package/dist/daemon/runs/view-transport.d.ts +19 -0
- package/dist/daemon/runs/view-transport.js +81 -0
- package/dist/daemon/structured-requests/sidecar.d.ts +4 -0
- package/dist/daemon/structured-requests/sidecar.js +5 -0
- package/dist/hook-authoring.d.ts +130 -0
- package/dist/hook-authoring.js +447 -0
- package/dist/hook-process.d.ts +7 -0
- package/dist/hook-process.js +34 -0
- package/dist/launcher/client.d.ts +6 -0
- package/dist/launcher/client.js +52 -0
- package/dist/launcher/limits/policy.d.ts +141 -0
- package/dist/launcher/limits/policy.js +142 -0
- package/dist/launcher/limits/settings.d.ts +19 -0
- package/dist/launcher/limits/settings.js +94 -0
- package/dist/launcher/spec.d.ts +181 -0
- package/dist/launcher/spec.js +10 -0
- package/dist/migrations/004-canvas-documents/apply.d.ts +8 -0
- package/dist/migrations/004-canvas-documents/apply.js +113 -0
- package/dist/migrations/004-canvas-documents/fields.d.ts +24 -0
- package/dist/migrations/004-canvas-documents/fields.js +52 -0
- package/dist/migrations/004-canvas-documents/index.d.ts +16 -0
- package/dist/migrations/004-canvas-documents/index.js +88 -0
- package/dist/migrations/004-canvas-documents/legacy/discover.d.ts +16 -0
- package/dist/migrations/004-canvas-documents/legacy/discover.js +251 -0
- package/dist/migrations/004-canvas-documents/legacy/history.d.ts +5 -0
- package/dist/migrations/004-canvas-documents/legacy/history.js +37 -0
- package/dist/migrations/004-canvas-documents/legacy/nested.d.ts +7 -0
- package/dist/migrations/004-canvas-documents/legacy/nested.js +37 -0
- package/dist/migrations/004-canvas-documents/legacy/parse.d.ts +14 -0
- package/dist/migrations/004-canvas-documents/legacy/parse.js +24 -0
- package/dist/migrations/004-canvas-documents/legacy/types.d.ts +91 -0
- package/dist/migrations/004-canvas-documents/legacy/types.js +3 -0
- package/dist/migrations/004-canvas-documents/plan.d.ts +102 -0
- package/dist/migrations/004-canvas-documents/plan.js +410 -0
- package/dist/migrations/004-canvas-documents/pointers.d.ts +23 -0
- package/dist/migrations/004-canvas-documents/pointers.js +95 -0
- package/dist/migrations/activation.d.ts +17 -0
- package/dist/migrations/activation.js +46 -0
- package/dist/shared/crtr-version.d.ts +2 -0
- package/dist/shared/crtr-version.js +18 -0
- package/dist/shared/inbox-entry-body.js +6 -2
- package/dist/shared/inline-ref-grammar.d.ts +53 -0
- package/dist/shared/inline-ref-grammar.js +99 -0
- package/dist/shared/shell-quote.d.ts +3 -0
- package/dist/shared/shell-quote.js +5 -0
- package/dist/shared/strip-cd-prefix.d.ts +1 -0
- package/dist/shared/strip-cd-prefix.js +13 -0
- package/dist/shared/tool-groups.d.ts +26 -0
- package/dist/shared/tool-groups.js +64 -0
- package/dist/shared/traceparent.d.ts +6 -0
- package/dist/shared/traceparent.js +28 -0
- package/dist/shared/turn-replies.d.ts +27 -0
- package/dist/shared/turn-replies.js +71 -0
- package/package.json +1 -1
|
@@ -0,0 +1,695 @@
|
|
|
1
|
+
// src/core/runtime/host.ts
|
|
2
|
+
//
|
|
3
|
+
// The Host abstraction (design §3): owns an engine PROCESS's lifecycle, not its
|
|
4
|
+
// display. After the broker-is-the-host cut there is ONE impl —
|
|
5
|
+
// HeadlessBrokerHost — a detached broker process with no tmux pane. Every node
|
|
6
|
+
// (managed child, named node, --root, front-door root) runs on it; a tmux pane
|
|
7
|
+
// is only an attach VIEWER. The `Host` interface is kept as a one-impl seam (the
|
|
8
|
+
// test/future-host boundary).
|
|
9
|
+
//
|
|
10
|
+
// This file imports neither './tmux.js' nor './placement.js' — the broker host
|
|
11
|
+
// needs no tmux verb at all (it supervises via the broker pid, tears down over
|
|
12
|
+
// the node's unix socket).
|
|
13
|
+
import { assertGranteeRunsHere } from './unsandboxed.js';
|
|
14
|
+
import { spawn } from 'node:child_process';
|
|
15
|
+
import { mkdirSync, existsSync, unlinkSync, openSync, closeSync, writeSync, chmodSync, lstatSync } from 'node:fs';
|
|
16
|
+
import { ensureAppSpace } from '../spaces/space.js';
|
|
17
|
+
import { sandboxCacheEnv } from '../spaces/cache-env.js';
|
|
18
|
+
import { compileLaunch, launchStillGranted } from '../spaces/mounts.js';
|
|
19
|
+
import { grantsGeneration } from '../grants/mirror.js';
|
|
20
|
+
import { LAUNCHER_SOCKET } from '../../launcher/spec.js';
|
|
21
|
+
import { launcherRequest } from '../../launcher/client.js';
|
|
22
|
+
import { piAgentDir } from './package-health.js';
|
|
23
|
+
import { existsBeneath, readFileBeneath, readTextBeneathIfExists, setModeBeneath, withDirBeneath, writeFileBeneath } from '../spaces/open-beneath.js';
|
|
24
|
+
import { dirname, join, resolve, isAbsolute } from 'node:path';
|
|
25
|
+
import { fileURLToPath } from 'node:url';
|
|
26
|
+
import { connectViewSocket } from './view-socket.js';
|
|
27
|
+
import { appSpace } from '../layout.js';
|
|
28
|
+
import { readConfig, readMergedLaunchConfig } from '../config.js';
|
|
29
|
+
import { loadRotationConfig } from '../subscription-state.js';
|
|
30
|
+
import { getNode } from '../canvas/index.js';
|
|
31
|
+
import { withCanvasWrite } from '../canvas/db.js';
|
|
32
|
+
import { requestExecutionStop } from '../canvas/executions.js';
|
|
33
|
+
import { scopesFilePath, crtrHome, nodeRunDir, nodeRunJobDir, jobDir, viewSocketPath, nodeAgentDir, contextDir, nodeHome } from '../canvas/paths.js';
|
|
34
|
+
import { encodeFrame } from './broker-protocol.js';
|
|
35
|
+
import { buildBrokerEnv } from './spawn-env-rows.js';
|
|
36
|
+
import { hostExecPathFresh } from './branded-host.js';
|
|
37
|
+
import { isPidAlive, killProcessTreePids, isAnyPidAlive, captureTeardownSnapshot } from '../canvas/pid.js';
|
|
38
|
+
import { assertMandatoryCanvasExtensions } from './canvas-extensions.js';
|
|
39
|
+
import { appMemoryFull, appMemoryTooSmall, boundFleet, brokerCapReached, brokerThresholdsForDaemon } from './fleet.js';
|
|
40
|
+
import { admitBrokerMemory } from './memory-admission.js';
|
|
41
|
+
import { emitEvent } from '../events/emit.js';
|
|
42
|
+
import { bindBrokerEventSource, eventSource } from '../events/source.js';
|
|
43
|
+
import { envBrokerEngine } from '../../shared/env.js';
|
|
44
|
+
import { conversationIdFromPath, conversationStore, ConversationNotFoundError } from '../conversation-store/index.js';
|
|
45
|
+
import { mintNodeToken } from '../canvas/node-tokens.js';
|
|
46
|
+
import { personId } from '../canvas/person.js';
|
|
47
|
+
// HeadlessBrokerHost (design §3.3): a detached broker PROCESS, no tmux pane. It
|
|
48
|
+
// boots the dedicated broker-cli entry directly (NEVER src/cli.ts), supervises
|
|
49
|
+
// via the broker pid recorded as pi_pid, and tears down over the node's unix
|
|
50
|
+
// socket (graceful `shutdown` frame, SIGTERM fallback).
|
|
51
|
+
/** Resolve the broker entry beside this module. A broker must run from the
|
|
52
|
+
* same generation as the crtrd launching it, so module-relative resolution
|
|
53
|
+
* preserves that invariant. */
|
|
54
|
+
function resolveBrokerEntry() {
|
|
55
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
56
|
+
return join(here, 'broker-cli.js');
|
|
57
|
+
}
|
|
58
|
+
const DEFAULT_BROKER_ENGINE = '@earendil-works/pi-coding-agent';
|
|
59
|
+
/** The scrubbed models.json the broker's agent dir carries, or null when the
|
|
60
|
+
* operator has none. Credentials are stripped; they live in daemon secrets. */
|
|
61
|
+
function scrubbedBrokerModels() {
|
|
62
|
+
const source = join(piAgentDir(), 'models.json');
|
|
63
|
+
const text = readTextBeneathIfExists(dirname(source), source);
|
|
64
|
+
if (text === null)
|
|
65
|
+
return null;
|
|
66
|
+
const models = JSON.parse(text);
|
|
67
|
+
const scrub = (value) => {
|
|
68
|
+
if (Array.isArray(value))
|
|
69
|
+
return value.map(scrub);
|
|
70
|
+
if (value === null || typeof value !== 'object')
|
|
71
|
+
return value;
|
|
72
|
+
return Object.fromEntries(Object.entries(value).filter(([key]) => !/^(apiKey|authorization|headers|token|secret)$/i.test(key)).map(([key, item]) => [key, scrub(item)]));
|
|
73
|
+
};
|
|
74
|
+
return { text, clean: `${JSON.stringify(scrub(models), null, 2)}\n`, credentialed: JSON.stringify(models) !== JSON.stringify(scrub(models)) };
|
|
75
|
+
}
|
|
76
|
+
function writeBrokerModels(home, agentDir) {
|
|
77
|
+
const source = join(piAgentDir(), 'models.json');
|
|
78
|
+
const target = join(agentDir, 'models.json');
|
|
79
|
+
const models = scrubbedBrokerModels();
|
|
80
|
+
if (models === null)
|
|
81
|
+
return;
|
|
82
|
+
if (source === target && models.text !== models.clean) {
|
|
83
|
+
// Never overwrite an operator's source model configuration in place.
|
|
84
|
+
if (models.credentialed)
|
|
85
|
+
throw new Error('terminal models.json contains credentials; move them into daemon secrets');
|
|
86
|
+
setModeBeneath(home, target, 0o660);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
writeFileBeneath(home, target, models.clean, { atomic: true, mode: 0o660 });
|
|
90
|
+
setModeBeneath(home, target, 0o660);
|
|
91
|
+
}
|
|
92
|
+
/** Resolve the broker engine spec for THIS launch, mirroring broker-sdk.ts's
|
|
93
|
+
* own resolution order (`inv.env` first, then the launching process's ambient
|
|
94
|
+
* `CRTR_BROKER_ENGINE` — the T11 test seam — then the real SDK default).
|
|
95
|
+
* Called once by `preflightBrokerLaunch` (to validate resolvability before we
|
|
96
|
+
* detach a process) and again by `launch` (to inject the SAME resolved value
|
|
97
|
+
* into the child's env — see the child-env comment at the spawn() call for
|
|
98
|
+
* why: the default-deny allowlist in spawn-env.ts strips `CRTR_*` from
|
|
99
|
+
* ambient env, so the child can no longer re-derive this itself). */
|
|
100
|
+
function resolveEngineSpec(inv) {
|
|
101
|
+
return inv.env['CRTR_BROKER_ENGINE'] ?? envBrokerEngine();
|
|
102
|
+
}
|
|
103
|
+
function isPlainLaunchSessionPath(token) {
|
|
104
|
+
return token.includes('/') || token.endsWith('.jsonl');
|
|
105
|
+
}
|
|
106
|
+
function resolvePlainLaunchPath(token, cwd) {
|
|
107
|
+
return isAbsolute(token) ? token : resolve(cwd, token);
|
|
108
|
+
}
|
|
109
|
+
async function preflightLaunchSessionArg(nodeId, cwd, flag, value) {
|
|
110
|
+
if (flag === '--session' && !isPlainLaunchSessionPath(value)) {
|
|
111
|
+
throw new Error(`[broker] refusing to launch ${nodeId}: launch recipe passes bare --session id '${value}' — the broker fatally rejects bare ids; pass the .jsonl path instead.`);
|
|
112
|
+
}
|
|
113
|
+
if (!isPlainLaunchSessionPath(value))
|
|
114
|
+
return;
|
|
115
|
+
const sessionPath = resolvePlainLaunchPath(value, cwd);
|
|
116
|
+
const id = conversationIdFromPath(sessionPath);
|
|
117
|
+
try {
|
|
118
|
+
if (id === null)
|
|
119
|
+
throw new ConversationNotFoundError(sessionPath);
|
|
120
|
+
await conversationStore().header(id);
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
if (!(error instanceof ConversationNotFoundError))
|
|
124
|
+
throw error;
|
|
125
|
+
const label = flag === '--session' ? 'session file' : 'fork source';
|
|
126
|
+
throw new Error(`[broker] refusing to launch ${nodeId}: launch recipe references missing ${label} '${value}' (${sessionPath})`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/** The launch recipe stored in `executions.launch_json`: the invocation, the
|
|
130
|
+
* config snapshot, the node's `scopes` (null when unnarrowed) and the scrubbed
|
|
131
|
+
* `models` object (null when the operator has no models.json) — everything a
|
|
132
|
+
* runner on another machine needs to rebuild the broker's run dir and agent dir. */
|
|
133
|
+
export async function brokerLaunchJson(nodeId, inv, cwd) {
|
|
134
|
+
const models = scrubbedBrokerModels();
|
|
135
|
+
return JSON.stringify({ ...inv, configSnapshot: {
|
|
136
|
+
user: readConfig('user'),
|
|
137
|
+
launch: readMergedLaunchConfig(cwd, inv.env['CRTR_PROFILE_ID'] || null),
|
|
138
|
+
rotation: await loadRotationConfig(),
|
|
139
|
+
}, scopes: (await getNode(nodeId))?.scopes ?? null,
|
|
140
|
+
models: models === null ? null : JSON.parse(models.clean) });
|
|
141
|
+
}
|
|
142
|
+
/** Validate the broker launch recipe before we detach a child process. This is
|
|
143
|
+
* the fast-fail seam for known module/path errors: a bad engine resolve or a
|
|
144
|
+
* missing plain session path throws here, before spawn(). */
|
|
145
|
+
export async function preflightBrokerLaunch(nodeId, inv, cwd, launchJson) {
|
|
146
|
+
const dir = nodeRunDir(nodeId);
|
|
147
|
+
mkdirSync(dir, { recursive: true });
|
|
148
|
+
if (process.platform === 'linux' && existsSync(LAUNCHER_SOCKET) && lstatSync(dir).uid === process.getuid())
|
|
149
|
+
chmodSync(dir, 0o770);
|
|
150
|
+
const launchPath = join(dir, 'broker-launch.json');
|
|
151
|
+
writeFileBeneath(dir, launchPath, launchJson ?? await brokerLaunchJson(nodeId, inv, cwd), { atomic: true });
|
|
152
|
+
if (inv.env['CRTR_SCOPES_FILE'] !== undefined) {
|
|
153
|
+
// Same folder and writer as the launch recipe: the env carries only this path.
|
|
154
|
+
writeFileBeneath(dir, scopesFilePath(nodeId), JSON.stringify((await getNode(nodeId))?.scopes ?? []), { atomic: true });
|
|
155
|
+
}
|
|
156
|
+
const raw = readFileBeneath(dir, launchPath).toString('utf8');
|
|
157
|
+
const recipe = JSON.parse(raw);
|
|
158
|
+
if (!Array.isArray(recipe.argv)) {
|
|
159
|
+
throw new Error(`[broker] refusing to launch ${nodeId}: broker-launch.json is missing the argv array`);
|
|
160
|
+
}
|
|
161
|
+
const engineSpec = resolveEngineSpec(inv);
|
|
162
|
+
try {
|
|
163
|
+
const resolvedEngine = import.meta.resolve(engineSpec);
|
|
164
|
+
if (resolvedEngine.startsWith('file:') && !existsSync(fileURLToPath(resolvedEngine))) {
|
|
165
|
+
throw new Error(`resolved to missing file ${resolvedEngine}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
throw new Error(`[broker] refusing to launch ${nodeId}: cannot resolve broker engine '${engineSpec}' from ${resolveBrokerEntry()} — ${error.message}`);
|
|
170
|
+
}
|
|
171
|
+
const argv = recipe.argv;
|
|
172
|
+
const extensionPaths = [];
|
|
173
|
+
for (let i = 0; i < argv.length; i++) {
|
|
174
|
+
const tok = argv[i];
|
|
175
|
+
if (tok === '-e') {
|
|
176
|
+
const value = argv[++i];
|
|
177
|
+
if (value !== undefined)
|
|
178
|
+
extensionPaths.push(value);
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (tok !== '--session' && tok !== '--fork')
|
|
182
|
+
continue;
|
|
183
|
+
const value = argv[++i];
|
|
184
|
+
if (value === undefined)
|
|
185
|
+
continue;
|
|
186
|
+
await preflightLaunchSessionArg(nodeId, cwd, tok, value);
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
assertMandatoryCanvasExtensions(extensionPaths);
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
throw new Error(`[broker] refusing to launch ${nodeId}: ${error.message}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/** How long teardown waits after sending the graceful `shutdown` frame before
|
|
196
|
+
* escalating a broker/tree that connected but never fully exited (e.g. a hung
|
|
197
|
+
* dispose(), or a dispose() that reaped the broker but left a descendant
|
|
198
|
+
* behind). */
|
|
199
|
+
const BROKER_SHUTDOWN_GRACE_MS = 2_000;
|
|
200
|
+
/** How long teardown waits after the tree-wide SIGTERM before the final
|
|
201
|
+
* tree-wide SIGKILL sweep — the last resort for a broker (or its
|
|
202
|
+
* descendants) that ignores SIGTERM entirely. */
|
|
203
|
+
const BROKER_SIGKILL_GRACE_MS = 2_000;
|
|
204
|
+
/** How often `pollUntilTreeDead` re-checks the process TREE. Short enough that
|
|
205
|
+
* the common/happy path (tree already dead) pays only a couple of ticks; the
|
|
206
|
+
* full grace ceilings above are reserved for the genuinely-wedged case,
|
|
207
|
+
* where the added latency is the whole point. */
|
|
208
|
+
const TEARDOWN_POLL_MS = 150;
|
|
209
|
+
/** Wait against the fixed snapshot. The ref'd timer keeps a short-lived
|
|
210
|
+
* caller alive through the final SIGKILL confirmation. */
|
|
211
|
+
async function waitForTreeExit(tree, timeoutMs) {
|
|
212
|
+
const deadline = Date.now() + timeoutMs;
|
|
213
|
+
while (isAnyPidAlive(tree)) {
|
|
214
|
+
const remaining = deadline - Date.now();
|
|
215
|
+
if (remaining <= 0)
|
|
216
|
+
return false;
|
|
217
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(TEARDOWN_POLL_MS, remaining)));
|
|
218
|
+
}
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
/** Finish one teardown using the snapshot captured before any signal can sever
|
|
222
|
+
* broker parentage. A failed confirmation is explicit so post-teardown cleanup
|
|
223
|
+
* never runs against an engine tree that may still own its resources. */
|
|
224
|
+
async function terminateBrokerTree(tree, identities, graceful) {
|
|
225
|
+
if (tree.length === 0)
|
|
226
|
+
return { confirmed: true };
|
|
227
|
+
if (graceful && await waitForTreeExit(tree, BROKER_SHUTDOWN_GRACE_MS))
|
|
228
|
+
return { confirmed: true };
|
|
229
|
+
killProcessTreePids(tree, 'SIGTERM', identities);
|
|
230
|
+
if (await waitForTreeExit(tree, BROKER_SIGKILL_GRACE_MS))
|
|
231
|
+
return { confirmed: true };
|
|
232
|
+
killProcessTreePids(tree, 'SIGKILL', identities);
|
|
233
|
+
if (await waitForTreeExit(tree, 5_000))
|
|
234
|
+
return { confirmed: true };
|
|
235
|
+
return { confirmed: false, error: new Error(`broker process tree for ${tree.join(', ')} remained alive after SIGKILL`) };
|
|
236
|
+
}
|
|
237
|
+
/** Capture the one authoritative process snapshot before a caller can reap the
|
|
238
|
+
* node row. No signal or socket operation occurs here; execution remains queued
|
|
239
|
+
* until the close response has settled. */
|
|
240
|
+
async function prepareBrokerTeardown(nodeId, opts) {
|
|
241
|
+
const node = await getNode(nodeId);
|
|
242
|
+
const pid = node?.pi_pid;
|
|
243
|
+
const snapshot = pid != null
|
|
244
|
+
? captureTeardownSnapshot(pid, node?.pi_pid_identity ?? null, opts.excludePid)
|
|
245
|
+
: null;
|
|
246
|
+
if (snapshot?.reused === true) {
|
|
247
|
+
emitEvent({
|
|
248
|
+
level: 'warn',
|
|
249
|
+
event: 'broker.teardown.pid_reuse_refused',
|
|
250
|
+
node_id: nodeId,
|
|
251
|
+
fields: { recorded_pid: pid, expected_identity: node?.pi_pid_identity ?? null },
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
return {
|
|
255
|
+
tree: snapshot?.tree ?? [],
|
|
256
|
+
identities: snapshot?.identities ?? null,
|
|
257
|
+
nodeId,
|
|
258
|
+
launcherPid: existsSync(LAUNCHER_SOCKET) && snapshot?.tree.includes(pid) ? pid : null,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
async function runPreparedBrokerTeardown(prepared) {
|
|
262
|
+
if (prepared.launcherPid !== null) {
|
|
263
|
+
try {
|
|
264
|
+
await launcherRequest({ operation: 'stop', pid: prepared.launcherPid });
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
if (!isPidAlive(prepared.launcherPid))
|
|
268
|
+
return { confirmed: true };
|
|
269
|
+
return { confirmed: false, error: error instanceof Error ? error : new Error(String(error)) };
|
|
270
|
+
}
|
|
271
|
+
return await waitForTreeExit([prepared.launcherPid], 5_000)
|
|
272
|
+
? { confirmed: true }
|
|
273
|
+
: { confirmed: false, error: new Error(`launcher pid ${prepared.launcherPid} remained alive`) };
|
|
274
|
+
}
|
|
275
|
+
// Even a dead broker pid can still be the process-group leader for an orphan
|
|
276
|
+
// that the initial ppid walk could no longer reach. The connect-failure path
|
|
277
|
+
// must retain that leader id for group signaling rather than treating its dead
|
|
278
|
+
// status as confirmation that no descendant survives.
|
|
279
|
+
return new Promise((resolve) => {
|
|
280
|
+
let connected = false;
|
|
281
|
+
let settled = false;
|
|
282
|
+
const settle = (result) => {
|
|
283
|
+
if (settled)
|
|
284
|
+
return;
|
|
285
|
+
settled = true;
|
|
286
|
+
resolve(result);
|
|
287
|
+
};
|
|
288
|
+
const cleanupSocket = () => {
|
|
289
|
+
try {
|
|
290
|
+
unlinkSync(viewSocketPath(prepared.nodeId));
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
/* best-effort cleanup */
|
|
294
|
+
}
|
|
295
|
+
};
|
|
296
|
+
const finish = (graceful) => {
|
|
297
|
+
void terminateBrokerTree(prepared.tree, prepared.identities, graceful).then(settle, (error) => settle({ confirmed: false, error: error instanceof Error ? error : new Error(String(error)) }));
|
|
298
|
+
};
|
|
299
|
+
const sock = connectViewSocket(prepared.nodeId);
|
|
300
|
+
sock.once('error', () => {
|
|
301
|
+
if (connected)
|
|
302
|
+
return;
|
|
303
|
+
cleanupSocket();
|
|
304
|
+
finish(false);
|
|
305
|
+
});
|
|
306
|
+
sock.once('connect', () => {
|
|
307
|
+
connected = true;
|
|
308
|
+
try {
|
|
309
|
+
// The broker admits `shutdown` from a controller only; an unhelloed socket is an observer.
|
|
310
|
+
sock.write(encodeFrame({ type: 'hello', role: 'controller', client_id: `daemon-shutdown-${process.pid}` }));
|
|
311
|
+
sock.write(encodeFrame({ type: 'shutdown' }));
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
/* the broker may have raced us to exit */
|
|
315
|
+
}
|
|
316
|
+
sock.end();
|
|
317
|
+
cleanupSocket();
|
|
318
|
+
finish(true);
|
|
319
|
+
});
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
/** Record the stop on the node's live execution row, then tear the broker down in this process: on the next event-loop
|
|
323
|
+
* turn, or once `opts.startAfter` settles. The row is what survives this process: when it dies before the teardown
|
|
324
|
+
* completes, the node-lifecycle claim holder enacts the stop from `stop_requested_at` / `stop_after_turn`
|
|
325
|
+
* (`enactRequestedStops`). Completion includes any post-teardown work, which lets the daemon drain it during shutdown;
|
|
326
|
+
* that work is this call's closure and does not outlive the process. */
|
|
327
|
+
export async function requestBrokerTeardown(nodeId, opts = {}, after) {
|
|
328
|
+
let prepared;
|
|
329
|
+
try {
|
|
330
|
+
await requestExecutionStop(nodeId, { afterTurn: opts.startAfter !== undefined, reason: opts.reason ?? 'teardown' });
|
|
331
|
+
prepared = await prepareBrokerTeardown(nodeId, opts);
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
const failure = { confirmed: false, error: error instanceof Error ? error : new Error(String(error)) };
|
|
335
|
+
emitEvent({ level: 'error', event: 'broker.teardown.unconfirmed', node_id: nodeId, error: failure.error });
|
|
336
|
+
return failure;
|
|
337
|
+
}
|
|
338
|
+
return await new Promise((resolve) => {
|
|
339
|
+
const run = () => {
|
|
340
|
+
void runPreparedBrokerTeardown(prepared).then(async (result) => {
|
|
341
|
+
if (result.confirmed) {
|
|
342
|
+
if (after !== undefined) {
|
|
343
|
+
try {
|
|
344
|
+
await after();
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
emitEvent({ level: 'error', event: 'broker.teardown.after_failed', node_id: nodeId, error });
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
emitEvent({ level: 'error', event: 'broker.teardown.unconfirmed', node_id: nodeId, error: result.error });
|
|
353
|
+
}
|
|
354
|
+
resolve(result);
|
|
355
|
+
}, (error) => {
|
|
356
|
+
const failure = { confirmed: false, error: error instanceof Error ? error : new Error(String(error)) };
|
|
357
|
+
emitEvent({ level: 'error', event: 'broker.teardown.unconfirmed', node_id: nodeId, error: failure.error });
|
|
358
|
+
resolve(failure);
|
|
359
|
+
});
|
|
360
|
+
};
|
|
361
|
+
if (opts.startAfter === undefined)
|
|
362
|
+
setImmediate(run);
|
|
363
|
+
else
|
|
364
|
+
void opts.startAfter.then(run, run);
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
/** Isolated brokers require the Linux launcher; direct host spawn cannot enforce their filesystem or network policy. */
|
|
368
|
+
export function isolatedBrokerLauncherAvailable() {
|
|
369
|
+
return process.platform === 'linux' && existsSync(LAUNCHER_SOCKET);
|
|
370
|
+
}
|
|
371
|
+
export const headlessBrokerHost = {
|
|
372
|
+
async launch(nodeId, inv, opts) {
|
|
373
|
+
assertGranteeRunsHere((await getNode(nodeId))?.grantee);
|
|
374
|
+
if ((await getNode(nodeId))?.isolated === true && !isolatedBrokerLauncherAvailable()) {
|
|
375
|
+
throw new Error('isolated broker requires the Linux root launcher');
|
|
376
|
+
}
|
|
377
|
+
// Fast-fail known launch errors before we detach a broker process.
|
|
378
|
+
await preflightBrokerLaunch(nodeId, inv, opts.cwd, opts.launchJson);
|
|
379
|
+
// Resolve the fleet BEFORE opening any handle: an unbound-fleet launch must
|
|
380
|
+
// fail fast with nothing to clean up (design D-2 — broker launches happen
|
|
381
|
+
// only inside crtrd, or a test harness that explicitly bound a fleet).
|
|
382
|
+
const fleet = boundFleet();
|
|
383
|
+
// The ledger is the ONE admission gate for a broker process: every launch
|
|
384
|
+
// path (revive, spawn, recycle, reset) funnels through here, so claiming
|
|
385
|
+
// the slot before anything is opened — and giving it back on any path that
|
|
386
|
+
// does not end in a registered handle — is what makes the cap real rather
|
|
387
|
+
// than advisory. A caller that cannot proceed without a slot sees this
|
|
388
|
+
// typed refusal; a caller that can wait catches it and freezes instead.
|
|
389
|
+
if (!await fleet.reserveSlot(nodeId)) {
|
|
390
|
+
throw brokerCapReached(brokerThresholdsForDaemon().automaticReviveCap, await fleet.occupancy());
|
|
391
|
+
}
|
|
392
|
+
let logFd = null;
|
|
393
|
+
let child;
|
|
394
|
+
let registered = false;
|
|
395
|
+
try {
|
|
396
|
+
// Redirect the detached broker's stdout+stderr to a per-node log under the
|
|
397
|
+
// node's existing job/ dir. It retains arbitrary engine/process residue and
|
|
398
|
+
// failed-canonical fatal fallback output. Append-mode preserves crash-revive history.
|
|
399
|
+
const logDir = jobDir(nodeId);
|
|
400
|
+
mkdirSync(logDir, { recursive: true });
|
|
401
|
+
logFd = openSync(join(logDir, 'broker.log'), 'a');
|
|
402
|
+
// Launch from the crouter-branded host binary (a copy of node) so the
|
|
403
|
+
// broker shows "crouter" in macOS Full Disk Access, not "node". On
|
|
404
|
+
// non-darwin / dev / tests this is just process.execPath (see branded-host).
|
|
405
|
+
// buildBrokerEnv's default-deny allowlist has no `CRTR_` prefix, so a bare
|
|
406
|
+
// `CRTR_BROKER_ENGINE` set only in the LAUNCHING process's ambient env (the
|
|
407
|
+
// T11 test seam — see broker-sdk.ts) would never reach the child, which
|
|
408
|
+
// would silently fall back to booting the real SDK. Inject the SAME value
|
|
409
|
+
// preflightBrokerLaunch already resolved+validated above: it is
|
|
410
|
+
// parent-resolved, crtr-trusted data (the same trust category as
|
|
411
|
+
// `inv.env`), not a blanket `CRTR_*` passthrough, so this does not weaken
|
|
412
|
+
// the allowlist's hardening. In production `engineSpec` is always the real
|
|
413
|
+
// SDK default, so this is a no-op there.
|
|
414
|
+
const engineSpec = resolveEngineSpec(inv);
|
|
415
|
+
const childEnv = { ...await buildBrokerEnv(inv), CRTR_BROKER_ENGINE: engineSpec };
|
|
416
|
+
// NODE_OPTIONS is deliberately absent from the operational allowlist (it is
|
|
417
|
+
// a code-execution vector — `--require`/`--import` — and DAEMON_ENV_STRIP_KEYS
|
|
418
|
+
// strips it from the daemon's own env for the identical reason: a poisoned
|
|
419
|
+
// NODE_OPTIONS in an inheriting shell must never reach a process that then
|
|
420
|
+
// handles model credentials). It is genuinely needed ONLY for the T11 test
|
|
421
|
+
// seam above: the fake engine is a `.ts` fixture, and the broker CLI entry
|
|
422
|
+
// itself is only a `.js` file under the compiled `dist/`, so the harness
|
|
423
|
+
// relies on `NODE_OPTIONS=--import tsx/esm` (set on its own ambient env, same
|
|
424
|
+
// seam as CRTR_BROKER_ENGINE) to make the spawned child resolve both under
|
|
425
|
+
// tsx. Gating this carry on `engineSpec !== DEFAULT_BROKER_ENGINE` — i.e. only
|
|
426
|
+
// when the trusted test seam above already fired — keeps production (where
|
|
427
|
+
// the engine is never overridden) byte-identical to today: NODE_OPTIONS is
|
|
428
|
+
// never forwarded there, so an ambient poisoned value stays contained.
|
|
429
|
+
if (engineSpec !== DEFAULT_BROKER_ENGINE) {
|
|
430
|
+
const nodeOptions = inv.env['NODE_OPTIONS'] ?? process.env['NODE_OPTIONS'];
|
|
431
|
+
if (nodeOptions !== undefined)
|
|
432
|
+
childEnv['NODE_OPTIONS'] = nodeOptions;
|
|
433
|
+
// The same seam names the test lane's Postgres: a broker reads the person's model rows from the database, and without
|
|
434
|
+
// the lane's URL it would look for the production cluster's socket.
|
|
435
|
+
const testDatabase = inv.env['CRTR_TEST_PG_URL'] ?? process.env['CRTR_TEST_PG_URL'];
|
|
436
|
+
if (testDatabase !== undefined)
|
|
437
|
+
childEnv['CRTR_TEST_PG_URL'] = testDatabase;
|
|
438
|
+
}
|
|
439
|
+
if (eventSource() === undefined)
|
|
440
|
+
bindBrokerEventSource(nodeId);
|
|
441
|
+
// `--canvas-home` declares broker ownership in argv so the daemon's
|
|
442
|
+
// startup epoch census can match its own canvas' brokers exactly (crtrd's
|
|
443
|
+
// brokerCommandDeclaresCanvasHome) instead of inferring from install
|
|
444
|
+
// paths; `--epoch` stamps WHICH daemon epoch launched it, so the next
|
|
445
|
+
// daemon's census reaps every prior-epoch broker without adoption (D-8).
|
|
446
|
+
// Both precede the node id: the node id is by contract the FINAL argv
|
|
447
|
+
// token (both broker-cli and the ps census parse it that way).
|
|
448
|
+
const runId = (await getNode(nodeId))?.run_id;
|
|
449
|
+
if (runId) {
|
|
450
|
+
const root = await getNode(runId);
|
|
451
|
+
if (!root || root.deleting_at)
|
|
452
|
+
throw new Error('run is deleting');
|
|
453
|
+
}
|
|
454
|
+
const executionId = inv.env['CRTR_EXECUTION_ID'];
|
|
455
|
+
if (!executionId)
|
|
456
|
+
throw new Error('broker launch has no execution id');
|
|
457
|
+
const nodeToken = await withCanvasWrite((db) => mintNodeToken(db, executionId, nodeId, new Date().toISOString()));
|
|
458
|
+
const sandboxed = isolatedBrokerLauncherAvailable();
|
|
459
|
+
if ((await getNode(nodeId))?.isolated === true && !sandboxed) {
|
|
460
|
+
throw new Error('isolated broker requires the Linux root launcher');
|
|
461
|
+
}
|
|
462
|
+
if (process.platform === 'linux' && process.env['CRTR_LAUNCHER_SOCKET'] && !sandboxed) {
|
|
463
|
+
throw new Error('root launcher socket is unavailable; refusing an unsandboxed broker');
|
|
464
|
+
}
|
|
465
|
+
if (sandboxed) {
|
|
466
|
+
const row = await getNode(nodeId);
|
|
467
|
+
if (!row)
|
|
468
|
+
throw new Error(`missing node ${nodeId}`);
|
|
469
|
+
const app = row.grantee ?? 'app:terminal';
|
|
470
|
+
// Backstop for launches that did not come through spawn or revive (recycle, reset): the caller's own admission
|
|
471
|
+
// left a ticket, which makes this admit; the memo is skipped so it cannot hide that ticket.
|
|
472
|
+
const memory = await admitBrokerMemory(nodeId, { useMemo: false });
|
|
473
|
+
if (memory.verdict === 'denied')
|
|
474
|
+
throw appMemoryFull(memory);
|
|
475
|
+
if (memory.verdict === 'too_small')
|
|
476
|
+
throw appMemoryTooSmall(memory);
|
|
477
|
+
const space = await ensureAppSpace(app);
|
|
478
|
+
Object.assign(childEnv, sandboxCacheEnv(app));
|
|
479
|
+
const owner = { uid: process.getuid(), gid: space.gid };
|
|
480
|
+
const runDir = nodeRunDir(nodeId);
|
|
481
|
+
for (const [root, path] of [[appSpace(app).nodes, nodeAgentDir(nodeId, app)], [appSpace(app).nodes, contextDir(nodeId, app)], [runDir, nodeRunJobDir(nodeId)]]) {
|
|
482
|
+
withDirBeneath(root, path, () => undefined, true);
|
|
483
|
+
setModeBeneath(root, path, 0o2770, owner);
|
|
484
|
+
}
|
|
485
|
+
setModeBeneath(runDir, join(runDir, 'broker-launch.json'), 0o640, owner);
|
|
486
|
+
if (existsBeneath(runDir, scopesFilePath(nodeId)))
|
|
487
|
+
setModeBeneath(runDir, scopesFilePath(nodeId), 0o640, owner);
|
|
488
|
+
const promptPath = join(runDir, 'system-prompt.md');
|
|
489
|
+
if (existsBeneath(runDir, promptPath))
|
|
490
|
+
setModeBeneath(runDir, promptPath, 0o660, owner);
|
|
491
|
+
// The daemon wrote these as crtrd:crtrd (umask 007); the broker, a different uid whose
|
|
492
|
+
// only group is crtr-data, must read them or it never declares `submit_result`.
|
|
493
|
+
for (const shared of ['output-schema.json', 'situational-context.md']) {
|
|
494
|
+
const sharedPath = join(runDir, shared);
|
|
495
|
+
if (existsBeneath(runDir, sharedPath))
|
|
496
|
+
setModeBeneath(runDir, sharedPath, 0o660, owner);
|
|
497
|
+
}
|
|
498
|
+
// A node of an isolated run gets its own home inside its node folder (Silas, 2026-09-30).
|
|
499
|
+
const isolatedHome = row.isolated === true;
|
|
500
|
+
const home = nodeHome(nodeId, app, isolatedHome);
|
|
501
|
+
if (isolatedHome) {
|
|
502
|
+
withDirBeneath(appSpace(app).nodes, home, () => undefined, true);
|
|
503
|
+
setModeBeneath(appSpace(app).nodes, home, 0o2770, owner);
|
|
504
|
+
childEnv['HOME'] = home;
|
|
505
|
+
childEnv['PI_CODING_AGENT_DIR'] = join(home, '.pi', 'agent');
|
|
506
|
+
}
|
|
507
|
+
const agentDir = join(home, '.pi', 'agent');
|
|
508
|
+
withDirBeneath(home, agentDir, () => undefined, true);
|
|
509
|
+
writeBrokerModels(home, agentDir);
|
|
510
|
+
const settingsPath = join(agentDir, 'settings.json');
|
|
511
|
+
const extensionPackage = join(dirname(resolveBrokerEntry()), '../../builtin-pi-packages/pi-crtr-extensions');
|
|
512
|
+
writeFileBeneath(home, settingsPath, `${JSON.stringify({ packages: [extensionPackage] })}\n`, { atomic: true, mode: 0o660 });
|
|
513
|
+
setModeBeneath(home, settingsPath, 0o660);
|
|
514
|
+
const tokenPath = join(nodeRunDir(nodeId), `token-${executionId}`);
|
|
515
|
+
const tokenFd = openSync(tokenPath, 'wx+', 0o600);
|
|
516
|
+
unlinkSync(tokenPath);
|
|
517
|
+
writeSync(tokenFd, nodeToken);
|
|
518
|
+
// A separate read descriptor of the unlinked file starts at byte zero.
|
|
519
|
+
// The second serves the one relaunch a grant sync during launch can force.
|
|
520
|
+
const readFds = [openSync(`/proc/self/fd/${tokenFd}`, 'r'), openSync(`/proc/self/fd/${tokenFd}`, 'r')];
|
|
521
|
+
closeSync(tokenFd);
|
|
522
|
+
const launchNode = { nodeId, app, sub: row.sub ?? personId(), grantId: row.grant_id ?? null,
|
|
523
|
+
scopes: row.scopes ?? null, isolated: row.isolated === true,
|
|
524
|
+
...(row.isolated === true ? { cwd: row.cwd } : {}),
|
|
525
|
+
command: [process.execPath, resolveBrokerEntry(), '--canvas-home', crtrHome(), '--epoch', fleet.epoch(), nodeId],
|
|
526
|
+
env: Object.fromEntries(Object.entries({ ...childEnv,
|
|
527
|
+
...(row.isolated === true ? { PWD: row.cwd } : {}),
|
|
528
|
+
}).filter((entry) => entry[1] !== undefined)),
|
|
529
|
+
auditMissing: (source) => emitEvent({ level: 'warn', event: 'broker.mount.missing', node_id: nodeId, fields: { source } }),
|
|
530
|
+
};
|
|
531
|
+
try {
|
|
532
|
+
let launched;
|
|
533
|
+
for (const readFd of readFds) {
|
|
534
|
+
const generation = await grantsGeneration();
|
|
535
|
+
const spec = await compileLaunch(launchNode);
|
|
536
|
+
spec.broker = true;
|
|
537
|
+
const reply = await launcherRequest({ operation: 'launch', spec }, [readFd]);
|
|
538
|
+
if (!('pid' in reply))
|
|
539
|
+
throw new Error('launcher did not return a pid');
|
|
540
|
+
// A sync that committed while this launch was compiled or started may
|
|
541
|
+
// have revoked a mount the spec holds; the sweep may already have run.
|
|
542
|
+
if (await grantsGeneration() === generation || await launchStillGranted(launchNode, spec)) {
|
|
543
|
+
launched = reply.pid;
|
|
544
|
+
break;
|
|
545
|
+
}
|
|
546
|
+
emitEvent({ level: 'info', event: 'broker.launch.regranted', node_id: nodeId, fields: { pid: reply.pid } });
|
|
547
|
+
await launcherRequest({ operation: 'stop', pid: reply.pid, signal: 'SIGKILL' }).catch(() => undefined);
|
|
548
|
+
}
|
|
549
|
+
if (launched === undefined)
|
|
550
|
+
throw new Error('grant changed during every launch attempt');
|
|
551
|
+
const pid = launched;
|
|
552
|
+
const launchedAt = Date.now();
|
|
553
|
+
const exited = new Promise(resolve => {
|
|
554
|
+
const poll = setInterval(() => {
|
|
555
|
+
if (isPidAlive(pid))
|
|
556
|
+
return;
|
|
557
|
+
clearInterval(poll);
|
|
558
|
+
// The launcher saw the sandbox end and read its cgroup's memory.events.
|
|
559
|
+
void launcherRequest({ operation: 'exit.status', pid }).then(reply => 'oomKilled' in reply ? { oomKilled: reply.oomKilled, code: reply.code ?? null, signal: reply.signal ?? null } : { oomKilled: false, code: null, signal: null }, () => ({ oomKilled: false, code: null, signal: null })).then(({ oomKilled, code, signal }) => {
|
|
560
|
+
emitEvent({ level: oomKilled || code !== 0 ? 'warn' : 'info', event: 'broker.exited', node_id: nodeId, fields: { pid, code, signal, uptime_ms: Date.now() - launchedAt, oom_killed: oomKilled } });
|
|
561
|
+
resolve({ code, signal, ...(oomKilled ? { oomKilled: true } : {}) });
|
|
562
|
+
});
|
|
563
|
+
}, 250);
|
|
564
|
+
poll.unref();
|
|
565
|
+
});
|
|
566
|
+
closeSync(logFd);
|
|
567
|
+
logFd = null;
|
|
568
|
+
const handle = { pid, exited };
|
|
569
|
+
fleet.register(nodeId, handle);
|
|
570
|
+
registered = true;
|
|
571
|
+
void exited.then(async (status) => await fleet.onChildExit(nodeId, status, executionId));
|
|
572
|
+
return handle;
|
|
573
|
+
}
|
|
574
|
+
finally {
|
|
575
|
+
for (const fd of readFds)
|
|
576
|
+
closeSync(fd);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
const brokerExec = await hostExecPathFresh();
|
|
580
|
+
const spawned = spawn(brokerExec, [resolveBrokerEntry(), '--canvas-home', crtrHome(), '--epoch', fleet.epoch(), nodeId], {
|
|
581
|
+
cwd: opts.cwd,
|
|
582
|
+
detached: true,
|
|
583
|
+
stdio: ['ignore', logFd, logFd, 'pipe'],
|
|
584
|
+
env: childEnv,
|
|
585
|
+
});
|
|
586
|
+
child = spawned;
|
|
587
|
+
const tokenPipe = spawned.stdio[3];
|
|
588
|
+
if (!tokenPipe || !('end' in tokenPipe))
|
|
589
|
+
throw new Error('broker token pipe did not open');
|
|
590
|
+
tokenPipe.on('error', (error) => emitEvent({ event: 'broker.token_pipe.failed', level: 'error', node_id: nodeId, error }));
|
|
591
|
+
tokenPipe.end(nodeToken);
|
|
592
|
+
// The child holds its own dup of the fd; release the parent's copy so the
|
|
593
|
+
// launching process (CLI or daemon) never leaks it.
|
|
594
|
+
closeSync(logFd);
|
|
595
|
+
logFd = null;
|
|
596
|
+
// ONE seam for every launch path (revive/spawn/recycle/reset): record the
|
|
597
|
+
// child's real exit status as a canonical event. Readiness waits consume
|
|
598
|
+
// `exited` for fail-fast and then discard it, so before this a broker that
|
|
599
|
+
// was SIGKILLed out from under crouter left NO trace anywhere — an external
|
|
600
|
+
// kill was indistinguishable from a silent early return, and post-mortems
|
|
601
|
+
// were unprovable (see the 2026-07-27 "brokers die at startup" RCA).
|
|
602
|
+
// Emitted through the ordinary bound source: in the daemon (the process
|
|
603
|
+
// that actually launches brokers) that is the daemon stream carrying
|
|
604
|
+
// `node_id`, which is how every other daemon-observed broker event
|
|
605
|
+
// (broker.wedge.detected, broker.yield_stall.*) is recorded and how a
|
|
606
|
+
// node-scoped log query finds it. The node's own job/log.jsonl is the
|
|
607
|
+
// BROKER's stream — the reader rejects any non-broker-component line there
|
|
608
|
+
// (events/read.ts descriptorMatches) — so the daemon must not write into
|
|
609
|
+
// it. A process already bound to this node's broker source (in-process
|
|
610
|
+
// revive) naturally lands there instead.
|
|
611
|
+
const launchedAt = Date.now();
|
|
612
|
+
const exited = new Promise((resolve) => {
|
|
613
|
+
let settled = false;
|
|
614
|
+
const finish = (state) => {
|
|
615
|
+
if (settled)
|
|
616
|
+
return;
|
|
617
|
+
settled = true;
|
|
618
|
+
resolve(state);
|
|
619
|
+
};
|
|
620
|
+
spawned.once('exit', (code, signal) => {
|
|
621
|
+
emitEvent({
|
|
622
|
+
level: code === 0 ? 'info' : 'warn',
|
|
623
|
+
event: 'broker.exited',
|
|
624
|
+
node_id: nodeId,
|
|
625
|
+
fields: { code, signal, uptime_ms: Date.now() - launchedAt },
|
|
626
|
+
});
|
|
627
|
+
finish({ code, signal });
|
|
628
|
+
});
|
|
629
|
+
spawned.once('error', (error) => {
|
|
630
|
+
emitEvent({
|
|
631
|
+
level: 'error',
|
|
632
|
+
event: 'broker.launch.failed',
|
|
633
|
+
node_id: nodeId,
|
|
634
|
+
error,
|
|
635
|
+
fields: { uptime_ms: Date.now() - launchedAt },
|
|
636
|
+
});
|
|
637
|
+
finish({ code: null, signal: null });
|
|
638
|
+
});
|
|
639
|
+
});
|
|
640
|
+
spawned.unref();
|
|
641
|
+
const handle = { pid: spawned.pid ?? null, exited };
|
|
642
|
+
// Register the live handle synchronously — the fleet entry IS the node's
|
|
643
|
+
// liveness from here on, and its real `exit` event (never a pid probe)
|
|
644
|
+
// drives dead-node policy. A null pid (spawn itself failed) registers
|
|
645
|
+
// nothing: the `exited` promise resolves via the 'error' event and the
|
|
646
|
+
// caller's own null-pid check surfaces the failure.
|
|
647
|
+
if (handle.pid !== null) {
|
|
648
|
+
fleet.register(nodeId, handle);
|
|
649
|
+
registered = true;
|
|
650
|
+
void exited.then(async (status) => await fleet.onChildExit(nodeId, status, executionId));
|
|
651
|
+
}
|
|
652
|
+
return handle;
|
|
653
|
+
}
|
|
654
|
+
catch (error) {
|
|
655
|
+
if (!registered && child?.pid != null) {
|
|
656
|
+
try {
|
|
657
|
+
child.kill('SIGTERM');
|
|
658
|
+
}
|
|
659
|
+
catch { /* no fleet handle exists to tear down */ }
|
|
660
|
+
}
|
|
661
|
+
throw error;
|
|
662
|
+
}
|
|
663
|
+
finally {
|
|
664
|
+
if (!registered)
|
|
665
|
+
fleet.releaseReservation(nodeId);
|
|
666
|
+
if (logFd !== null)
|
|
667
|
+
closeSync(logFd);
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
async isAlive(node) {
|
|
671
|
+
return isPidAlive((typeof node === 'string' ? await getNode(node) : node)?.pi_pid);
|
|
672
|
+
},
|
|
673
|
+
async teardown(nodeId, opts = {}) {
|
|
674
|
+
try {
|
|
675
|
+
return runPreparedBrokerTeardown(await prepareBrokerTeardown(nodeId, opts));
|
|
676
|
+
}
|
|
677
|
+
catch (error) {
|
|
678
|
+
return Promise.resolve({
|
|
679
|
+
confirmed: false,
|
|
680
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
681
|
+
});
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
async signal(nodeId, sig) {
|
|
685
|
+
const pid = (await getNode(nodeId))?.pi_pid;
|
|
686
|
+
if (pid != null) {
|
|
687
|
+
try {
|
|
688
|
+
process.kill(pid, sig);
|
|
689
|
+
}
|
|
690
|
+
catch {
|
|
691
|
+
/* already gone */
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
},
|
|
695
|
+
};
|