@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,653 @@
|
|
|
1
|
+
/** Documents: write, CAS edit, revisions and heads, links per revision, record fields, move,
|
|
2
|
+
* delete, history, read, and the two import paths (migration, repo sync). Every act records
|
|
3
|
+
* its actor's `acted-on` edge and watch and publishes its event in the caller's transaction. */
|
|
4
|
+
import { randomUUID } from 'node:crypto';
|
|
5
|
+
import { CrtrError, notFound, usage } from '../errors.js';
|
|
6
|
+
import { ExitCode } from '../../types.js';
|
|
7
|
+
import { get as getBody, getMany as getBodies, put as putBody } from './bodies.js';
|
|
8
|
+
import { dropUnresolved, linksOf, recordActedOn, setLinks, setUnresolved, unresolvedLinksCouldName } from './edges.js';
|
|
9
|
+
import { publish } from './events.js';
|
|
10
|
+
import { readableOrDeleted, resolveName } from './names.js';
|
|
11
|
+
import { createObject, getById } from './objects.js';
|
|
12
|
+
import { liveLookups, readerForNode, readerForObject } from './reader.js';
|
|
13
|
+
import { replaceRules, setRulesOwner } from './rules.js';
|
|
14
|
+
import { recordWatch } from './watches.js';
|
|
15
|
+
import { withCanvasWrite } from '../canvas/db.js';
|
|
16
|
+
import { PURGE_RETENTION_MS } from '../storage/purge.js';
|
|
17
|
+
import { filterAsync, forEachAsync, mapAsync } from '../async-array.js';
|
|
18
|
+
import { check, resolveReader, userOf } from '../permissions/evaluator.js';
|
|
19
|
+
import { missingMemoryScope } from '../permissions/ceiling.js';
|
|
20
|
+
import { deleteFact, parseSubject, writeActsFor, writeFact } from '../permissions/facts.js';
|
|
21
|
+
import { PermissionError } from '../permissions/errors.js';
|
|
22
|
+
// ── shared helpers ─────────────────────────────────────────────────────────
|
|
23
|
+
/** The object a reader acts as: its node, its app, or the person. */
|
|
24
|
+
export function actorOf(reader) {
|
|
25
|
+
return reader.class === 'node' ? reader.node : reader.class === 'app' ? reader.app : reader.class === 'object' ? reader.object : reader.person;
|
|
26
|
+
}
|
|
27
|
+
async function actingOf(db, reader) {
|
|
28
|
+
const forUser = `user:${await userOf(db, reader)}`;
|
|
29
|
+
if (reader.class === 'person')
|
|
30
|
+
return { app: null, for: forUser };
|
|
31
|
+
const identity = await db.prepare(`SELECT external_id FROM identities WHERE object = ? AND scheme = 'app'`).get(reader.app.id);
|
|
32
|
+
return { app: identity?.external_id ?? null, for: forUser };
|
|
33
|
+
}
|
|
34
|
+
function conflict(message, details) {
|
|
35
|
+
return new CrtrError('conflict', message, ExitCode.GENERAL, details);
|
|
36
|
+
}
|
|
37
|
+
function assertDocument(doc) {
|
|
38
|
+
if (doc.type !== 'document')
|
|
39
|
+
throw usage(`${doc.type} ${doc.id} is not a document`);
|
|
40
|
+
}
|
|
41
|
+
/** The type of the top of the object's owner chain (its own type when it has no owner): `repo` for anything a repo owns. */
|
|
42
|
+
async function spaceType(db, object) {
|
|
43
|
+
const top = await db.prepare(`WITH RECURSIVE chain(id, owner, type, depth) AS (
|
|
44
|
+
SELECT id, owner, type, 0 FROM objects WHERE id = ?
|
|
45
|
+
UNION ALL
|
|
46
|
+
SELECT o.id, o.owner, o.type, c.depth + 1 FROM objects o JOIN chain c ON o.id = c.owner WHERE c.depth < 12
|
|
47
|
+
) SELECT type FROM chain ORDER BY depth DESC LIMIT 1`).get(object.id);
|
|
48
|
+
return top?.type ?? object.type;
|
|
49
|
+
}
|
|
50
|
+
/** PUBLIC: a repo owns only public documents. */
|
|
51
|
+
async function assertPublicInRepo(db, owner, privacy) {
|
|
52
|
+
if (privacy !== 'public' && await spaceType(db, owner) === 'repo') {
|
|
53
|
+
throw usage(`a repo owns only public documents; ${owner.name} cannot own a ${privacy} one`, { rule: 'repo-public-only', next: 'Write it as public, or give it another owner (your own documents can carry `if: {repo: <handle>}`).' });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function assertNameFree(db, owner, name, except) {
|
|
57
|
+
if (name.trim() === '' || name !== name.trim())
|
|
58
|
+
throw usage(`invalid document name ${JSON.stringify(name)}`);
|
|
59
|
+
const held = await db.prepare(`SELECT id FROM objects WHERE (type = 'document' OR strpos(type, '.') > 0) AND owner = ? AND name = ? AND deleted_at IS NULL AND home_machine IS NULL`)
|
|
60
|
+
.get(owner.id, name);
|
|
61
|
+
if (held && held.id !== except?.id)
|
|
62
|
+
throw conflict(`${owner.name} already has a document named ${name}`, { name, holder: held.id });
|
|
63
|
+
}
|
|
64
|
+
async function readable(db, reader, doc) {
|
|
65
|
+
if (!await check(db, reader, 'read', doc.id))
|
|
66
|
+
throw notFound(`no document ${doc.id}`);
|
|
67
|
+
}
|
|
68
|
+
function scopeMissing(scope) {
|
|
69
|
+
return new CrtrError('scope_missing', `missing scope ${scope}`, ExitCode.GENERAL, { scope });
|
|
70
|
+
}
|
|
71
|
+
async function changeable(db, reader, doc) {
|
|
72
|
+
await readable(db, reader, doc);
|
|
73
|
+
const { source_path } = await documentRecord(db, doc);
|
|
74
|
+
if (source_path !== null) {
|
|
75
|
+
throw new CrtrError('forbidden', `${doc.name} is a built-in document shipped by a package; \`crtr doc\` cannot change it`, ExitCode.GENERAL, {
|
|
76
|
+
id: doc.id,
|
|
77
|
+
next: 'Edit it in the source repository of the package that ships it (for crtr\'s own documents, the crouter repo), not with `crtr doc`.',
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const missing = await missingMemoryScope(db, reader, doc.id, 'rw');
|
|
81
|
+
if (missing !== null)
|
|
82
|
+
throw scopeMissing(missing);
|
|
83
|
+
if (!await check(db, reader, 'edit', doc.id))
|
|
84
|
+
throw new CrtrError('forbidden', `you cannot change ${doc.name}`, ExitCode.GENERAL, { id: doc.id });
|
|
85
|
+
}
|
|
86
|
+
async function toRevision(db, raw) {
|
|
87
|
+
const parents = await db.prepare(`SELECT p.rev_id FROM revision_parents rp JOIN revisions p ON p.rev_id = rp.parent
|
|
88
|
+
WHERE rp.child = ? ORDER BY p.rev_id`).all(raw.rev_id);
|
|
89
|
+
return {
|
|
90
|
+
rev_id: raw.rev_id, seq: raw.seq, number: raw.number, body_hash: raw.body_hash,
|
|
91
|
+
author: raw.author,
|
|
92
|
+
rationale: raw.rationale, verbatim: raw.verbatim === 1, created_at: raw.created_at,
|
|
93
|
+
acting_app: raw.acting_app, acting_for: raw.acting_for, parents: parents.map((p) => p.rev_id),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/** Head revisions (no child), highest number first. More than one means the document needs a merge. */
|
|
97
|
+
export async function heads(db, doc) {
|
|
98
|
+
const raws = await db.prepare(`SELECT * FROM revisions r WHERE r.document = ?
|
|
99
|
+
AND NOT EXISTS (SELECT 1 FROM revision_parents p WHERE p.parent = r.rev_id) ORDER BY r.number DESC, r.rev_id`).all(doc.id);
|
|
100
|
+
return (await mapAsync(raws, async (r) => await toRevision(db, r)));
|
|
101
|
+
}
|
|
102
|
+
function headsKeyOf(revs) {
|
|
103
|
+
return revs.map((r) => r.rev_id).sort().join(',');
|
|
104
|
+
}
|
|
105
|
+
export async function documentRecord(db, doc) {
|
|
106
|
+
const row = await db.prepare('SELECT * FROM documents WHERE object = ?').get(doc.id);
|
|
107
|
+
if (!row)
|
|
108
|
+
throw notFound(`no document record for ${doc.id}`);
|
|
109
|
+
return {
|
|
110
|
+
summary: row['summary'], heads_key: row['heads_key'], revision: row['revision'],
|
|
111
|
+
why_it_exists: row['why_it_exists'], unlisted: row['unlisted'] === 1,
|
|
112
|
+
lint_ignore: row['lint_ignore_json'] === null ? null : JSON.parse(row['lint_ignore_json']),
|
|
113
|
+
extensions: row['extensions_json'] === null ? null : JSON.parse(row['extensions_json']),
|
|
114
|
+
source_path: row['source_path'],
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
async function insertRevision(db, doc, rev) {
|
|
118
|
+
const raw = await db.prepare(`INSERT INTO revisions (document, rev_id, number, body_hash, author, rationale, verbatim, created_at, acting_app, acting_for)
|
|
119
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING *`).get(doc.id, rev.rev_id ?? randomUUID(), rev.number, rev.body_hash, rev.author?.id ?? null, rev.rationale, rev.verbatim ? 1 : 0, rev.created_at ?? new Date().toISOString(), rev.acting?.app ?? null, rev.acting?.for ?? null);
|
|
120
|
+
const link = db.prepare('INSERT INTO revision_parents (child, parent) VALUES (?, ?)');
|
|
121
|
+
for (const parent of rev.parents)
|
|
122
|
+
await link.run(raw.rev_id, parent);
|
|
123
|
+
return raw;
|
|
124
|
+
}
|
|
125
|
+
/** The `[[name]]` links a body names, in order, each once. */
|
|
126
|
+
export function linksIn(body) {
|
|
127
|
+
const out = new Set();
|
|
128
|
+
for (const m of body.matchAll(/\[\[([^[\]\n]+?)\]\]/g))
|
|
129
|
+
out.add(m[1].trim());
|
|
130
|
+
return [...out];
|
|
131
|
+
}
|
|
132
|
+
/** Resolve each of `names` in `reader`'s view. A name that resolves to nothing or to several objects stays
|
|
133
|
+
* text and is returned in `unresolved`; one that may live on another runtime is neither linked nor reported. */
|
|
134
|
+
async function resolveLinks(db, reader, names) {
|
|
135
|
+
const links = [];
|
|
136
|
+
const unresolved = [];
|
|
137
|
+
for (const name of names) {
|
|
138
|
+
const hit = await resolveName(db, reader, name);
|
|
139
|
+
if ('object' in hit)
|
|
140
|
+
links.push({ written_as: name, dst: hit.object });
|
|
141
|
+
else if ('deleted' in hit)
|
|
142
|
+
links.push({ written_as: name, dst: hit.deleted });
|
|
143
|
+
else if (!('remote' in hit))
|
|
144
|
+
unresolved.push(name);
|
|
145
|
+
}
|
|
146
|
+
return { links, unresolved };
|
|
147
|
+
}
|
|
148
|
+
/** Derive the document's `links-to` edges from `body`, resolving each name in the writer's
|
|
149
|
+
* view. A name that resolves to nothing or to several objects stays text and is returned,
|
|
150
|
+
* and remembered so {@link linkNewlyNamed} can link it when a document by that name appears;
|
|
151
|
+
* one that may live on another runtime is neither linked nor reported. */
|
|
152
|
+
export async function setRevisionLinks(db, reader, doc, body) {
|
|
153
|
+
const { links, unresolved } = await resolveLinks(db, reader, linksIn(body));
|
|
154
|
+
await collectUnlinked(db, await setLinks(db, doc, links));
|
|
155
|
+
await setUnresolved(db, doc, unresolved);
|
|
156
|
+
return unresolved;
|
|
157
|
+
}
|
|
158
|
+
/** `target` has just come into existence or gained a name. Every live document whose current revision holds an
|
|
159
|
+
* unresolved link that could name it re-resolves that link in its OWNER's view (not the caller's); the link gains its
|
|
160
|
+
* edge only when the name now resolves to `target`. A name that is still partial, ambiguous or resolves elsewhere stays unresolved. */
|
|
161
|
+
async function linkNewlyNamed(db, target, reposFn) {
|
|
162
|
+
const bySource = new Map();
|
|
163
|
+
for (const { src, name } of await unresolvedLinksCouldName(db, target.name, target.id))
|
|
164
|
+
bySource.set(src, [...bySource.get(src) ?? [], name]);
|
|
165
|
+
for (const [srcId, names] of bySource) {
|
|
166
|
+
const src = await getById(db, srcId);
|
|
167
|
+
const owner = src?.owner == null ? null : await getById(db, src.owner);
|
|
168
|
+
if (!src || src.deleted_at || src.home_machine !== null || !owner || owner.deleted_at)
|
|
169
|
+
continue;
|
|
170
|
+
const view = owner.type === 'node'
|
|
171
|
+
? await readerForNode(db, owner.id, reposFn ?? (async () => []), liveLookups(db), true)
|
|
172
|
+
: await readerForObject(db, src, reposFn);
|
|
173
|
+
const gained = (await resolveLinks(db, view, names)).links.filter((l) => l.dst.id === target.id);
|
|
174
|
+
if (gained.length === 0)
|
|
175
|
+
continue;
|
|
176
|
+
await setLinks(db, src, [...await linksOf(db, src), ...gained]);
|
|
177
|
+
await dropUnresolved(db, src, gained.map((l) => l.written_as));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/** The handle a link names `owner` by: a node's id, the owner's handle, or
|
|
181
|
+
* `<type>:<handle>` when another owner type sharing that handle also holds a
|
|
182
|
+
* live document named `name`, so the plain form would be ambiguous. */
|
|
183
|
+
async function ownerPrefix(db, owner, name) {
|
|
184
|
+
if (owner.type === 'node')
|
|
185
|
+
return owner.id;
|
|
186
|
+
const shared = await db.prepare(`SELECT 1 FROM objects o JOIN objects d ON d.owner = o.id
|
|
187
|
+
WHERE o.name = ? AND o.type <> ? AND o.type IN ('person','app','repo','profile')
|
|
188
|
+
AND d.type = 'document' AND d.name = ? AND d.deleted_at IS NULL LIMIT 1`).get(owner.name, owner.type, name);
|
|
189
|
+
return shared ? `${owner.type}:${owner.name}` : owner.name;
|
|
190
|
+
}
|
|
191
|
+
/** `body` with each `[[link]]` the document's `links-to` edges resolved shown under its target's
|
|
192
|
+
* current name, so a rename rewrites no stored body yet every read shows the new name (spec §4).
|
|
193
|
+
* A link written as the target's id, or to a deleted target, stays as written. */
|
|
194
|
+
export async function withCurrentNames(db, doc, body) {
|
|
195
|
+
const rows = await db.prepare(`SELECT e.written_as, o.* FROM edges e JOIN objects o ON o.id = e.dst
|
|
196
|
+
WHERE e.type = 'links-to' AND e.src = ? AND e.written_as IS NOT NULL`).all(doc.id);
|
|
197
|
+
if (rows.length === 0)
|
|
198
|
+
return body;
|
|
199
|
+
const current = new Map();
|
|
200
|
+
for (const target of rows) {
|
|
201
|
+
if (target.deleted_at || target.written_as === target.id)
|
|
202
|
+
continue;
|
|
203
|
+
const bare = !target.written_as.includes('/');
|
|
204
|
+
if (bare && target.name === target.written_as)
|
|
205
|
+
continue;
|
|
206
|
+
const owner = target.owner === null ? null : await getById(db, target.owner);
|
|
207
|
+
const full = owner ? `${await ownerPrefix(db, owner, target.name)}/${target.name}` : target.name;
|
|
208
|
+
const name = bare && target.owner === doc.owner ? target.name : full;
|
|
209
|
+
if (name !== target.written_as)
|
|
210
|
+
current.set(target.written_as, name);
|
|
211
|
+
}
|
|
212
|
+
if (current.size === 0)
|
|
213
|
+
return body;
|
|
214
|
+
return body.replace(/\[\[([^[\]\n]+?)\]\]/g, (whole, inner) => {
|
|
215
|
+
const name = current.get(inner.trim());
|
|
216
|
+
return name === undefined ? whole : `[[${name}]]`;
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
/** Write the record fields that are present; `null` clears a nullable one. Rules are
|
|
220
|
+
* replaced when given. Does not publish; callers publish the act the fields belong to. */
|
|
221
|
+
export async function applyDocumentFields(db, doc, fields) {
|
|
222
|
+
if (fields.preview !== undefined) {
|
|
223
|
+
if (fields.preview.trim() === '')
|
|
224
|
+
throw usage('a document needs a preview', { field: 'preview' });
|
|
225
|
+
await db.prepare('UPDATE objects SET preview = ? WHERE id = ?').run(fields.preview, doc.id);
|
|
226
|
+
}
|
|
227
|
+
if (fields.privacy !== undefined) {
|
|
228
|
+
await assertPublicInRepo(db, (await getById(db, doc.owner)), fields.privacy);
|
|
229
|
+
await db.prepare('UPDATE objects SET privacy = ? WHERE id = ?').run(fields.privacy, doc.id);
|
|
230
|
+
}
|
|
231
|
+
const set = async (column, value) => await db.prepareUncached(`UPDATE documents SET ${column} = ? WHERE object = ?`).run(value, doc.id);
|
|
232
|
+
if (fields.summary !== undefined)
|
|
233
|
+
await set('summary', fields.summary);
|
|
234
|
+
if (fields.whyItExists !== undefined)
|
|
235
|
+
await set('why_it_exists', fields.whyItExists);
|
|
236
|
+
if (fields.unlisted !== undefined)
|
|
237
|
+
await set('unlisted', fields.unlisted ? 1 : 0);
|
|
238
|
+
if (fields.lintIgnore !== undefined)
|
|
239
|
+
await set('lint_ignore_json', fields.lintIgnore === null ? null : JSON.stringify(fields.lintIgnore));
|
|
240
|
+
if (fields.extensions !== undefined)
|
|
241
|
+
await set('extensions_json', fields.extensions === null ? null : JSON.stringify(fields.extensions));
|
|
242
|
+
const current = (await getById(db, doc.id));
|
|
243
|
+
if (fields.rules !== undefined)
|
|
244
|
+
await replaceRules(db, current, fields.rules);
|
|
245
|
+
return current;
|
|
246
|
+
}
|
|
247
|
+
async function createDocument(db, spec, reposFn, writtenBy = 'crtr') {
|
|
248
|
+
if (spec.owner.deleted_at)
|
|
249
|
+
throw usage(`${spec.owner.name} is deleted`);
|
|
250
|
+
if (spec.relations?.length && spec.schemaType === undefined) {
|
|
251
|
+
throw new PermissionError(400, 'schema_type_required', 'relations need a schemaType: they are facts about a typed resource', { field: 'relations' });
|
|
252
|
+
}
|
|
253
|
+
if (spec.preview.trim() === '')
|
|
254
|
+
throw usage('a document needs a preview', { field: 'preview' });
|
|
255
|
+
await assertPublicInRepo(db, spec.owner, spec.privacy);
|
|
256
|
+
await assertNameFree(db, spec.owner, spec.name);
|
|
257
|
+
const doc = await createObject(db, {
|
|
258
|
+
...(spec.id ? { id: spec.id } : {}), type: 'document', kind: spec.kind, owner: spec.owner.id,
|
|
259
|
+
privacy: spec.privacy, name: spec.name, preview: spec.preview, ...(spec.schemaType !== undefined ? { schema_type: spec.schemaType } : {}),
|
|
260
|
+
});
|
|
261
|
+
for (const { relation, subject } of spec.relations ?? []) {
|
|
262
|
+
await writeFact(db, { resourceType: spec.schemaType, resourceId: doc.id, relation, subject: parseSubject(subject), writtenBy });
|
|
263
|
+
}
|
|
264
|
+
await db.prepare(`INSERT INTO documents (object, heads_key, revision) VALUES (?, '', 0)`).run(doc.id);
|
|
265
|
+
const created = await applyDocumentFields(db, doc, { ...spec, preview: undefined, privacy: undefined, rules: spec.rules ?? [] });
|
|
266
|
+
await linkNewlyNamed(db, created, reposFn);
|
|
267
|
+
return created;
|
|
268
|
+
}
|
|
269
|
+
async function setHeads(db, doc) {
|
|
270
|
+
const current = await heads(db, doc);
|
|
271
|
+
const heads_key = headsKeyOf(current);
|
|
272
|
+
const revision = Math.max(0, ...current.map((h) => h.number));
|
|
273
|
+
await db.prepare('UPDATE documents SET heads_key = ?, revision = ? WHERE object = ?').run(heads_key, revision, doc.id);
|
|
274
|
+
return { heads_key, revision, headCount: current.length };
|
|
275
|
+
}
|
|
276
|
+
// ── write and edit ─────────────────────────────────────────────────────────
|
|
277
|
+
/** Create a document with its first revision. The actor becomes a watcher whose read base is
|
|
278
|
+
* the new revision; `created` is published. Returns the names that stayed text. */
|
|
279
|
+
export async function writeDocument(db, reader, spec, body, reposFn) {
|
|
280
|
+
return await withCanvasWrite(async () => {
|
|
281
|
+
const hash = await putBody(db, body);
|
|
282
|
+
const actor = actorOf(reader);
|
|
283
|
+
const missing = await missingMemoryScope(db, reader, spec.owner.id, 'rw', true);
|
|
284
|
+
if (missing !== null)
|
|
285
|
+
throw scopeMissing(missing);
|
|
286
|
+
const acting = await actingOf(db, reader);
|
|
287
|
+
const doc = await createDocument(db, spec, reposFn, acting.app ?? acting.for);
|
|
288
|
+
// A document made directly under an app is kept for the person the call acts for; a schema-typed one is read through its app's schema instead.
|
|
289
|
+
if (spec.owner.type === 'app' && spec.schemaType === undefined)
|
|
290
|
+
await writeActsFor(db, doc.id, await userOf(db, reader));
|
|
291
|
+
const rev = await insertRevision(db, doc, { number: 1, body_hash: hash, author: actor, rationale: null, parents: [], acting });
|
|
292
|
+
// After the first revision, so the ceiling's first-revision author rule sees this caller; a refusal rolls the savepoint back.
|
|
293
|
+
if (!await check(db, reader, 'edit', doc.id))
|
|
294
|
+
throw notFound(`no owner ${spec.owner.name} you can write to`);
|
|
295
|
+
const { heads_key } = await setHeads(db, doc);
|
|
296
|
+
const unresolved = await setRevisionLinks(db, reader, doc, body);
|
|
297
|
+
await recordActedOn(db, actor, doc);
|
|
298
|
+
await recordWatch(db, actor, doc, 'write', { readHeadsKey: heads_key });
|
|
299
|
+
await publish(db, { event: 'created', object: doc, actor, attrs: { revision: 1 }, pointer: rev.rev_id }, reposFn);
|
|
300
|
+
return { object: doc, revision: 1, unresolved };
|
|
301
|
+
}, { savepoint: true });
|
|
302
|
+
}
|
|
303
|
+
/** The base of the reader's next edit: the heads it last read or wrote, or null when it never has. */
|
|
304
|
+
export async function readBase(db, reader, doc) {
|
|
305
|
+
const row = await db.prepare('SELECT read_heads_key FROM watches WHERE watcher = ? AND object = ?')
|
|
306
|
+
.get(actorOf(reader).id, doc.id);
|
|
307
|
+
return row?.read_heads_key ?? null;
|
|
308
|
+
}
|
|
309
|
+
/** Apply exact-text replacements to one head's body; each `old` must occur exactly once. */
|
|
310
|
+
export function applyReplacements(body, replace) {
|
|
311
|
+
let out = body;
|
|
312
|
+
for (const [index, { old, new: next }] of replace.entries()) {
|
|
313
|
+
if (old === '')
|
|
314
|
+
throw usage(`block ${index + 1}: a replacement needs non-empty old text`, { field: 'replace' });
|
|
315
|
+
const first = out.indexOf(old);
|
|
316
|
+
if (first < 0)
|
|
317
|
+
throw usage(`block ${index + 1}: old text not found: ${JSON.stringify(old.slice(0, 120))}`, { field: 'replace', old });
|
|
318
|
+
if (out.indexOf(old, first + 1) >= 0)
|
|
319
|
+
throw usage(`block ${index + 1}: old text occurs more than once: ${JSON.stringify(old.slice(0, 120))}`, { field: 'replace', old });
|
|
320
|
+
out = out.slice(0, first) + next + out.slice(first + old.length);
|
|
321
|
+
}
|
|
322
|
+
return out;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Commit a new revision made from `base` — the editor's read heads captured when it computed
|
|
326
|
+
* the change. No base → `read_first`. The commit is CAS on `documents.heads_key`: a base that is
|
|
327
|
+
* no longer current returns `{stale}` and writes nothing. The new revision's parents are every
|
|
328
|
+
* head, so an edit from a read that showed several heads merges them. `fields` are record
|
|
329
|
+
* changes applied with the edit.
|
|
330
|
+
*/
|
|
331
|
+
export async function editDocument(db, reader, doc, change, rationale, base, fields = {}, reposFn) {
|
|
332
|
+
assertDocument(doc);
|
|
333
|
+
await changeable(db, reader, doc);
|
|
334
|
+
if (doc.deleted_at)
|
|
335
|
+
throw usage(`${doc.name} is deleted`);
|
|
336
|
+
if (base === null) {
|
|
337
|
+
throw new CrtrError('read_first', `read ${doc.name} before editing it`, ExitCode.GENERAL, { id: doc.id });
|
|
338
|
+
}
|
|
339
|
+
if (rationale.trim() === '')
|
|
340
|
+
throw usage('an edit needs a rationale', { field: 'rationale' });
|
|
341
|
+
const before = await documentRecord(db, doc);
|
|
342
|
+
if (before.heads_key !== base)
|
|
343
|
+
return { stale: { heads_key: before.heads_key, revision: before.revision } };
|
|
344
|
+
const current = await heads(db, doc);
|
|
345
|
+
let body;
|
|
346
|
+
if ('body' in change)
|
|
347
|
+
body = change.body;
|
|
348
|
+
else {
|
|
349
|
+
if (current.length !== 1)
|
|
350
|
+
throw usage(`${doc.name} has ${current.length} heads and needs a merge; pass the whole merged body`, { heads: current.length });
|
|
351
|
+
// Replacements apply to the text as read, which shows links under their current names.
|
|
352
|
+
body = applyReplacements(await withCurrentNames(db, doc, await getBody(db, current[0].body_hash)), change.replace);
|
|
353
|
+
}
|
|
354
|
+
try {
|
|
355
|
+
return await withCanvasWrite(async () => {
|
|
356
|
+
const hash = await putBody(db, body);
|
|
357
|
+
const actor = actorOf(reader);
|
|
358
|
+
const number = 1 + Math.max(0, ...current.map((h) => h.number));
|
|
359
|
+
const rev = await insertRevision(db, doc, {
|
|
360
|
+
number, body_hash: hash, author: actor, rationale, verbatim: change.verbatim === true, parents: current.map((h) => h.rev_id),
|
|
361
|
+
acting: await actingOf(db, reader),
|
|
362
|
+
});
|
|
363
|
+
const heads_key = rev.rev_id;
|
|
364
|
+
const cas = await db.prepare('UPDATE documents SET heads_key = ?, revision = ? WHERE object = ? AND heads_key = ?')
|
|
365
|
+
.run(heads_key, number, doc.id, base);
|
|
366
|
+
if (Number(cas.changes) === 0) {
|
|
367
|
+
const now = await documentRecord(db, doc);
|
|
368
|
+
throw new StaleEdit(now.heads_key, now.revision);
|
|
369
|
+
}
|
|
370
|
+
const updated = await applyDocumentFields(db, doc, fields);
|
|
371
|
+
const unresolved = await setRevisionLinks(db, reader, updated, body);
|
|
372
|
+
await recordActedOn(db, actor, updated);
|
|
373
|
+
await recordWatch(db, actor, updated, 'write', { readHeadsKey: heads_key });
|
|
374
|
+
await publish(db, {
|
|
375
|
+
event: 'edited', object: updated, actor, pointer: rev.rev_id,
|
|
376
|
+
attrs: { revision: number, from_revision: before.revision, rationale },
|
|
377
|
+
}, reposFn);
|
|
378
|
+
return { revision: number, heads_key, unresolved };
|
|
379
|
+
}, { savepoint: true });
|
|
380
|
+
}
|
|
381
|
+
catch (error) {
|
|
382
|
+
if (error instanceof StaleEdit)
|
|
383
|
+
return { stale: { heads_key: error.heads_key, revision: error.revision } };
|
|
384
|
+
throw error;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
/** Lost CAS race inside the savepoint; rolled back and reported as `{stale}`. */
|
|
388
|
+
class StaleEdit extends Error {
|
|
389
|
+
heads_key;
|
|
390
|
+
revision;
|
|
391
|
+
constructor(heads_key, revision) {
|
|
392
|
+
super('stale');
|
|
393
|
+
this.heads_key = heads_key;
|
|
394
|
+
this.revision = revision;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
/** Change record fields (preview, summary, privacy, rules, …). A null reader is repo sync, which carries no reader, checks no access and
|
|
398
|
+
* records no history. Any other caller's change is recorded as a revision with the current body, so `history` attributes it (author,
|
|
399
|
+
* `acting_app`, `acting_for`) with the rationale. It descends from the highest head only, so a document that needs a merge still does. A caller
|
|
400
|
+
* that held the heads before keeps holding them; one that had not read the body does not gain a read base it never earned. */
|
|
401
|
+
export async function setDocumentRecord(db, reader, doc, fields, rationale) {
|
|
402
|
+
assertDocument(doc);
|
|
403
|
+
if (reader) {
|
|
404
|
+
await changeable(db, reader, doc);
|
|
405
|
+
if (rationale === undefined || rationale.trim() === '')
|
|
406
|
+
throw usage('an edit needs a rationale', { field: 'rationale' });
|
|
407
|
+
}
|
|
408
|
+
return await withCanvasWrite(async () => {
|
|
409
|
+
const updated = await applyDocumentFields(db, doc, fields);
|
|
410
|
+
if (reader) {
|
|
411
|
+
const actor = actorOf(reader);
|
|
412
|
+
const before = await documentRecord(db, doc);
|
|
413
|
+
const base = await readBase(db, reader, doc);
|
|
414
|
+
const current = await heads(db, doc);
|
|
415
|
+
const head = current[0];
|
|
416
|
+
await insertRevision(db, doc, {
|
|
417
|
+
number: 1 + Math.max(...current.map((h) => h.number)), body_hash: head.body_hash, author: actor, rationale: rationale, parents: [head.rev_id],
|
|
418
|
+
acting: await actingOf(db, reader),
|
|
419
|
+
});
|
|
420
|
+
const { heads_key } = await setHeads(db, doc);
|
|
421
|
+
await recordActedOn(db, actor, updated);
|
|
422
|
+
await recordWatch(db, actor, doc, 'write', base === before.heads_key ? { readHeadsKey: heads_key } : {});
|
|
423
|
+
}
|
|
424
|
+
return updated;
|
|
425
|
+
}, { savepoint: true });
|
|
426
|
+
}
|
|
427
|
+
// ── read and history ───────────────────────────────────────────────────────
|
|
428
|
+
/** Record that the reader holds the document's current heads: a `read` watch with that read
|
|
429
|
+
* base, and a `read` push. Delivery's content load calls this without reading the body. */
|
|
430
|
+
export async function recordRead(db, reader, doc, reposFn) {
|
|
431
|
+
const actor = actorOf(reader);
|
|
432
|
+
const { heads_key } = await documentRecord(db, doc);
|
|
433
|
+
await recordWatch(db, actor, doc, 'read', { readHeadsKey: heads_key });
|
|
434
|
+
await publish(db, { event: 'read', object: doc, actor, attrs: {} }, reposFn);
|
|
435
|
+
}
|
|
436
|
+
/** The document's record, each head with its body (several = needs merge) and its links under
|
|
437
|
+
* their current names; records the read. */
|
|
438
|
+
export async function readDocument(db, reader, doc, reposFn) {
|
|
439
|
+
assertDocument(doc);
|
|
440
|
+
await readable(db, reader, doc);
|
|
441
|
+
return await withCanvasWrite(async () => {
|
|
442
|
+
const record = await documentRecord(db, doc);
|
|
443
|
+
const headRows = await heads(db, doc);
|
|
444
|
+
const texts = await getBodies(db, headRows.map((h) => h.body_hash));
|
|
445
|
+
const current = await mapAsync(headRows, async (h) => ({ ...h, body: await withCurrentNames(db, doc, texts.get(h.body_hash)) }));
|
|
446
|
+
const read = await readableOrDeleted(db, await resolveReader(db, reader), 'o');
|
|
447
|
+
const linked = await db.prepareUncached(`SELECT e.written_as AS _written_as, o.* FROM edges e JOIN objects o ON o.id = e.dst
|
|
448
|
+
WHERE e.type = 'links-to' AND e.src = ? AND (${read.sql}) ORDER BY e.written_as`).all(doc.id, ...read.params);
|
|
449
|
+
const links = linked.map(({ _written_as, ...object }) => ({ written_as: _written_as ?? '', object: object, deleted: object.deleted_at !== null }));
|
|
450
|
+
if (!doc.deleted_at)
|
|
451
|
+
await recordRead(db, reader, doc, reposFn);
|
|
452
|
+
return { object: doc, record, heads: current, needsMerge: current.length > 1, links };
|
|
453
|
+
}, { savepoint: true });
|
|
454
|
+
}
|
|
455
|
+
/** Every revision, newest first, with authors, rationales and parents. Records nothing. */
|
|
456
|
+
export async function history(db, reader, doc) {
|
|
457
|
+
assertDocument(doc);
|
|
458
|
+
await readable(db, reader, doc);
|
|
459
|
+
const raws = await db.prepare('SELECT * FROM revisions WHERE document = ? ORDER BY number DESC, created_at DESC, seq DESC')
|
|
460
|
+
.all(doc.id);
|
|
461
|
+
return (await mapAsync(raws, async (r) => await toRevision(db, r)));
|
|
462
|
+
}
|
|
463
|
+
// ── move and delete ────────────────────────────────────────────────────────
|
|
464
|
+
/** Rename and/or re-own a document. Only `objects` changes: links point at the id, so no body is
|
|
465
|
+
* rewritten. A null actor is repo sync, which carries no reader and checks no access. */
|
|
466
|
+
export async function moveDocument(db, reader, doc, to, reposFn) {
|
|
467
|
+
assertDocument(doc);
|
|
468
|
+
if (doc.deleted_at)
|
|
469
|
+
throw usage(`${doc.name} is deleted`);
|
|
470
|
+
if (reader)
|
|
471
|
+
await changeable(db, reader, doc);
|
|
472
|
+
return await withCanvasWrite(async () => {
|
|
473
|
+
const owner = to.owner ?? (await getById(db, doc.owner));
|
|
474
|
+
const name = to.name ?? doc.name;
|
|
475
|
+
await assertNameFree(db, owner, name, doc);
|
|
476
|
+
await assertPublicInRepo(db, owner, doc.privacy);
|
|
477
|
+
await db.prepare('UPDATE objects SET name = ?, owner = ? WHERE id = ?').run(name, owner.id, doc.id);
|
|
478
|
+
const moved = (await getById(db, doc.id));
|
|
479
|
+
if (owner.id !== doc.owner) {
|
|
480
|
+
await setRulesOwner(db, moved);
|
|
481
|
+
if (reader && !await check(db, reader, 'edit', moved.id))
|
|
482
|
+
throw notFound(`no owner ${owner.name} you can move documents to`);
|
|
483
|
+
}
|
|
484
|
+
if (reader)
|
|
485
|
+
await recordActedOn(db, actorOf(reader), moved);
|
|
486
|
+
if (name !== doc.name || owner.id !== doc.owner)
|
|
487
|
+
await linkNewlyNamed(db, moved, reposFn);
|
|
488
|
+
return moved;
|
|
489
|
+
}, { savepoint: true });
|
|
490
|
+
}
|
|
491
|
+
/** Mark the document deleted; the row stays with its last preview. Publishes `deleted`
|
|
492
|
+
* (level 8), then ends the watches on it and drops its rules. A null actor is repo sync or
|
|
493
|
+
* node deletion; `deletedAt` is the tombstone's own time when sync imports one. What it linked to is re-checked by {@link collectUnlinked}. */
|
|
494
|
+
export async function deleteDocument(db, reader, doc, reposFn, deletedAt) {
|
|
495
|
+
assertDocument(doc);
|
|
496
|
+
if (doc.deleted_at)
|
|
497
|
+
return doc;
|
|
498
|
+
if (reader)
|
|
499
|
+
await changeable(db, reader, doc);
|
|
500
|
+
return await withCanvasWrite(async () => {
|
|
501
|
+
const deleted = await markDeleted(db, reader, doc, reposFn, deletedAt);
|
|
502
|
+
await deleteFactsOf(db, doc);
|
|
503
|
+
await collectUnlinked(db, await linkTargets(db, doc.id), reposFn);
|
|
504
|
+
return deleted;
|
|
505
|
+
}, { savepoint: true });
|
|
506
|
+
}
|
|
507
|
+
/** Remove every fact about a typed document — it as the resource, and it as a subject (`subject_type = schema_type`) — through facts.ts, the only writer of `relations`. */
|
|
508
|
+
async function deleteFactsOf(db, doc) {
|
|
509
|
+
if (doc.schema_type == null)
|
|
510
|
+
return;
|
|
511
|
+
const rows = await db.prepare(`SELECT resource_type, resource_id, relation, subject_type, subject_id, subject_relation FROM relations
|
|
512
|
+
WHERE (resource_type = ? AND resource_id = ?) OR (subject_type = ? AND subject_id = ?)`)
|
|
513
|
+
.all(doc.schema_type, doc.id, doc.schema_type, doc.id);
|
|
514
|
+
for (const r of rows) {
|
|
515
|
+
await deleteFact(db, { resourceType: r.resource_type, resourceId: r.resource_id, relation: r.relation, subject: { type: r.subject_type, id: r.subject_id, relation: r.subject_relation } });
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
/** Repo sync: bring a deleted document back under `name` (checked free first). Revisions, record
|
|
519
|
+
* and links are untouched; the watches and rules deletion dropped are not recreated here. */
|
|
520
|
+
export async function restoreDocument(db, doc, name, reposFn) {
|
|
521
|
+
assertDocument(doc);
|
|
522
|
+
if (!doc.deleted_at)
|
|
523
|
+
return doc;
|
|
524
|
+
return await withCanvasWrite(async () => {
|
|
525
|
+
await assertNameFree(db, (await getById(db, doc.owner)), name, doc);
|
|
526
|
+
await db.prepare('UPDATE objects SET deleted_at = NULL, name = ? WHERE id = ?').run(name, doc.id);
|
|
527
|
+
const restored = (await getById(db, doc.id));
|
|
528
|
+
await linkNewlyNamed(db, restored, reposFn);
|
|
529
|
+
return restored;
|
|
530
|
+
}, { savepoint: true });
|
|
531
|
+
}
|
|
532
|
+
/** The owner's undelete: bring a deleted document back under its own name inside the 30-day window (past it the purge pass may take the
|
|
533
|
+
* row). Its owner must be live. Revisions, record and links are untouched; the rules, watches and facts deletion dropped are not
|
|
534
|
+
* recreated (as {@link restoreDocument}). */
|
|
535
|
+
export async function undeleteDocument(db, reader, doc, now = Date.now()) {
|
|
536
|
+
assertDocument(doc);
|
|
537
|
+
if (!doc.deleted_at)
|
|
538
|
+
return doc;
|
|
539
|
+
if (Date.parse(doc.deleted_at) < now - PURGE_RETENTION_MS)
|
|
540
|
+
throw usage(`${doc.name} was deleted over 30 days ago and can no longer be undeleted`, { id: doc.id, deleted_at: doc.deleted_at });
|
|
541
|
+
const owner = doc.owner === null ? null : await getById(db, doc.owner);
|
|
542
|
+
if (owner === null || owner.deleted_at)
|
|
543
|
+
throw usage(`${doc.name} cannot be undeleted while its owner is deleted`, { id: doc.id });
|
|
544
|
+
// The permission check refuses a deleted document, so the reader's right to change it is checked once it is back, inside a savepoint that undoes the restore on refusal.
|
|
545
|
+
return await withCanvasWrite(async () => {
|
|
546
|
+
const restored = await restoreDocument(db, doc, doc.name);
|
|
547
|
+
if (reader)
|
|
548
|
+
await changeable(db, reader, restored);
|
|
549
|
+
return restored;
|
|
550
|
+
}, { savepoint: true });
|
|
551
|
+
}
|
|
552
|
+
async function markDeleted(db, reader, doc, reposFn, deletedAt) {
|
|
553
|
+
await db.prepare('UPDATE objects SET deleted_at = ? WHERE id = ?').run(deletedAt ?? new Date().toISOString(), doc.id);
|
|
554
|
+
const deleted = (await getById(db, doc.id));
|
|
555
|
+
const actor = reader ? actorOf(reader) : null;
|
|
556
|
+
if (actor)
|
|
557
|
+
await recordActedOn(db, actor, deleted);
|
|
558
|
+
await publish(db, { event: 'deleted', object: deleted, actor, attrs: {} }, reposFn);
|
|
559
|
+
await db.prepare('DELETE FROM watches WHERE object = ?').run(doc.id);
|
|
560
|
+
await replaceRules(db, deleted, []);
|
|
561
|
+
return deleted;
|
|
562
|
+
}
|
|
563
|
+
async function linkTargets(db, src) {
|
|
564
|
+
return (await db.prepare(`SELECT dst FROM edges WHERE type = 'links-to' AND src = ?`).all(src))
|
|
565
|
+
.map(({ dst }) => dst);
|
|
566
|
+
}
|
|
567
|
+
/** Delete each of `targets` that is a kept document nothing links to any more: a live document
|
|
568
|
+
* whose owner is deleted (node deletion kept it because a live document linked to it) and that
|
|
569
|
+
* no other live document links to. Each one deleted re-checks what it linked to, so chains of
|
|
570
|
+
* kept documents collapse; a cycle of kept documents keeps itself. Call it after a document
|
|
571
|
+
* stops linking to `targets` — it was deleted, or an edit dropped the links. */
|
|
572
|
+
export async function collectUnlinked(db, targets, reposFn) {
|
|
573
|
+
const unlinkedKept = db.prepare(`SELECT 1 FROM objects d JOIN objects w ON w.id = d.owner
|
|
574
|
+
WHERE d.id = ? AND d.type = 'document' AND d.deleted_at IS NULL AND w.deleted_at IS NOT NULL
|
|
575
|
+
AND NOT EXISTS (SELECT 1 FROM edges e JOIN objects s ON s.id = e.src
|
|
576
|
+
WHERE e.type = 'links-to' AND e.dst = d.id AND e.src != d.id AND s.deleted_at IS NULL)`);
|
|
577
|
+
const queue = [...targets];
|
|
578
|
+
while (queue.length > 0) {
|
|
579
|
+
const id = queue.pop();
|
|
580
|
+
if (await unlinkedKept.get(id) === undefined)
|
|
581
|
+
continue;
|
|
582
|
+
await markDeleted(db, null, (await getById(db, id)), reposFn);
|
|
583
|
+
queue.push(...await linkTargets(db, id));
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
/** Migration: a document with its linear history (oldest first; bodies already in the body
|
|
587
|
+
* store). Explicit authors and times; records no edge or watch and publishes nothing — the
|
|
588
|
+
* caller adds links (`setRevisionLinks`), acted-on edges and watches. */
|
|
589
|
+
export async function importDocument(db, spec, reposFn) {
|
|
590
|
+
if (spec.revisions.length === 0)
|
|
591
|
+
throw usage(`import of ${spec.name}: no revisions`);
|
|
592
|
+
return await withCanvasWrite(async () => {
|
|
593
|
+
const doc = await createDocument(db, spec, reposFn);
|
|
594
|
+
await db.prepare('UPDATE objects SET created_at = ? WHERE id = ?').run(spec.revisions[0].created_at, doc.id);
|
|
595
|
+
let parent = null;
|
|
596
|
+
(await forEachAsync(spec.revisions, async (rev, i) => {
|
|
597
|
+
parent = (await insertRevision(db, doc, { ...rev, number: i + 1, parents: parent === null ? [] : [parent] })).rev_id;
|
|
598
|
+
}));
|
|
599
|
+
await setHeads(db, doc);
|
|
600
|
+
return (await getById(db, doc.id));
|
|
601
|
+
}, { savepoint: true });
|
|
602
|
+
}
|
|
603
|
+
/** Repo sync: add revisions that arrived from another runtime, skipping known `rev_id`s. No
|
|
604
|
+
* CAS, author NULL, publishes nothing; the caller publishes `edited` (with `needs_merge`
|
|
605
|
+
* when `headCount > 1`) and re-derives links from the head it trusts. */
|
|
606
|
+
export async function insertImportedRevisions(db, doc, revs) {
|
|
607
|
+
assertDocument(doc);
|
|
608
|
+
if (doc.privacy !== 'public' && await spaceType(db, doc) === 'repo')
|
|
609
|
+
throw usage(`a repo owns only public documents; refusing revisions of ${doc.name}`);
|
|
610
|
+
return await withCanvasWrite(async () => {
|
|
611
|
+
const revisionOf = db.prepare('SELECT rev_id, number, document, body_hash FROM revisions WHERE rev_id = ?');
|
|
612
|
+
const parentsOf = db.prepare('SELECT parent FROM revision_parents WHERE child = ?');
|
|
613
|
+
// A known revision id is skipped only when it is the same revision: the same document, canonical body hash and parents. Anything else is an id collision.
|
|
614
|
+
let pending = (await filterAsync(revs, async (r) => {
|
|
615
|
+
const held = await revisionOf.get(r.rev_id);
|
|
616
|
+
if (held === undefined)
|
|
617
|
+
return true;
|
|
618
|
+
const heldParents = (await parentsOf.all(r.rev_id)).map((p) => p.parent).sort().join(',');
|
|
619
|
+
if (held.document !== doc.id || held.body_hash !== r.body_hash || heldParents !== [...r.parents].sort().join(',')) {
|
|
620
|
+
throw usage(`revision ${r.rev_id} already exists with different content (document, body hash or parents); refusing to overwrite it`);
|
|
621
|
+
}
|
|
622
|
+
return false;
|
|
623
|
+
}));
|
|
624
|
+
while (pending.length > 0) {
|
|
625
|
+
const next = [];
|
|
626
|
+
for (const rev of pending) {
|
|
627
|
+
const parents = (await mapAsync(rev.parents, async (p) => await revisionOf.get(p)));
|
|
628
|
+
if (parents.some((p) => p === undefined)) {
|
|
629
|
+
next.push(rev);
|
|
630
|
+
continue;
|
|
631
|
+
}
|
|
632
|
+
const known = parents;
|
|
633
|
+
if (known.some((p) => p.document !== doc.id))
|
|
634
|
+
throw usage(`revision ${rev.rev_id} names a parent of another document`);
|
|
635
|
+
await insertRevision(db, doc, {
|
|
636
|
+
...rev, author: null, number: 1 + Math.max(0, ...known.map((p) => p.number)), parents: known.map((p) => p.rev_id),
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
if (next.length === pending.length)
|
|
640
|
+
throw usage(`revisions of ${doc.name} name unknown parents: ${next.map((r) => r.rev_id).join(', ')}`);
|
|
641
|
+
pending = next;
|
|
642
|
+
}
|
|
643
|
+
const { heads_key, headCount } = await setHeads(db, doc);
|
|
644
|
+
return { heads_key, headCount };
|
|
645
|
+
}, { savepoint: true });
|
|
646
|
+
}
|
|
647
|
+
/** Look up a live document by id (convenience for handlers and importers). */
|
|
648
|
+
export async function documentById(db, id) {
|
|
649
|
+
const doc = await getById(db, id);
|
|
650
|
+
if (!doc || doc.type !== 'document')
|
|
651
|
+
throw notFound(`no document ${id}`);
|
|
652
|
+
return doc;
|
|
653
|
+
}
|