@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,186 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// local or remote attach target, dialing it, the role it claims in the hello
|
|
3
|
-
// handshake, and the optional pre-wait for a socket still being bound.
|
|
4
|
-
//
|
|
5
|
-
// Everything here runs BEFORE the TUI takes over the terminal, which is the
|
|
6
|
-
// point: a missing broker must exit non-zero with a plain CLI error, not paint
|
|
7
|
-
// an alternate screen first. Nothing here launches anything — attach holds ONLY
|
|
8
|
-
// a socket; the engine is started server-side by crtrd (`reviveNode`, the one
|
|
9
|
-
// sanctioned launcher), never here.
|
|
10
|
-
import { createConnection } from 'node:net';
|
|
11
|
-
import { viewSocketPath } from '../../../core/canvas/paths.js';
|
|
12
|
-
import { BrokerClient, BrokerUnavailableError, RelayTransport } from '../../../core/broker-client/index.js';
|
|
13
|
-
import { resolveRemoteCanvasTarget } from '../../../core/remote-canvas-target.js';
|
|
14
|
-
import { ApiCanvasSource, cliCanvasSource, cliClient, rethrowAsCliError } from '../../../commands/api-client.js';
|
|
15
|
-
import { InputError } from '../../../core/io.js';
|
|
16
|
-
/** The hello handshake's initial role. A REMOTE attach (`--canvas`) is a
|
|
17
|
-
* strictly VIEW-ONLY surface — it must claim observer regardless of
|
|
18
|
-
* `--observer`, never controller. Local attach claims controller unless
|
|
19
|
-
* `--observer`. Pure so the "remote is always observer" contract is testable
|
|
20
|
-
* without constructing a real hello/socket. */
|
|
21
|
-
export function resolveHelloRole(remote, observer) {
|
|
22
|
-
return remote || observer ? 'observer' : 'controller';
|
|
23
|
-
}
|
|
24
|
-
/** bootRoot spawns the viewer BEFORE its freshly-launched broker has bound
|
|
25
|
-
* view.sock, so the viewer's own CLI boot (~0.4s of module load) overlaps the
|
|
26
|
-
* broker's ~1s startup instead of serializing after it. When that spawner set
|
|
27
|
-
* CRTR_ATTACH_WAIT_MS, poll the socket with throwaway probe connects until it
|
|
28
|
-
* accepts or the deadline passes — then fall through and let the normal
|
|
29
|
-
* one-shot connect race surface the usual BrokerUnavailableError. Without the
|
|
30
|
-
* env var this is a no-op: a plain `crtr surface attach` keeps its fail-fast
|
|
31
|
-
* "attach does NOT launch the engine" contract. */
|
|
32
|
-
export async function preWaitForViewSocket(nodeId) {
|
|
33
|
-
const waitMs = Number(process.env['CRTR_ATTACH_WAIT_MS'] ?? '');
|
|
34
|
-
if (!Number.isFinite(waitMs) || waitMs <= 0)
|
|
35
|
-
return;
|
|
36
|
-
const sockPath = viewSocketPath(nodeId);
|
|
37
|
-
const deadline = Date.now() + waitMs;
|
|
38
|
-
while (Date.now() < deadline) {
|
|
39
|
-
const ok = await new Promise((resolveProbe) => {
|
|
40
|
-
const probe = createConnection(sockPath);
|
|
41
|
-
const settle = (v) => {
|
|
42
|
-
probe.destroy();
|
|
43
|
-
resolveProbe(v);
|
|
44
|
-
};
|
|
45
|
-
probe.once('connect', () => settle(true));
|
|
46
|
-
probe.once('error', () => settle(false));
|
|
47
|
-
});
|
|
48
|
-
if (ok)
|
|
49
|
-
return;
|
|
50
|
-
await new Promise((r) => setTimeout(r, 100));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/** Resolve the target, revive the node if it is dormant (server-side), and dial
|
|
54
|
-
* the broker. Rejects with a plain `InputError` — no terminal has been taken
|
|
55
|
-
* over at this point, so a failure here is an ordinary non-zero CLI exit. */
|
|
56
|
-
export async function connectToNode(nodeId, canvasName, wakeParked = true) {
|
|
57
|
-
const remote = canvasName !== undefined;
|
|
58
|
-
// Attach must NOT silently honor a durable `crtr canvas use` selection: the
|
|
59
|
-
// local branch has a hard local-unix-socket assumption baked into its
|
|
60
|
-
// not-found and reconnect-give-up handling, so an implicit remote redirect
|
|
61
|
-
// (from a `canvas use cloud` some other command left active) would be
|
|
62
|
-
// surprising for a command whose whole meaning is "attach to a node on THIS
|
|
63
|
-
// canvas". Go remote ONLY when `--canvas` was passed on THIS invocation —
|
|
64
|
-
// never fall through to resolveCanvasSource's activeCanvas precedence, which
|
|
65
|
-
// is right for `node inspect`/`canvas browse` but not here.
|
|
66
|
-
const canvasSource = remote ? cliCanvasSource({ canvasName }) : new ApiCanvasSource();
|
|
67
|
-
// A remote node id never exists in THIS machine's canvas.db, so the local
|
|
68
|
-
// not-found guard is wrong for `--canvas`. Build a minimal local `meta`
|
|
69
|
-
// stand-in instead: `meta.cwd` is a legitimately viewer-local concern
|
|
70
|
-
// (theming, this pane's own git status) — not a remote-node concern — so
|
|
71
|
-
// pointing it at the CLI's own cwd is correct, not a hack. The `getRow`-based
|
|
72
|
-
// reconnect give-up is the other local-canvas dependency `--canvas` must skip;
|
|
73
|
-
// it gates on `remote` at its own use site, not here.
|
|
74
|
-
let meta;
|
|
75
|
-
let nodeIdentity;
|
|
76
|
-
let transport;
|
|
77
|
-
let initialSnapshot;
|
|
78
|
-
let initialCommands;
|
|
79
|
-
if (remote) {
|
|
80
|
-
meta = { cwd: process.cwd() };
|
|
81
|
-
transport = new RelayTransport(nodeId, resolveRemoteCanvasTarget(canvasName));
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
const localMeta = await canvasSource.getNode(nodeId);
|
|
85
|
-
if (localMeta === null) {
|
|
86
|
-
throw new InputError({
|
|
87
|
-
error: 'not_found',
|
|
88
|
-
message: `no node: ${nodeId}`,
|
|
89
|
-
received: nodeId,
|
|
90
|
-
next: 'List nodes with `crtr node inspect list`.',
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
meta = localMeta;
|
|
94
|
-
nodeIdentity = localMeta;
|
|
95
|
-
// Attach revives a dormant node (B2 acceptance): the server-side
|
|
96
|
-
// ensureAttach runs reviveNode (the ONE sanctioned launcher) and waits for
|
|
97
|
-
// the broker's view socket, returning socket_path === viewSocketPath(nodeId).
|
|
98
|
-
// The byte relay stays a direct local view.sock hop, so we only TRIGGER the
|
|
99
|
-
// revive here and let BrokerClient(nodeId) connect over the local socket as
|
|
100
|
-
// before — this LOCAL process never launches pi or writes the session.
|
|
101
|
-
try {
|
|
102
|
-
const attach = await cliClient().ensureAttach(nodeId, { resume: true, revive: true, wakeParked });
|
|
103
|
-
if (attach.parked) {
|
|
104
|
-
const saved = await cliClient().getSnapshot(nodeId);
|
|
105
|
-
// The API DTO stays dependency-light and structural; this viewer is the
|
|
106
|
-
// consumer that knows the complete broker snapshot contract.
|
|
107
|
-
initialSnapshot = saved.snapshot;
|
|
108
|
-
initialCommands = saved.commands;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
catch (err) {
|
|
112
|
-
rethrowAsCliError(err, 'The node may be finalized or otherwise not attachable.');
|
|
113
|
-
}
|
|
114
|
-
// Local only: remote attach reaches crtrd over WebSocket rather than a
|
|
115
|
-
// local socket file, so `--canvas` has nothing to pre-wait on. An offline
|
|
116
|
-
// parked focus has deliberately no socket to wait for.
|
|
117
|
-
if (initialSnapshot === undefined)
|
|
118
|
-
await preWaitForViewSocket(nodeId);
|
|
119
|
-
}
|
|
120
|
-
const socket = new BrokerClient(nodeId, { transport });
|
|
121
|
-
/** One error shape for a connect-time failure, whether the connect race below
|
|
122
|
-
* caught it or the deferred `assertConnected` checkpoint did. */
|
|
123
|
-
const toAttachError = (err) => {
|
|
124
|
-
if (err instanceof BrokerUnavailableError) {
|
|
125
|
-
return new InputError({
|
|
126
|
-
error: 'no_broker',
|
|
127
|
-
message: err.message,
|
|
128
|
-
received: nodeId,
|
|
129
|
-
next: 'Focus or revive the node first — attach needs a running headless broker.',
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
return new InputError({
|
|
133
|
-
error: 'socket_error',
|
|
134
|
-
message: `could not attach to node ${nodeId}: ${String(err?.message ?? err)}`,
|
|
135
|
-
received: nodeId,
|
|
136
|
-
next: 'Check the node has a running headless broker.',
|
|
137
|
-
});
|
|
138
|
-
};
|
|
139
|
-
// A remote crtrd attach connection can close after its WebSocket upgrade when
|
|
140
|
-
// its broker socket drops. Install a listener before dialing and keep it
|
|
141
|
-
// through synchronous TUI/editor setup, so `assertConnected` can surface any
|
|
142
|
-
// terminal startup failure at its one checkpoint immediately before permanent
|
|
143
|
-
// socket wiring. Failures after that are mid-session and belong to the
|
|
144
|
-
// reconnect supervisor, as they do for a local socket.
|
|
145
|
-
let terminalStartupError;
|
|
146
|
-
socket.on('error', (err) => {
|
|
147
|
-
if (terminalStartupError === undefined)
|
|
148
|
-
terminalStartupError = err;
|
|
149
|
-
});
|
|
150
|
-
// Connect FIRST (race connect/error) so a missing broker exits non-zero
|
|
151
|
-
// cleanly, BEFORE the TUI takes over the terminal. Offline parked focus is
|
|
152
|
-
// the one intentional exception: reconnect owns its first dial after paint.
|
|
153
|
-
if (initialSnapshot === undefined) {
|
|
154
|
-
await new Promise((resolve, reject) => {
|
|
155
|
-
const onConnect = () => {
|
|
156
|
-
cleanup();
|
|
157
|
-
resolve();
|
|
158
|
-
};
|
|
159
|
-
const onErr = (err) => {
|
|
160
|
-
cleanup();
|
|
161
|
-
reject(err);
|
|
162
|
-
};
|
|
163
|
-
const cleanup = () => {
|
|
164
|
-
socket.off('connect', onConnect);
|
|
165
|
-
socket.off('error', onErr);
|
|
166
|
-
};
|
|
167
|
-
socket.on('connect', onConnect);
|
|
168
|
-
socket.on('error', onErr);
|
|
169
|
-
socket.connect();
|
|
170
|
-
}).catch((err) => {
|
|
171
|
-
throw toAttachError(err);
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
return {
|
|
175
|
-
remote,
|
|
176
|
-
canvasSource,
|
|
177
|
-
meta,
|
|
178
|
-
nodeIdentity,
|
|
179
|
-
socket,
|
|
180
|
-
...(initialSnapshot === undefined ? {} : { initialSnapshot, initialCommands }),
|
|
181
|
-
assertConnected: () => {
|
|
182
|
-
if (initialSnapshot === undefined && terminalStartupError !== undefined)
|
|
183
|
-
throw toAttachError(terminalStartupError);
|
|
184
|
-
},
|
|
185
|
-
};
|
|
186
|
-
}
|
|
1
|
+
var S=Object.defineProperty;var o=(e,r)=>S(e,"name",{value:r,configurable:!0});import{createConnection as T}from"node:net";import{viewSocketPath as y}from"../../../core/canvas/paths.js";import{BrokerClient as A,BrokerUnavailableError as x,RelayTransport as E}from"../../../core/broker-client/index.js";import{resolveRemoteCanvasTarget as _}from"../../../core/remote-canvas-target.js";import{ApiCanvasSource as P,cliCanvasSource as R,cliClient as g,rethrowAsCliError as F}from"../../../commands/api-client.js";import{InputError as d}from"../../../core/io.js";function L(e,r){return e||r?"observer":"controller"}o(L,"resolveHelloRole");async function M(e){const r=Number(process.env.CRTR_ATTACH_WAIT_MS??"");if(!Number.isFinite(r)||r<=0)return;const w=y(e),c=Date.now()+r;for(;Date.now()<c;){if(await new Promise(i=>{const s=T(w),l=o(n=>{s.destroy(),i(n)},"settle");s.once("connect",()=>l(!0)),s.once("error",()=>l(!1))}))return;await new Promise(i=>setTimeout(i,100))}}o(M,"preWaitForViewSocket");async function U(e,r,w=!0){const c=r!==void 0,h=c?R({canvasName:r}):new P;let i,s,l,n,p;if(c)i={cwd:process.cwd()},l=new E(e,_(r));else{const t=await h.getNode(e);if(t===null)throw new d({error:"not_found",message:`no node: ${e}`,received:e,next:"List nodes with `crtr node inspect list`."});i=t,s=t;try{if((await g().ensureAttach(e,{resume:!0,revive:!0,wakeParked:w})).parked){const u=await g().getSnapshot(e);n=u.snapshot,p=u.commands}}catch(m){F(m,"The node may be finalized or otherwise not attachable.")}n===void 0&&await M(e)}const a=new A(e,{transport:l}),v=o(t=>t instanceof x?new d({error:"no_broker",message:t.message,received:e,next:"Focus or revive the node first \u2014 attach needs a running headless broker."}):new d({error:"socket_error",message:`could not attach to node ${e}: ${String(t?.message??t)}`,received:e,next:"Check the node has a running headless broker."}),"toAttachError");let f;return a.on("error",t=>{f===void 0&&(f=t)}),n===void 0&&await new Promise((t,m)=>{const u=o(()=>{C(),t()},"onConnect"),k=o(b=>{C(),m(b)},"onErr"),C=o(()=>{a.off("connect",u),a.off("error",k)},"cleanup");a.on("connect",u),a.on("error",k),a.connect()}).catch(t=>{throw v(t)}),{remote:c,canvasSource:h,meta:i,nodeIdentity:s,socket:a,...n===void 0?{}:{initialSnapshot:n,initialCommands:p},assertConnected:o(()=>{if(n===void 0&&f!==void 0)throw v(f)},"assertConnected")}}o(U,"connectToNode");export{U as connectToNode,M as preWaitForViewSocket,L as resolveHelloRole};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// session/context.ts — the named home for an attach session's STABLE facts.
|
|
2
|
-
//
|
|
3
|
-
// Held as closure locals inside `runAttach`, pulling any block out of it would
|
|
4
|
-
// mean inventing a bespoke parameter list for that block alone.
|
|
5
|
-
// `AttachSession` gives the state one declaration; each
|
|
6
|
-
// collaborator then names the slice it needs as a `Pick<AttachSession, …>`
|
|
7
|
-
// view, so the module's dependencies are a *projection* of one truth rather
|
|
8
|
-
// than a hand-maintained bag that can drift from it.
|
|
9
|
-
//
|
|
10
|
-
// SCOPE — this holds only what is built once and never reassigned: the
|
|
11
|
-
// identity/transport facts, the TUI, the palette, the editor, and the layout
|
|
12
|
-
// containers. Reassignable session state (the folded `SessionState`, the notice
|
|
13
|
-
// string, bash mode, the ask counts) deliberately stays in `runAttach` and
|
|
14
|
-
// reaches collaborators through explicit getters/callbacks on their own deps
|
|
15
|
-
// argument, so nothing here can be silently mutated behind a reader's back.
|
|
16
|
-
export {};
|
|
@@ -1,142 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// the editor's frame itself — border + title-chip styling, the bottom-right
|
|
3
|
-
// context badge, the session-title chip, and the git context in the top border.
|
|
4
|
-
//
|
|
5
|
-
// The frame is a cue, not chrome for its own sake: a leading `!`/`!!` recolors
|
|
6
|
-
// the whole editor to say "this goes to a shell, not the agent", and otherwise
|
|
7
|
-
// the border tracks the engine's thinking level.
|
|
8
|
-
import { basename } from 'node:path';
|
|
9
|
-
import { modeIcon, personaLabel } from '../../../core/canvas/labels.js';
|
|
10
|
-
import { colorChipStyle, defaultTitleStyle, thinkingBorderColor, thinkingTitleStyle } from '../input/titled-editor.js';
|
|
11
|
-
import { fetchGitInfo } from '../chrome/git-info.js';
|
|
12
|
-
/** Nerd Font terminal glyph marks a one-shot node; resident nodes need no
|
|
13
|
-
* lifecycle glyph because they persist by default. */
|
|
14
|
-
const TERMINAL_NODE_ICON = '\uf489';
|
|
15
|
-
/** Derive the shell-mode cue from the editor contents. Leading whitespace is
|
|
16
|
-
* ignored so pasted commands and indented text still toggle correctly. */
|
|
17
|
-
export function deriveBashMode(text) {
|
|
18
|
-
const lead = text.trimStart();
|
|
19
|
-
return lead.startsWith('!!') ? 2 : lead.startsWith('!') ? 1 : 0;
|
|
20
|
-
}
|
|
21
|
-
/** Resolve the editor border + title-chip styles for the current shell cue. */
|
|
22
|
-
export function resolveEditorFrameStyles(bashMode, thinkingLevel, pal) {
|
|
23
|
-
if (bashMode === 2) {
|
|
24
|
-
return {
|
|
25
|
-
borderColor: pal.bashModeAlt,
|
|
26
|
-
titleStyle: (s) => `\x1b[102m\x1b[30m\x1b[1m ${s} \x1b[0m`,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
if (bashMode === 1) {
|
|
30
|
-
return {
|
|
31
|
-
borderColor: pal.bashMode,
|
|
32
|
-
titleStyle: (s) => `\x1b[42m\x1b[97m\x1b[1m ${s} \x1b[0m`,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
borderColor: thinkingBorderColor(thinkingLevel, pal.border),
|
|
37
|
-
titleStyle: thinkingTitleStyle(thinkingLevel, defaultTitleStyle),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
/** Render the generated task icon on every non-empty editor title. Session
|
|
41
|
-
* names are persisted independently by pi, so this derives the icon from the
|
|
42
|
-
* canvas identity again whenever a viewer attaches or reloads. */
|
|
43
|
-
export function displayEditorTitle(sessionName, identity) {
|
|
44
|
-
const raw = sessionName ?? '';
|
|
45
|
-
if (raw === '' || identity === undefined)
|
|
46
|
-
return raw;
|
|
47
|
-
const modePrefix = `${modeIcon(identity.mode)} `;
|
|
48
|
-
const withoutMode = raw.startsWith(modePrefix) ? raw.slice(modePrefix.length) : raw;
|
|
49
|
-
const icon = (identity.icon ?? '').trim();
|
|
50
|
-
const iconPrefix = icon === '' ? '' : `${icon} `;
|
|
51
|
-
const withoutTaskIcon = iconPrefix !== '' && withoutMode.startsWith(iconPrefix)
|
|
52
|
-
? withoutMode.slice(iconPrefix.length)
|
|
53
|
-
: withoutMode;
|
|
54
|
-
const withoutKind = withoutTaskIcon.endsWith(` ${identity.kind}`)
|
|
55
|
-
? withoutTaskIcon.slice(0, -identity.kind.length - 1)
|
|
56
|
-
: withoutTaskIcon;
|
|
57
|
-
const name = withoutKind === identity.kind ? '' : withoutKind;
|
|
58
|
-
return name === '' || icon === '' ? name : `${icon} ${name}`;
|
|
59
|
-
}
|
|
60
|
-
/** The editor-chrome collaborator: owns the shell/bash level (`deriveBashMode`
|
|
61
|
-
* over `editor.onChange` is its ONE writer) and the `/color` chip override,
|
|
62
|
-
* and paints every frame-attached adornment — border hue, title chip, context
|
|
63
|
-
* badge, and git context. */
|
|
64
|
-
export function createEditorChrome(ctx, hooks) {
|
|
65
|
-
const { meta, tui, pal, editor } = ctx;
|
|
66
|
-
// Shell/bash mode: the editor text leads with `!`. Tracks pi's interactive
|
|
67
|
-
// `isBashMode`, which recolors the editor border green as a visual cue (#7).
|
|
68
|
-
// Three levels: 0 = off, 1 = `!` (output goes to the agent's context), 2 = `!!`
|
|
69
|
-
// (output hidden from the agent). The level drives BOTH the border hue (dull vs
|
|
70
|
-
// bright green) and a status-bar segment explaining what will happen.
|
|
71
|
-
let bashMode = 0;
|
|
72
|
-
// `/color` override for the name chip — null means the default (thinking-
|
|
73
|
-
// tracking) chip. Bash mode still wins: the green frame is a live safety cue.
|
|
74
|
-
let chipColor = null;
|
|
75
|
-
const syncContextBadge = (dir = basename(meta.cwd) || meta.cwd) => {
|
|
76
|
-
const identity = hooks.nodeIdentity();
|
|
77
|
-
const lifecycle = identity?.lifecycle === 'terminal' ? `${TERMINAL_NODE_ICON} ` : '';
|
|
78
|
-
const persona = identity ? ` · ${personaLabel(identity)}` : '';
|
|
79
|
-
editor.contextBadge = `${lifecycle}${dir}${persona}`;
|
|
80
|
-
};
|
|
81
|
-
// Paint the editor border + title chip. Shell/bash mode (leading `!`) wins and
|
|
82
|
-
// forces the whole frame green (#7); otherwise the hue tracks the thinking
|
|
83
|
-
// level. One place so the onChange bash toggle and live-state updates agree.
|
|
84
|
-
const paintFrame = () => {
|
|
85
|
-
const frame = resolveEditorFrameStyles(bashMode, hooks.thinkingLevel(), pal);
|
|
86
|
-
editor.borderColor = frame.borderColor;
|
|
87
|
-
editor.titleStyle = frame.titleStyle;
|
|
88
|
-
editor.contextBadgeStyle = frame.titleStyle;
|
|
89
|
-
if (bashMode === 0 && chipColor !== null) {
|
|
90
|
-
const style = colorChipStyle(chipColor);
|
|
91
|
-
if (style !== undefined)
|
|
92
|
-
editor.titleStyle = style;
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
// Recolor the editor when `!` enters/leaves the front of the input (#7). pi's
|
|
96
|
-
// interactive mode does the same off `editor.onChange`.
|
|
97
|
-
editor.onChange = (text) => {
|
|
98
|
-
hooks.onTextChange(text);
|
|
99
|
-
const next = deriveBashMode(text);
|
|
100
|
-
if (next !== bashMode) {
|
|
101
|
-
bashMode = next;
|
|
102
|
-
paintFrame();
|
|
103
|
-
hooks.renderFooter(); // the status segment tracks the bash level
|
|
104
|
-
}
|
|
105
|
-
tui.requestRender();
|
|
106
|
-
};
|
|
107
|
-
// Git context painted into the RIGHT of the editor's top border: branch and
|
|
108
|
-
// status symbols (● dirty, ⇡ ahead, ⇣ behind). The cwd leaf lives in the
|
|
109
|
-
// editor's bottom-right node and workspace badge. Refreshed by the poll.
|
|
110
|
-
const renderGitInfo = (info) => {
|
|
111
|
-
const parts = [];
|
|
112
|
-
if (info.branch)
|
|
113
|
-
parts.push(pal.info(`⎇ ${info.branch}`));
|
|
114
|
-
const sym = [];
|
|
115
|
-
if (info.dirty)
|
|
116
|
-
sym.push(pal.warning('●'));
|
|
117
|
-
if (info.ahead > 0)
|
|
118
|
-
sym.push(pal.active(`⇡${info.ahead}`));
|
|
119
|
-
if (info.behind > 0)
|
|
120
|
-
sym.push(pal.active(`⇣${info.behind}`));
|
|
121
|
-
if (sym.length > 0)
|
|
122
|
-
parts.push(sym.join(''));
|
|
123
|
-
// A trailing space keeps the symbols off the very last border cell.
|
|
124
|
-
editor.info = parts.length > 0 ? ` ${parts.join(pal.muted(' · '))} ` : '';
|
|
125
|
-
syncContextBadge(info.dir);
|
|
126
|
-
tui.requestRender();
|
|
127
|
-
};
|
|
128
|
-
return {
|
|
129
|
-
bashMode: () => bashMode,
|
|
130
|
-
setChipColor: (color) => {
|
|
131
|
-
chipColor = color;
|
|
132
|
-
paintFrame();
|
|
133
|
-
tui.requestRender();
|
|
134
|
-
},
|
|
135
|
-
paintFrame,
|
|
136
|
-
setTitle: (sessionName) => {
|
|
137
|
-
editor.title = displayEditorTitle(sessionName, hooks.nodeIdentity());
|
|
138
|
-
},
|
|
139
|
-
syncContextBadge: () => syncContextBadge(),
|
|
140
|
-
pollGit: () => fetchGitInfo(meta.cwd, renderGitInfo),
|
|
141
|
-
};
|
|
142
|
-
}
|
|
1
|
+
var p=Object.defineProperty;var r=(l,e)=>p(l,"name",{value:e,configurable:!0});import{basename as x}from"node:path";import{modeIcon as y,personaLabel as C}from"../../../core/canvas/labels.js";import{colorChipStyle as $,defaultTitleStyle as g,thinkingBorderColor as S,thinkingTitleStyle as w}from"../input/titled-editor.js";import{fetchGitInfo as I}from"../chrome/git-info.js";const T="\uF489";function B(l){const e=l.trimStart();return e.startsWith("!!")?2:e.startsWith("!")?1:0}r(B,"deriveBashMode");function M(l,e,o){return l===2?{borderColor:o.bashModeAlt,titleStyle:r(s=>`\x1B[102m\x1B[30m\x1B[1m ${s} \x1B[0m`,"titleStyle")}:l===1?{borderColor:o.bashMode,titleStyle:r(s=>`\x1B[42m\x1B[97m\x1B[1m ${s} \x1B[0m`,"titleStyle")}:{borderColor:S(e,o.border),titleStyle:w(e,g)}}r(M,"resolveEditorFrameStyles");function E(l,e){const o=l??"";if(o===""||e===void 0)return o;const s=`${y(e.mode)} `,c=o.startsWith(s)?o.slice(s.length):o,i=(e.icon??"").trim(),d=i===""?"":`${i} `,a=d!==""&&c.startsWith(d)?c.slice(d.length):c,u=a.endsWith(` ${e.kind}`)?a.slice(0,-e.kind.length-1):a,h=u===e.kind?"":u;return h===""||i===""?h:`${i} ${h}`}r(E,"displayEditorTitle");function G(l,e){const{meta:o,tui:s,pal:c,editor:i}=l;let d=0,a=null;const u=r((t=x(o.cwd)||o.cwd)=>{const n=e.nodeIdentity(),m=n?.lifecycle==="terminal"?`${T} `:"",b=n?` \xB7 ${C(n)}`:"";i.contextBadge=`${m}${t}${b}`},"syncContextBadge"),h=r(()=>{const t=M(d,e.thinkingLevel(),c);if(i.borderColor=t.borderColor,i.titleStyle=t.titleStyle,i.contextBadgeStyle=t.titleStyle,d===0&&a!==null){const n=$(a);n!==void 0&&(i.titleStyle=n)}},"paintFrame");i.onChange=t=>{e.onTextChange(t);const n=B(t);n!==d&&(d=n,h(),e.renderFooter()),s.requestRender()};const f=r(t=>{const n=[];t.branch&&n.push(c.info(`\u2387 ${t.branch}`));const m=[];t.dirty&&m.push(c.warning("\u25CF")),t.ahead>0&&m.push(c.active(`\u21E1${t.ahead}`)),t.behind>0&&m.push(c.active(`\u21E3${t.behind}`)),m.length>0&&n.push(m.join("")),i.info=n.length>0?` ${n.join(c.muted(" \xB7 "))} `:"",u(t.dir),s.requestRender()},"renderGitInfo");return{bashMode:r(()=>d,"bashMode"),setChipColor:r(t=>{a=t,h(),s.requestRender()},"setChipColor"),paintFrame:h,setTitle:r(t=>{i.title=E(t,e.nodeIdentity())},"setTitle"),syncContextBadge:r(()=>u(),"syncContextBadge"),pollGit:r(()=>I(o.cwd,f),"pollGit")}}r(G,"createEditorChrome");export{G as createEditorChrome,B as deriveBashMode,E as displayEditorTitle,M as resolveEditorFrameStyles};
|
|
@@ -1,160 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// each other), so neither may rebuild the editor's provider having silently
|
|
8
|
-
// dropped the other — everything funnels through one `syncEditorInventories`
|
|
9
|
-
// seam. The builders below stay pure so that contract is testable without a
|
|
10
|
-
// socket, TUI, or broker.
|
|
11
|
-
import { execFile } from 'node:child_process';
|
|
12
|
-
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
13
|
-
import { tmpdir } from 'node:os';
|
|
14
|
-
import { join } from 'node:path';
|
|
15
|
-
import { CombinedAutocompleteProvider } from '@earendil-works/pi-tui';
|
|
16
|
-
import { formatBinding } from '../../../core/keybindings/index.js';
|
|
17
|
-
import { inTmux, shellQuote } from '../../../core/runtime/placement-tmux.js';
|
|
18
|
-
import { surfaceTmuxStyleArgs } from '../../../core/runtime/surface-bg.js';
|
|
19
|
-
import { RefAwareAutocompleteProvider } from '../input/ref-autocomplete.js';
|
|
20
|
-
import { CANVAS_SLASH_COMMANDS, locallyConsumedCommandNames, slashCommandList } from '../slash/dispatch.js';
|
|
21
|
-
import { loadedCommandPreview } from '../slash/prompt-preview.js';
|
|
22
|
-
export function buildAttachAutocompleteProvider(cwd, fdPath, commands, capabilities, createProvider = (items, cwd, path) => new CombinedAutocompleteProvider([...items], cwd, path)) {
|
|
23
|
-
return createProvider([...slashCommandList(commands, capabilities)], cwd, fdPath);
|
|
24
|
-
}
|
|
25
|
-
export function createMemoryRefRefreshCoordinator(setMemoryRefs, request) {
|
|
26
|
-
let epoch = 0;
|
|
27
|
-
return {
|
|
28
|
-
reset: () => {
|
|
29
|
-
const myEpoch = ++epoch;
|
|
30
|
-
setMemoryRefs([], []);
|
|
31
|
-
void request({ type: 'list_memory_refs' })
|
|
32
|
-
.then((data) => {
|
|
33
|
-
if (myEpoch !== epoch)
|
|
34
|
-
return; // a newer reset (reconnect/reload) superseded this one
|
|
35
|
-
if (data.kind !== 'list_memory_refs')
|
|
36
|
-
return; // malformed/mismatched reply — stay empty
|
|
37
|
-
setMemoryRefs(data.refs, data.engineLeadingCommandNames);
|
|
38
|
-
})
|
|
39
|
-
.catch(() => {
|
|
40
|
-
// Timeout / rejected request — the immediate clear above already left
|
|
41
|
-
// the inventory empty; no retry, no local fallback.
|
|
42
|
-
});
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
/** Owns everything the editor can complete against — the merged slash-command
|
|
47
|
-
* list, the loaded-command preview, the broker's raw command metadata, and the
|
|
48
|
-
* memory-ref inventory — plus the popup that inspects the loaded template.
|
|
49
|
-
* Input wiring supplies the session capability before first render, seeding
|
|
50
|
-
* builtins-only autocomplete before the broker's first `get_commands` ack. */
|
|
51
|
-
export function createEditorInventory(ctx, capabilities, hooks) {
|
|
52
|
-
const { meta, socket, tui, editor } = ctx;
|
|
53
|
-
let commands = [];
|
|
54
|
-
let commandPreview;
|
|
55
|
-
// The broker's RAW command metadata (`undefined` until the first get_commands
|
|
56
|
-
// ack — kept distinct from `[]`, same undefined-vs-empty contract
|
|
57
|
-
// `buildAttachAutocompleteProvider` already relies on) and the broker's raw
|
|
58
|
-
// memory-ref inventory, kept SEPARATE from each other and from the merged
|
|
59
|
-
// `commands` preview list above: a late reply to one inventory must rebuild
|
|
60
|
-
// the provider/highlight sets from the CURRENT value of the other, never
|
|
61
|
-
// drop it. `syncEditorInventories` is the single place that reads both.
|
|
62
|
-
let brokerCommands;
|
|
63
|
-
let memoryRefs = [];
|
|
64
|
-
// The broker's `engineLeadingCommandNames` from the latest `list_memory_refs`
|
|
65
|
-
// reply — leading tokens the ENGINE independently consumes, kept separate
|
|
66
|
-
// from the viewer-local
|
|
67
|
-
// `locallyConsumedCommandNames()` set and fed to the editor's untrimmed
|
|
68
|
-
// engine-suppression rule via `setEngineCommandNames`.
|
|
69
|
-
let engineLeadingCommandNames = [];
|
|
70
|
-
const commandInspectHint = () => {
|
|
71
|
-
const bindings = hooks.bindings();
|
|
72
|
-
return bindings.gestures('crtr.attach.command.inspect').length > 0
|
|
73
|
-
? `${formatBinding(bindings, 'crtr.attach.command.inspect')} inspect`
|
|
74
|
-
: 'inspect binding disabled';
|
|
75
|
-
};
|
|
76
|
-
const syncCommandPreview = (text) => {
|
|
77
|
-
commandPreview = loadedCommandPreview(text, commands);
|
|
78
|
-
editor.loadedCommand = commandPreview === undefined
|
|
79
|
-
? undefined
|
|
80
|
-
: { name: commandPreview.name, content: commandPreview.content, inspectHint: commandInspectHint() };
|
|
81
|
-
};
|
|
82
|
-
// Atomically rebuild the editor's provider/highlight state from whatever
|
|
83
|
-
// command + ref inventory is CURRENTLY known — the one seam `setCommands` and
|
|
84
|
-
// `setMemoryRefs` both call, so a command-only or ref-only response can never
|
|
85
|
-
// rebuild the provider having silently dropped the other inventory. This
|
|
86
|
-
// module owns command metadata, ref metadata, provider rebuild, and editor
|
|
87
|
-
// highlight sets in one place. Command-only
|
|
88
|
-
// autocomplete is unchanged: `RefAwareAutocompleteProvider` fully delegates
|
|
89
|
-
// leading-slash and every non-ref context to the wrapped command provider, so
|
|
90
|
-
// refs never enter command completion or the loaded-command preview (which
|
|
91
|
-
// reads only `commands`, never `memoryRefs`).
|
|
92
|
-
const syncEditorInventories = () => {
|
|
93
|
-
const commandProvider = buildAttachAutocompleteProvider(meta.cwd, hooks.fdPath, brokerCommands, capabilities);
|
|
94
|
-
editor.setAutocompleteProvider(new RefAwareAutocompleteProvider(memoryRefs, commandProvider, hooks.frecency));
|
|
95
|
-
editor.setResolvedRefNames(memoryRefs.map((ref) => ref.name));
|
|
96
|
-
// Two independent suppression inventories: the viewer-local
|
|
97
|
-
// set (everything `dispatchSlashCommand` handles entirely locally, trimmed
|
|
98
|
-
// rule) and the broker's own `engineLeadingCommandNames` (untrimmed rule) —
|
|
99
|
-
// never the merged display/completion list `slashCommandList` returns.
|
|
100
|
-
editor.setLocalCommandNames(locallyConsumedCommandNames());
|
|
101
|
-
editor.setEngineCommandNames(engineLeadingCommandNames);
|
|
102
|
-
syncCommandPreview(editor.getText());
|
|
103
|
-
};
|
|
104
|
-
// Slash-command autocomplete starts with builtins + native canvas commands,
|
|
105
|
-
// then incorporates engine commands and prompt templates from get_commands.
|
|
106
|
-
// Template bodies stay alongside their autocomplete metadata so the editor can
|
|
107
|
-
// reveal the exact expanded payload before the user submits it. Responsible
|
|
108
|
-
// ONLY for the command side of the inventory — always ends with
|
|
109
|
-
// `syncEditorInventories()` so a command update never rebuilds the provider
|
|
110
|
-
// without the current ref inventory.
|
|
111
|
-
const setCommands = (next) => {
|
|
112
|
-
brokerCommands = next;
|
|
113
|
-
// Viewer-owned commands are intercepted before anything reaches the broker,
|
|
114
|
-
// so they must lead preview lookup too. Their lack of expansion metadata
|
|
115
|
-
// deliberately suppresses any shadowed extension/template disclosure.
|
|
116
|
-
commands = [
|
|
117
|
-
...CANVAS_SLASH_COMMANDS.map((command) => ({ ...command, source: 'builtin' })),
|
|
118
|
-
...(next ?? []),
|
|
119
|
-
];
|
|
120
|
-
syncEditorInventories();
|
|
121
|
-
};
|
|
122
|
-
// Responsible ONLY for the ref side of the inventory — mirrors `setCommands`,
|
|
123
|
-
// always ending with the same `syncEditorInventories()` seam. Ref arrival
|
|
124
|
-
// must repaint decoration on already-typed prose immediately (the design's
|
|
125
|
-
// "gains decoration immediately" contract), so this is the one place that
|
|
126
|
-
// requests a render after an inventory change.
|
|
127
|
-
const setMemoryRefs = (next, nextEngineLeadingCommandNames) => {
|
|
128
|
-
memoryRefs = next;
|
|
129
|
-
engineLeadingCommandNames = nextEngineLeadingCommandNames;
|
|
130
|
-
syncEditorInventories();
|
|
131
|
-
tui.requestRender();
|
|
132
|
-
};
|
|
133
|
-
// The correlated ref-inventory lifecycle (design: inline memory references,
|
|
134
|
-
// T3 terminal integration). `socket.request` is the same observer-safe
|
|
135
|
-
// read-op channel local and remote attach already share, so this is
|
|
136
|
-
// transport-agnostic for free. Reset from `welcome` and a successful
|
|
137
|
-
// `/reload` — see the frames wiring in `runAttach`.
|
|
138
|
-
const memoryRefRefresh = createMemoryRefRefreshCoordinator(setMemoryRefs, (f) => socket.request(f));
|
|
139
|
-
const inspectLoadedCommand = () => {
|
|
140
|
-
if (commandPreview === undefined) {
|
|
141
|
-
hooks.setNotice('No prompt-template command is loaded in the editor');
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if (!inTmux()) {
|
|
145
|
-
hooks.setNotice('Command inspection requires tmux');
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
const dir = mkdtempSync(join(tmpdir(), 'crtr-command-'));
|
|
149
|
-
const path = join(dir, `${commandPreview.name.replace(/[^A-Za-z0-9_.-]/g, '-')}.md`);
|
|
150
|
-
writeFileSync(path, `# /${commandPreview.name}\n\nInvocation: \`${commandPreview.invocation.replaceAll('`', '\\`')}\`\n\n${commandPreview.content}\n`, 'utf8');
|
|
151
|
-
const cmd = `if command -v nvim >/dev/null 2>&1; then exec nvim -R -- ${shellQuote(path)}; else printf 'nvim is required to inspect loaded commands. Install Neovim and retry.\\n'; printf 'Press Enter to close.'; read _; fi`;
|
|
152
|
-
execFile('tmux', ['display-popup', '-E', '-w', '90%', '-h', '85%', ...surfaceTmuxStyleArgs(), cmd], () => rmSync(dir, { recursive: true, force: true }));
|
|
153
|
-
};
|
|
154
|
-
return {
|
|
155
|
-
setCommands,
|
|
156
|
-
resetMemoryRefs: () => memoryRefRefresh.reset(),
|
|
157
|
-
syncCommandPreview,
|
|
158
|
-
inspectLoadedCommand,
|
|
159
|
-
};
|
|
160
|
-
}
|
|
1
|
+
var R=Object.defineProperty;var t=(r,c)=>R(r,"name",{value:c,configurable:!0});import{execFile as P}from"node:child_process";import{mkdtempSync as w,rmSync as x,writeFileSync as b}from"node:fs";import{tmpdir as S}from"node:os";import{join as C}from"node:path";import{CombinedAutocompleteProvider as _}from"@earendil-works/pi-tui";import{formatBinding as L}from"../../../core/keybindings/index.js";import{inTmux as E,shellQuote as $}from"../../../core/runtime/placement-tmux.js";import{surfaceTmuxStyleArgs as I}from"../../../core/runtime/surface-bg.js";import{RefAwareAutocompleteProvider as M}from"../input/ref-autocomplete.js";import{CANVAS_SLASH_COMMANDS as q,locallyConsumedCommandNames as H,slashCommandList as T}from"../slash/dispatch.js";import{loadedCommandPreview as F}from"../slash/prompt-preview.js";function j(r,c,n,d,s=(p,m,a)=>new _([...p],m,a)){return s([...T(n,d)],r,c)}t(j,"buildAttachAutocompleteProvider");function z(r,c){let n=0;return{reset:t(()=>{const d=++n;r([],[]),c({type:"list_memory_refs"}).then(s=>{d===n&&s.kind==="list_memory_refs"&&r(s.refs,s.engineLeadingCommandNames)}).catch(()=>{})},"reset")}}t(z,"createMemoryRefRefreshCoordinator");function ee(r,c,n){const{meta:d,socket:s,tui:p,editor:m}=r;let a=[],o,l,f=[],u=[];const g=t(()=>{const e=n.bindings();return e.gestures("crtr.attach.command.inspect").length>0?`${L(e,"crtr.attach.command.inspect")} inspect`:"inspect binding disabled"},"commandInspectHint"),v=t(e=>{o=F(e,a),m.loadedCommand=o===void 0?void 0:{name:o.name,content:o.content,inspectHint:g()}},"syncCommandPreview"),y=t(()=>{const e=j(d.cwd,n.fdPath,l,c);m.setAutocompleteProvider(new M(f,e,n.frecency)),m.setResolvedRefNames(f.map(i=>i.name)),m.setLocalCommandNames(H()),m.setEngineCommandNames(u),v(m.getText())},"syncEditorInventories"),h=t(e=>{l=e,a=[...q.map(i=>({...i,source:"builtin"})),...e??[]],y()},"setCommands"),A=z(t((e,i)=>{f=e,u=i,y(),p.requestRender()},"setMemoryRefs"),e=>s.request(e));return{setCommands:h,resetMemoryRefs:t(()=>A.reset(),"resetMemoryRefs"),syncCommandPreview:v,inspectLoadedCommand:t(()=>{if(o===void 0){n.setNotice("No prompt-template command is loaded in the editor");return}if(!E()){n.setNotice("Command inspection requires tmux");return}const e=w(C(S(),"crtr-command-")),i=C(e,`${o.name.replace(/[^A-Za-z0-9_.-]/g,"-")}.md`);b(i,`# /${o.name}
|
|
2
|
+
|
|
3
|
+
Invocation: \`${o.invocation.replaceAll("`","\\`")}\`
|
|
4
|
+
|
|
5
|
+
${o.content}
|
|
6
|
+
`,"utf8");const N=`if command -v nvim >/dev/null 2>&1; then exec nvim -R -- ${$(i)}; else printf 'nvim is required to inspect loaded commands. Install Neovim and retry.\\n'; printf 'Press Enter to close.'; read _; fi`;P("tmux",["display-popup","-E","-w","90%","-h","85%",...I(),N],()=>x(e,{recursive:!0,force:!0}))},"inspectLoadedCommand")}}t(ee,"createEditorInventory");export{j as buildAttachAutocompleteProvider,ee as createEditorInventory,z as createMemoryRefRefreshCoordinator};
|
|
@@ -1,68 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// iTerm sends the clicked path through a private input sequence. The viewer
|
|
4
|
-
// validates it, replaces its pane with Neovim, then reattaches after exit.
|
|
5
|
-
import { existsSync } from 'node:fs';
|
|
6
|
-
import { respawnPaneInBackground, shellQuote, viewerSplitEnv } from '../../../core/runtime/placement-tmux.js';
|
|
7
|
-
const FILE_OPEN_PREFIX = '\x1b_crtr-file-open;';
|
|
8
|
-
const STRING_TERMINATOR = '\x1b\\';
|
|
9
|
-
/**
|
|
10
|
-
* Strip the private iTerm Semantic History input and return its local path.
|
|
11
|
-
* iTerm expands `\\1` as a shell-escaped word, so decode that representation
|
|
12
|
-
* without ever evaluating it as shell input.
|
|
13
|
-
*/
|
|
14
|
-
export function extractFileOpenInput(data) {
|
|
15
|
-
const start = data.indexOf(FILE_OPEN_PREFIX);
|
|
16
|
-
if (start === -1)
|
|
17
|
-
return undefined;
|
|
18
|
-
const pathStart = start + FILE_OPEN_PREFIX.length;
|
|
19
|
-
const end = data.indexOf(STRING_TERMINATOR, pathStart);
|
|
20
|
-
if (end === -1)
|
|
21
|
-
return undefined;
|
|
22
|
-
const file = decodeShellEscapedPath(data.slice(pathStart, end));
|
|
23
|
-
return { file, remaining: data.slice(0, start) + data.slice(end + STRING_TERMINATOR.length) };
|
|
24
|
-
}
|
|
25
|
-
function decodeShellEscapedPath(value) {
|
|
26
|
-
const decoded = value.startsWith("'") ? decodeSingleQuotedPath(value) : decodeBackslashPath(value);
|
|
27
|
-
return decoded !== undefined && decoded.startsWith('/') && !/[\x00-\x1f\x7f]/.test(decoded) ? decoded : undefined;
|
|
28
|
-
}
|
|
29
|
-
function decodeSingleQuotedPath(value) {
|
|
30
|
-
let result = '';
|
|
31
|
-
let index = 1;
|
|
32
|
-
while (true) {
|
|
33
|
-
const end = value.indexOf("'", index);
|
|
34
|
-
if (end === -1)
|
|
35
|
-
return undefined;
|
|
36
|
-
result += value.slice(index, end);
|
|
37
|
-
index = end + 1;
|
|
38
|
-
if (index === value.length)
|
|
39
|
-
return result;
|
|
40
|
-
if (value.slice(index, index + 3) !== "\\''")
|
|
41
|
-
return undefined;
|
|
42
|
-
result += "'";
|
|
43
|
-
index += 3;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function decodeBackslashPath(value) {
|
|
47
|
-
let result = '';
|
|
48
|
-
for (let index = 0; index < value.length; index++) {
|
|
49
|
-
if (value[index] !== '\\') {
|
|
50
|
-
result += value[index];
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
const escaped = value[++index];
|
|
54
|
-
if (escaped === undefined)
|
|
55
|
-
return undefined;
|
|
56
|
-
result += escaped;
|
|
57
|
-
}
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
/** Replace this local viewer pane with Neovim, then reattach it when Neovim exits. */
|
|
61
|
-
export function openLinkedFileInPane(opts) {
|
|
62
|
-
if (!existsSync(opts.file))
|
|
63
|
-
return 'missing';
|
|
64
|
-
const attach = `crtr surface attach to ${shellQuote(opts.nodeId)}${opts.observer ? ' --observer' : ''}`;
|
|
65
|
-
const command = `nvim ${shellQuote(opts.file)} || :; exec ${attach}`;
|
|
66
|
-
opts.beforeRespawn();
|
|
67
|
-
return respawnPaneInBackground({ pane: opts.pane, cwd: opts.cwd, env: viewerSplitEnv(), command }) ? 'opened' : 'failed';
|
|
68
|
-
}
|
|
1
|
+
var o=Object.defineProperty;var r=(e,n)=>o(e,"name",{value:n,configurable:!0});import{existsSync as s}from"node:fs";import{respawnPaneInBackground as u,shellQuote as c,viewerSplitEnv as l}from"../../../core/runtime/placement-tmux.js";const d="\x1B_crtr-file-open;",f="\x1B\\";function P(e){const n=e.indexOf(d);if(n===-1)return;const t=n+d.length,i=e.indexOf(f,t);return i===-1?void 0:{file:h(e.slice(t,i)),remaining:e.slice(0,n)+e.slice(i+f.length)}}r(P,"extractFileOpenInput");function h(e){const n=e.startsWith("'")?x(e):a(e);return n!==void 0&&n.startsWith("/")&&!/[\x00-\x1f\x7f]/.test(n)?n:void 0}r(h,"decodeShellEscapedPath");function x(e){let n="",t=1;for(;;){const i=e.indexOf("'",t);if(i===-1)return;if(n+=e.slice(t,i),t=i+1,t===e.length)return n;if(e.slice(t,t+3)!=="\\''")return;n+="'",t+=3}}r(x,"decodeSingleQuotedPath");function a(e){let n="";for(let t=0;t<e.length;t++){if(e[t]!=="\\"){n+=e[t];continue}const i=e[++t];if(i===void 0)return;n+=i}return n}r(a,"decodeBackslashPath");function w(e){if(!s(e.file))return"missing";const n=`crtr surface attach to ${c(e.nodeId)}${e.observer?" --observer":""}`,t=`nvim ${c(e.file)} || :; exec ${n}`;return e.beforeRespawn(),u({pane:e.pane,cwd:e.cwd,env:l(),command:t})?"opened":"failed"}r(w,"openLinkedFileInPane");export{P as extractFileOpenInput,w as openLinkedFileInPane};
|
|
@@ -1,12 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// The terminal (or tmux, per pane, with `focus-events on`) sends FOCUS_IN /
|
|
4
|
-
// FOCUS_OUT as the viewer gains and loses focus. The viewer enables reporting
|
|
5
|
-
// after `tui.start()`, reads the events in its global input listener to drive
|
|
6
|
-
// the editor's hollow cursor, and DISABLES reporting again during terminal
|
|
7
|
-
// restore — so the enable and the disable live in different modules and share
|
|
8
|
-
// these constants rather than re-spelling the escape sequences.
|
|
9
|
-
export const FOCUS_REPORTING_ON = '\x1b[?1004h';
|
|
10
|
-
export const FOCUS_REPORTING_OFF = '\x1b[?1004l';
|
|
11
|
-
export const FOCUS_IN = '\x1b[I';
|
|
12
|
-
export const FOCUS_OUT = '\x1b[O';
|
|
1
|
+
const O="\x1B[?1004h",o="\x1B[?1004l",t="\x1B[I",x="\x1B[O";export{t as FOCUS_IN,x as FOCUS_OUT,o as FOCUS_REPORTING_OFF,O as FOCUS_REPORTING_ON};
|