@north-light/crouter 0.3.318 → 0.3.319
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/README.md +0 -3
- package/dist/api/client.js +2 -912
- package/dist/api/dto/attach.js +0 -13
- package/dist/api/dto/bash-jobs.js +1 -9
- package/dist/api/dto/broker-ops.js +0 -6
- package/dist/api/dto/broker.js +0 -20
- package/dist/api/dto/canvas.js +0 -2
- package/dist/api/dto/chat-inventory.js +0 -11
- package/dist/api/dto/common.js +1 -15
- package/dist/api/dto/config.js +0 -3
- package/dist/api/dto/crons.js +1 -10
- package/dist/api/dto/files.js +0 -7
- package/dist/api/dto/focus.js +0 -10
- package/dist/api/dto/health.js +0 -2
- package/dist/api/dto/human-requests.js +0 -4
- package/dist/api/dto/human.js +0 -4
- package/dist/api/dto/inbox.js +0 -4
- package/dist/api/dto/lifecycle.js +0 -3
- package/dist/api/dto/mail.js +0 -1
- package/dist/api/dto/memory.js +0 -6
- package/dist/api/dto/messages.js +0 -2
- package/dist/api/dto/model-config.js +0 -1
- package/dist/api/dto/modelauth.js +0 -4
- package/dist/api/dto/node-outcomes.js +0 -2
- package/dist/api/dto/nodes.js +0 -3
- package/dist/api/dto/profiles.js +1 -4
- package/dist/api/dto/recovery.js +0 -1
- package/dist/api/dto/reports.js +0 -2
- package/dist/api/dto/review-comments.js +0 -5
- package/dist/api/dto/reviews.js +0 -5
- package/dist/api/dto/subscriptions.js +0 -2
- package/dist/api/dto/worktree.js +0 -6
- package/dist/api/errors.js +1 -40
- package/dist/api/index.js +1 -33
- package/dist/api/plugin-manifest-schema.js +0 -23
- package/dist/api/routes.js +1 -147
- package/dist/build-root.js +1 -198
- package/dist/cli.js +3 -99
- package/dist/clients/attach/ansi-cells.js +1 -137
- package/dist/clients/attach/chrome/bash-jobs.js +1 -31
- package/dist/clients/attach/chrome/canvas-panels.js +1 -194
- package/dist/clients/attach/chrome/completion-bell.js +1 -89
- package/dist/clients/attach/chrome/cron-wait.js +1 -34
- package/dist/clients/attach/chrome/git-info.js +2 -44
- package/dist/clients/attach/chrome/header.js +1 -30
- package/dist/clients/attach/chrome/inbox-strip.js +1 -199
- package/dist/clients/attach/chrome/recap.js +1 -19
- package/dist/clients/attach/chrome/review-wait.js +1 -22
- package/dist/clients/attach/chrome/roster.js +4 -275
- package/dist/clients/attach/chrome/status-line.js +1 -117
- package/dist/clients/attach/chrome/ticket-panel.js +1 -280
- package/dist/clients/attach/chrome/widgets.js +1 -51
- package/dist/clients/attach/command.js +1 -107
- package/dist/clients/attach/config.js +1 -274
- package/dist/clients/attach/input/capabilities.js +1 -104
- package/dist/clients/attach/input/clipboard-image.js +3 -220
- package/dist/clients/attach/input/completion-frecency.js +1 -141
- package/dist/clients/attach/input/controller.js +7 -377
- package/dist/clients/attach/input/overlay-owner.js +1 -199
- package/dist/clients/attach/input/ref-autocomplete.js +2 -176
- package/dist/clients/attach/input/titled-editor.js +4 -859
- package/dist/clients/attach/overlays/auth.js +2 -271
- package/dist/clients/attach/overlays/dialogs.js +2 -102
- package/dist/clients/attach/overlays/file-review.js +2 -128
- package/dist/clients/attach/overlays/graph.js +1 -661
- package/dist/clients/attach/overlays/help.js +1 -211
- package/dist/clients/attach/overlays/mcp.js +1 -302
- package/dist/clients/attach/overlays/pickers.js +1 -163
- package/dist/clients/attach/render/activity-slot.js +1 -13
- package/dist/clients/attach/render/assistant-message.js +1 -56
- package/dist/clients/attach/render/card-presentation.js +5 -218
- package/dist/clients/attach/render/chat-view.js +5 -1708
- package/dist/clients/attach/render/condensed-history.js +1 -60
- package/dist/clients/attach/render/context-message.js +1 -63
- package/dist/clients/attach/render/crtr-output.js +17 -905
- package/dist/clients/attach/render/diagram.js +7 -111
- package/dist/clients/attach/render/edit-diff.js +5 -304
- package/dist/clients/attach/render/glyph-codepoints.js +1 -42
- package/dist/clients/attach/render/group-activity.js +2 -263
- package/dist/clients/attach/render/group-recap.js +1 -152
- package/dist/clients/attach/render/markdown-source.js +5 -266
- package/dist/clients/attach/render/measured-container.js +1 -322
- package/dist/clients/attach/render/page-block.js +1 -183
- package/dist/clients/attach/render/scroll-animation.js +1 -80
- package/dist/clients/attach/render/tool-calls.js +3 -361
- package/dist/clients/attach/render/transcript-copy.js +2 -81
- package/dist/clients/attach/render/transcript-search.js +1 -152
- package/dist/clients/attach/render/viewport.js +1 -184
- package/dist/clients/attach/session/banner.js +1 -29
- package/dist/clients/attach/session/bindings.js +1 -71
- package/dist/clients/attach/session/chrome-refresh.js +1 -94
- package/dist/clients/attach/session/connection.js +1 -186
- package/dist/clients/attach/session/context.js +0 -16
- package/dist/clients/attach/session/editor-frame.js +1 -142
- package/dist/clients/attach/session/editor-inventory.js +6 -160
- package/dist/clients/attach/session/file-links.js +1 -68
- package/dist/clients/attach/session/focus-events.js +1 -12
- package/dist/clients/attach/session/frame.js +1 -214
- package/dist/clients/attach/session/frames.js +1 -188
- package/dist/clients/attach/session/identity.js +1 -26
- package/dist/clients/attach/session/input-wiring.js +1 -140
- package/dist/clients/attach/session/invariant.js +1 -15
- package/dist/clients/attach/session/keys.js +1 -77
- package/dist/clients/attach/session/layout.js +1 -59
- package/dist/clients/attach/session/mouse.js +1 -78
- package/dist/clients/attach/session/pane-focus.js +1 -42
- package/dist/clients/attach/session/pane-tag.js +1 -112
- package/dist/clients/attach/session/pi-assets.js +1 -24
- package/dist/clients/attach/session/pi-oauth-flows.js +1 -21
- package/dist/clients/attach/session/profile-files.js +1 -228
- package/dist/clients/attach/session/reconnect.js +1 -175
- package/dist/clients/attach/session/selection.js +3 -108
- package/dist/clients/attach/session/state-sync.js +1 -67
- package/dist/clients/attach/session/surface-frame.js +1 -73
- package/dist/clients/attach/session/surface-host.js +1 -255
- package/dist/clients/attach/session/teardown.js +5 -94
- package/dist/clients/attach/session/transcript-search.js +3 -151
- package/dist/clients/attach/session/whip-achievements.js +2 -145
- package/dist/clients/attach/session/whip.js +1 -362
- package/dist/clients/attach/slash/dispatch.js +1 -706
- package/dist/clients/attach/slash/prompt-preview.js +1 -121
- package/dist/clients/attach/viewer.js +441 -441
- package/dist/clients/conversation/projection.js +1 -324
- package/dist/clients/conversation/submit.js +1 -51
- package/dist/clients/inbox/controller.js +1 -701
- package/dist/clients/inbox/dto-adapt.js +1 -93
- package/dist/clients/inbox/layout.js +1 -9
- package/dist/clients/inbox/page-adapter.js +1 -55
- package/dist/clients/inbox/resolve.js +1 -35
- package/dist/clients/inbox/review/anchors.js +1 -89
- package/dist/clients/inbox/review/comments-client.js +1 -98
- package/dist/clients/inbox/review/companion-pane.js +1 -82
- package/dist/clients/inbox/review/document-surface.js +2 -1188
- package/dist/clients/inbox/review/frame.js +1 -216
- package/dist/clients/inbox/review/keys.js +1 -123
- package/dist/clients/inbox/review/launch.js +1 -151
- package/dist/clients/inbox/review/live-source.js +1 -160
- package/dist/clients/inbox/review/nvim.js +1 -44
- package/dist/clients/inbox/review/remap.js +1 -157
- package/dist/clients/inbox/review/review-client.js +1 -123
- package/dist/clients/inbox/review/roundtrip.js +3 -36
- package/dist/clients/inbox/review/state.js +4 -315
- package/dist/clients/inbox/review-adapter.js +1 -43
- package/dist/clients/inbox/surface.js +1 -152
- package/dist/clients/inbox/tui/ansi.js +3 -321
- package/dist/clients/inbox/tui/input.js +5 -392
- package/dist/clients/inbox/tui/keys.js +1 -104
- package/dist/clients/inbox/tui/page-body.js +1 -66
- package/dist/clients/inbox/tui/panel.js +1 -84
- package/dist/clients/inbox/tui/render.js +2 -368
- package/dist/clients/inbox/tui/slots.js +3 -134
- package/dist/clients/inbox/tui/types.js +0 -1
- package/dist/clients/inbox/tui.js +1 -86
- package/dist/clients/surfaces/host.js +0 -1
- package/dist/commands/api-client.js +4 -290
- package/dist/commands/attention.js +1 -215
- package/dist/commands/canvas-browse.js +1 -70
- package/dist/commands/canvas-config.js +2 -192
- package/dist/commands/canvas-history/grep.js +7 -85
- package/dist/commands/canvas-history/read.js +3 -50
- package/dist/commands/canvas-history/search.js +10 -99
- package/dist/commands/canvas-history/shared.js +1 -139
- package/dist/commands/canvas-history/stats.js +6 -68
- package/dist/commands/canvas-history.js +1 -32
- package/dist/commands/canvas-issue.js +14 -149
- package/dist/commands/canvas-prune.js +1 -108
- package/dist/commands/canvas-roster.js +1 -69
- package/dist/commands/canvas-snapshot.js +1 -34
- package/dist/commands/canvas-use.js +1 -61
- package/dist/commands/canvas.js +1 -49
- package/dist/commands/chord.js +1 -241
- package/dist/commands/cron.js +11 -534
- package/dist/commands/dashboard.js +1 -85
- package/dist/commands/human/components.js +3 -77
- package/dist/commands/human/feedback.js +1 -112
- package/dist/commands/human/prompts.js +1 -331
- package/dist/commands/human/queue.js +1 -191
- package/dist/commands/human/request.js +1 -266
- package/dist/commands/human/review.js +1 -288
- package/dist/commands/human/shared.js +1 -67
- package/dist/commands/human.js +4 -60
- package/dist/commands/memory/delete.js +1 -100
- package/dist/commands/memory/edit.js +21 -219
- package/dist/commands/memory/find.js +2 -244
- package/dist/commands/memory/history.js +5 -199
- package/dist/commands/memory/lint.js +1 -107
- package/dist/commands/memory/list.js +1 -142
- package/dist/commands/memory/move.js +1 -223
- package/dist/commands/memory/origin.js +1 -130
- package/dist/commands/memory/read.js +6 -232
- package/dist/commands/memory/shared.js +12 -802
- package/dist/commands/memory/write.js +13 -235
- package/dist/commands/memory.js +1 -30
- package/dist/commands/node/bash.js +5 -245
- package/dist/commands/node/create.js +3 -332
- package/dist/commands/node/inspect.js +12 -300
- package/dist/commands/node/lifecycle.js +2 -453
- package/dist/commands/node/message.js +1 -161
- package/dist/commands/node/outcome.js +4 -134
- package/dist/commands/node/pyramid.js +2 -79
- package/dist/commands/node/subscription.js +1 -78
- package/dist/commands/node/wait.js +7 -163
- package/dist/commands/node-context.js +2 -159
- package/dist/commands/node-inspect-artifacts.js +8 -109
- package/dist/commands/node-lifecycle-revive.js +1 -217
- package/dist/commands/node-snapshot.js +1 -37
- package/dist/commands/node-transcript.js +1 -62
- package/dist/commands/node-worktree.js +1 -138
- package/dist/commands/node.js +1 -29
- package/dist/commands/pkg/browse/actions.js +1 -198
- package/dist/commands/pkg/browse/catalog.js +1 -466
- package/dist/commands/pkg/browse/command-view.js +1 -191
- package/dist/commands/pkg/browse/detail-panel.js +1 -402
- package/dist/commands/pkg/browse/doc-view.js +1 -89
- package/dist/commands/pkg/browse/list-panel.js +2 -168
- package/dist/commands/pkg/browse/model.js +1 -36
- package/dist/commands/pkg/browse/shell.js +1 -640
- package/dist/commands/pkg/browse.js +1 -27
- package/dist/commands/pkg/market-inspect.js +1 -141
- package/dist/commands/pkg/market-manage.js +1 -327
- package/dist/commands/pkg/market.js +1 -14
- package/dist/commands/pkg/plugin-inspect.js +1 -168
- package/dist/commands/pkg/plugin-manage.js +17 -1109
- package/dist/commands/pkg/plugin.js +1 -14
- package/dist/commands/pkg/shared.js +1 -62
- package/dist/commands/pkg.js +1 -21
- package/dist/commands/profile/default.js +1 -139
- package/dist/commands/profile/delete.js +1 -66
- package/dist/commands/profile/env.js +3 -188
- package/dist/commands/profile/kind.js +2 -35
- package/dist/commands/profile/list.js +1 -43
- package/dist/commands/profile/meta.js +1 -67
- package/dist/commands/profile/new.js +1 -115
- package/dist/commands/profile/pause.js +1 -59
- package/dist/commands/profile/project.js +1 -113
- package/dist/commands/profile/rename.js +1 -38
- package/dist/commands/profile/show.js +1 -52
- package/dist/commands/profile.js +1 -35
- package/dist/commands/push.js +9 -265
- package/dist/commands/revive.js +10 -181
- package/dist/commands/surface/node/cycle.js +1 -83
- package/dist/commands/surface/node/focus.js +1 -81
- package/dist/commands/surface/node/id.js +1 -38
- package/dist/commands/surface/node/pin.js +1 -42
- package/dist/commands/surface/node/placement.js +1 -134
- package/dist/commands/surface-edit.js +1 -157
- package/dist/commands/surface-inbox.js +1 -98
- package/dist/commands/surface-inspect.js +1 -39
- package/dist/commands/surface-node.js +1 -19
- package/dist/commands/surface-reload.js +2 -134
- package/dist/commands/surface-tmux-spread.js +1 -214
- package/dist/commands/surface.js +1 -28
- package/dist/commands/sys/branch.js +1 -19
- package/dist/commands/sys/config.js +1 -353
- package/dist/commands/sys/context/admin/actions.js +2 -246
- package/dist/commands/sys/context/admin/detail-panel.js +1 -247
- package/dist/commands/sys/context/admin/docs-panel.js +1 -191
- package/dist/commands/sys/context/admin/list-view.js +1 -183
- package/dist/commands/sys/context/admin/model.js +1 -229
- package/dist/commands/sys/context/admin/rail-panel.js +1 -227
- package/dist/commands/sys/context/admin/read-view.js +2 -194
- package/dist/commands/sys/context/admin/shell.js +1 -910
- package/dist/commands/sys/context/admin.js +2 -126
- package/dist/commands/sys/context/doc.js +3 -197
- package/dist/commands/sys/context/prompt-review.js +11 -291
- package/dist/commands/sys/context/resolve.js +10 -489
- package/dist/commands/sys/context/sysprompt.js +5 -96
- package/dist/commands/sys/context.js +1 -20
- package/dist/commands/sys/daemon.js +1 -313
- package/dist/commands/sys/doctor.js +1 -617
- package/dist/commands/sys/feedback.js +7 -228
- package/dist/commands/sys/logs.js +3 -129
- package/dist/commands/sys/migrate.js +1 -94
- package/dist/commands/sys/panels/broker-limits-panel.js +2 -110
- package/dist/commands/sys/panels/dependencies-panel.js +1 -80
- package/dist/commands/sys/panels/keybindings-panel.js +1 -703
- package/dist/commands/sys/panels/models-panel.js +1 -1133
- package/dist/commands/sys/panels/plugins-panel.js +1 -80
- package/dist/commands/sys/panels/prefs-panel.js +1 -85
- package/dist/commands/sys/panels/profiles-panel.js +1 -601
- package/dist/commands/sys/panels/provider-panel.js +1 -538
- package/dist/commands/sys/settings-shell.js +1 -400
- package/dist/commands/sys/settings.js +1 -46
- package/dist/commands/sys/setup-core.js +6 -579
- package/dist/commands/sys/setup-settings-runner.js +1 -16
- package/dist/commands/sys/setup-wizard.js +1 -279
- package/dist/commands/sys/setup.js +1 -34
- package/dist/commands/sys/shared.js +1 -81
- package/dist/commands/sys/support/prepare.js +3 -239
- package/dist/commands/sys/support/submit.js +6 -524
- package/dist/commands/sys/support.js +1 -18
- package/dist/commands/sys/sync-deps.js +15 -498
- package/dist/commands/sys/sync-project-guidance.js +4 -481
- package/dist/commands/sys/sync-shared.js +1 -49
- package/dist/commands/sys/sync-skills.js +2 -311
- package/dist/commands/sys/sync.js +1 -18
- package/dist/commands/sys/update.js +1 -147
- package/dist/commands/sys/worktrees.js +5 -53
- package/dist/commands/sys.js +1 -18
- package/dist/core/activity-signal.js +2 -38
- package/dist/core/asset-root.js +1 -18
- package/dist/core/auth-file.js +2 -179
- package/dist/core/auth-interaction.js +3 -94
- package/dist/core/auto-update.js +4 -94
- package/dist/core/bash-guard.js +11 -393
- package/dist/core/bash-jobs.js +7 -411
- package/dist/core/bootstrap.js +2 -53
- package/dist/core/broker-client/client.js +1 -184
- package/dist/core/broker-client/index.js +1 -13
- package/dist/core/broker-client/transport-relay.js +1 -157
- package/dist/core/broker-client/transport-socket.js +1 -179
- package/dist/core/broker-client/transport.js +1 -26
- package/dist/core/canvas/attention.js +1 -47
- package/dist/core/canvas/boot-id.js +1 -26
- package/dist/core/canvas/boot.js +1 -186
- package/dist/core/canvas/browse/app.js +3 -919
- package/dist/core/canvas/browse/model.js +1 -477
- package/dist/core/canvas/browse/pins.js +1 -29
- package/dist/core/canvas/browse/render.js +3 -1055
- package/dist/core/canvas/canvas.js +15 -922
- package/dist/core/canvas/crons.js +11 -481
- package/dist/core/canvas/daemon-owner.js +2 -146
- package/dist/core/canvas/db.js +2 -100
- package/dist/core/canvas/deliveries.js +22 -283
- package/dist/core/canvas/delivery-contract.js +1 -8
- package/dist/core/canvas/executions.js +1 -68
- package/dist/core/canvas/extensions.js +1 -83
- package/dist/core/canvas/focuses.js +1 -77
- package/dist/core/canvas/history.js +24 -860
- package/dist/core/canvas/index.js +1 -15
- package/dist/core/canvas/install-id.js +1 -84
- package/dist/core/canvas/labels.js +1 -43
- package/dist/core/canvas/meta-file.js +1 -89
- package/dist/core/canvas/migrations.js +41 -1150
- package/dist/core/canvas/nav-model.js +1 -231
- package/dist/core/canvas/nav-render.js +1 -260
- package/dist/core/canvas/node-order.js +1 -37
- package/dist/core/canvas/node-recap.js +2 -67
- package/dist/core/canvas/node-sql-migration.js +2 -209
- package/dist/core/canvas/paths.js +1 -153
- package/dist/core/canvas/pid.js +4 -683
- package/dist/core/canvas/recovery.js +3 -565
- package/dist/core/canvas/remote-canvas-source.js +1 -288
- package/dist/core/canvas/remote-transport.js +1 -57
- package/dist/core/canvas/render-source.js +10 -635
- package/dist/core/canvas/sessions.js +1 -78
- package/dist/core/canvas/source.js +1 -47
- package/dist/core/canvas/status-glyph.js +1 -132
- package/dist/core/canvas/telemetry.js +1 -35
- package/dist/core/canvas/types.js +1 -6
- package/dist/core/canvas/waits.js +4 -68
- package/dist/core/canvas/worktrees.js +1 -93
- package/dist/core/clipboard-text.js +1 -57
- package/dist/core/command-hooks/artifact.js +1 -145
- package/dist/core/command-hooks/catalog.js +1 -38
- package/dist/core/command-hooks/compose.js +1 -99
- package/dist/core/command-hooks/discovery.js +1 -228
- package/dist/core/command-hooks/help.js +1 -18
- package/dist/core/command-hooks/index.js +1 -7
- package/dist/core/command-hooks/lifecycle-catalog.js +1 -9
- package/dist/core/command-hooks/lifecycle-create.js +1 -51
- package/dist/core/command-hooks/report.js +1 -28
- package/dist/core/command-hooks/schema.js +1 -157
- package/dist/core/command-hooks/transport/exec-invoke.js +1 -276
- package/dist/core/command-hooks/transport/exec-lifecycle.js +1 -211
- package/dist/core/command-manifests/manifest.js +1 -324
- package/dist/core/command-manifests/registry.js +1 -118
- package/dist/core/command-manifests/schema.js +1 -736
- package/dist/core/command-plugins/bundle.js +1 -261
- package/dist/core/command-plugins/compose.js +1 -65
- package/dist/core/command-plugins/discovery.js +1 -245
- package/dist/core/command-plugins/endpoint.js +1 -48
- package/dist/core/command-plugins/extensions.js +1 -166
- package/dist/core/command-plugins/help-addenda.js +1 -44
- package/dist/core/command-plugins/presence.js +1 -17
- package/dist/core/command-plugins/revalidate.js +2 -152
- package/dist/core/command-plugins/transport/exec-invoke.js +1 -215
- package/dist/core/command-plugins/transport/http-fetch.js +1 -68
- package/dist/core/command-plugins/transport/http-invoke.js +3 -546
- package/dist/core/command.js +10 -739
- package/dist/core/config.js +1 -1059
- package/dist/core/document-lines.js +3 -6
- package/dist/core/env-name.js +1 -9
- package/dist/core/errors.js +1 -52
- package/dist/core/events/emit.js +1 -17
- package/dist/core/events/envelope.js +1 -84
- package/dist/core/events/errors.js +1 -69
- package/dist/core/events/index.js +1 -4
- package/dist/core/events/operation-id.js +1 -24
- package/dist/core/events/read.js +1 -623
- package/dist/core/events/serialize.js +1 -199
- package/dist/core/events/source.js +1 -31
- package/dist/core/events/types.js +1 -11
- package/dist/core/exclusive-lock.js +1 -197
- package/dist/core/fault-classifier.js +1 -96
- package/dist/core/feed/feed.js +7 -202
- package/dist/core/feed/inbox-migrate.js +3 -135
- package/dist/core/feed/inbox.js +10 -122
- package/dist/core/feed/messages.js +6 -212
- package/dist/core/frontmatter.js +1 -35
- package/dist/core/fs-utils.js +3 -202
- package/dist/core/git.js +2 -103
- package/dist/core/help.js +9 -310
- package/dist/core/host-exports/builtins.js +9 -68
- package/dist/core/host-exports/export.js +3 -124
- package/dist/core/human/action-binding.js +1 -40
- package/dist/core/human/answer-text.js +5 -100
- package/dist/core/human/answer.js +1 -119
- package/dist/core/human/claim.js +3 -67
- package/dist/core/human/completion.js +1 -27
- package/dist/core/human/component-docs.js +78 -272
- package/dist/core/human/convention.js +2 -82
- package/dist/core/human/feedback-companion.js +1 -106
- package/dist/core/human/feedback.js +1 -88
- package/dist/core/human/page-authoring.js +1 -19
- package/dist/core/human/page-catalog.js +1 -172
- package/dist/core/human/page-errors.js +1 -7
- package/dist/core/human/page-eval.js +1 -125
- package/dist/core/human/page-html-markdown.js +8 -260
- package/dist/core/human/page-markdown.js +17 -295
- package/dist/core/human/page-schema.js +1 -373
- package/dist/core/human/page-synth.js +8 -27
- package/dist/core/human/page.js +1 -198
- package/dist/core/human/requests.js +15 -466
- package/dist/core/human/review-schema.js +1 -34
- package/dist/core/human/root.js +1 -11
- package/dist/core/human/scan.js +1 -69
- package/dist/core/human/summary.js +1 -5
- package/dist/core/human/tickets.js +1 -171
- package/dist/core/human/types.js +0 -1
- package/dist/core/human/visible-paths.js +1 -77
- package/dist/core/human-actions.js +1 -101
- package/dist/core/inspector/chrome.js +1 -14
- package/dist/core/inspector/contract.js +0 -1
- package/dist/core/inspector/core.js +2 -295
- package/dist/core/inspector/host.js +4 -538
- package/dist/core/inspector/model.js +2 -226
- package/dist/core/inspector/text.js +6 -45
- package/dist/core/inspector/transport.js +1 -36
- package/dist/core/inspector/tui.js +2 -295
- package/dist/core/installed-plugins.js +1 -78
- package/dist/core/io.js +7 -356
- package/dist/core/keybindings/attach-control.js +1 -42
- package/dist/core/keybindings/background-bash.js +1 -33
- package/dist/core/keybindings/catalog.js +1 -256
- package/dist/core/keybindings/inbox.js +1 -25
- package/dist/core/keybindings/index.js +1 -7
- package/dist/core/keybindings/match.js +1 -127
- package/dist/core/keybindings/persistence.js +1 -49
- package/dist/core/keybindings/resolve.js +1 -348
- package/dist/core/keybindings/types.js +0 -1
- package/dist/core/locked-file.js +1 -118
- package/dist/core/log.js +3 -27
- package/dist/core/manifest-recovery.js +1 -72
- package/dist/core/manifest-stale.js +1 -39
- package/dist/core/manifest.js +1 -20
- package/dist/core/memory/doc-link-grammar.js +2 -109
- package/dist/core/memory/extensions.js +1 -221
- package/dist/core/memory/history.js +6 -268
- package/dist/core/memory/identity.js +1 -181
- package/dist/core/memory/inline-ref-grammar.js +1 -98
- package/dist/core/memory/inline-ref-guidance.js +2 -35
- package/dist/core/memory/inline-ref-inventory.js +1 -59
- package/dist/core/memory/lint.js +2 -671
- package/dist/core/memory/project-namespace.js +2 -85
- package/dist/core/memory/repository-association.js +1 -129
- package/dist/core/memory/tree.js +1 -93
- package/dist/core/memory-resolver.js +2 -611
- package/dist/core/model-config.js +1 -107
- package/dist/core/model-routes.js +1 -201
- package/dist/core/nested-stores.js +2 -166
- package/dist/core/output.js +7 -99
- package/dist/core/pagination.js +1 -88
- package/dist/core/plugin-swap-lock.js +1 -31
- package/dist/core/pool-credential-store.js +1 -116
- package/dist/core/predicate.js +1 -191
- package/dist/core/preview-registry.js +2 -411
- package/dist/core/preview-result-path.js +1 -26
- package/dist/core/profiles/default-binding.js +1 -24
- package/dist/core/profiles/deletion-reservation.js +1 -42
- package/dist/core/profiles/env-store.js +2 -162
- package/dist/core/profiles/fuzzy-match.js +1 -92
- package/dist/core/profiles/manifest.js +1 -574
- package/dist/core/profiles/select.js +35 -741
- package/dist/core/profiles/state-block.js +3 -17
- package/dist/core/provider-error-recognition.js +1 -74
- package/dist/core/provider-failure.js +1 -86
- package/dist/core/provider-management.js +1 -22
- package/dist/core/remote-canvas-target.js +1 -30
- package/dist/core/render.js +18 -138
- package/dist/core/resolver.js +1 -111
- package/dist/core/review/birth.js +1 -52
- package/dist/core/review/comments.js +5 -279
- package/dist/core/review/companion.js +1 -215
- package/dist/core/review/document.js +2 -138
- package/dist/core/review/project.js +1 -36
- package/dist/core/review/realize.js +1 -71
- package/dist/core/review/remap.js +4 -141
- package/dist/core/review/signal.js +1 -12
- package/dist/core/review/stage.js +1 -184
- package/dist/core/review/store.js +1 -168
- package/dist/core/review/types.js +1 -23
- package/dist/core/runtime/advertised-command-invocation.js +1 -233
- package/dist/core/runtime/auth-reload.js +1 -67
- package/dist/core/runtime/banner.js +1 -51
- package/dist/core/runtime/bearings-render.js +18 -250
- package/dist/core/runtime/bearings.js +7 -194
- package/dist/core/runtime/bin-contributions.js +2 -186
- package/dist/core/runtime/boot-root.js +1 -107
- package/dist/core/runtime/branded-host.js +2 -264
- package/dist/core/runtime/broker/auth-reload.js +1 -157
- package/dist/core/runtime/broker/client-registry.js +1 -179
- package/dist/core/runtime/broker/daemon-ops.js +1 -88
- package/dist/core/runtime/broker/engine-drive.js +1 -354
- package/dist/core/runtime/broker/engine-routing.js +1 -211
- package/dist/core/runtime/broker/event-projection.js +1 -193
- package/dist/core/runtime/broker/extension-abort.js +1 -36
- package/dist/core/runtime/broker/fault-retry.js +1 -588
- package/dist/core/runtime/broker/frame-client.js +1 -132
- package/dist/core/runtime/broker/frame-dispatch.js +1 -183
- package/dist/core/runtime/broker/frame-engine-control.js +1 -231
- package/dist/core/runtime/broker/frame-memory-refs.js +1 -41
- package/dist/core/runtime/broker/frame-model-query.js +1 -69
- package/dist/core/runtime/broker/frame-read.js +1 -116
- package/dist/core/runtime/broker/frame-replies.js +1 -64
- package/dist/core/runtime/broker/frame-session.js +4 -203
- package/dist/core/runtime/broker/held-deferred-inbox.js +1 -13
- package/dist/core/runtime/broker/inbox.js +13 -163
- package/dist/core/runtime/broker/node-named.js +1 -27
- package/dist/core/runtime/broker/read-ops.js +1 -171
- package/dist/core/runtime/broker/rebind.js +1 -318
- package/dist/core/runtime/broker/tool-groups.js +1 -246
- package/dist/core/runtime/broker/turn-admission.js +1 -31
- package/dist/core/runtime/broker/turn-ignition.js +1 -84
- package/dist/core/runtime/broker-cli.js +3 -81
- package/dist/core/runtime/broker-extension-render.js +5 -135
- package/dist/core/runtime/broker-inventory.js +1 -116
- package/dist/core/runtime/broker-persona-guidance.js +4 -154
- package/dist/core/runtime/broker-protocol.js +3 -152
- package/dist/core/runtime/broker-request.js +1 -85
- package/dist/core/runtime/broker-sdk.js +1 -129
- package/dist/core/runtime/broker.js +1 -1214
- package/dist/core/runtime/canvas-extensions.js +1 -96
- package/dist/core/runtime/chat-inventory-rows.js +1 -105
- package/dist/core/runtime/close.js +1 -265
- package/dist/core/runtime/command-expansion.js +9 -104
- package/dist/core/runtime/command-surface.js +1 -117
- package/dist/core/runtime/connectivity.js +1 -73
- package/dist/core/runtime/deliver-live.js +1 -88
- package/dist/core/runtime/fault-recovery.js +1 -83
- package/dist/core/runtime/fault.js +1 -17
- package/dist/core/runtime/fleet.js +1 -58
- package/dist/core/runtime/front-door-env.js +1 -16
- package/dist/core/runtime/front-door.js +7 -183
- package/dist/core/runtime/headless-pi.js +1 -161
- package/dist/core/runtime/host.js +1 -457
- package/dist/core/runtime/interactive-deliver.js +1 -51
- package/dist/core/runtime/invocation.js +0 -10
- package/dist/core/runtime/kickoff.js +30 -327
- package/dist/core/runtime/launch-config-worker.js +1 -12
- package/dist/core/runtime/launch-prompt.js +4 -13
- package/dist/core/runtime/launch-target.js +1 -55
- package/dist/core/runtime/launch.js +1 -483
- package/dist/core/runtime/lifecycle.js +2 -213
- package/dist/core/runtime/managed-provider-cooling.js +1 -62
- package/dist/core/runtime/memory.js +1 -17
- package/dist/core/runtime/model-registry.js +1 -13
- package/dist/core/runtime/model-selection.js +1 -135
- package/dist/core/runtime/model-swap.js +1 -86
- package/dist/core/runtime/naming.js +14 -298
- package/dist/core/runtime/nerd-font.js +2 -127
- package/dist/core/runtime/node-read.js +2 -386
- package/dist/core/runtime/nodes.js +1 -331
- package/dist/core/runtime/outcome-document.js +1 -97
- package/dist/core/runtime/package-health.js +4 -99
- package/dist/core/runtime/persona.js +2 -55
- package/dist/core/runtime/pi-cli.js +1 -65
- package/dist/core/runtime/pi-vendored.js +1 -66
- package/dist/core/runtime/placement-tmux.js +1 -81
- package/dist/core/runtime/placement.js +1 -386
- package/dist/core/runtime/promote.js +1 -174
- package/dist/core/runtime/prospective-inventory-cli.js +3 -61
- package/dist/core/runtime/prospective-inventory.js +2 -88
- package/dist/core/runtime/recap.js +27 -103
- package/dist/core/runtime/recycle.js +1 -190
- package/dist/core/runtime/reopen.js +1 -138
- package/dist/core/runtime/reset.js +1 -245
- package/dist/core/runtime/resume-root.js +10 -290
- package/dist/core/runtime/revive-all.js +1 -107
- package/dist/core/runtime/revive.js +4 -544
- package/dist/core/runtime/roadmap.js +4 -38
- package/dist/core/runtime/session-branch.js +1 -46
- package/dist/core/runtime/session-cycles.js +1 -110
- package/dist/core/runtime/session-list-cache.js +1 -406
- package/dist/core/runtime/session-visibility.js +1 -99
- package/dist/core/runtime/shell-expansion.js +9 -100
- package/dist/core/runtime/situational-context.js +2 -67
- package/dist/core/runtime/situational-live.js +1 -41
- package/dist/core/runtime/spawn-env.js +1 -255
- package/dist/core/runtime/spawn.js +3 -577
- package/dist/core/runtime/stamp/channel.js +1 -76
- package/dist/core/runtime/stamp/protocol.js +1 -113
- package/dist/core/runtime/stop-guard.js +7 -116
- package/dist/core/runtime/stop-signals.js +1 -46
- package/dist/core/runtime/stream-watchdog.js +1 -134
- package/dist/core/runtime/structured-output.js +4 -156
- package/dist/core/runtime/surface-bg.js +1 -85
- package/dist/core/runtime/tmux-bindings.js +4 -730
- package/dist/core/runtime/tmux-chrome.js +1 -5
- package/dist/core/runtime/tmux-driver.js +7 -637
- package/dist/core/runtime/tool-group-summary.js +6 -85
- package/dist/core/runtime/turn-visibility.js +1 -31
- package/dist/core/runtime/view-socket.js +1 -83
- package/dist/core/runtime/warm-pool.js +1 -395
- package/dist/core/scope.js +1 -254
- package/dist/core/scoped-state/db.js +1 -135
- package/dist/core/scoped-state/migrate.js +3 -181
- package/dist/core/scoped-state/paths.js +1 -27
- package/dist/core/scoped-state/profiles.js +1 -62
- package/dist/core/scoped-state/providers.js +1 -8
- package/dist/core/scoped-state/schema.js +3 -16
- package/dist/core/scoped-state/settings.js +1 -82
- package/dist/core/secrets.js +2 -55
- package/dist/core/self-update.js +1 -71
- package/dist/core/session-model/session-state.js +1 -180
- package/dist/core/shell-segments.js +4 -169
- package/dist/core/spawn.js +1 -26
- package/dist/core/stdout-errors.js +1 -14
- package/dist/core/subscription-state.js +3 -193
- package/dist/core/substrate/frontmatter-validation.js +1 -105
- package/dist/core/substrate/gate-explain.js +1 -424
- package/dist/core/substrate/gate.js +1 -26
- package/dist/core/substrate/index.js +1 -30
- package/dist/core/substrate/injected-store.js +1 -249
- package/dist/core/substrate/listings.js +1 -115
- package/dist/core/substrate/on-read-node.js +1 -36
- package/dist/core/substrate/on-read.js +9 -315
- package/dist/core/substrate/plan.js +1 -266
- package/dist/core/substrate/render-node.js +1 -30
- package/dist/core/substrate/render.js +65 -689
- package/dist/core/substrate/schema.js +1 -186
- package/dist/core/substrate/session-cache.js +1 -83
- package/dist/core/substrate/subject-fields.js +1 -35
- package/dist/core/substrate/subject.js +1 -47
- package/dist/core/substrate/surface-match.js +1 -242
- package/dist/core/termrender/code-doc.js +5 -92
- package/dist/core/termrender/display.js +2 -56
- package/dist/core/termrender/termrender.js +14 -719
- package/dist/core/termrender/version.js +1 -1
- package/dist/core/timing.js +2 -94
- package/dist/core/tui/draw.js +2 -378
- package/dist/core/tui/fuzzy.js +1 -38
- package/dist/core/tui/markdown.js +3 -407
- package/dist/core/tui/page-host.js +1 -74
- package/dist/core/tui/panel.js +1 -137
- package/dist/core/tui/terminal.js +2 -100
- package/dist/core/user-settings.js +1 -454
- package/dist/core/wake.js +1 -296
- package/dist/core/worktree-close.js +6 -228
- package/dist/core/worktree-containment.js +3 -48
- package/dist/core/worktree-landing.js +4 -56
- package/dist/core/worktree-mutation-async.js +10 -280
- package/dist/core/worktree-quarantine.js +1 -54
- package/dist/core/worktree-sweep.js +6 -453
- package/dist/core/worktree.js +18 -899
- package/dist/daemon/api/bridge.js +8 -418
- package/dist/daemon/api/handlers/attach.js +1 -65
- package/dist/daemon/api/handlers/bash-jobs.js +2 -91
- package/dist/daemon/api/handlers/broker-ops.js +1 -447
- package/dist/daemon/api/handlers/broker-recovery.js +1 -251
- package/dist/daemon/api/handlers/canvas.js +6 -490
- package/dist/daemon/api/handlers/chat-inventory.js +1 -25
- package/dist/daemon/api/handlers/crons.js +1 -373
- package/dist/daemon/api/handlers/daemon.js +1 -76
- package/dist/daemon/api/handlers/feedback-comments.js +3 -199
- package/dist/daemon/api/handlers/files.js +1 -63
- package/dist/daemon/api/handlers/focus.js +1 -92
- package/dist/daemon/api/handlers/health.js +1 -76
- package/dist/daemon/api/handlers/human-requests.js +1 -379
- package/dist/daemon/api/handlers/human.js +1 -3
- package/dist/daemon/api/handlers/inbox-page.js +1 -89
- package/dist/daemon/api/handlers/inbox.js +1 -301
- package/dist/daemon/api/handlers/memory.js +1 -50
- package/dist/daemon/api/handlers/messages.js +2 -506
- package/dist/daemon/api/handlers/model-config.js +1 -44
- package/dist/daemon/api/handlers/modelauth.js +1 -165
- package/dist/daemon/api/handlers/node-outcomes.js +1 -181
- package/dist/daemon/api/handlers/nodes.js +1 -939
- package/dist/daemon/api/handlers/profiles.js +1 -140
- package/dist/daemon/api/handlers/prospective-chat-inventory.js +1 -59
- package/dist/daemon/api/handlers/reports.js +16 -332
- package/dist/daemon/api/handlers/review-comments.js +1 -465
- package/dist/daemon/api/handlers/reviews.js +1 -200
- package/dist/daemon/api/handlers/subscriptions.js +1 -53
- package/dist/daemon/api/handlers/validate.js +1 -58
- package/dist/daemon/api/handlers/worktree.js +1 -39
- package/dist/daemon/api/map.js +2 -735
- package/dist/daemon/api/router.js +1 -190
- package/dist/daemon/api/server.js +11 -408
- package/dist/daemon/boot-migrations.js +1 -31
- package/dist/daemon/companion-retire.js +1 -34
- package/dist/daemon/control.js +1 -22
- package/dist/daemon/cron/armed-context.js +1 -100
- package/dist/daemon/cron/capture.js +2 -45
- package/dist/daemon/cron/disposition.js +1 -55
- package/dist/daemon/cron/escalation.js +3 -124
- package/dist/daemon/cron/held.js +1 -20
- package/dist/daemon/cron/lease-recovery.js +1 -119
- package/dist/daemon/cron/live-runs.js +1 -23
- package/dist/daemon/cron/passes.js +1 -58
- package/dist/daemon/cron/settle.js +1 -61
- package/dist/daemon/cron/sinks.js +2 -59
- package/dist/daemon/cron-run.js +1 -405
- package/dist/daemon/crtrd-cli.js +1 -23
- package/dist/daemon/crtrd.js +8 -854
- package/dist/daemon/delivery/run-delivery.js +1 -164
- package/dist/daemon/fleet.js +17 -475
- package/dist/daemon/human/finish.js +10 -179
- package/dist/daemon/human/settle.js +1 -89
- package/dist/daemon/human/sweep.js +1 -66
- package/dist/daemon/manage.js +2 -595
- package/dist/daemon/messaging/node-message.js +1 -99
- package/dist/daemon/park-activity.js +1 -30
- package/dist/daemon/park-pending.js +1 -52
- package/dist/daemon/pidfile.js +1 -37
- package/dist/daemon/profile-delete.js +1 -306
- package/dist/daemon/reconcilers/bash-deadline.js +1 -80
- package/dist/daemon/reconcilers/broker-supervision.js +4 -761
- package/dist/daemon/reconcilers/controller-death.js +1 -14
- package/dist/daemon/reconcilers/cron-lane.js +1 -29
- package/dist/daemon/reconcilers/delivery-lane.js +1 -130
- package/dist/daemon/reconcilers/live-obligation.js +1 -87
- package/dist/daemon/reconcilers/managed-worktree-sweep.js +1 -202
- package/dist/daemon/reconcilers/node-deadline.js +1 -82
- package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +1 -172
- package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.js +1 -59
- package/dist/daemon/reconcilers/node-lifecycle/terminating.js +1 -12
- package/dist/daemon/reconcilers/node-lifecycle/tick.js +1 -146
- package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -11
- package/dist/daemon/reconcilers/pending-review-submit.js +1 -36
- package/dist/daemon/reconcilers/storage-maintenance.js +1 -207
- package/dist/daemon/review/comment-notify.js +2 -109
- package/dist/daemon/review/companion.js +1 -29
- package/dist/daemon/review/deliver.js +3 -8
- package/dist/daemon/review/finish.js +1 -122
- package/dist/daemon/review/sweep.js +1 -18
- package/dist/daemon/startup-policy.js +1 -1
- package/dist/daemon/supervise-cadence.js +1 -6
- package/dist/hook-authoring.js +5 -447
- package/dist/hook-process.js +1 -34
- package/dist/index.js +1 -52
- package/dist/migrations/001-surfaces-frontmatter.js +1 -161
- package/dist/migrations/002-profile-project-memory.js +1 -72
- package/dist/migrations/003-repository-root-memory-identity/front-door.js +11 -231
- package/dist/migrations/003-repository-root-memory-identity/index.js +5 -513
- package/dist/migrations/003-repository-root-memory-identity/references.js +5 -469
- package/dist/migrations/003-repository-root-memory-identity/repository-facts.js +3 -349
- package/dist/migrations/activation.js +2 -89
- package/dist/migrations/convergent.js +2 -82
- package/dist/migrations/corpus.js +3 -483
- package/dist/migrations/frontmatter-splice.js +8 -176
- package/dist/migrations/profile-manifests.js +2 -70
- package/dist/migrations/registry.js +1 -42
- package/dist/migrations/runner.js +1 -85
- package/dist/migrations/types.js +0 -24
- package/dist/pi-extensions/broker-local.js +2 -106
- package/dist/pi-extensions/canvas-bash-valve.js +7 -461
- package/dist/pi-extensions/canvas-context-intro.js +2 -113
- package/dist/pi-extensions/canvas-doc-substrate.js +9 -178
- package/dist/pi-extensions/canvas-goal-capture.js +1 -83
- package/dist/pi-extensions/canvas-inbox-watcher.js +1 -1010
- package/dist/pi-extensions/canvas-passive-context.js +14 -203
- package/dist/pi-extensions/canvas-preview-result.js +2 -72
- package/dist/pi-extensions/canvas-prompt-scrub.js +2 -54
- package/dist/pi-extensions/canvas-recap.js +11 -405
- package/dist/pi-extensions/canvas-review-boundary.js +3 -63
- package/dist/pi-extensions/canvas-stamp.js +2 -77
- package/dist/pi-extensions/canvas-stophook.js +1 -643
- package/dist/pi-extensions/canvas-structured-output.js +13 -35
- package/dist/pi-extensions/canvas-tool-guide.js +9 -78
- package/dist/pi-extensions/envelope-merge.js +8 -29
- package/dist/prompts/review.js +20 -42
- package/dist/shared/birth-announcement.js +1 -25
- package/dist/shared/crtr-version.js +1 -18
- package/dist/shared/env.js +1 -214
- package/dist/shared/generated-context.js +11 -226
- package/dist/shared/predicates.js +1 -4
- package/dist/shared/shell-quote.js +1 -5
- package/dist/shared/tool-groups.js +1 -64
- package/dist/shared/working-activity.js +1 -27
- package/dist/suppress-experimental-warnings.js +1 -15
- package/dist/types.js +1 -185
- package/docs/public-api.md +10 -9
- package/package.json +5 -4
- package/runtime.lock.json +5 -5
- package/dist/api/__tests__/integration/client.test.d.ts +0 -1
- package/dist/api/__tests__/integration/client.test.js +0 -163
- package/dist/builtin-pi-packages/pi-crtr-extensions/__tests__/insights-active-init.test.ts +0 -98
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/crtr-commands.test.ts +0 -93
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/integration/provider-rotation.test.ts +0 -2530
- package/dist/clients/__tests__/helpers/human-daemon.d.ts +0 -11
- package/dist/clients/__tests__/helpers/human-daemon.js +0 -60
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.js +0 -97
- package/dist/clients/attach/__tests__/bash-call-width.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/bash-call-width.test.js +0 -38
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +0 -175
- package/dist/clients/attach/__tests__/completion-frecency.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/completion-frecency.test.js +0 -35
- package/dist/clients/attach/__tests__/context-message.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/context-message.test.js +0 -130
- package/dist/clients/attach/__tests__/crtr-output.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/crtr-output.test.js +0 -68
- package/dist/clients/attach/__tests__/diagram.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/diagram.test.js +0 -42
- package/dist/clients/attach/__tests__/edit-diff.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/edit-diff.test.js +0 -31
- package/dist/clients/attach/__tests__/frame-selection.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/frame-selection.test.js +0 -84
- package/dist/clients/attach/__tests__/group-activity.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/group-activity.test.js +0 -165
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.js +0 -83
- package/dist/clients/attach/__tests__/pane-tag-successor.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/pane-tag-successor.test.js +0 -56
- package/dist/clients/attach/__tests__/profile-files.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/profile-files.test.js +0 -21
- package/dist/clients/attach/__tests__/prompt-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/prompt-preview.test.js +0 -21
- package/dist/clients/attach/__tests__/ref-autocomplete.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/ref-autocomplete.test.js +0 -64
- package/dist/clients/attach/__tests__/titled-editor-paste.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-paste.test.js +0 -114
- package/dist/clients/attach/__tests__/titled-editor-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-preview.test.js +0 -83
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.js +0 -81
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.js +0 -135
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.js +0 -66
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.js +0 -35
- package/dist/clients/inbox/review/__tests__/review-core.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/review-core.test.js +0 -52
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.js +0 -100
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.d.ts +0 -1
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.js +0 -69
- package/dist/commands/__tests__/human.test.d.ts +0 -1
- package/dist/commands/__tests__/human.test.js +0 -172
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.js +0 -237
- package/dist/commands/__tests__/integration/migrate.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/migrate.test.js +0 -1330
- package/dist/commands/__tests__/node-message.test.d.ts +0 -1
- package/dist/commands/__tests__/node-message.test.js +0 -112
- package/dist/commands/__tests__/node-new.test.d.ts +0 -1
- package/dist/commands/__tests__/node-new.test.js +0 -58
- package/dist/commands/__tests__/revive-now-gate.test.d.ts +0 -1
- package/dist/commands/__tests__/revive-now-gate.test.js +0 -62
- package/dist/commands/__tests__/seam/daemon-status.test.d.ts +0 -1
- package/dist/commands/__tests__/seam/daemon-status.test.js +0 -29
- package/dist/commands/__tests__/surface-reload-target.test.d.ts +0 -1
- package/dist/commands/__tests__/surface-reload-target.test.js +0 -21
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.js +0 -379
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.js +0 -124
- package/dist/commands/memory/__tests__/repository-root-lint.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/repository-root-lint.test.js +0 -148
- package/dist/commands/sys/__tests__/config-model-ladders.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/config-model-ladders.test.js +0 -114
- package/dist/commands/sys/__tests__/setup-core.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/setup-core.test.js +0 -45
- package/dist/commands/sys/__tests__/sync-project-guidance.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/sync-project-guidance.test.js +0 -244
- package/dist/core/__tests__/bash-guard.test.d.ts +0 -1
- package/dist/core/__tests__/bash-guard.test.js +0 -190
- package/dist/core/__tests__/boot-fault-attempt.test.d.ts +0 -1
- package/dist/core/__tests__/boot-fault-attempt.test.js +0 -105
- package/dist/core/__tests__/boot.test.d.ts +0 -1
- package/dist/core/__tests__/boot.test.js +0 -274
- package/dist/core/__tests__/branded-host-concurrency.test.d.ts +0 -1
- package/dist/core/__tests__/branded-host-concurrency.test.js +0 -72
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.js +0 -75
- package/dist/core/__tests__/broker-launch-candidates.test.d.ts +0 -1
- package/dist/core/__tests__/broker-launch-candidates.test.js +0 -311
- package/dist/core/__tests__/broker-preflight.test.d.ts +0 -1
- package/dist/core/__tests__/broker-preflight.test.js +0 -95
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.d.ts +0 -1
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.js +0 -82
- package/dist/core/__tests__/broker-turn-admission.test.d.ts +0 -1
- package/dist/core/__tests__/broker-turn-admission.test.js +0 -44
- package/dist/core/__tests__/canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-db-boundary.test.js +0 -46
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +0 -710
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.js +0 -310
- package/dist/core/__tests__/canvas-inbox-watcher.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher.test.js +0 -397
- package/dist/core/__tests__/canvas.test.d.ts +0 -1
- package/dist/core/__tests__/canvas.test.js +0 -138
- package/dist/core/__tests__/child-death-wake.test.d.ts +0 -1
- package/dist/core/__tests__/child-death-wake.test.js +0 -153
- package/dist/core/__tests__/cli-help-contract.test.d.ts +0 -1
- package/dist/core/__tests__/cli-help-contract.test.js +0 -152
- package/dist/core/__tests__/close.test.d.ts +0 -1
- package/dist/core/__tests__/close.test.js +0 -284
- package/dist/core/__tests__/collectible.test.d.ts +0 -1
- package/dist/core/__tests__/collectible.test.js +0 -89
- package/dist/core/__tests__/config-change-delta.test.d.ts +0 -1
- package/dist/core/__tests__/config-change-delta.test.js +0 -108
- package/dist/core/__tests__/context-intro.test.d.ts +0 -1
- package/dist/core/__tests__/context-intro.test.js +0 -123
- package/dist/core/__tests__/cron-armed-context-failure.test.d.ts +0 -1
- package/dist/core/__tests__/cron-armed-context-failure.test.js +0 -150
- package/dist/core/__tests__/cron-held-settlement.test.d.ts +0 -1
- package/dist/core/__tests__/cron-held-settlement.test.js +0 -240
- package/dist/core/__tests__/cron-node-sink-parked-root.test.d.ts +0 -1
- package/dist/core/__tests__/cron-node-sink-parked-root.test.js +0 -166
- package/dist/core/__tests__/cron-self-cancel-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/cron-self-cancel-delivery.test.js +0 -84
- package/dist/core/__tests__/cron-timeout-descendants.test.d.ts +0 -1
- package/dist/core/__tests__/cron-timeout-descendants.test.js +0 -114
- package/dist/core/__tests__/daemon-boot.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-boot.test.js +0 -422
- package/dist/core/__tests__/daemon-wedge.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-wedge.test.js +0 -106
- package/dist/core/__tests__/dead-node-policy-table.test.d.ts +0 -1
- package/dist/core/__tests__/dead-node-policy-table.test.js +0 -77
- package/dist/core/__tests__/events-contract.test.d.ts +0 -1
- package/dist/core/__tests__/events-contract.test.js +0 -76
- package/dist/core/__tests__/extension-abort.test.d.ts +0 -1
- package/dist/core/__tests__/extension-abort.test.js +0 -21
- package/dist/core/__tests__/fault-classifier.test.d.ts +0 -1
- package/dist/core/__tests__/fault-classifier.test.js +0 -138
- package/dist/core/__tests__/fixtures/api-server-host.d.ts +0 -1
- package/dist/core/__tests__/fixtures/api-server-host.js +0 -47
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.js +0 -34
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.js +0 -32
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +0 -347
- package/dist/core/__tests__/fixtures/fake-engine.js +0 -1509
- package/dist/core/__tests__/fixtures/fake-pi-host.d.ts +0 -2
- package/dist/core/__tests__/fixtures/fake-pi-host.js +0 -311
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.d.ts +0 -1
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.js +0 -75
- package/dist/core/__tests__/fixtures/metadata-migration-race.d.ts +0 -1
- package/dist/core/__tests__/fixtures/metadata-migration-race.js +0 -49
- package/dist/core/__tests__/focuses.test.d.ts +0 -1
- package/dist/core/__tests__/focuses.test.js +0 -113
- package/dist/core/__tests__/fs-utils.test.d.ts +0 -1
- package/dist/core/__tests__/fs-utils.test.js +0 -50
- package/dist/core/__tests__/helpers/broker-clients.d.ts +0 -43
- package/dist/core/__tests__/helpers/broker-clients.js +0 -174
- package/dist/core/__tests__/helpers/fleet.d.ts +0 -12
- package/dist/core/__tests__/helpers/fleet.js +0 -50
- package/dist/core/__tests__/helpers/harness.d.ts +0 -124
- package/dist/core/__tests__/helpers/harness.js +0 -806
- package/dist/core/__tests__/helpers/viewer-panes.d.ts +0 -12
- package/dist/core/__tests__/helpers/viewer-panes.js +0 -133
- package/dist/core/__tests__/history-inbox.test.d.ts +0 -1
- package/dist/core/__tests__/history-inbox.test.js +0 -121
- package/dist/core/__tests__/human-action-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/human-action-delivery.test.js +0 -162
- package/dist/core/__tests__/human-actions.test.d.ts +0 -1
- package/dist/core/__tests__/human-actions.test.js +0 -120
- package/dist/core/__tests__/inline-memory-refs.test.d.ts +0 -1
- package/dist/core/__tests__/inline-memory-refs.test.js +0 -225
- package/dist/core/__tests__/integration/broker-fork-seam.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-fork-seam.test.js +0 -193
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.js +0 -750
- package/dist/core/__tests__/integration/broker-snapshot-history.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-snapshot-history.test.js +0 -288
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.js +0 -103
- package/dist/core/__tests__/integration/command-plugins.test.d.ts +0 -1
- package/dist/core/__tests__/integration/command-plugins.test.js +0 -1200
- package/dist/core/__tests__/integration/deferred-no-wake.test.d.ts +0 -1
- package/dist/core/__tests__/integration/deferred-no-wake.test.js +0 -610
- package/dist/core/__tests__/integration/flagship-lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/flagship-lifecycle.test.js +0 -264
- package/dist/core/__tests__/integration/fresh-home-commands.test.d.ts +0 -1
- package/dist/core/__tests__/integration/fresh-home-commands.test.js +0 -49
- package/dist/core/__tests__/integration/git-optional-locks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/git-optional-locks.test.js +0 -81
- package/dist/core/__tests__/integration/host-teardown-process-group.test.d.ts +0 -1
- package/dist/core/__tests__/integration/host-teardown-process-group.test.js +0 -480
- package/dist/core/__tests__/integration/lifecycle-hooks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/lifecycle-hooks.test.js +0 -498
- package/dist/core/__tests__/integration/live-mutation-verbs.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation-verbs.test.js +0 -180
- package/dist/core/__tests__/integration/live-mutation.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation.test.js +0 -173
- package/dist/core/__tests__/integration/plugin-revalidate.test.d.ts +0 -1
- package/dist/core/__tests__/integration/plugin-revalidate.test.js +0 -359
- package/dist/core/__tests__/integration/profile-pause.test.d.ts +0 -1
- package/dist/core/__tests__/integration/profile-pause.test.js +0 -115
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.js +0 -151
- package/dist/core/__tests__/integration/revive.test.d.ts +0 -1
- package/dist/core/__tests__/integration/revive.test.js +0 -615
- package/dist/core/__tests__/integration/spawn-root.test.d.ts +0 -1
- package/dist/core/__tests__/integration/spawn-root.test.js +0 -536
- package/dist/core/__tests__/integration/subscription-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/integration/subscription-delivery.test.js +0 -132
- package/dist/core/__tests__/integration/tmux-surface.test.d.ts +0 -1
- package/dist/core/__tests__/integration/tmux-surface.test.js +0 -330
- package/dist/core/__tests__/integration/worktree-land.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-land.test.js +0 -607
- package/dist/core/__tests__/integration/worktree-reap.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-reap.test.js +0 -842
- package/dist/core/__tests__/kickoff.test.d.ts +0 -1
- package/dist/core/__tests__/kickoff.test.js +0 -196
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.js +0 -62
- package/dist/core/__tests__/lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle.test.js +0 -176
- package/dist/core/__tests__/live-lifecycle-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/live-lifecycle-prompt.test.js +0 -63
- package/dist/core/__tests__/memory-resolver-precedence.test.d.ts +0 -1
- package/dist/core/__tests__/memory-resolver-precedence.test.js +0 -228
- package/dist/core/__tests__/migration.test.d.ts +0 -1
- package/dist/core/__tests__/migration.test.js +0 -946
- package/dist/core/__tests__/model-pin-durability.test.d.ts +0 -1
- package/dist/core/__tests__/model-pin-durability.test.js +0 -195
- package/dist/core/__tests__/model-routes-config.test.d.ts +0 -1
- package/dist/core/__tests__/model-routes-config.test.js +0 -150
- package/dist/core/__tests__/nested-store-discovery.test.d.ts +0 -1
- package/dist/core/__tests__/nested-store-discovery.test.js +0 -89
- package/dist/core/__tests__/node-outcome.test.d.ts +0 -1
- package/dist/core/__tests__/node-outcome.test.js +0 -246
- package/dist/core/__tests__/on-read-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-crouter-home-fence.test.js +0 -66
- package/dist/core/__tests__/on-read-dedup-resume.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-dedup-resume.test.js +0 -132
- package/dist/core/__tests__/on-read-nested-store.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-nested-store.test.js +0 -135
- package/dist/core/__tests__/parse-argv-stdin-secret.test.d.ts +0 -1
- package/dist/core/__tests__/parse-argv-stdin-secret.test.js +0 -68
- package/dist/core/__tests__/passive-subscription.test.d.ts +0 -1
- package/dist/core/__tests__/passive-subscription.test.js +0 -120
- package/dist/core/__tests__/pid-identity-match.test.d.ts +0 -1
- package/dist/core/__tests__/pid-identity-match.test.js +0 -145
- package/dist/core/__tests__/pid-zombie.test.d.ts +0 -1
- package/dist/core/__tests__/pid-zombie.test.js +0 -42
- package/dist/core/__tests__/plugin-kinds.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-kinds.test.js +0 -182
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.js +0 -43
- package/dist/core/__tests__/plugin-page-components.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-page-components.test.js +0 -159
- package/dist/core/__tests__/preview-mirror-cap.test.d.ts +0 -1
- package/dist/core/__tests__/preview-mirror-cap.test.js +0 -53
- package/dist/core/__tests__/preview-registry-sync.test.d.ts +0 -1
- package/dist/core/__tests__/preview-registry-sync.test.js +0 -107
- package/dist/core/__tests__/profile-project-memory-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/profile-project-memory-delivery.test.js +0 -644
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.d.ts +0 -1
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.js +0 -91
- package/dist/core/__tests__/prune.test.d.ts +0 -1
- package/dist/core/__tests__/prune.test.js +0 -243
- package/dist/core/__tests__/push-final-guard.test.d.ts +0 -1
- package/dist/core/__tests__/push-final-guard.test.js +0 -191
- package/dist/core/__tests__/relaunch-root.test.d.ts +0 -1
- package/dist/core/__tests__/relaunch-root.test.js +0 -249
- package/dist/core/__tests__/remote-canvas-target.test.d.ts +0 -1
- package/dist/core/__tests__/remote-canvas-target.test.js +0 -93
- package/dist/core/__tests__/repository-association.test.d.ts +0 -1
- package/dist/core/__tests__/repository-association.test.js +0 -153
- package/dist/core/__tests__/repository-root-identity.test.d.ts +0 -1
- package/dist/core/__tests__/repository-root-identity.test.js +0 -223
- package/dist/core/__tests__/respawn-throttle.test.d.ts +0 -1
- package/dist/core/__tests__/respawn-throttle.test.js +0 -20
- package/dist/core/__tests__/review-model-floor.test.d.ts +0 -1
- package/dist/core/__tests__/review-model-floor.test.js +0 -83
- package/dist/core/__tests__/revive-all.test.d.ts +0 -1
- package/dist/core/__tests__/revive-all.test.js +0 -157
- package/dist/core/__tests__/revive-capacity.test.d.ts +0 -1
- package/dist/core/__tests__/revive-capacity.test.js +0 -184
- package/dist/core/__tests__/revive-parked-fresh.test.d.ts +0 -1
- package/dist/core/__tests__/revive-parked-fresh.test.js +0 -176
- package/dist/core/__tests__/scope-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/scope-crouter-home-fence.test.js +0 -55
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.js +0 -262
- package/dist/core/__tests__/seam/broker-attach-stream.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-stream.test.js +0 -176
- package/dist/core/__tests__/seam/broker-cap-freeze.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-cap-freeze.test.js +0 -155
- package/dist/core/__tests__/seam/broker-crash-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-crash-teardown.test.js +0 -131
- package/dist/core/__tests__/seam/broker-pane-resolution.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-pane-resolution.test.js +0 -204
- package/dist/core/__tests__/seam/broker-provider-retry.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-provider-retry.test.js +0 -686
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.js +0 -82
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.js +0 -50
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.js +0 -138
- package/dist/core/__tests__/seam/dormancy-release.test.d.ts +0 -1
- package/dist/core/__tests__/seam/dormancy-release.test.js +0 -516
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.js +0 -65
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.d.ts +0 -1
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.js +0 -84
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.d.ts +0 -1
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.js +0 -160
- package/dist/core/__tests__/seam/node-outcome-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/node-outcome-delivery.test.js +0 -177
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.d.ts +0 -1
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.js +0 -31
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.d.ts +0 -1
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.js +0 -60
- package/dist/core/__tests__/seam/self-close-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/self-close-teardown.test.js +0 -49
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.d.ts +0 -1
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.js +0 -100
- package/dist/core/__tests__/secrets.test.d.ts +0 -1
- package/dist/core/__tests__/secrets.test.js +0 -49
- package/dist/core/__tests__/self-update.test.d.ts +0 -1
- package/dist/core/__tests__/self-update.test.js +0 -46
- package/dist/core/__tests__/session-branch.test.d.ts +0 -1
- package/dist/core/__tests__/session-branch.test.js +0 -61
- package/dist/core/__tests__/session-cycles.test.d.ts +0 -1
- package/dist/core/__tests__/session-cycles.test.js +0 -133
- package/dist/core/__tests__/session-model.test.d.ts +0 -1
- package/dist/core/__tests__/session-model.test.js +0 -111
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.d.ts +0 -1
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +0 -71
- package/dist/core/__tests__/stdin-body-no-discard.test.d.ts +0 -1
- package/dist/core/__tests__/stdin-body-no-discard.test.js +0 -33
- package/dist/core/__tests__/stdout-errors.test.d.ts +0 -1
- package/dist/core/__tests__/stdout-errors.test.js +0 -16
- package/dist/core/__tests__/stop-guard.test.d.ts +0 -1
- package/dist/core/__tests__/stop-guard.test.js +0 -237
- package/dist/core/__tests__/stream-watchdog.test.d.ts +0 -1
- package/dist/core/__tests__/stream-watchdog.test.js +0 -154
- package/dist/core/__tests__/subscription-pool-credential-guard.test.d.ts +0 -1
- package/dist/core/__tests__/subscription-pool-credential-guard.test.js +0 -95
- package/dist/core/__tests__/tmux-driver-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/tmux-driver-boundary.test.js +0 -50
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.d.ts +0 -1
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.js +0 -54
- package/dist/core/__tests__/worktree-landing.test.d.ts +0 -1
- package/dist/core/__tests__/worktree-landing.test.js +0 -11
- package/dist/core/__tests__/yield-ensures-daemon.test.d.ts +0 -1
- package/dist/core/__tests__/yield-ensures-daemon.test.js +0 -55
- package/dist/core/broker-client/__tests__/transport-relay.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-relay.test.js +0 -214
- package/dist/core/broker-client/__tests__/transport-socket.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-socket.test.js +0 -73
- package/dist/core/canvas/__tests__/attention.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/attention.test.js +0 -83
- package/dist/core/canvas/__tests__/history-transcript.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/history-transcript.test.js +0 -102
- package/dist/core/canvas/__tests__/remote-canvas-source.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-canvas-source.test.js +0 -328
- package/dist/core/canvas/__tests__/remote-transport.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-transport.test.js +0 -97
- package/dist/core/canvas/__tests__/render-remote.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/render-remote.test.js +0 -243
- package/dist/core/canvas/__tests__/session-window.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/session-window.test.js +0 -70
- package/dist/core/feed/__tests__/inbox-migrate.test.d.ts +0 -1
- package/dist/core/feed/__tests__/inbox-migrate.test.js +0 -49
- package/dist/core/human/__tests__/page-catalog.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-catalog.test.js +0 -20
- package/dist/core/human/__tests__/page-html-markdown.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-html-markdown.test.js +0 -48
- package/dist/core/human/__tests__/page.test.d.ts +0 -1
- package/dist/core/human/__tests__/page.test.js +0 -92
- package/dist/core/keybindings/__tests__/resolve.test.d.ts +0 -1
- package/dist/core/keybindings/__tests__/resolve.test.js +0 -171
- package/dist/core/profiles/__tests__/env-store.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/env-store.test.js +0 -99
- package/dist/core/profiles/__tests__/fuzzy-match.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/fuzzy-match.test.js +0 -51
- package/dist/core/profiles/__tests__/root-profile.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/root-profile.test.js +0 -59
- package/dist/core/review/__tests__/capture-origin.test.d.ts +0 -1
- package/dist/core/review/__tests__/capture-origin.test.js +0 -150
- package/dist/core/review/__tests__/comments.test.d.ts +0 -1
- package/dist/core/review/__tests__/comments.test.js +0 -116
- package/dist/core/review/__tests__/remap.test.d.ts +0 -1
- package/dist/core/review/__tests__/remap.test.js +0 -177
- package/dist/core/review/__tests__/stage-identity.test.d.ts +0 -1
- package/dist/core/review/__tests__/stage-identity.test.js +0 -150
- package/dist/core/runtime/__tests__/engine-route.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/engine-route.test.js +0 -36
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.js +0 -45
- package/dist/core/runtime/__tests__/node-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/node-env.test.js +0 -73
- package/dist/core/runtime/__tests__/spawn-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/spawn-env.test.js +0 -259
- package/dist/core/substrate/__tests__/surface-match-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-command.test.js +0 -89
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.js +0 -28
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.js +0 -92
- package/dist/daemon/__tests__/autostart-storm.test.d.ts +0 -1
- package/dist/daemon/__tests__/autostart-storm.test.js +0 -128
- package/dist/daemon/__tests__/broker-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/broker-ownership.test.js +0 -25
- package/dist/daemon/__tests__/daemon-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/daemon-ownership.test.js +0 -27
- package/dist/daemon/__tests__/helpers/source-daemon.d.ts +0 -30
- package/dist/daemon/__tests__/helpers/source-daemon.js +0 -176
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.js +0 -83
- package/dist/daemon/__tests__/integration/migration-startup.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/migration-startup.test.js +0 -127
- package/dist/daemon/__tests__/node-deadline-lane.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-deadline-lane.test.js +0 -77
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.js +0 -146
- package/dist/daemon/__tests__/node-outcome-delivery.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-delivery.test.js +0 -116
- package/dist/daemon/__tests__/reconciler-signature.test.d.ts +0 -1
- package/dist/daemon/__tests__/reconciler-signature.test.js +0 -37
- package/dist/daemon/__tests__/subtree-filter-freshness.test.d.ts +0 -1
- package/dist/daemon/__tests__/subtree-filter-freshness.test.js +0 -63
- package/dist/daemon/__tests__/thaw-order.test.d.ts +0 -1
- package/dist/daemon/__tests__/thaw-order.test.js +0 -55
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.js +0 -58
- package/dist/daemon/api/__tests__/broker-settle-park.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/broker-settle-park.test.js +0 -175
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.js +0 -216
- package/dist/daemon/api/__tests__/error-seam.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/error-seam.test.js +0 -83
- package/dist/daemon/api/__tests__/model-config.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/model-config.test.js +0 -73
- package/dist/daemon/api/__tests__/node-create-description.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-create-description.test.js +0 -127
- package/dist/daemon/api/__tests__/node-model-validation.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-model-validation.test.js +0 -183
- package/dist/daemon/api/__tests__/nodes-activity-query.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/nodes-activity-query.test.js +0 -99
- package/dist/daemon/api/__tests__/profile-launch-gates.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-launch-gates.test.js +0 -172
- package/dist/daemon/api/__tests__/profile-metadata-route.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-metadata-route.test.js +0 -95
- package/dist/daemon/api/__tests__/reopen-delivery.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/reopen-delivery.test.js +0 -260
- package/dist/daemon/api/__tests__/seam/api-server.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/api-server.test.js +0 -442
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.js +0 -310
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.js +0 -351
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.js +0 -159
- package/dist/daemon/api/__tests__/seam/profile-delete.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/profile-delete.test.js +0 -372
- package/dist/daemon/api/__tests__/submit-result.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/submit-result.test.js +0 -215
- package/dist/migrations/__tests__/activation-concurrency.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation-concurrency.test.js +0 -146
- package/dist/migrations/__tests__/activation.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation.test.js +0 -152
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.d.ts +0 -1
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.js +0 -149
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.js +0 -86
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +0 -364
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.js +0 -106
- package/dist/pi-extensions/__tests__/canvas-recap.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-recap.test.js +0 -62
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +0 -432
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +0 -152
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.js +0 -88
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.js +0 -96
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.js +0 -133
- package/dist/pi-extensions/__tests__/pre-command-gate.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/pre-command-gate.test.js +0 -232
- package/dist/shared/__tests__/env-boundary.test.d.ts +0 -1
- package/dist/shared/__tests__/env-boundary.test.js +0 -95
- package/dist/shared/__tests__/generated-context-grammar.test.d.ts +0 -1
- package/dist/shared/__tests__/generated-context-grammar.test.js +0 -80
- package/docs/compat/hearth-crtr-v1.md +0 -179
- package/docs/compat/hearth-crtr-v2.md +0 -177
- package/docs/compat/hearth-crtr-v3.md +0 -176
- package/docs/compat/hearth-crtr-v4.md +0 -182
- package/docs/compat/hearth-crtr-v5.md +0 -169
|
@@ -1,214 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// The frame owns the pane rectangle: transcript rows are virtualized between a
|
|
4
|
-
// bounded recap header and a cursor-first cockpit. Nothing mounted beneath this
|
|
5
|
-
// component may reach pi-tui as a separate child, or it can reintroduce terminal
|
|
6
|
-
// scrollback and lose the editor's hardware cursor.
|
|
7
|
-
import { CURSOR_MARKER } from '@earendil-works/pi-tui';
|
|
8
|
-
import { reportInvariant as report } from './invariant.js';
|
|
9
|
-
export const MIN_TRANSCRIPT_ROWS = 3;
|
|
10
|
-
export const HEADER_MAX_ROWS = 12;
|
|
11
|
-
export const EDITOR_MIN_ROWS = 1;
|
|
12
|
-
export const STATUS_ROWS = 1;
|
|
13
|
-
export const SEARCH_ROWS = 1;
|
|
14
|
-
/** Crop `lines` to `alloc` rows, guaranteeing the CURSOR_MARKER row survives
|
|
15
|
-
* (§2.1). No marker → the tail is kept. */
|
|
16
|
-
export function cropAroundCursor(lines, alloc) {
|
|
17
|
-
const rows = Math.max(0, Math.floor(alloc));
|
|
18
|
-
if (lines.length <= rows)
|
|
19
|
-
return lines.slice();
|
|
20
|
-
if (rows === 0)
|
|
21
|
-
return [];
|
|
22
|
-
const marker = lines.findIndex((line) => line.includes(CURSOR_MARKER));
|
|
23
|
-
if (marker === -1)
|
|
24
|
-
return lines.slice(-rows);
|
|
25
|
-
const start = clamp(marker - Math.floor((rows - 1) / 2), 0, lines.length - rows);
|
|
26
|
-
const cropped = lines.slice(start, start + rows);
|
|
27
|
-
if (!cropped.some((line) => line.includes(CURSOR_MARKER))) {
|
|
28
|
-
// This should be unreachable for a positive allocation. Keep the cursor
|
|
29
|
-
// row rather than silently making pi-tui lose the hardware cursor.
|
|
30
|
-
reportInvariant('cursor crop discarded CURSOR_MARKER');
|
|
31
|
-
return [lines[marker]];
|
|
32
|
-
}
|
|
33
|
-
return cropped;
|
|
34
|
-
}
|
|
35
|
-
const SLOT_PRIORITY = [
|
|
36
|
-
'activity',
|
|
37
|
-
'queued',
|
|
38
|
-
'aboveWidgets',
|
|
39
|
-
'belowWidgets',
|
|
40
|
-
'reports',
|
|
41
|
-
'cockpitPadding',
|
|
42
|
-
];
|
|
43
|
-
const SLOT_VISUAL_ORDER = [
|
|
44
|
-
'cockpitPadding',
|
|
45
|
-
'activity',
|
|
46
|
-
'aboveWidgets',
|
|
47
|
-
'queued',
|
|
48
|
-
'editor',
|
|
49
|
-
'pickerPanel',
|
|
50
|
-
'belowWidgets',
|
|
51
|
-
'reports',
|
|
52
|
-
'search',
|
|
53
|
-
'footer',
|
|
54
|
-
];
|
|
55
|
-
/** The TUI's ONE child. Renders exactly `terminal.rows` lines, every frame. */
|
|
56
|
-
export class ViewerFrame {
|
|
57
|
-
terminal;
|
|
58
|
-
parts;
|
|
59
|
-
viewportRows = 0;
|
|
60
|
-
lastFrame = [];
|
|
61
|
-
overlay;
|
|
62
|
-
constructor(terminal, parts) {
|
|
63
|
-
this.terminal = terminal;
|
|
64
|
-
this.parts = parts;
|
|
65
|
-
}
|
|
66
|
-
render(width) {
|
|
67
|
-
const rows = Math.max(0, this.terminal.rows);
|
|
68
|
-
const rendered = new Map();
|
|
69
|
-
for (const { slot, component } of this.parts.bottom)
|
|
70
|
-
rendered.set(slot, component.render(width));
|
|
71
|
-
const allocations = new Map();
|
|
72
|
-
const linesFor = (slot) => rendered.get(slot) ?? [];
|
|
73
|
-
const allocate = (slot, lines) => {
|
|
74
|
-
allocations.set(slot, lines);
|
|
75
|
-
};
|
|
76
|
-
let remaining = Math.min(rows, Math.max(EDITOR_MIN_ROWS + STATUS_ROWS, rows - MIN_TRANSCRIPT_ROWS));
|
|
77
|
-
const footerLines = linesFor('footer');
|
|
78
|
-
const statusAlloc = footerLines.length > 0 && remaining > EDITOR_MIN_ROWS ? STATUS_ROWS : 0;
|
|
79
|
-
allocate('footer', statusAlloc === 0 ? [] : footerLines.slice(-statusAlloc));
|
|
80
|
-
remaining -= statusAlloc;
|
|
81
|
-
// Search sits with the status line rather than in the priority table: while
|
|
82
|
-
// it is up it owns typed input, so a frame that drops it would leave the
|
|
83
|
-
// user typing into an invisible mode.
|
|
84
|
-
const searchLines = linesFor('search');
|
|
85
|
-
const searchAlloc = searchLines.length > 0 && remaining > EDITOR_MIN_ROWS ? SEARCH_ROWS : 0;
|
|
86
|
-
allocate('search', searchAlloc === 0 ? [] : searchLines.slice(-searchAlloc));
|
|
87
|
-
remaining -= searchAlloc;
|
|
88
|
-
const pickerLines = linesFor('pickerPanel');
|
|
89
|
-
const pickerReserve = pickerLines.length === 0 ? 0 : Math.min(pickerLines.length, Math.floor(remaining / 2));
|
|
90
|
-
const editorLines = linesFor('editor');
|
|
91
|
-
const editorAlloc = clamp(editorLines.length, EDITOR_MIN_ROWS, Math.max(EDITOR_MIN_ROWS, remaining - pickerReserve));
|
|
92
|
-
const editorSlice = cropAroundCursor(editorLines, editorAlloc);
|
|
93
|
-
allocate('editor', editorSlice);
|
|
94
|
-
remaining -= editorAlloc;
|
|
95
|
-
const pickerAlloc = Math.min(pickerLines.length, remaining);
|
|
96
|
-
allocate('pickerPanel', pickerLines.slice(0, pickerAlloc));
|
|
97
|
-
remaining -= pickerAlloc;
|
|
98
|
-
for (const slot of SLOT_PRIORITY) {
|
|
99
|
-
const lines = linesFor(slot);
|
|
100
|
-
if (lines.length <= remaining) {
|
|
101
|
-
allocate(slot, lines);
|
|
102
|
-
remaining -= lines.length;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
allocate(slot, []);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
const bottomLines = SLOT_VISUAL_ORDER.flatMap((slot) => allocations.get(slot) ?? []);
|
|
109
|
-
const editorBottomOffset = SLOT_VISUAL_ORDER
|
|
110
|
-
.slice(0, SLOT_VISUAL_ORDER.indexOf('editor'))
|
|
111
|
-
.reduce((count, slot) => count + (allocations.get(slot)?.length ?? 0), 0);
|
|
112
|
-
let headerLines = this.parts.header.render(width).slice(0, HEADER_MAX_ROWS);
|
|
113
|
-
if (rows - bottomLines.length - headerLines.length < MIN_TRANSCRIPT_ROWS)
|
|
114
|
-
headerLines = [];
|
|
115
|
-
// The ticket page takes every row the header and cockpit left, before the
|
|
116
|
-
// transcript sees any — a tall page legitimately drives the viewport to 0.
|
|
117
|
-
const ticketAll = this.parts.ticket.render(width);
|
|
118
|
-
const ticketLines = ticketAll.slice(0, Math.max(0, rows - headerLines.length - bottomLines.length));
|
|
119
|
-
const viewportRows = Math.max(0, rows - headerLines.length - ticketLines.length - bottomLines.length);
|
|
120
|
-
this.viewportRows = viewportRows;
|
|
121
|
-
let viewportLines = this.parts.viewport.renderSlice(width, viewportRows);
|
|
122
|
-
let frame = [...headerLines, ...ticketLines, ...viewportLines, ...bottomLines];
|
|
123
|
-
// A misbehaving viewport is repaired in its own region only: transcript
|
|
124
|
-
// padding goes directly beneath the header, while excess drops from its top.
|
|
125
|
-
// The cockpit, including the editor's marker row, is never sliced here.
|
|
126
|
-
if (frame.length !== rows) {
|
|
127
|
-
reportInvariant(`frame rendered ${frame.length} rows; expected ${rows}`);
|
|
128
|
-
viewportLines = fitTranscript(viewportLines, viewportRows);
|
|
129
|
-
frame = [...headerLines, ...ticketLines, ...viewportLines, ...bottomLines];
|
|
130
|
-
}
|
|
131
|
-
if (frame.length !== rows)
|
|
132
|
-
reportInvariant(`frame correction rendered ${frame.length} rows; expected ${rows}`);
|
|
133
|
-
const finalFrame = this.ensureCursorMarker(frame, editorLines, editorSlice, editorBottomOffset, bottomLines.length, rows);
|
|
134
|
-
// This is the exact physical screen content used for OSC-8 mouse hit tests
|
|
135
|
-
// and for the text a mouse selection copies, so it is kept BEFORE the
|
|
136
|
-
// overlay paints attributes over it. Keep a copy because terminal rendering
|
|
137
|
-
// is allowed to retain the returned array.
|
|
138
|
-
this.lastFrame = finalFrame.slice();
|
|
139
|
-
if (this.overlay === undefined)
|
|
140
|
-
return finalFrame;
|
|
141
|
-
const painted = this.overlay(finalFrame);
|
|
142
|
-
if (painted.length !== finalFrame.length) {
|
|
143
|
-
reportInvariant(`frame overlay returned ${painted.length} rows; expected ${finalFrame.length}`);
|
|
144
|
-
return finalFrame;
|
|
145
|
-
}
|
|
146
|
-
return painted;
|
|
147
|
-
}
|
|
148
|
-
/** Paint attributes over the composed frame — mouse selection highlight. The
|
|
149
|
-
* overlay may restyle rows but must return the same number of them. */
|
|
150
|
-
setOverlay(overlay) {
|
|
151
|
-
this.overlay = overlay;
|
|
152
|
-
}
|
|
153
|
-
/** The physical rows returned by the most recent render, before any overlay. */
|
|
154
|
-
lastRenderedFrame() {
|
|
155
|
-
return this.lastFrame;
|
|
156
|
-
}
|
|
157
|
-
invalidate() {
|
|
158
|
-
this.parts.header.invalidate();
|
|
159
|
-
this.parts.ticket.invalidate();
|
|
160
|
-
for (const { component } of this.parts.bottom)
|
|
161
|
-
component.invalidate();
|
|
162
|
-
this.parts.viewport.invalidate();
|
|
163
|
-
}
|
|
164
|
-
/** Rows the transcript viewport got in the last frame — the page size. */
|
|
165
|
-
lastViewportRows() {
|
|
166
|
-
return this.viewportRows;
|
|
167
|
-
}
|
|
168
|
-
/** Retain exactly one editor marker if the focused editor rendered one. */
|
|
169
|
-
ensureCursorMarker(frame, editorLines, editorSlice, editorBottomOffset, bottomRows, rows) {
|
|
170
|
-
const editorMarker = editorLines.find((line) => line.includes(CURSOR_MARKER));
|
|
171
|
-
const markerCount = countMarkers(frame);
|
|
172
|
-
if (editorMarker === undefined ? markerCount <= 1 : markerCount === 1)
|
|
173
|
-
return frame;
|
|
174
|
-
reportInvariant(editorMarker === undefined
|
|
175
|
-
? `frame contains ${markerCount} CURSOR_MARKER sequences without one from the editor`
|
|
176
|
-
: `frame contains ${markerCount} CURSOR_MARKER sequences; expected exactly one`);
|
|
177
|
-
const repaired = frame.map(stripCursorMarkers);
|
|
178
|
-
if (editorMarker === undefined)
|
|
179
|
-
return repaired;
|
|
180
|
-
const markerLine = editorSlice.findIndex((line) => line.includes(CURSOR_MARKER));
|
|
181
|
-
const frameIndex = rows - bottomRows + editorBottomOffset + markerLine;
|
|
182
|
-
if (markerLine === -1 || frameIndex < 0 || frameIndex >= repaired.length) {
|
|
183
|
-
reportInvariant('unable to restore editor CURSOR_MARKER in composed frame');
|
|
184
|
-
return repaired;
|
|
185
|
-
}
|
|
186
|
-
const markerAt = editorSlice[markerLine].indexOf(CURSOR_MARKER);
|
|
187
|
-
const line = repaired[frameIndex];
|
|
188
|
-
repaired[frameIndex] = `${line.slice(0, markerAt)}${CURSOR_MARKER}${line.slice(markerAt)}`;
|
|
189
|
-
return repaired;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
function clamp(value, min, max) {
|
|
193
|
-
return Math.min(max, Math.max(min, value));
|
|
194
|
-
}
|
|
195
|
-
/** Correct only the viewport allocation: top-pad short content or retain its tail. */
|
|
196
|
-
function fitTranscript(lines, rows) {
|
|
197
|
-
if (rows === 0)
|
|
198
|
-
return [];
|
|
199
|
-
if (lines.length === rows)
|
|
200
|
-
return lines.slice();
|
|
201
|
-
if (lines.length > rows)
|
|
202
|
-
return lines.slice(-rows);
|
|
203
|
-
return [...Array(rows - lines.length).fill(''), ...lines];
|
|
204
|
-
}
|
|
205
|
-
function countMarkers(lines) {
|
|
206
|
-
return lines.reduce((count, line) => count + line.split(CURSOR_MARKER).length - 1, 0);
|
|
207
|
-
}
|
|
208
|
-
function stripCursorMarkers(line) {
|
|
209
|
-
return line.split(CURSOR_MARKER).join('');
|
|
210
|
-
}
|
|
211
|
-
/** Invariants must surface in development without taking down an attached pane. */
|
|
212
|
-
function reportInvariant(message) {
|
|
213
|
-
report('attach-frame', message);
|
|
214
|
-
}
|
|
1
|
+
var P=Object.defineProperty;var c=(t,e)=>P(t,"name",{value:e,configurable:!0});import{CURSOR_MARKER as f}from"@earendil-works/pi-tui";import{reportInvariant as U}from"./invariant.js";const T=3,K=12,O=1,W=1,q=1;function D(t,e){const r=Math.max(0,Math.floor(e));if(t.length<=r)return t.slice();if(r===0)return[];const l=t.findIndex(s=>s.includes(f));if(l===-1)return t.slice(-r);const h=b(l-Math.floor((r-1)/2),0,t.length-r),i=t.slice(h,h+r);return i.some(s=>s.includes(f))?i:(A("cursor crop discarded CURSOR_MARKER"),[t[l]])}c(D,"cropAroundCursor");const N=["activity","queued","aboveWidgets","belowWidgets","reports","cockpitPadding"],L=["cockpitPadding","activity","aboveWidgets","queued","editor","pickerPanel","belowWidgets","reports","search","footer"];class G{static{c(this,"ViewerFrame")}terminal;parts;viewportRows=0;lastFrame=[];overlay;constructor(e,r){this.terminal=e,this.parts=r}render(e){const r=Math.max(0,this.terminal.rows),l=new Map;for(const{slot:o,component:d}of this.parts.bottom)l.set(o,d.render(e));const h=new Map,i=c(o=>l.get(o)??[],"linesFor"),s=c((o,d)=>{h.set(o,d)},"allocate");let n=Math.min(r,Math.max(O+W,r-T));const u=i("footer"),a=u.length>0&&n>O?W:0;s("footer",a===0?[]:u.slice(-a)),n-=a;const R=i("search"),p=R.length>0&&n>O?q:0;s("search",p===0?[]:R.slice(-p)),n-=p;const m=i("pickerPanel"),w=m.length===0?0:Math.min(m.length,Math.floor(n/2)),g=i("editor"),$=b(g.length,O,Math.max(O,n-w)),y=D(g,$);s("editor",y),n-=$;const E=Math.min(m.length,n);s("pickerPanel",m.slice(0,E)),n-=E;for(const o of N){const d=i(o);d.length<=n?(s(o,d),n-=d.length):s(o,[])}const M=L.flatMap(o=>h.get(o)??[]),F=L.slice(0,L.indexOf("editor")).reduce((o,d)=>o+(h.get(d)?.length??0),0);let v=this.parts.header.render(e).slice(0,K);r-M.length-v.length<T&&(v=[]);const _=this.parts.ticket.render(e).slice(0,Math.max(0,r-v.length-M.length)),C=Math.max(0,r-v.length-_.length-M.length);this.viewportRows=C;let S=this.parts.viewport.renderSlice(e,C),x=[...v,..._,...S,...M];x.length!==r&&(A(`frame rendered ${x.length} rows; expected ${r}`),S=V(S,C),x=[...v,..._,...S,...M]),x.length!==r&&A(`frame correction rendered ${x.length} rows; expected ${r}`);const k=this.ensureCursorMarker(x,g,y,F,M.length,r);if(this.lastFrame=k.slice(),this.overlay===void 0)return k;const I=this.overlay(k);return I.length!==k.length?(A(`frame overlay returned ${I.length} rows; expected ${k.length}`),k):I}setOverlay(e){this.overlay=e}lastRenderedFrame(){return this.lastFrame}invalidate(){this.parts.header.invalidate(),this.parts.ticket.invalidate();for(const{component:e}of this.parts.bottom)e.invalidate();this.parts.viewport.invalidate()}lastViewportRows(){return this.viewportRows}ensureCursorMarker(e,r,l,h,i,s){const n=r.find(g=>g.includes(f)),u=H(e);if(n===void 0?u<=1:u===1)return e;A(n===void 0?`frame contains ${u} CURSOR_MARKER sequences without one from the editor`:`frame contains ${u} CURSOR_MARKER sequences; expected exactly one`);const a=e.map(j);if(n===void 0)return a;const R=l.findIndex(g=>g.includes(f)),p=s-i+h+R;if(R===-1||p<0||p>=a.length)return A("unable to restore editor CURSOR_MARKER in composed frame"),a;const m=l[R].indexOf(f),w=a[p];return a[p]=`${w.slice(0,m)}${f}${w.slice(m)}`,a}}function b(t,e,r){return Math.min(r,Math.max(e,t))}c(b,"clamp");function V(t,e){return e===0?[]:t.length===e?t.slice():t.length>e?t.slice(-e):[...Array(e-t.length).fill(""),...t]}c(V,"fitTranscript");function H(t){return t.reduce((e,r)=>e+r.split(f).length-1,0)}c(H,"countMarkers");function j(t){return t.split(f).join("")}c(j,"stripCursorMarkers");function A(t){U("attach-frame",t)}c(A,"reportInvariant");export{O as EDITOR_MIN_ROWS,K as HEADER_MAX_ROWS,T as MIN_TRANSCRIPT_ROWS,q as SEARCH_ROWS,W as STATUS_ROWS,G as ViewerFrame,D as cropAroundCursor};
|
|
@@ -1,188 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// Every fact a frame carries is folded by the shared pure reducer
|
|
4
|
-
// (`core/session-model`) in `foldState` before anything here runs. What is left,
|
|
5
|
-
// and all this file owns, is the
|
|
6
|
-
// LOCAL effects: transcript writes, notices, editor text, and the correlated
|
|
7
|
-
// refetches a fresh broker forces.
|
|
8
|
-
//
|
|
9
|
-
// The rule for adding a case: if the frame changes something a reader could
|
|
10
|
-
// see in the reducer's state, it belongs in the reducer, not here.
|
|
11
|
-
import { writeClipboardText } from '../../../core/clipboard-text.js';
|
|
12
|
-
import { parsePreviewableCommands } from '../slash/prompt-preview.js';
|
|
13
|
-
import { mark } from '../../../core/timing.js';
|
|
14
|
-
/** Build the single `frame` handler the socket is wired to. */
|
|
15
|
-
export function createFrameHandler(ctx, fx) {
|
|
16
|
-
const { socket } = ctx;
|
|
17
|
-
/** The two refetches a FRESH broker forces. A broker that just came up
|
|
18
|
-
* (post-crash-revive, post-refresh, or a redial after sleep/Wi-Fi loss) has
|
|
19
|
-
* no memory of this viewer's inventories, and `/reload` can replace both
|
|
20
|
-
* corpora under a live one — same recovery either way. The epoch bump inside
|
|
21
|
-
* `resetMemoryRefs` supersedes any request still in flight from a PRIOR
|
|
22
|
-
* connection, so a late reply can never overwrite the fresh inventory. */
|
|
23
|
-
const refetchInventories = () => {
|
|
24
|
-
socket.send({ type: 'get_commands' });
|
|
25
|
-
fx.resetMemoryRefs();
|
|
26
|
-
};
|
|
27
|
-
const handleAck = (frame) => {
|
|
28
|
-
// get_commands replies with the broker's merged command list as JSON in
|
|
29
|
-
// `detail` — rebuild the autocomplete provider with it (slashCommandList
|
|
30
|
-
// re-appends the native canvas commands, deduped).
|
|
31
|
-
if (frame.for === 'get_commands' && frame.ok && frame.detail) {
|
|
32
|
-
try {
|
|
33
|
-
fx.setCommands(parsePreviewableCommands(frame.detail));
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
/* malformed — keep the current provider */
|
|
37
|
-
}
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
// navigate_tree's detail is the navigated-to user message's text (pi
|
|
41
|
-
// parity: the tree navigator restores it to the editor for re-editing);
|
|
42
|
-
// the rewound transcript itself arrives via the broker's re-welcome.
|
|
43
|
-
if (frame.for === 'navigate_tree' && frame.ok) {
|
|
44
|
-
if (frame.detail)
|
|
45
|
-
fx.setEditorText(frame.detail);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (frame.for === 'share') {
|
|
49
|
-
if (frame.ok && frame.detail) {
|
|
50
|
-
fx.setNotice(`Shared: ${frame.detail}`);
|
|
51
|
-
writeClipboardText(frame.detail);
|
|
52
|
-
}
|
|
53
|
-
else if (!frame.ok) {
|
|
54
|
-
fx.setNotice(`share failed: ${frame.detail ?? 'unknown error'}`);
|
|
55
|
-
}
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (frame.for === 'clone' && !frame.ok) {
|
|
59
|
-
fx.setNotice(`clone failed: ${frame.detail ?? 'unknown error'}`);
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
if (!frame.ok) {
|
|
63
|
-
fx.setNotice(`command failed: ${frame.for}${frame.detail ? ` — ${frame.detail}` : ''}`);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
// Confirm commands whose effect is otherwise invisible — without this a
|
|
67
|
-
// `/reload` looks like it did nothing (the engine reloads silently).
|
|
68
|
-
if (frame.for === 'reload') {
|
|
69
|
-
fx.reloadBindings();
|
|
70
|
-
// `session.reload()` can replace extension command metadata AND the
|
|
71
|
-
// resolvable memory-ref corpus (a memory doc added/edited/removed). Drop
|
|
72
|
-
// the old inventory and its disclosure immediately, so a partially-typed
|
|
73
|
-
// ref or command never keeps completing against a stale one; only a fresh
|
|
74
|
-
// ack may repopulate it.
|
|
75
|
-
fx.setCommands();
|
|
76
|
-
refetchInventories();
|
|
77
|
-
fx.setNotice('Reloaded keybindings, extensions, skills, prompts, and themes');
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
/** A relayed AgentSessionEvent — everything not in the switch below. */
|
|
81
|
-
const handleSessionEvent = (event) => {
|
|
82
|
-
fx.chat.handleEvent(event);
|
|
83
|
-
if (event.type === 'session_info_changed') {
|
|
84
|
-
// Recap title regeneration persists a new canvas icon before changing the
|
|
85
|
-
// pi session name. Refreshing here lets the identity owner's onChanged
|
|
86
|
-
// repaint normalize that name with the matching icon instead of keeping
|
|
87
|
-
// the icon cached when this viewer attached.
|
|
88
|
-
fx.refreshNodeIdentity();
|
|
89
|
-
}
|
|
90
|
-
else if (event.type === 'thinking_level_changed') {
|
|
91
|
-
fx.setNotice(fx.modelThinkingLabel() ?? `Thinking level: ${event.level}`);
|
|
92
|
-
}
|
|
93
|
-
else if (event.type === 'tool_execution_start' || event.type === 'tool_execution_end') {
|
|
94
|
-
// R4: a bash tool call starting or ending changes what the on-disk job
|
|
95
|
-
// scan (oldestRunningBashJobStartedAtMs, read inside the status line)
|
|
96
|
-
// would return, so repaint immediately rather than waiting for the next
|
|
97
|
-
// 5s chrome poll — no session state to track, just the repaint.
|
|
98
|
-
fx.renderFooter();
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
let markedWelcome = false;
|
|
102
|
-
return (frame) => {
|
|
103
|
-
fx.foldState(frame);
|
|
104
|
-
switch (frame.type) {
|
|
105
|
-
case 'welcome': {
|
|
106
|
-
// The end of the front-door clock under CRTR_TIMING: the first frame
|
|
107
|
-
// carrying engine state, i.e. the moment the pane stops being empty
|
|
108
|
-
// chrome. Only the first one is marked — reconnects re-welcome.
|
|
109
|
-
if (!markedWelcome) {
|
|
110
|
-
markedWelcome = true;
|
|
111
|
-
mark('viewer.welcome');
|
|
112
|
-
}
|
|
113
|
-
// Every fact this welcome carries — role, agentDir, pi's state, the
|
|
114
|
-
// context seed, the retained display levels, and the queue reset a fresh
|
|
115
|
-
// broker needs (it has no memory of this viewer's queue panel, and an
|
|
116
|
-
// empty queue emits no `queue_update` to overwrite it) — was already
|
|
117
|
-
// folded by `foldState`. What remains here is local: the transcript, and
|
|
118
|
-
// the refetches this viewer owns.
|
|
119
|
-
//
|
|
120
|
-
// applySnapshot yields to the event loop between chunks for a large
|
|
121
|
-
// non-streaming catch-up (so stdin drains during construction); it runs
|
|
122
|
-
// synchronously for a streaming snapshot. Fire without await — nothing
|
|
123
|
-
// below reads the constructed view, and applySnapshot requests its own
|
|
124
|
-
// final render. ChatView is a single ordered writer: live frames that
|
|
125
|
-
// arrive mid-build defer and replay in wire order once it finishes, and
|
|
126
|
-
// a second welcome supersedes an older build outright — so this void
|
|
127
|
-
// call cannot interleave transcripts.
|
|
128
|
-
void fx.chat.applySnapshot(frame.snapshot);
|
|
129
|
-
// A fresh broker may reflect a new node persona or lifecycle.
|
|
130
|
-
fx.refreshNodeIdentity();
|
|
131
|
-
refetchInventories();
|
|
132
|
-
if (frame.pending_dialog != null)
|
|
133
|
-
fx.attachDialog(frame.pending_dialog);
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
case 'tool_group_summary':
|
|
137
|
-
fx.chat.applyToolGroupSummary(frame.key, frame.summary);
|
|
138
|
-
break;
|
|
139
|
-
case 'working_activity':
|
|
140
|
-
fx.chat.setWorkingActivity(frame.activity);
|
|
141
|
-
break;
|
|
142
|
-
case 'model_changed': {
|
|
143
|
-
// The broker's own post-set_model/cycle_model announcement (pi emits no
|
|
144
|
-
// engine event for a model switch) already moved the footer's model
|
|
145
|
-
// through the reducer. Announce the resulting model + thinking level.
|
|
146
|
-
const modelLabel = fx.modelThinkingLabel();
|
|
147
|
-
if (modelLabel)
|
|
148
|
-
fx.setNotice(modelLabel);
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
case 'error':
|
|
152
|
-
fx.setNotice(frame.code === 'read_only' ? 'read-only' : `error: ${frame.message}`);
|
|
153
|
-
break;
|
|
154
|
-
case 'node_named':
|
|
155
|
-
// Nothing to do here: the naming extension shares this process, so it
|
|
156
|
-
// set the live session name in the same callback and pi's own
|
|
157
|
-
// `session_info_changed` already moved this viewer's label chip. The
|
|
158
|
-
// frame exists for clients that are NOT in the broker's process.
|
|
159
|
-
break;
|
|
160
|
-
case 'ack':
|
|
161
|
-
handleAck(frame);
|
|
162
|
-
break;
|
|
163
|
-
case 'extension_ui_request':
|
|
164
|
-
// pi's uniform envelope: the three display METHODS are session state the
|
|
165
|
-
// reducer already folded and `foldState` already painted. Everything
|
|
166
|
-
// else — notify and the blocking four — is a live TUI overlay we own.
|
|
167
|
-
if (frame.method !== 'setStatus' && frame.method !== 'setWidget' && frame.method !== 'setTitle') {
|
|
168
|
-
fx.attachDialog(frame);
|
|
169
|
-
}
|
|
170
|
-
break;
|
|
171
|
-
case 'extension_ui_dismiss':
|
|
172
|
-
fx.dismissDialog(frame.id);
|
|
173
|
-
break;
|
|
174
|
-
case 'bash_start':
|
|
175
|
-
fx.chat.bashStart(frame.command, frame.excludeFromContext);
|
|
176
|
-
break;
|
|
177
|
-
case 'bash_output':
|
|
178
|
-
fx.chat.bashOutput(frame.chunk);
|
|
179
|
-
break;
|
|
180
|
-
case 'bash_end':
|
|
181
|
-
fx.chat.bashEnd(frame);
|
|
182
|
-
break;
|
|
183
|
-
default:
|
|
184
|
-
handleSessionEvent(frame);
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
}
|
|
1
|
+
var r=Object.defineProperty;var o=(i,t)=>r(i,"name",{value:t,configurable:!0});import{writeClipboardText as h}from"../../../core/clipboard-text.js";import{parsePreviewableCommands as k}from"../slash/prompt-preview.js";import{mark as u}from"../../../core/timing.js";function y(i,t){const{socket:d}=i,s=o(()=>{d.send({type:"get_commands"}),t.resetMemoryRefs()},"refetchInventories"),l=o(e=>{if(e.for==="get_commands"&&e.ok&&e.detail){try{t.setCommands(k(e.detail))}catch{}return}if(e.for==="navigate_tree"&&e.ok){e.detail&&t.setEditorText(e.detail);return}if(e.for==="share"){e.ok&&e.detail?(t.setNotice(`Shared: ${e.detail}`),h(e.detail)):e.ok||t.setNotice(`share failed: ${e.detail??"unknown error"}`);return}if(e.for==="clone"&&!e.ok){t.setNotice(`clone failed: ${e.detail??"unknown error"}`);return}if(!e.ok){t.setNotice(`command failed: ${e.for}${e.detail?` \u2014 ${e.detail}`:""}`);return}e.for==="reload"&&(t.reloadBindings(),t.setCommands(),s(),t.setNotice("Reloaded keybindings, extensions, skills, prompts, and themes"))},"handleAck"),c=o(e=>{t.chat.handleEvent(e),e.type==="session_info_changed"?t.refreshNodeIdentity():e.type==="thinking_level_changed"?t.setNotice(t.modelThinkingLabel()??`Thinking level: ${e.level}`):(e.type==="tool_execution_start"||e.type==="tool_execution_end")&&t.renderFooter()},"handleSessionEvent");let n=!1;return e=>{switch(t.foldState(e),e.type){case"welcome":{n||(n=!0,u("viewer.welcome")),t.chat.applySnapshot(e.snapshot),t.refreshNodeIdentity(),s(),e.pending_dialog!=null&&t.attachDialog(e.pending_dialog);break}case"tool_group_summary":t.chat.applyToolGroupSummary(e.key,e.summary);break;case"working_activity":t.chat.setWorkingActivity(e.activity);break;case"model_changed":{const a=t.modelThinkingLabel();a&&t.setNotice(a);break}case"error":t.setNotice(e.code==="read_only"?"read-only":`error: ${e.message}`);break;case"node_named":break;case"ack":l(e);break;case"extension_ui_request":e.method!=="setStatus"&&e.method!=="setWidget"&&e.method!=="setTitle"&&t.attachDialog(e);break;case"extension_ui_dismiss":t.dismissDialog(e.id);break;case"bash_start":t.chat.bashStart(e.command,e.excludeFromContext);break;case"bash_output":t.chat.bashOutput(e.chunk);break;case"bash_end":t.chat.bashEnd(e);break;default:c(e);break}}}o(y,"createFrameHandler");export{y as createFrameHandler};
|
|
@@ -1,26 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// (kind/mode/lifecycle/icon), which the editor's context badge and title chip
|
|
3
|
-
// render from.
|
|
4
|
-
//
|
|
5
|
-
// It is the one connection fact that is NOT fixed at connect time: a remote
|
|
6
|
-
// attach starts without an identity and fills it in from the relayed canvas,
|
|
7
|
-
// and a fresh broker or regenerated title can reflect a new persona, lifecycle,
|
|
8
|
-
// or task icon. Hence an owner with a refresh verb rather than a value on
|
|
9
|
-
// `AttachSession`.
|
|
10
|
-
export function createNodeIdentity(ctx, initial, hooks) {
|
|
11
|
-
let identity = initial;
|
|
12
|
-
return {
|
|
13
|
-
current: () => identity,
|
|
14
|
-
refresh: () => {
|
|
15
|
-
void ctx.canvasSource
|
|
16
|
-
.getNode(ctx.nodeId)
|
|
17
|
-
.then((node) => {
|
|
18
|
-
if (hooks.isTornDown() || node === null)
|
|
19
|
-
return;
|
|
20
|
-
identity = node;
|
|
21
|
-
hooks.onChanged();
|
|
22
|
-
})
|
|
23
|
-
.catch(() => undefined);
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
}
|
|
1
|
+
var o=Object.defineProperty;var n=(e,t)=>o(e,"name",{value:t,configurable:!0});function c(e,t,r){let d=t;return{current:n(()=>d,"current"),refresh:n(()=>{e.canvasSource.getNode(e.nodeId).then(i=>{r.isTornDown()||i===null||(d=i,r.onChanged())}).catch(()=>{})},"refresh")}}n(c,"createNodeIdentity");export{c as createNodeIdentity};
|
|
@@ -1,140 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// `InputController` (input/controller.ts) is deliberately layout- and
|
|
4
|
-
// canvas-agnostic: it takes ~20 optional hooks and no ambient knowledge. This
|
|
5
|
-
// file is the ONLY place that answers each of them for the attach viewer, so
|
|
6
|
-
// "what does /copy actually do here?" or "where does a picker get mounted?" has
|
|
7
|
-
// one address instead of being a 130-line object literal wedged into runAttach.
|
|
8
|
-
//
|
|
9
|
-
// A few small behaviors live here rather than in the orchestrator because they
|
|
10
|
-
// have exactly one caller — the hook itself: the clipboard copy, the two
|
|
11
|
-
// display-toggle notices, the dormant wake-message send, and the two auth
|
|
12
|
-
// pickers (which need a reference to the controller being constructed, so they
|
|
13
|
-
// can only be closed over from inside).
|
|
14
|
-
import { InputController } from '../input/controller.js';
|
|
15
|
-
import { createViewerCapabilities } from '../input/capabilities.js';
|
|
16
|
-
import { cliClient } from '../../../commands/api-client.js';
|
|
17
|
-
import { buildLoginPicker, buildLogoutPicker } from '../overlays/auth.js';
|
|
18
|
-
import { defaultAgentDir } from '../config.js';
|
|
19
|
-
/** Construct the viewer's one capability authority. */
|
|
20
|
-
export function createViewerCapabilitiesForInput(ctx, isBrokerOffline) {
|
|
21
|
-
return createViewerCapabilities({
|
|
22
|
-
nodeId: ctx.nodeId,
|
|
23
|
-
profileId: ctx.meta.profile_id ?? undefined,
|
|
24
|
-
remote: ctx.remote,
|
|
25
|
-
role: ctx.role,
|
|
26
|
-
isBrokerOffline,
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
/** Build the viewer's InputController with every hook answered. */
|
|
30
|
-
export function createInputController(ctx, km, capabilities, hooks) {
|
|
31
|
-
const { nodeId, socket, tui, editor, containers } = ctx;
|
|
32
|
-
const { setNotice } = hooks;
|
|
33
|
-
// Auth pickers — viewer-local OAuth/API-key flows against the SAME auth.json
|
|
34
|
-
// the broker uses (broker + viewer share a filesystem in the tmux-local attach
|
|
35
|
-
// model), so they run entirely in this process and then tell the broker to
|
|
36
|
-
// reload with a `reload_auth` frame.
|
|
37
|
-
//
|
|
38
|
-
// A read-only viewer wires NEITHER. A REMOTE attach (`--canvas`) disables both
|
|
39
|
-
// because they target the LOCAL `auth.json` via `defaultAgentDir()`, the wrong
|
|
40
|
-
// host for a remote node; an OBSERVER because
|
|
41
|
-
// switching credentials and telling the broker to reload them mutates the
|
|
42
|
-
// engine's auth, which a read-only viewer must not do. Unwired here means the
|
|
43
|
-
// slash context carries no picker at all, so `/login` and `/logout` report
|
|
44
|
-
// themselves unavailable rather than reaching a `reload_auth` frame.
|
|
45
|
-
const reloadAuth = () => socket.send({ type: 'reload_auth' });
|
|
46
|
-
const authPickers = !capabilities.permits('auth')
|
|
47
|
-
? {}
|
|
48
|
-
: {
|
|
49
|
-
openLoginPicker: () => {
|
|
50
|
-
const dir = hooks.agentDir() ?? defaultAgentDir();
|
|
51
|
-
void input.openAuthPicker(() => buildLoginPicker(tui, dir, reloadAuth, (m) => setNotice(m)));
|
|
52
|
-
},
|
|
53
|
-
openLogoutPicker: () => {
|
|
54
|
-
const dir = hooks.agentDir() ?? defaultAgentDir();
|
|
55
|
-
void input.openAuthPicker(() => buildLogoutPicker(dir, reloadAuth, (m) => setNotice(m)));
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
const input = new InputController(tui, editor, km, {
|
|
59
|
-
onCommand: (frame) => socket.send(frame),
|
|
60
|
-
onDialogResponse: (resp) => socket.send(resp),
|
|
61
|
-
onNotice: (msg) => setNotice(msg),
|
|
62
|
-
// The slash context: `/promote` targets this node, `/resume-node` opens
|
|
63
|
-
// scoped to its profile, `remote` structurally omits the local-only
|
|
64
|
-
// canvas commands, and `/graph` toggles the overlay.
|
|
65
|
-
onGraph: hooks.toggleGraph,
|
|
66
|
-
onInbox: hooks.toggleInbox,
|
|
67
|
-
onHelp: hooks.toggleHelp,
|
|
68
|
-
onNodeMetadata: hooks.openNodeMetadata,
|
|
69
|
-
onQuit: hooks.quit,
|
|
70
|
-
onCopy: () => hooks.copyTarget('last-assistant'),
|
|
71
|
-
onCopyTarget: hooks.copyTarget,
|
|
72
|
-
onToggleMouse: () => {
|
|
73
|
-
const on = hooks.toggleMouse();
|
|
74
|
-
setNotice(on ? 'Mouse: wheel scrolling on, drag to select and copy' : 'Mouse: off — tmux drag-select and copy-mode restored');
|
|
75
|
-
},
|
|
76
|
-
onColor: hooks.setChipColor,
|
|
77
|
-
onPromptSent: hooks.onPromptSent,
|
|
78
|
-
frecency: hooks.frecency,
|
|
79
|
-
knownRefNames: () => editor.getResolvedRefNames(),
|
|
80
|
-
// Global display toggles (Ctrl+O tools / Ctrl+T thinking) — pure render
|
|
81
|
-
// state owned by ChatView, surfaced as a footer notice mirroring pi's
|
|
82
|
-
// status line.
|
|
83
|
-
onToggleToolsExpand: () => {
|
|
84
|
-
const result = hooks.toggleToolsExpanded();
|
|
85
|
-
setNotice(result.kind === 'summaries'
|
|
86
|
-
? result.shown ? 'Tool calls: summarized' : 'Tool calls: shown'
|
|
87
|
-
: result.expanded ? 'Tool output: expanded' : 'Tool output: collapsed');
|
|
88
|
-
},
|
|
89
|
-
onFoldTools: () => setNotice(hooks.toggleFoldTools()
|
|
90
|
-
? 'Finished tool calls: folded to one line'
|
|
91
|
-
: 'Finished tool calls: shown in full'),
|
|
92
|
-
onToggleThinking: () => setNotice(hooks.toggleThinking() ? 'Thinking blocks: hidden' : 'Thinking blocks: visible'),
|
|
93
|
-
// The correlated read-op channel the native pickers (/model, /resume,
|
|
94
|
-
// /fork, /tree, /settings, /scoped-models) fetch their payloads over.
|
|
95
|
-
// Without it every picker degrades to the "isn't available in this viewer"
|
|
96
|
-
// notice (see slash/dispatch.ts + InputController.openPicker).
|
|
97
|
-
onRequest: (frame) => {
|
|
98
|
-
const refusal = capabilities.refusal('engine-drive');
|
|
99
|
-
return refusal === undefined ? socket.request(frame) : Promise.reject(new Error(refusal));
|
|
100
|
-
},
|
|
101
|
-
// Mount pickers inline in the chrome stack, directly under the editor
|
|
102
|
-
// (queued-panel pattern) rather than as a floating centered modal, so a
|
|
103
|
-
// picker reads as part of the editor — like pi's own selectors.
|
|
104
|
-
onMountPicker: (component) => {
|
|
105
|
-
containers.pickerPanel.addChild(component);
|
|
106
|
-
tui.requestRender();
|
|
107
|
-
},
|
|
108
|
-
onUnmountPicker: () => {
|
|
109
|
-
containers.pickerPanel.clear();
|
|
110
|
-
tui.requestRender();
|
|
111
|
-
},
|
|
112
|
-
// Dormant-node input: the node has no live broker, so a submitted prompt
|
|
113
|
-
// cannot reach a socket. The reconnect supervisor reports dormancy and the
|
|
114
|
-
// text is delivered as a wake message (revive + deliver) instead, so the
|
|
115
|
-
// still-open input box just works. Writable viewers only — a remote or
|
|
116
|
-
// observer attach cannot drive, leaves `onDormantSubmit` unwired, and
|
|
117
|
-
// prompts fall through. This is the one mutating path that never touches the
|
|
118
|
-
// broker (it goes to crtrd via `cliClient`), so leaving it wired for an
|
|
119
|
-
// observer would let a read-only viewer wake and message the node.
|
|
120
|
-
isDormant: hooks.isDormant,
|
|
121
|
-
onDormantSubmit: !capabilities.permits('wake-dormant') ? undefined : (msgText) => {
|
|
122
|
-
void (async () => {
|
|
123
|
-
try {
|
|
124
|
-
// Text typed into a node's box IS the human talking to it — mark it
|
|
125
|
-
// `from: 'human'` so it wakes the node and lands as a plain user turn
|
|
126
|
-
// (verbatim, no "From … — N updates" digest; see coalesce()), exactly
|
|
127
|
-
// like the live path. NOT `CRTR_NODE_ID`: direct keyboard input is
|
|
128
|
-
// the human, not whatever node owns the shell that launched us.
|
|
129
|
-
const res = await cliClient().sendMessage(nodeId, { body: msgText, from: 'human' });
|
|
130
|
-
setNotice(res.revived ? '↻ waking node…' : '✉ delivered — node reads on next wake');
|
|
131
|
-
}
|
|
132
|
-
catch (err) {
|
|
133
|
-
setNotice(`Couldn't wake node: ${err instanceof Error ? err.message : String(err)}`);
|
|
134
|
-
}
|
|
135
|
-
})();
|
|
136
|
-
},
|
|
137
|
-
...authPickers,
|
|
138
|
-
}, capabilities);
|
|
139
|
-
return input;
|
|
140
|
-
}
|
|
1
|
+
var w=Object.defineProperty;var n=(i,d)=>w(i,"name",{value:d,configurable:!0});import{InputController as P}from"../input/controller.js";import{createViewerCapabilities as C}from"../input/capabilities.js";import{cliClient as y}from"../../../commands/api-client.js";import{buildLoginPicker as v,buildLogoutPicker as I}from"../overlays/auth.js";import{defaultAgentDir as m}from"../config.js";function h(i,d){return C({nodeId:i.nodeId,profileId:i.meta.profile_id??void 0,remote:i.remote,role:i.role,isBrokerOffline:d})}n(h,"createViewerCapabilitiesForInput");function N(i,d,l,o){const{nodeId:f,socket:a,tui:s,editor:u,containers:g}=i,{setNotice:r}=o,p=n(()=>a.send({type:"reload_auth"}),"reloadAuth"),T=l.permits("auth")?{openLoginPicker:n(()=>{const e=o.agentDir()??m();c.openAuthPicker(()=>v(s,e,p,t=>r(t)))},"openLoginPicker"),openLogoutPicker:n(()=>{const e=o.agentDir()??m();c.openAuthPicker(()=>I(e,p,t=>r(t)))},"openLogoutPicker")}:{},c=new P(s,u,d,{onCommand:n(e=>a.send(e),"onCommand"),onDialogResponse:n(e=>a.send(e),"onDialogResponse"),onNotice:n(e=>r(e),"onNotice"),onGraph:o.toggleGraph,onInbox:o.toggleInbox,onHelp:o.toggleHelp,onNodeMetadata:o.openNodeMetadata,onQuit:o.quit,onCopy:n(()=>o.copyTarget("last-assistant"),"onCopy"),onCopyTarget:o.copyTarget,onToggleMouse:n(()=>{const e=o.toggleMouse();r(e?"Mouse: wheel scrolling on, drag to select and copy":"Mouse: off \u2014 tmux drag-select and copy-mode restored")},"onToggleMouse"),onColor:o.setChipColor,onPromptSent:o.onPromptSent,frecency:o.frecency,knownRefNames:n(()=>u.getResolvedRefNames(),"knownRefNames"),onToggleToolsExpand:n(()=>{const e=o.toggleToolsExpanded();r(e.kind==="summaries"?e.shown?"Tool calls: summarized":"Tool calls: shown":e.expanded?"Tool output: expanded":"Tool output: collapsed")},"onToggleToolsExpand"),onFoldTools:n(()=>r(o.toggleFoldTools()?"Finished tool calls: folded to one line":"Finished tool calls: shown in full"),"onFoldTools"),onToggleThinking:n(()=>r(o.toggleThinking()?"Thinking blocks: hidden":"Thinking blocks: visible"),"onToggleThinking"),onRequest:n(e=>{const t=l.refusal("engine-drive");return t===void 0?a.request(e):Promise.reject(new Error(t))},"onRequest"),onMountPicker:n(e=>{g.pickerPanel.addChild(e),s.requestRender()},"onMountPicker"),onUnmountPicker:n(()=>{g.pickerPanel.clear(),s.requestRender()},"onUnmountPicker"),isDormant:o.isDormant,onDormantSubmit:l.permits("wake-dormant")?e=>{(async()=>{try{const t=await y().sendMessage(f,{body:e,from:"human"});r(t.revived?"\u21BB waking node\u2026":"\u2709 delivered \u2014 node reads on next wake")}catch(t){r(`Couldn't wake node: ${t instanceof Error?t.message:String(t)}`)}})()}:void 0,...T},l);return c}n(N,"createInputController");export{N as createInputController,h as createViewerCapabilitiesForInput};
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { crtrHome } from '../../../core/canvas/paths.js';
|
|
3
|
-
import { appendRotatingRecord } from '../../../core/log.js';
|
|
4
|
-
/**
|
|
5
|
-
* The viewer owns the whole pane, so an invariant must never be written to the
|
|
6
|
-
* terminal: console output lands in the middle of the rendered frame, and a
|
|
7
|
-
* violation that repeats every render pushes real content into tmux scrollback
|
|
8
|
-
* — the exact corruption these invariants exist to catch. Records go to a
|
|
9
|
-
* rotating log beside the daemon's, one line per report:
|
|
10
|
-
* `~/.crouter/canvas/attach-invariants.log` (`CRTR_HOME`-relative).
|
|
11
|
-
*/
|
|
12
|
-
export function reportInvariant(scope, message) {
|
|
13
|
-
const line = `${new Date().toISOString()} ${scope} ${message}`.replaceAll(/[\r\n]/g, ' ');
|
|
14
|
-
appendRotatingRecord(join(crtrHome(), 'attach-invariants.log'), line);
|
|
15
|
-
}
|
|
1
|
+
var i=Object.defineProperty;var o=(r,t)=>i(r,"name",{value:t,configurable:!0});import{join as a}from"node:path";import{crtrHome as e}from"../../../core/canvas/paths.js";import{appendRotatingRecord as p}from"../../../core/log.js";function g(r,t){const n=`${new Date().toISOString()} ${r} ${t}`.replaceAll(/[\r\n]/g," ");p(a(e(),"attach-invariants.log"),n)}o(g,"reportInvariant");export{g as reportInvariant};
|